All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::Intersect Class Reference

CCD intersect kernel among primitives. More...

#include <hpp/fcl/intersect.h>

Static Public Member Functions

static bool intersect_VF (const Vec3f &a0, const Vec3f &b0, const Vec3f &c0, const Vec3f &p0, const Vec3f &a1, const Vec3f &b1, const Vec3f &c1, const Vec3f &p1, FCL_REAL *collision_time, Vec3f *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 Vec3f &a0, const Vec3f &b0, const Vec3f &c0, const Vec3f &d0, const Vec3f &a1, const Vec3f &b1, const Vec3f &c1, const Vec3f &d1, FCL_REAL *collision_time, Vec3f *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 Vec3f &a0, const Vec3f &b0, const Vec3f &c0, const Vec3f &p0, const Vec3f &a1, const Vec3f &b1, const Vec3f &c1, const Vec3f &p1, FCL_REAL *collision_time, Vec3f *p_i, bool useNewton=true)
 CCD intersect between one vertex and one face, using additional filter. More...
 
static bool intersect_EE_filtered (const Vec3f &a0, const Vec3f &b0, const Vec3f &c0, const Vec3f &d0, const Vec3f &a1, const Vec3f &b1, const Vec3f &c1, const Vec3f &d1, FCL_REAL *collision_time, Vec3f *p_i, bool useNewton=true)
 CCD intersect between two edges, using additional filter. More...
 
static bool intersect_VE (const Vec3f &a0, const Vec3f &b0, const Vec3f &p0, const Vec3f &a1, const Vec3f &b1, const Vec3f &p1, const Vec3f &L)
 CCD intersect between one vertex and and one edge. More...
 
static bool intersect_Triangle (const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Vec3f &Q1, const Vec3f &Q2, const Vec3f &Q3, Vec3f *contact_points=NULL, unsigned int *num_contact_points=NULL, FCL_REAL *penetration_depth=NULL, Vec3f *normal=NULL)
 CD intersect between two triangles [P1, P2, P3] and [Q1, Q2, Q3]. More...
 
static bool intersect_Triangle (const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Vec3f &Q1, const Vec3f &Q2, const Vec3f &Q3, const Matrix3f &R, const Vec3f &T, Vec3f *contact_points=NULL, unsigned int *num_contact_points=NULL, FCL_REAL *penetration_depth=NULL, Vec3f *normal=NULL)
 
static bool intersect_Triangle (const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Vec3f &Q1, const Vec3f &Q2, const Vec3f &Q3, const Transform3f &tf, Vec3f *contact_points=NULL, unsigned int *num_contact_points=NULL, FCL_REAL *penetration_depth=NULL, Vec3f *normal=NULL)
 

Detailed Description

CCD intersect kernel among primitives.

Member Function Documentation

static bool fcl::Intersect::intersect_EE ( const Vec3f a0,
const Vec3f b0,
const Vec3f c0,
const Vec3f d0,
const Vec3f a1,
const Vec3f b1,
const Vec3f c1,
const Vec3f d1,
FCL_REAL collision_time,
Vec3f 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.

Referenced by fcl::MeshContinuousCollisionTraversalNode< BV >::leafTesting().

static bool fcl::Intersect::intersect_EE_filtered ( const Vec3f a0,
const Vec3f b0,
const Vec3f c0,
const Vec3f d0,
const Vec3f a1,
const Vec3f b1,
const Vec3f c1,
const Vec3f d1,
FCL_REAL collision_time,
Vec3f p_i,
bool  useNewton = true 
)
static

CCD intersect between two edges, using additional filter.

static bool fcl::Intersect::intersect_Triangle ( const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Vec3f Q1,
const Vec3f Q2,
const Vec3f Q3,
Vec3f contact_points = NULL,
unsigned int *  num_contact_points = NULL,
FCL_REAL penetration_depth = NULL,
Vec3f normal = NULL 
)
static

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

Referenced by fcl::MeshCollisionTraversalNode< OBBRSS >::leafTesting().

static bool fcl::Intersect::intersect_Triangle ( const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Vec3f Q1,
const Vec3f Q2,
const Vec3f Q3,
const Matrix3f R,
const Vec3f T,
Vec3f contact_points = NULL,
unsigned int *  num_contact_points = NULL,
FCL_REAL penetration_depth = NULL,
Vec3f normal = NULL 
)
static
static bool fcl::Intersect::intersect_Triangle ( const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Vec3f Q1,
const Vec3f Q2,
const Vec3f Q3,
const Transform3f tf,
Vec3f contact_points = NULL,
unsigned int *  num_contact_points = NULL,
FCL_REAL penetration_depth = NULL,
Vec3f normal = NULL 
)
static
static bool fcl::Intersect::intersect_VE ( const Vec3f a0,
const Vec3f b0,
const Vec3f p0,
const Vec3f a1,
const Vec3f b1,
const Vec3f p1,
const Vec3f L 
)
static

CCD intersect between one vertex and and one edge.

static bool fcl::Intersect::intersect_VF ( const Vec3f a0,
const Vec3f b0,
const Vec3f c0,
const Vec3f p0,
const Vec3f a1,
const Vec3f b1,
const Vec3f c1,
const Vec3f p1,
FCL_REAL collision_time,
Vec3f 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.

Referenced by fcl::MeshContinuousCollisionTraversalNode< BV >::leafTesting().

static bool fcl::Intersect::intersect_VF_filtered ( const Vec3f a0,
const Vec3f b0,
const Vec3f c0,
const Vec3f p0,
const Vec3f a1,
const Vec3f b1,
const Vec3f c1,
const Vec3f p1,
FCL_REAL collision_time,
Vec3f p_i,
bool  useNewton = true 
)
static

CCD intersect between one vertex and one face, using additional filter.