hpp-fcl  2.4.1
HPP fork of FCL -- The Flexible Collision Library
narrowphase.h File Reference
#include <limits>
#include <iostream>
#include <hpp/fcl/narrowphase/gjk.h>
#include <hpp/fcl/collision_data.h>
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

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

◆ 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

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

◆ 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

◆ SHAPE_DISTANCE_SPECIALIZATION

#define SHAPE_DISTANCE_SPECIALIZATION (   S1,
  S2 
)
Value:
SHAPE_DISTANCE_SPECIALIZATION_BASE(S2, S1)

◆ 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

◆ SHAPE_INTERSECT_SPECIALIZATION

#define SHAPE_INTERSECT_SPECIALIZATION (   S1,
  S2 
)
Value:
SHAPE_INTERSECT_SPECIALIZATION_BASE(S2, S1)

◆ 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
HPP_FCL_DLLAPI
#define HPP_FCL_DLLAPI
Definition: config.hh:88
hpp::fcl::Vec3f
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:66
SHAPE_DISTANCE_SPECIALIZATION_BASE
#define SHAPE_DISTANCE_SPECIALIZATION_BASE(S1, S2)
Definition: narrowphase.h:575
hpp::fcl::distance
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.
SHAPE_INTERSECT_SPECIALIZATION_BASE
#define SHAPE_INTERSECT_SPECIALIZATION_BASE(S1, S2)
Definition: narrowphase.h:544
HPP_FCL_DECLARE_SHAPE_DISTANCE
#define HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape1, Shape2, doc)
Definition: narrowphase.h:689
hpp::fcl::FCL_REAL
double FCL_REAL
Definition: data_types.h:65
HPP_FCL_DECLARE_SHAPE_INTERSECT
#define HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1, Shape2, doc)
Definition: narrowphase.h:605