hpp-fcl  1.6.0
HPP fork of FCL -- The Flexible Collision Library
narrowphase.h File Reference
Include dependency graph for narrowphase.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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

Namespaces

 hpp
 Main namespace.
 
 hpp::fcl
 

Macros

#define SHAPE_INTERSECT_SPECIALIZATION_BASE(S1, S2)
 
#define SHAPE_INTERSECT_SPECIALIZATION(S1, S2)
 
#define SHAPE_DISTANCE_SPECIALIZATION_BASE(S1, S2)
 
#define SHAPE_DISTANCE_SPECIALIZATION(S1, S2)
 
Shape intersection specializations
#define HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1, Shape2, doc)
 
#define HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF(Shape, doc)   HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape,Shape,doc)
 
#define HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR(Shape1, Shape2, doc)
 
Shape triangle interaction specializations
#define HPP_FCL_DECLARE_SHAPE_TRIANGLE(Shape, doc)
 
Shape distance specializations
#define HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape1, Shape2, doc)
 
#define HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF(Shape, doc)   HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape,Shape,doc)
 
#define HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR(Shape1, Shape2, doc)
 

Macro Definition Documentation

◆ HPP_FCL_DECLARE_SHAPE_DISTANCE

#define HPP_FCL_DECLARE_SHAPE_DISTANCE (   Shape1,
  Shape2,
  doc 
)
Value:
\
doc \
template<> \
bool HPP_FCL_DLLAPI GJKSolver::shapeDistance<Shape1, Shape2> \
(const Shape1& s1, const Transform3f& tf1, \
const Shape2& s2, const Transform3f& tf2, \
FCL_REAL& dist, Vec3f& p1, Vec3f& p2, Vec3f& normal) const
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
#define HPP_FCL_DLLAPI
Definition: config.hh:64

◆ HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR

#define HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR (   Shape1,
  Shape2,
  doc 
)
Value:
HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape1,Shape2,doc); \
HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape2,Shape1,doc)
#define HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape1, Shape2, doc)
Definition: narrowphase.h:520

◆ HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF

#define HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF (   Shape,
  doc 
)    HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape,Shape,doc)

◆ HPP_FCL_DECLARE_SHAPE_INTERSECT

#define HPP_FCL_DECLARE_SHAPE_INTERSECT (   Shape1,
  Shape2,
  doc 
)
Value:
\
doc \
template<> \
HPP_FCL_DLLAPI bool GJKSolver::shapeIntersect<Shape1, Shape2> \
(const Shape1& s1, const Transform3f& tf1, \
const Shape2& s2, const Transform3f& tf2, \
FCL_REAL& distance_lower_bound, bool enable_penetration, \
Vec3f* contact_points, Vec3f* normal) const
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67

◆ HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR

#define HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (   Shape1,
  Shape2,
  doc 
)
Value:
HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1,Shape2,doc); \
HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape2,Shape1,doc)
#define HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1, Shape2, doc)
Definition: narrowphase.h:432

◆ HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF

#define HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (   Shape,
  doc 
)    HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape,Shape,doc)

◆ HPP_FCL_DECLARE_SHAPE_TRIANGLE

#define HPP_FCL_DECLARE_SHAPE_TRIANGLE (   Shape,
  doc 
)
Value:
\
doc \
template<> HPP_FCL_DLLAPI bool GJKSolver::shapeTriangleInteraction<Shape> \
(const Shape& 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
FCL_REAL distance(const Matrix3f &R0, const Vec3f &T0, const kIOS &b1, const kIOS &b2, Vec3f *P=NULL, Vec3f *Q=NULL)
Approximate distance between two kIOS bounding volumes.
double FCL_REAL
Definition: data_types.h:66
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
#define HPP_FCL_DLLAPI
Definition: config.hh:64

◆ SHAPE_DISTANCE_SPECIALIZATION

#define SHAPE_DISTANCE_SPECIALIZATION (   S1,
  S2 
)
Value:
SHAPE_DISTANCE_SPECIALIZATION_BASE(S2,S1)
#define SHAPE_DISTANCE_SPECIALIZATION_BASE(S1, S2)
Definition: narrowphase.h:402

◆ SHAPE_DISTANCE_SPECIALIZATION_BASE

#define SHAPE_DISTANCE_SPECIALIZATION_BASE (   S1,
  S2 
)
Value:
template<> \
HPP_FCL_DLLAPI bool GJKSolver::shapeDistance<S1, S2> \
(const S1& s1, const Transform3f& tf1, \
const S2& s2, const Transform3f& tf2, \
FCL_REAL& dist, Vec3f& p1, Vec3f& p2, Vec3f& normal) const
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67

◆ SHAPE_INTERSECT_SPECIALIZATION

#define SHAPE_INTERSECT_SPECIALIZATION (   S1,
  S2 
)
Value:
SHAPE_INTERSECT_SPECIALIZATION_BASE(S2,S1)
#define SHAPE_INTERSECT_SPECIALIZATION_BASE(S1, S2)
Definition: narrowphase.h:369

◆ SHAPE_INTERSECT_SPECIALIZATION_BASE

#define SHAPE_INTERSECT_SPECIALIZATION_BASE (   S1,
  S2 
)
Value:
template<> \
HPP_FCL_DLLAPI bool GJKSolver::shapeIntersect<S1, S2> \
(const S1 &s1, const Transform3f& tf1, \
const S2 &s2, const Transform3f& tf2, \
FCL_REAL& distance_lower_bound, \
bool, \
Vec3f* contact_points, Vec3f* normal) const
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67