Static Public Member Functions
fcl::Intersect Class Reference

CCD intersect kernel among primitives. More...

#include <hpp/fcl/intersect.h>

List of all members.

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.
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.
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.
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.
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.
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].
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)
static void clipTriangleByTriangleAndEdgePlanes (const Vec3f &v1, const Vec3f &v2, const Vec3f &v3, const Vec3f &t1, const Vec3f &t2, const Vec3f &t3, const Vec3f &tn, FCL_REAL to, Vec3f clipped_points[], unsigned int *num_clipped_points, bool clip_triangle=false)
 clip triangle v1, v2, v3 by the prism made by t1, t2 and t3. The normal of the prism is tn and is cutted up by to
static bool buildTrianglePlane (const Vec3f &v1, const Vec3f &v2, const Vec3f &v3, Vec3f *n, FCL_REAL *t)
 build a plane passed through triangle v1 v2 v3

Detailed Description

CCD intersect kernel among primitives.


Member Function Documentation

static bool fcl::Intersect::buildTrianglePlane ( const Vec3f v1,
const Vec3f v2,
const Vec3f v3,
Vec3f n,
FCL_REAL t 
) [static]

build a plane passed through triangle v1 v2 v3

static void fcl::Intersect::clipTriangleByTriangleAndEdgePlanes ( const Vec3f v1,
const Vec3f v2,
const Vec3f v3,
const Vec3f t1,
const Vec3f t2,
const Vec3f t3,
const Vec3f tn,
FCL_REAL  to,
Vec3f  clipped_points[],
unsigned int *  num_clipped_points,
bool  clip_triangle = false 
) [static]

clip triangle v1, v2, v3 by the prism made by t1, t2 and t3. The normal of the prism is tn and is cutted up by to

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.

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.

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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines