hpp-fcl  1.8.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...
 
FCL_REAL distance_upper_bound
 Distance above which the GJK solver stoppes its computations and processes to an early stopping. The two witness points are incorrect, but with the guaranty that the two shapes have a distance greather than distance_upper_bound. 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

◆ distance_upper_bound

FCL_REAL hpp::fcl::GJKSolver::distance_upper_bound
mutable

Distance above which the GJK solver stoppes its computations and processes to an early stopping. The two witness points are incorrect, but with the guaranty that the two shapes have a distance greather than distance_upper_bound.

◆ 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: