hpp-fcl  1.6.0
HPP fork of FCL -- The Flexible Collision Library
hpp::fcl::GJKSolver 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, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 intersection checking between two shapes More...
 
template<typename S >
bool shapeTriangleInteraction (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, Vec3f &normal) const
 intersection checking between one shape and a triangle with transformation More...
 
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, Vec3f &normal) const
 distance computation between two shapes More...
 
 GJKSolver ()
 default setting for GJK algorithm More...
 
void enableCachedGuess (bool if_enable) const
 
void setCachedGuess (const Vec3f &guess) const
 
Vec3f getCachedGuess () const
 
template<>
bool shapeTriangleInteraction (const Sphere &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeTriangleInteraction (const Halfspace &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeTriangleInteraction (const Plane &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool, Vec3f *contact_points, 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, Vec3f &normal) const
 
template<>
bool shapeDistance (const Capsule &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Box &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Cylinder &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const Capsule &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
template<>
bool shapeDistance (const TriangleP &s1, const Transform3f &tf1, const TriangleP &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 
Shape intersection specializations
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Sphere - Sphere collision. More...
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, 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, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Capsule - Sphere collision. More...
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Sphere - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Sphere collision. More...
 
template<>
bool shapeIntersect (const Sphere &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Sphere - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Sphere collision. More...
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Box - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Box collision. More...
 
template<>
bool shapeIntersect (const Box &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Box - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Box collision. More...
 
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Capsule - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Capsule collision. More...
 
template<>
bool shapeIntersect (const Capsule &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Capsule - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Capsule collision. More...
 
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Cylinder - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Cylinder collision. More...
 
template<>
bool shapeIntersect (const Cylinder &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Cylinder - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Cylinder collision. More...
 
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Cone - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Cone collision. More...
 
template<>
bool shapeIntersect (const Cone &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Cone - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Cone &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Cone collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Plane collision. More...
 
template<>
bool shapeIntersect (const Plane &s1, const Transform3f &tf1, const Halfspace &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Plane - Halfspace collision. More...
 
template<>
bool shapeIntersect (const Halfspace &s1, const Transform3f &tf1, const Plane &s2, const Transform3f &tf2, FCL_REAL &distance_lower_bound, bool enable_penetration, Vec3f *contact_points, Vec3f *normal) const
 Fast implementation for Halfspace - Plane collision. More...
 
Shape triangle interaction specializations
template<>
bool shapeTriangleInteraction (const Sphere &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Sphere -Triangle interaction. More...
 
template<>
bool shapeTriangleInteraction (const Halfspace &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Halfspace -Triangle interaction. More...
 
template<>
bool shapeTriangleInteraction (const Plane &s, const Transform3f &tf1, const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf2, FCL_REAL &distance, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Plane -Triangle interaction. More...
 
Shape distance specializations
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Box &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Sphere - Box distance. More...
 
template<>
bool shapeDistance (const Box &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Box - Sphere distance. More...
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Capsule &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) 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, Vec3f &normal) const
 Fast implementation for Capsule - Sphere distance. More...
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Cylinder &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Sphere - Cylinder distance. More...
 
template<>
bool shapeDistance (const Cylinder &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for Cylinder - Sphere distance. More...
 
template<>
bool shapeDistance (const Sphere &s1, const Transform3f &tf1, const Sphere &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) 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, Vec3f &normal) const
 Fast implementation for Capsule - Capsule distance. More...
 
template<>
bool shapeDistance (const TriangleP &s1, const Transform3f &tf1, const TriangleP &s2, const Transform3f &tf2, FCL_REAL &dist, Vec3f &p1, Vec3f &p2, Vec3f &normal) const
 Fast implementation for TriangleP - TriangleP 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...
 
support_func_guess_t support_func_cached_guess
 smart guess for the support function 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()

hpp::fcl::GJKSolver::GJKSolver ( )
inline

default setting for GJK algorithm

Member Function Documentation

◆ enableCachedGuess()

void hpp::fcl::GJKSolver::enableCachedGuess ( bool  if_enable) const
inline

◆ getCachedGuess()

Vec3f hpp::fcl::GJKSolver::getCachedGuess ( ) const
inline

◆ setCachedGuess()

void hpp::fcl::GJKSolver::setCachedGuess ( const Vec3f guess) const
inline

◆ shapeDistance() [1/19]

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

distance computation between two shapes

◆ shapeDistance() [2/19]

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

◆ shapeDistance() [3/19]

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

◆ shapeDistance() [4/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeDistance() [5/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Box s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeDistance() [6/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeDistance() [7/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Cylinder s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeDistance() [8/19]

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

◆ shapeDistance() [9/19]

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

◆ shapeDistance() [10/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const TriangleP s1,
const Transform3f tf1,
const TriangleP s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeDistance() [11/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Sphere - Box distance.

◆ shapeDistance() [12/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Box s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Box - Sphere distance.

◆ shapeDistance() [13/19]

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

Fast implementation for Sphere - Capsule distance.

◆ shapeDistance() [14/19]

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

Fast implementation for Capsule - Sphere distance.

◆ shapeDistance() [15/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Cylinder s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Cylinder - Sphere distance.

◆ shapeDistance() [16/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const Sphere s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Sphere - Cylinder distance.

◆ shapeDistance() [17/19]

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

Fast implementation for Sphere - Sphere distance.

◆ shapeDistance() [18/19]

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

Fast implementation for Capsule - Capsule distance.

Closest points are based on two line-segments.

◆ shapeDistance() [19/19]

template<>
bool hpp::fcl::GJKSolver::shapeDistance ( const TriangleP s1,
const Transform3f tf1,
const TriangleP s2,
const Transform3f tf2,
FCL_REAL dist,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for TriangleP - TriangleP distance.

Do not run EPA algorithm to compute penetration depth. Use a dedicated method.

◆ shapeIntersect() [1/57]

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

intersection checking between two shapes

◆ shapeIntersect() [2/57]

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

◆ shapeIntersect() [3/57]

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

◆ shapeIntersect() [4/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  ,
Vec3f contact_points,
Vec3f normal 
) const

◆ shapeIntersect() [5/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  ,
Vec3f contact_points,
Vec3f normal 
) const

◆ shapeIntersect() [6/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  ,
Vec3f contact_points,
Vec3f normal 
) const

◆ shapeIntersect() [7/57]

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

◆ shapeIntersect() [8/57]

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

◆ shapeIntersect() [9/57]

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

◆ shapeIntersect() [10/57]

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

◆ shapeIntersect() [11/57]

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

◆ shapeIntersect() [12/57]

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

◆ shapeIntersect() [13/57]

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

◆ shapeIntersect() [14/57]

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

◆ shapeIntersect() [15/57]

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

◆ shapeIntersect() [16/57]

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

◆ shapeIntersect() [17/57]

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

◆ shapeIntersect() [18/57]

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

◆ shapeIntersect() [19/57]

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

◆ shapeIntersect() [20/57]

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

◆ shapeIntersect() [21/57]

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

◆ shapeIntersect() [22/57]

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

◆ shapeIntersect() [23/57]

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

◆ shapeIntersect() [24/57]

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

◆ shapeIntersect() [25/57]

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

◆ shapeIntersect() [26/57]

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

◆ shapeIntersect() [27/57]

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

◆ shapeIntersect() [28/57]

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

◆ shapeIntersect() [29/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Sphere - Sphere collision.

◆ shapeIntersect() [30/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Sphere - Capsule collision.

◆ shapeIntersect() [31/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Capsule - Sphere collision.

◆ shapeIntersect() [32/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Sphere - Halfspace collision.

◆ shapeIntersect() [33/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Sphere collision.

◆ shapeIntersect() [34/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Sphere s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Sphere - Plane collision.

◆ shapeIntersect() [35/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Sphere collision.

◆ shapeIntersect() [36/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Sphere s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

◆ shapeIntersect() [37/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const
Todo:
currently disabled and to re-enable it, API of function obbDisjointAndLowerBoundDistance should be modified.

◆ shapeIntersect() [38/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Box - Halfspace collision.

◆ shapeIntersect() [39/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Box collision.

◆ shapeIntersect() [40/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Box s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Box - Plane collision.

◆ shapeIntersect() [41/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Box s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Box collision.

◆ shapeIntersect() [42/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Capsule - Halfspace collision.

◆ shapeIntersect() [43/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Capsule collision.

◆ shapeIntersect() [44/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Capsule s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Capsule - Plane collision.

◆ shapeIntersect() [45/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Capsule s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Capsule collision.

◆ shapeIntersect() [46/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Cylinder collision.

◆ shapeIntersect() [47/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Cylinder s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Cylinder - Halfspace collision.

◆ shapeIntersect() [48/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Cylinder s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Cylinder collision.

◆ shapeIntersect() [49/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Cylinder s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Cylinder - Plane collision.

◆ shapeIntersect() [50/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Cone s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Cone collision.

◆ shapeIntersect() [51/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Cone s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Cone - Halfspace collision.

◆ shapeIntersect() [52/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Cone s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Cone - Plane collision.

◆ shapeIntersect() [53/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Cone s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Cone collision.

◆ shapeIntersect() [54/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Halfspace collision.

◆ shapeIntersect() [55/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Plane collision.

◆ shapeIntersect() [56/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Plane s1,
const Transform3f tf1,
const Halfspace s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Plane - Halfspace collision.

◆ shapeIntersect() [57/57]

template<>
bool hpp::fcl::GJKSolver::shapeIntersect ( const Halfspace s1,
const Transform3f tf1,
const Plane s2,
const Transform3f tf2,
FCL_REAL distance_lower_bound,
bool  enable_penetration,
Vec3f contact_points,
Vec3f normal 
) const

Fast implementation for Halfspace - Plane collision.

◆ shapeTriangleInteraction() [1/7]

template<typename S >
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( 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,
Vec3f normal 
) const
inline

intersection checking between one shape and a triangle with transformation

Returns
true if the shape are colliding.

◆ shapeTriangleInteraction() [2/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Sphere s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeTriangleInteraction() [3/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Halfspace s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeTriangleInteraction() [4/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Plane s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

◆ shapeTriangleInteraction() [5/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Sphere s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Sphere -Triangle interaction.

◆ shapeTriangleInteraction() [6/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Halfspace s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Halfspace -Triangle interaction.

◆ shapeTriangleInteraction() [7/7]

template<>
bool hpp::fcl::GJKSolver::shapeTriangleInteraction ( const Plane s,
const Transform3f tf1,
const Vec3f P1,
const Vec3f P2,
const Vec3f P3,
const Transform3f tf2,
FCL_REAL distance,
Vec3f p1,
Vec3f p2,
Vec3f normal 
) const

Fast implementation for Plane -Triangle interaction.

Member Data Documentation

◆ cached_guess

Vec3f hpp::fcl::GJKSolver::cached_guess
mutable

smart guess

◆ enable_cached_guess

bool hpp::fcl::GJKSolver::enable_cached_guess
mutable

Whether smart guess can be provided.

◆ epa_max_face_num

unsigned int hpp::fcl::GJKSolver::epa_max_face_num

maximum number of simplex face used in EPA algorithm

◆ epa_max_iterations

unsigned int hpp::fcl::GJKSolver::epa_max_iterations

maximum number of iterations used for EPA iterations

◆ epa_max_vertex_num

unsigned int hpp::fcl::GJKSolver::epa_max_vertex_num

maximum number of simplex vertex used in EPA algorithm

◆ epa_tolerance

FCL_REAL hpp::fcl::GJKSolver::epa_tolerance

the threshold used in EPA to stop iteration

◆ gjk_max_iterations

FCL_REAL hpp::fcl::GJKSolver::gjk_max_iterations

maximum number of iterations used for GJK iterations

◆ gjk_tolerance

FCL_REAL hpp::fcl::GJKSolver::gjk_tolerance

the threshold used in GJK to stop iteration

◆ support_func_cached_guess

support_func_guess_t hpp::fcl::GJKSolver::support_func_cached_guess
mutable

smart guess for the support function


The documentation for this struct was generated from the following file: