Struct GJKSolver

Struct Documentation

struct GJKSolver

collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet)

Shape intersection specializations

template<> HPP_FCL_DLLAPI 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

Public Types

typedef Eigen::Array<FCL_REAL, 1, 2> Array2d

Public Functions

template<typename S1, typename S2>
inline 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

template<typename S1, typename S2>
inline 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

template<typename S>
inline 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

Returns:

true if the shape are colliding.

template<typename S1, typename S2>
inline 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

inline HPP_FCL_COMPILER_DIAGNOSTIC_PUSH HPP_FCL_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS GJKSolver ()

Default constructor for GJK algorithm.

inline GJKSolver(const DistanceRequest &request)

Constructor from a DistanceRequest.

Parameters:

request[in] DistanceRequest input

inline void set(const DistanceRequest &request)

setter from a DistanceRequest

Parameters:

request[in] DistanceRequest input

inline GJKSolver(const CollisionRequest &request)

Constructor from a CollisionRequest.

Parameters:

request[in] CollisionRequest input

inline void set(const CollisionRequest &request)

setter from a CollisionRequest

Parameters:

request[in] CollisionRequest input

GJKSolver(const GJKSolver &other) = default

Copy constructor.

inline HPP_FCL_COMPILER_DIAGNOSTIC_PUSH HPP_FCL_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS bool operator== (const GJKSolver &other) const
inline HPP_FCL_COMPILER_DIAGNOSTIC_POP bool operator!= (const GJKSolver &other) const
template<> HPP_FCL_DLLAPI 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<> HPP_FCL_DLLAPI 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<> HPP_FCL_DLLAPI 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

Public Members

unsigned int epa_max_face_num

maximum number of simplex face used in EPA algorithm

unsigned int epa_max_vertex_num

maximum number of simplex vertex used in EPA algorithm

unsigned int epa_max_iterations

maximum number of iterations used for EPA iterations

FCL_REAL epa_tolerance

the threshold used in EPA to stop iteration

mutable FCL_REAL gjk_tolerance

the threshold used in GJK to stop iteration

mutable size_t gjk_max_iterations

maximum number of iterations used for GJK iterations

mutable bool enable_cached_guess

Whether smart guess can be provided @Deprecated Use gjk_initial_guess instead.

mutable Vec3f cached_guess

smart guess

mutable GJKInitialGuess gjk_initial_guess

which warm start to use for GJK

mutable GJKVariant gjk_variant

Variant to use for the GJK algorithm.

mutable GJKConvergenceCriterion gjk_convergence_criterion

Criterion used to stop GJK.

mutable GJKConvergenceCriterionType gjk_convergence_criterion_type

Relative or absolute.

mutable support_func_guess_t support_func_cached_guess

smart guess for the support function

mutable 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.