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

hpp-fcl 1.6.0 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...

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

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