collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet) More...
#include <gjk_solver_indep.h>
Public Types | |
using | S = S_ |
Public Member Functions | |
void | enableCachedGuess (bool if_enable) const |
Vector3< S > | getCachedGuess () const |
GJKSolver_indep () | |
default setting for GJK algorithm More... | |
void | setCachedGuess (const Vector3< S > &guess) const |
template<typename Shape1 , typename Shape2 > | |
bool | shapeDistance (const Shape1 &s1, const Transform3< S > &tf1, const Shape2 &s2, const Transform3< S > &tf2, S *distance=nullptr, Vector3< S > *p1=nullptr, Vector3< S > *p2=nullptr) const |
distance computation between two shapes More... | |
template<typename Shape1 , typename Shape2 > | |
bool | shapeIntersect (const Shape1 &s1, const Transform3< S > &tf1, const Shape2 &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts=nullptr) const |
intersection checking between two shapes More... | |
template<typename Shape1 , typename Shape2 > | |
FCL_DEPRECATED bool | shapeIntersect (const Shape1 &s1, const Transform3< S > &tf1, const Shape2 &s2, const Transform3< S > &tf2, Vector3< S > *contact_points, S *penetration_depth, Vector3< S > *normal) const |
intersection checking between two shapes More... | |
template<typename Shape1 , typename Shape2 > | |
bool | shapeIntersect (const Shape1 &s1, const Transform3< S > &tf1, const Shape2 &s2, const Transform3< S > &tf2, Vector3< S > *contact_points, S *penetration_depth, Vector3< S > *normal) const |
template<typename Shape1 , typename Shape2 > | |
bool | shapeSignedDistance (const Shape1 &s1, const Transform3< S > &tf1, const Shape2 &s2, const Transform3< S > &tf2, S *distance=nullptr, Vector3< S > *p1=nullptr, Vector3< S > *p2=nullptr) const |
distance computation between two shapes More... | |
template<typename Shape > | |
bool | shapeTriangleDistance (const Shape &s, const Transform3< S > &tf, const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, S *distance=nullptr, Vector3< S > *p1=nullptr, Vector3< S > *p2=nullptr) const |
distance computation between one shape and a triangle More... | |
template<typename Shape > | |
bool | shapeTriangleDistance (const Shape &s, const Transform3< S > &tf1, const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Transform3< S > &tf2, S *distance=nullptr, Vector3< S > *p1=nullptr, Vector3< S > *p2=nullptr) const |
distance computation between one shape and a triangle with transformation More... | |
template<typename Shape > | |
bool | shapeTriangleIntersect (const Shape &s, const Transform3< S > &tf, const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, Vector3< S > *contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr) const |
intersection checking between one shape and a triangle More... | |
template<typename Shape > | |
bool | shapeTriangleIntersect (const Shape &s, const Transform3< S > &tf1, const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Transform3< S > &tf2, Vector3< S > *contact_points=nullptr, S *penetration_depth=nullptr, Vector3< S > *normal=nullptr) const |
Public Attributes | |
Vector3< S > | cached_guess |
smart guess More... | |
bool | enable_cached_guess |
Whether smart guess can be provided. More... | |
unsigned int | epa_max_face_num |
maximum number of simplex face used in EPA algorithm More... | |
unsigned int | epa_max_iterations |
maximum number of iterations used for EPA iterations More... | |
unsigned int | epa_max_vertex_num |
maximum number of simplex vertex used in EPA algorithm More... | |
S | epa_tolerance |
the threshold used in EPA to stop iteration More... | |
S | gjk_max_iterations |
maximum number of iterations used for GJK iterations More... | |
S | gjk_tolerance |
the threshold used in GJK to stop iteration More... | |
Friends | |
std::ostream & | operator<< (std::ostream &out, const GJKSolver_indep &solver) |
collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet)
Definition at line 54 of file gjk_solver_indep.h.
using fcl::detail::GJKSolver_indep< S_ >::S = S_ |
Definition at line 56 of file gjk_solver_indep.h.
fcl::detail::GJKSolver_indep< S >::GJKSolver_indep |
default setting for GJK algorithm
Definition at line 1039 of file gjk_solver_indep-inl.h.
void fcl::detail::GJKSolver_indep< S >::enableCachedGuess | ( | bool | if_enable | ) | const |
Definition at line 1053 of file gjk_solver_indep-inl.h.
Vector3< S > fcl::detail::GJKSolver_indep< S >::getCachedGuess |
Definition at line 1067 of file gjk_solver_indep-inl.h.
void fcl::detail::GJKSolver_indep< S >::setCachedGuess | ( | const Vector3< S > & | guess | ) | const |
Definition at line 1060 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeDistance | ( | const Shape1 & | s1, |
const Transform3< S > & | tf1, | ||
const Shape2 & | s2, | ||
const Transform3< S > & | tf2, | ||
S * | distance = nullptr , |
||
Vector3< S > * | p1 = nullptr , |
||
Vector3< S > * | p2 = nullptr |
||
) | const |
distance computation between two shapes
Definition at line 649 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeIntersect | ( | const Shape1 & | s1, |
const Transform3< S > & | tf1, | ||
const Shape2 & | s2, | ||
const Transform3< S > & | tf2, | ||
std::vector< ContactPoint< S >> * | contacts = nullptr |
||
) | const |
intersection checking between two shapes
Definition at line 171 of file gjk_solver_indep-inl.h.
FCL_DEPRECATED bool fcl::detail::GJKSolver_indep< S_ >::shapeIntersect | ( | const Shape1 & | s1, |
const Transform3< S > & | tf1, | ||
const Shape2 & | s2, | ||
const Transform3< S > & | tf2, | ||
Vector3< S > * | contact_points, | ||
S * | penetration_depth, | ||
Vector3< S > * | normal | ||
) | const |
intersection checking between two shapes
bool fcl::detail::GJKSolver_indep< S_ >::shapeIntersect | ( | const Shape1 & | s1, |
const Transform3< S > & | tf1, | ||
const Shape2 & | s2, | ||
const Transform3< S > & | tf2, | ||
Vector3< S > * | contact_points, | ||
S * | penetration_depth, | ||
Vector3< S > * | normal | ||
) | const |
Definition at line 75 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeSignedDistance | ( | const Shape1 & | s1, |
const Transform3< S > & | tf1, | ||
const Shape2 & | s2, | ||
const Transform3< S > & | tf2, | ||
S * | distance = nullptr , |
||
Vector3< S > * | p1 = nullptr , |
||
Vector3< S > * | p2 = nullptr |
||
) | const |
distance computation between two shapes
Definition at line 666 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeTriangleDistance | ( | const Shape & | s, |
const Transform3< S > & | tf, | ||
const Vector3< S > & | P1, | ||
const Vector3< S > & | P2, | ||
const Vector3< S > & | P3, | ||
S * | distance = nullptr , |
||
Vector3< S > * | p1 = nullptr , |
||
Vector3< S > * | p2 = nullptr |
||
) | const |
distance computation between one shape and a triangle
Definition at line 911 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeTriangleDistance | ( | const Shape & | s, |
const Transform3< S > & | tf1, | ||
const Vector3< S > & | P1, | ||
const Vector3< S > & | P2, | ||
const Vector3< S > & | P3, | ||
const Transform3< S > & | tf2, | ||
S * | distance = nullptr , |
||
Vector3< S > * | p1 = nullptr , |
||
Vector3< S > * | p2 = nullptr |
||
) | const |
distance computation between one shape and a triangle with transformation
Definition at line 1001 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeTriangleIntersect | ( | const Shape & | s, |
const Transform3< S > & | tf, | ||
const Vector3< S > & | P1, | ||
const Vector3< S > & | P2, | ||
const Vector3< S > & | P3, | ||
Vector3< S > * | contact_points = nullptr , |
||
S * | penetration_depth = nullptr , |
||
Vector3< S > * | normal = nullptr |
||
) | const |
intersection checking between one shape and a triangle
Definition at line 412 of file gjk_solver_indep-inl.h.
bool fcl::detail::GJKSolver_indep< S >::shapeTriangleIntersect | ( | const Shape & | s, |
const Transform3< S > & | tf1, | ||
const Vector3< S > & | P1, | ||
const Vector3< S > & | P2, | ||
const Vector3< S > & | P3, | ||
const Transform3< S > & | tf2, | ||
Vector3< S > * | contact_points = nullptr , |
||
S * | penetration_depth = nullptr , |
||
Vector3< S > * | normal = nullptr |
||
) | const |
Definition at line 509 of file gjk_solver_indep-inl.h.
|
friend |
Definition at line 186 of file gjk_solver_indep.h.
|
mutable |
smart guess
Definition at line 183 of file gjk_solver_indep.h.
|
mutable |
Whether smart guess can be provided.
Definition at line 180 of file gjk_solver_indep.h.
unsigned int fcl::detail::GJKSolver_indep< S_ >::epa_max_face_num |
maximum number of simplex face used in EPA algorithm
Definition at line 162 of file gjk_solver_indep.h.
unsigned int fcl::detail::GJKSolver_indep< S_ >::epa_max_iterations |
maximum number of iterations used for EPA iterations
Definition at line 168 of file gjk_solver_indep.h.
unsigned int fcl::detail::GJKSolver_indep< S_ >::epa_max_vertex_num |
maximum number of simplex vertex used in EPA algorithm
Definition at line 165 of file gjk_solver_indep.h.
S fcl::detail::GJKSolver_indep< S_ >::epa_tolerance |
the threshold used in EPA to stop iteration
Definition at line 171 of file gjk_solver_indep.h.
S fcl::detail::GJKSolver_indep< S_ >::gjk_max_iterations |
maximum number of iterations used for GJK iterations
Definition at line 177 of file gjk_solver_indep.h.
S fcl::detail::GJKSolver_indep< S_ >::gjk_tolerance |
the threshold used in GJK to stop iteration
Definition at line 174 of file gjk_solver_indep.h.