Classes | Namespaces | Macros | Functions
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_DISTANCE_SPECIALIZATION(S1, S2)
 
#define SHAPE_DISTANCE_SPECIALIZATION_BASE(S1, S2)
 
#define SHAPE_INTERSECT_SPECIALIZATION(S1, S2)
 
#define SHAPE_INTERSECT_SPECIALIZATION_BASE(S1, S2)
 

Functions

 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION (Sphere, Box)
 
 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION (Sphere, Capsule)
 
 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION (Sphere, Cylinder)
 
 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION_BASE (Capsule, Capsule)
 
 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION_BASE (Sphere, Sphere)
 
 hpp::fcl::SHAPE_DISTANCE_SPECIALIZATION_BASE (TriangleP, TriangleP)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Halfspace, Box)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Halfspace, Capsule)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Halfspace, Cone)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Halfspace, Cylinder)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Halfspace, Plane)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Plane, Box)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Plane, Capsule)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Plane, Cone)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Plane, Cylinder)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Sphere, Box)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Sphere, Capsule)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Sphere, Halfspace)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION (Sphere, Plane)
 
 hpp::fcl::SHAPE_INTERSECT_SPECIALIZATION_BASE (Sphere, Sphere)
 
Shape intersection specializations
 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
 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
 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,)
 

Shape intersection specializations

#define HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1, Shape2, doc)
 
 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 (Cone, Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR (Cone, 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 (Plane, Halfspace,)
 
#define HPP_FCL_DECLARE_SHAPE_INTERSECT_PAIR(Shape1, Shape2, doc)
 
 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_SELF (Halfspace,)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (Plane,)
 
#define HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF(Shape, doc)   HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape, Shape, doc)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF (Sphere,)
 

Shape triangle interaction specializations

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

Shape distance specializations

#define HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape1, Shape2, 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 (Capsule,)
 
#define HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF(Shape, doc)   HPP_FCL_DECLARE_SHAPE_DISTANCE(Shape, Shape, doc)
 
 hpp::fcl::HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF (Sphere,)
 
 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 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

Definition at line 689 of file narrowphase.h.

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

Definition at line 698 of file narrowphase.h.

◆ HPP_FCL_DECLARE_SHAPE_DISTANCE_SELF

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

Definition at line 696 of file narrowphase.h.

◆ 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

Definition at line 605 of file narrowphase.h.

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

Definition at line 614 of file narrowphase.h.

◆ HPP_FCL_DECLARE_SHAPE_INTERSECT_SELF

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

Definition at line 612 of file narrowphase.h.

◆ 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

Definition at line 668 of file narrowphase.h.

◆ SHAPE_DISTANCE_SPECIALIZATION

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

Definition at line 582 of file narrowphase.h.

◆ 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

Definition at line 575 of file narrowphase.h.

◆ SHAPE_INTERSECT_SPECIALIZATION

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

Definition at line 551 of file narrowphase.h.

◆ 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

Definition at line 544 of file narrowphase.h.

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
gjk.tf1
tuple tf1
Definition: test/scripts/gjk.py:27
gjk.P2
tuple P2
Definition: test/scripts/gjk.py:22
distance
double distance(const std::vector< Transform3f > &tf, const BVHModel< BV > &m1, const BVHModel< BV > &m2, bool verbose)
Definition: benchmark.cpp:93
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
distance_lower_bound
Definition: distance_lower_bound.py:1
hpp::fcl::FCL_REAL
double FCL_REAL
Definition: data_types.h:65
gjk.P1
tuple P1
Definition: test/scripts/gjk.py:21
HPP_FCL_DECLARE_SHAPE_INTERSECT
#define HPP_FCL_DECLARE_SHAPE_INTERSECT(Shape1, Shape2, doc)
Definition: narrowphase.h:605
gjk.tf2
tuple tf2
Definition: test/scripts/gjk.py:36
octree.p1
tuple p1
Definition: octree.py:54
gjk.P3
tuple P3
Definition: test/scripts/gjk.py:23


hpp-fcl
Author(s):
autogenerated on Fri Jan 26 2024 03:46:16