hpp-fcl: hpp::fcl::GJKSolver Struct Reference

hpp-fcl 1.7.2 HPP fork of FCL -- The Flexible Collision Library

Public Member Functions | Public Attributes | List of all members
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<>

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() [2/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() [3/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() [4/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() [5/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() [6/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() [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 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() [9/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() [10/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() [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 Sphere & | s1,
|  | const Transform3f & | tf1,
|  | const Capsule & | s2,
|  | const Transform3f & | tf2,
|  | FCL_REAL & | dist,
|  | Vec3f & | p1,
|  | Vec3f & | p2,
|  | Vec3f & | normal
| ) |  | const

## ◆ 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 Sphere & | s1,
|  | const Transform3f & | tf1,
|  | const Cylinder & | s2,
|  | const Transform3f & | tf2,
|  | FCL_REAL & | dist,
|  | Vec3f & | p1,
|  | Vec3f & | p2,
|  | Vec3f & | normal
| ) |  | const

## ◆ shapeDistance() [15/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() [16/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() [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 TriangleP & | s1,
|  | const Transform3f & | tf1,
|  | const TriangleP & | s2,
|  | const Transform3f & | tf2,
|  | FCL_REAL & | dist,
|  | Vec3f & | p1,
|  | Vec3f & | p2,
|  | Vec3f & | normal
| ) |  | const

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

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() [2/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() [3/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() [4/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() [5/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() [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 | enable_penetration,
|  | Vec3f * | contact_points,
|  | Vec3f * | normal
| ) |  | const

## ◆ shapeIntersect() [7/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() [8/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() [9/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() [10/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() [11/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() [12/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() [13/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() [14/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() [15/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() [16/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() [17/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() [18/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() [19/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() [20/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() [21/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() [22/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() [23/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() [24/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() [25/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() [26/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() [27/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() [28/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() [29/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() [30/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() [31/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.

## ◆ shapeIntersect() [32/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() [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 Halfspace & | s1,
|  | const Transform3f & | tf1,
|  | const Sphere & | s2,
|  | const Transform3f & | tf2,
|  | FCL_REAL & | distance_lower_bound,
|  | bool | ,
|  | Vec3f * | contact_points,
|  | Vec3f * | normal
| ) |  | const

## ◆ shapeIntersect() [35/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() [36/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() [37/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() [38/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() [39/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() [40/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() [41/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() [42/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() [43/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() [44/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() [45/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() [46/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() [47/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() [48/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() [49/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() [50/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() [51/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() [52/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() [53/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() [54/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() [55/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() [56/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() [57/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

## ◆ shapeTriangleInteraction() [1/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() [2/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() [3/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() [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

Fast implementation for Plane -Triangle interaction.

## ◆ shapeTriangleInteraction() [5/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() [6/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() [7/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.

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

- include/hpp/fcl/narrowphase/narrowphase.h