FCL  0.6.0 Flexible Collision Library
fcl::detail::Intersect< S > Class Template Reference

CCD intersect kernel among primitives. More...

`#include <intersect.h>`

## Static Public Member Functions

static bool intersect_VF (const Vector3< S > &a0, const Vector3< S > &b0, const Vector3< S > &c0, const Vector3< S > &p0, const Vector3< S > &a1, const Vector3< S > &b1, const Vector3< S > &c1, const Vector3< S > &p1, S *collision_time, Vector3< S > *p_i, bool useNewton=true)
CCD intersect between one vertex and one face [a0, b0, c0] and [a1, b1, c1] are points for the triangle face in time t0 and t1 p0 and p1 are points for vertex in time t0 and t1 p_i returns the coordinate of the collision point. More...

static bool intersect_EE (const Vector3< S > &a0, const Vector3< S > &b0, const Vector3< S > &c0, const Vector3< S > &d0, const Vector3< S > &a1, const Vector3< S > &b1, const Vector3< S > &c1, const Vector3< S > &d1, S *collision_time, Vector3< S > *p_i, bool useNewton=true)
CCD intersect between two edges [a0, b0] and [a1, b1] are points for one edge in time t0 and t1 [c0, d0] and [c1, d1] are points for the other edge in time t0 and t1 p_i returns the coordinate of the collision point. More...

static bool intersect_VF_filtered (const Vector3< S > &a0, const Vector3< S > &b0, const Vector3< S > &c0, const Vector3< S > &p0, const Vector3< S > &a1, const Vector3< S > &b1, const Vector3< S > &c1, const Vector3< S > &p1, S *collision_time, Vector3< S > *p_i, bool useNewton=true)
CCD intersect between one vertex and one face, using additional filter.

static bool intersect_EE_filtered (const Vector3< S > &a0, const Vector3< S > &b0, const Vector3< S > &c0, const Vector3< S > &d0, const Vector3< S > &a1, const Vector3< S > &b1, const Vector3< S > &c1, const Vector3< S > &d1, S *collision_time, Vector3< S > *p_i, bool useNewton=true)
CCD intersect between two edges, using additional filter.

static bool intersect_VE (const Vector3< S > &a0, const Vector3< S > &b0, const Vector3< S > &p0, const Vector3< S > &a1, const Vector3< S > &b1, const Vector3< S > &p1, const Vector3< S > &L)
CCD intersect between one vertex and and one edge.

static bool intersect_Triangle (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Vector3< S > &Q1, const Vector3< S > &Q2, const Vector3< S > &Q3, Vector3< S > *contact_points=nullptr, unsigned int *num_contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr)
CD intersect between two triangles [P1, P2, P3] and [Q1, Q2, Q3].

static bool intersect_Triangle_ODE_style (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Vector3< S > &Q1, const Vector3< S > &Q2, const Vector3< S > &Q3, Vector3< S > *contact_points=nullptr, unsigned int *num_contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr)
CD intersect between two triangles [P1, P2, P3] and [Q1, Q2, Q3]. More...

static bool intersect_Triangle (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Vector3< S > &Q1, const Vector3< S > &Q2, const Vector3< S > &Q3, const Matrix3< S > &R, const Vector3< S > &T, Vector3< S > *contact_points=nullptr, unsigned int *num_contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr)

static bool intersect_Triangle (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Vector3< S > &Q1, const Vector3< S > &Q2, const Vector3< S > &Q3, const Transform3< S > &tf, Vector3< S > *contact_points=nullptr, unsigned int *num_contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr)

## Detailed Description

### template<typename S> class fcl::detail::Intersect< S >

CCD intersect kernel among primitives.

## Member Function Documentation

template<typename S >
 bool fcl::detail::Intersect< S >::intersect_EE ( const Vector3< S > & a0, const Vector3< S > & b0, const Vector3< S > & c0, const Vector3< S > & d0, const Vector3< S > & a1, const Vector3< S > & b1, const Vector3< S > & c1, const Vector3< S > & d1, S * collision_time, Vector3< S > * p_i, bool useNewton = `true` )
static

CCD intersect between two edges [a0, b0] and [a1, b1] are points for one edge in time t0 and t1 [c0, d0] and [c1, d1] are points for the other edge in time t0 and t1 p_i returns the coordinate of the collision point.

if(isZero(a)) { return solveSquare(b, c, d, a0, b0, c0, d0, va, vb, vc, vd, collision_time, false); }

template<typename S >
 bool fcl::detail::Intersect< S >::intersect_Triangle_ODE_style ( const Vector3< S > & P1, const Vector3< S > & P2, const Vector3< S > & P3, const Vector3< S > & Q1, const Vector3< S > & Q2, const Vector3< S > & Q3, Vector3< S > * contact_points = `nullptr`, unsigned int * num_contact_points = `nullptr`, S * penetration_depth = `nullptr`, Vector3< S > * normal = `nullptr` )
static

CD intersect between two triangles [P1, P2, P3] and [Q1, Q2, Q3].

Return contact information

template<typename S >
 bool fcl::detail::Intersect< S >::intersect_VF ( const Vector3< S > & a0, const Vector3< S > & b0, const Vector3< S > & c0, const Vector3< S > & p0, const Vector3< S > & a1, const Vector3< S > & b1, const Vector3< S > & c1, const Vector3< S > & p1, S * collision_time, Vector3< S > * p_i, bool useNewton = `true` )
static

CCD intersect between one vertex and one face [a0, b0, c0] and [a1, b1, c1] are points for the triangle face in time t0 and t1 p0 and p1 are points for vertex in time t0 and t1 p_i returns the coordinate of the collision point.

if(isZero(a)) { return solveSquare(b, c, d, a0, b0, c0, p0, va, vb, vc, vp, true, collision_time); }

The documentation for this class was generated from the following files:
• /home/js/dev/fcl/master/include/fcl/narrowphase/detail/traversal/collision/intersect.h
• /home/js/dev/fcl/master/include/fcl/narrowphase/detail/traversal/collision/intersect-inl.h