hpp-fcl  1.4.4
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
 

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)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (Sphere,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Sphere, Capsule,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Sphere, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Sphere, Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Box, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Box, Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Capsule, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Capsule, Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Cylinder, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Cylinder, Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Cone, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Cone, Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (Plane,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Plane, Halfspace,)
 

Shape triangle interaction specializations

#define HPP_FCL_DECLARE_SHAPE_TRIANGLE(Shape, doc)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_TRIANGLE (Sphere,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_TRIANGLE (Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_TRIANGLE (Plane,)
 

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)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR (Sphere, Box,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR (Sphere, Capsule,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_PAIR (Sphere, Cylinder,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF (Sphere,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF (Capsule,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF (TriangleP,)
 

Macro Definition Documentation

◆ HPP_FCL_DECLARE_SHAPE_DISTANCE

#define HPP_FCL_DECLARE_SHAPE_DISTANCE (   Shape1,
  Shape2,
  doc 
)
Value:
\
doc \
template<> \
bool 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:73

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

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

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

◆ 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<> 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:68
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:73