Public Member Functions | Public Attributes | List of all members
fcl::GJKSolver_indep Struct Reference

collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet) More...

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

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 More...
 
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 More...
 
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 *distance, Vec3f *p1, Vec3f *p2) const
 distance computation between two shapes More...
 
template<typename S1 , typename S2 >
bool shapeDistance (const S1 &s1, const Transform3f &tf1, const S2 &s2, const Transform3f &tf2, FCL_REAL *distance) const
 
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, FCL_REAL *distance, Vec3f *p1, Vec3f *p2) const
 distance computation between one shape and a triangle More...
 
template<typename S >
bool shapeTriangleDistance (const S &s, const Transform3f &tf, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, FCL_REAL *distance) const
 
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 *distance, Vec3f *p1, Vec3f *p2) const
 distance computation between one shape and a triangle with transformation More...
 
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 *distance) const
 
 GJKSolver_indep ()
 default setting for GJK algorithm More...
 
void enableCachedGuess (bool if_enable) const
 
void setCachedGuess (const Vec3f &guess) 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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Public Attributes

unsigned int epa_max_face_num
 maximum number of simplex face used in EPA algorithm More...
 
unsigned int epa_max_vertex_num
 maximum number of simplex vertex used in EPA algorithm More...
 
unsigned int epa_max_iterations
 maximum number of iterations used for EPA iterations More...
 
FCL_REAL epa_tolerance
 the threshold used in EPA to stop iteration More...
 
FCL_REAL gjk_tolerance
 the threshold used in GJK to stop iteration More...
 
FCL_REAL gjk_max_iterations
 maximum number of iterations used for GJK iterations More...
 
bool enable_cached_guess
 Whether smart guess can be provided. More...
 
Vec3f cached_guess
 smart guess More...
 

Detailed Description

collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet)

Constructor & Destructor Documentation

◆ GJKSolver_indep()

fcl::GJKSolver_indep::GJKSolver_indep ( )
inline

Member Function Documentation

◆ enableCachedGuess()

void fcl::GJKSolver_indep::enableCachedGuess ( bool  if_enable) const
inline

References enable_cached_guess.

◆ getCachedGuess()

Vec3f fcl::GJKSolver_indep::getCachedGuess ( ) const
inline

References cached_guess.

◆ setCachedGuess()

void fcl::GJKSolver_indep::setCachedGuess ( const Vec3f guess) const
inline

References cached_guess.

◆ shapeDistance() [1/6]

template<typename S1 , typename S2 >
bool fcl::GJKSolver_indep::shapeDistance ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2 
) const
inline

◆ shapeDistance() [2/6]

template<typename S1 , typename S2 >
bool fcl::GJKSolver_indep::shapeDistance ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
FCL_REAL distance 
) const
inline

References shapeDistance().

◆ shapeDistance() [3/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeDistance() [4/6]

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

◆ shapeDistance() [5/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeDistance() [6/6]

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

◆ shapeIntersect() [1/29]

template<typename S1 , typename S2 >
bool fcl::GJKSolver_indep::shapeIntersect ( const S1 &  s1,
const Transform3f tf1,
const S2 &  s2,
const Transform3f tf2,
Vec3f contact_points,
FCL_REAL penetration_depth,
Vec3f normal 
) const
inline

◆ shapeIntersect() [2/29]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeIntersect() [3/29]

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

◆ shapeIntersect() [4/29]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeIntersect() [5/29]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeIntersect() [6/29]

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

◆ shapeIntersect() [7/29]

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

◆ shapeIntersect() [8/29]

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

◆ shapeIntersect() [9/29]

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

◆ shapeIntersect() [10/29]

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

◆ shapeIntersect() [11/29]

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

◆ shapeIntersect() [12/29]

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

◆ shapeIntersect() [13/29]

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

◆ shapeIntersect() [14/29]

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

◆ shapeIntersect() [15/29]

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

◆ shapeIntersect() [16/29]

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

◆ shapeIntersect() [17/29]

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

◆ shapeIntersect() [18/29]

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

◆ shapeIntersect() [19/29]

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

◆ shapeIntersect() [20/29]

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

◆ shapeIntersect() [21/29]

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

◆ shapeIntersect() [22/29]

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

◆ shapeIntersect() [23/29]

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

◆ shapeIntersect() [24/29]

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

◆ shapeIntersect() [25/29]

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

◆ shapeIntersect() [26/29]

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

◆ shapeIntersect() [27/29]

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

◆ shapeIntersect() [28/29]

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

◆ shapeIntersect() [29/29]

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

◆ shapeTriangleDistance() [1/6]

template<typename S >
bool fcl::GJKSolver_indep::shapeTriangleDistance ( const S &  s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
FCL_REAL distance,
Vec3f p1,
Vec3f p2 
) const
inline

◆ shapeTriangleDistance() [2/6]

template<typename S >
bool fcl::GJKSolver_indep::shapeTriangleDistance ( const S &  s,
const Transform3f tf,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
FCL_REAL distance 
) const
inline

◆ shapeTriangleDistance() [3/6]

template<typename S >
bool fcl::GJKSolver_indep::shapeTriangleDistance ( const S &  s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2 
) const
inline

◆ shapeTriangleDistance() [4/6]

template<typename S >
bool fcl::GJKSolver_indep::shapeTriangleDistance ( const S &  s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance 
) const
inline

◆ shapeTriangleDistance() [5/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeTriangleDistance() [6/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeTriangleIntersect() [1/6]

template<typename S >
bool fcl::GJKSolver_indep::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

◆ shapeTriangleIntersect() [2/6]

template<typename S >
bool fcl::GJKSolver_indep::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

◆ shapeTriangleIntersect() [3/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeTriangleIntersect() [4/6]

template<>
bool fcl::GJKSolver_indep::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.

◆ shapeTriangleIntersect() [5/6]

template<>
bool fcl::GJKSolver_indep::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

◆ shapeTriangleIntersect() [6/6]

template<>
bool fcl::GJKSolver_indep::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

◆ cached_guess

Vec3f fcl::GJKSolver_indep::cached_guess
mutable

◆ enable_cached_guess

bool fcl::GJKSolver_indep::enable_cached_guess
mutable

◆ epa_max_face_num

unsigned int fcl::GJKSolver_indep::epa_max_face_num

maximum number of simplex face used in EPA algorithm

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

◆ epa_max_iterations

unsigned int fcl::GJKSolver_indep::epa_max_iterations

maximum number of iterations used for EPA iterations

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

◆ epa_max_vertex_num

unsigned int fcl::GJKSolver_indep::epa_max_vertex_num

maximum number of simplex vertex used in EPA algorithm

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

◆ epa_tolerance

FCL_REAL fcl::GJKSolver_indep::epa_tolerance

the threshold used in EPA to stop iteration

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

◆ gjk_max_iterations

FCL_REAL fcl::GJKSolver_indep::gjk_max_iterations

maximum number of iterations used for GJK iterations

Referenced by GJKSolver_indep(), shapeDistance(), shapeIntersect(), shapeTriangleDistance(), and shapeTriangleIntersect().

◆ gjk_tolerance

FCL_REAL fcl::GJKSolver_indep::gjk_tolerance

the threshold used in GJK to stop iteration

Referenced by GJKSolver_indep(), shapeDistance(), shapeIntersect(), shapeTriangleDistance(), and shapeTriangleIntersect().