Public Member Functions | Public Attributes
fcl::GJKSolver_libccd Struct Reference

collision and distance solver based on libccd library. More...

#include <hpp/fcl/narrowphase/narrowphase.h>

List of all members.

Public Member Functions

template<typename S1 , typename S2 >
bool shapeIntersect (const S1 &s1, const Transform3f &tf1, const S2 &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 intersection checking between two shapes
template<typename S >
bool shapeTriangleIntersect (const S &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 intersection checking between one shape and a triangle
template<typename S >
bool shapeTriangleIntersect (const S &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<typename S1 , typename S2 >
bool shapeDistance (const S1 &s1, const Transform3f &tf1, const S2 &s2, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 distance computation between two shapes
template<typename S1 , typename S2 >
bool shapeDistance (const S1 &s1, const Transform3f &tf1, const S2 &s2, const Transform3f &tf2, FCL_REAL *dist) const
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 distance computation between one shape and a triangle
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, FCL_REAL *dist)
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 distance computation between one shape and a triangle with transformation
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL *dist) const
 GJKSolver_libccd ()
 default setting for GJK algorithm
void enableCachedGuess (bool) const
void setCachedGuess (const Vec3f &) const
Vec3f getCachedGuess () const
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 Fast implementation for sphere-capsule collision.
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 Fast implementation for sphere-sphere collision.
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 Fast implementation for box-box collision.
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeTriangleIntersect (const Sphere &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 Fast implementation for sphere-triangle collision.
template<>
bool shapeTriangleIntersect (const Sphere &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
 Fast implementation for sphere-triangle collision.
template<>
bool shapeTriangleIntersect (const Halfspace &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeTriangleIntersect (const Plane &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) const
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 Fast implementation for sphere-capsule distance.
template<>
bool shapeDistance (const Capsule &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 Fast implementation for sphere-sphere distance.
template<>
bool shapeDistance (const Capsule &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
template<>
bool shapeTriangleDistance (const Sphere &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 Fast implementation for sphere-triangle distance.
template<>
bool shapeTriangleDistance (const Sphere &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) const
 Fast implementation for sphere-triangle distance.

Public Attributes

unsigned int max_collision_iterations
 maximum number of iterations used in GJK algorithm for collision
unsigned int max_distance_iterations
 maximum number of iterations used in GJK algorithm for distance
FCL_REAL collision_tolerance
 the threshold used in GJK algorithm to stop collision iteration
FCL_REAL distance_tolerance
 the threshold used in GJK algorithm to stop distance iteration

Detailed Description

collision and distance solver based on libccd library.


Constructor & Destructor Documentation

fcl::GJKSolver_libccd::GJKSolver_libccd ( ) [inline]

default setting for GJK algorithm

References collision_tolerance, distance_tolerance, max_collision_iterations, and max_distance_iterations.


Member Function Documentation

void fcl::GJKSolver_libccd::enableCachedGuess ( bool  ) const [inline]
Vec3f fcl::GJKSolver_libccd::getCachedGuess ( ) const [inline]
void fcl::GJKSolver_libccd::setCachedGuess ( const Vec3f ) const [inline]
template<typename S1 , typename S2 >
bool fcl::GJKSolver_libccd::shapeDistance ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const [inline]

distance computation between two shapes

References distance_tolerance, fcl::details::GJKDistance(), and max_distance_iterations.

Referenced by shapeDistance().

template<typename S1 , typename S2 >
bool fcl::GJKSolver_libccd::shapeDistance ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
FCL_REAL dist 
) const [inline]

References shapeDistance().

template<>
bool fcl::GJKSolver_libccd::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const

Fast implementation for sphere-capsule distance.

template<>
bool fcl::GJKSolver_libccd::shapeDistance ( const Capsule s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const
template<>
bool fcl::GJKSolver_libccd::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const

Fast implementation for sphere-sphere distance.

template<>
bool fcl::GJKSolver_libccd::shapeDistance ( const Capsule s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const
template<typename S1 , typename S2 >
bool fcl::GJKSolver_libccd::shapeIntersect ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const [inline]

intersection checking between two shapes

References collision_tolerance, fcl::details::GJKCollide(), and max_collision_iterations.

template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Fast implementation for sphere-capsule collision.

template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Fast implementation for sphere-sphere collision.

template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Fast implementation for box-box collision.

template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Cylinder s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Cone s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Cone s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Cylinder s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Cone s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Cone s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const S &  s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const [inline]
template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const S &  s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
FCL_REAL dist 
) [inline]
template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const S &  s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const [inline]
template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const S &  s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL dist 
) const [inline]
template<>
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const Sphere s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const

Fast implementation for sphere-triangle distance.

template<>
bool fcl::GJKSolver_libccd::shapeTriangleDistance ( const Sphere s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2 
) const

Fast implementation for sphere-triangle distance.

template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const S &  s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const [inline]
template<typename S >
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const S &  s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const [inline]
template<>
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const Sphere s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Fast implementation for sphere-triangle collision.

template<>
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const Sphere s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Fast implementation for sphere-triangle collision.

template<>
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const Halfspace s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
template<>
bool fcl::GJKSolver_libccd::shapeTriangleIntersect ( const Plane s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const

Member Data Documentation

the threshold used in GJK algorithm to stop collision iteration

Referenced by GJKSolver_libccd(), shapeIntersect(), and shapeTriangleIntersect().

the threshold used in GJK algorithm to stop distance iteration

Referenced by GJKSolver_libccd(), shapeDistance(), and shapeTriangleDistance().

maximum number of iterations used in GJK algorithm for collision

Referenced by GJKSolver_libccd(), shapeIntersect(), and shapeTriangleIntersect().

maximum number of iterations used in GJK algorithm for distance

Referenced by GJKSolver_libccd(), shapeDistance(), and shapeTriangleDistance().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines