hpp-fcl
2.4.1
HPP fork of FCL -- The Flexible Collision Library
|
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 Types | |
typedef Eigen::Array< FCL_REAL, 1, 2 > | Array2d |
Public Member Functions | |
template<typename S1 , typename S2 > | |
void | initialize_gjk (details::GJK &gjk, const details::MinkowskiDiff &shape, const S1 &s1, const S2 &s2, Vec3f &guess, support_func_guess_t &support_hint) const |
initialize GJK More... | |
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 constructor for GJK algorithm. More... | |
GJKSolver (const DistanceRequest &request) | |
Constructor from a DistanceRequest. More... | |
void | set (const DistanceRequest &request) |
setter from a DistanceRequest More... | |
GJKSolver (const CollisionRequest &request) | |
Constructor from a CollisionRequest. More... | |
void | set (const CollisionRequest &request) |
setter from a CollisionRequest More... | |
GJKSolver (const GJKSolver &other)=default | |
Copy constructor. More... | |
bool | operator== (const GJKSolver &other) const |
bool | operator!= (const GJKSolver &other) 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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<> | |
HPP_FCL_DLLAPI 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 HPP_FCL_DLLAPI | 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 HPP_FCL_DLLAPI | 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 HPP_FCL_DLLAPI | 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... | |
size_t | gjk_max_iterations |
maximum number of iterations used for GJK iterations More... | |
bool | enable_cached_guess |
Whether smart guess can be provided @Deprecated Use gjk_initial_guess instead. More... | |
Vec3f | cached_guess |
smart guess More... | |
GJKInitialGuess | gjk_initial_guess |
which warm start to use for GJK More... | |
GJKVariant | gjk_variant |
Variant to use for the GJK algorithm. More... | |
GJKConvergenceCriterion | gjk_convergence_criterion |
Criterion used to stop GJK. More... | |
GJKConvergenceCriterionType | gjk_convergence_criterion_type |
Relative or absolute. 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... | |
collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet)
typedef Eigen::Array<FCL_REAL, 1, 2> hpp::fcl::GJKSolver::Array2d |
|
inline |
Default constructor for GJK algorithm.
|
inline |
Constructor from a DistanceRequest.
[in] | request | DistanceRequest input |
|
inline |
Constructor from a CollisionRequest.
[in] | request | CollisionRequest input |
|
default |
Copy constructor.
|
inline |
initialize GJK
|
inline |
|
inline |
|
inline |
setter from a CollisionRequest
[in] | request | CollisionRequest input |
|
inline |
setter from a DistanceRequest
[in] | request | DistanceRequest input |
HPP_FCL_DLLAPI 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 |
bool HPP_FCL_DLLAPI 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 |
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 |
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 |
HPP_FCL_DLLAPI 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 |
bool HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
bool HPP_FCL_DLLAPI 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 |
|
inline |
distance computation between two shapes
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
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 |
HPP_FCL_DLLAPI 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 |
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 |
HPP_FCL_DLLAPI 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 |
HPP_FCL_DLLAPI 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 |
|
inline |
intersection checking between two shapes
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
|
inline |
intersection checking between one shape and a triangle with transformation
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 |
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 |
|
mutable |
smart guess
|
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.
|
mutable |
Whether smart guess can be provided @Deprecated Use gjk_initial_guess instead.
unsigned int hpp::fcl::GJKSolver::epa_max_face_num |
maximum number of simplex face used in EPA algorithm
unsigned int hpp::fcl::GJKSolver::epa_max_iterations |
maximum number of iterations used for EPA iterations
unsigned int hpp::fcl::GJKSolver::epa_max_vertex_num |
maximum number of simplex vertex used in EPA algorithm
FCL_REAL hpp::fcl::GJKSolver::epa_tolerance |
the threshold used in EPA to stop iteration
|
mutable |
Criterion used to stop GJK.
|
mutable |
Relative or absolute.
|
mutable |
which warm start to use for GJK
|
mutable |
maximum number of iterations used for GJK iterations
|
mutable |
the threshold used in GJK to stop iteration
|
mutable |
Variant to use for the GJK algorithm.
|
mutable |
smart guess for the support function