Public Types | Public Member Functions | Public Attributes | Friends | List of all members
fcl::detail::GJKSolver_indep< S_ > Struct Template Reference

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< SgetCachedGuess () 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< Scached_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)
 

Detailed Description

template<typename S_>
struct fcl::detail::GJKSolver_indep< S_ >

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.

Member Typedef Documentation

◆ S

template<typename S_ >
using fcl::detail::GJKSolver_indep< S_ >::S = S_

Definition at line 56 of file gjk_solver_indep.h.

Constructor & Destructor Documentation

◆ GJKSolver_indep()

template<typename S >
fcl::detail::GJKSolver_indep< S >::GJKSolver_indep

default setting for GJK algorithm

Definition at line 1039 of file gjk_solver_indep-inl.h.

Member Function Documentation

◆ enableCachedGuess()

template<typename S >
void fcl::detail::GJKSolver_indep< S >::enableCachedGuess ( bool  if_enable) const

Definition at line 1053 of file gjk_solver_indep-inl.h.

◆ getCachedGuess()

template<typename S >
Vector3< S > fcl::detail::GJKSolver_indep< S >::getCachedGuess

Definition at line 1067 of file gjk_solver_indep-inl.h.

◆ setCachedGuess()

template<typename S >
void fcl::detail::GJKSolver_indep< S >::setCachedGuess ( const Vector3< S > &  guess) const

Definition at line 1060 of file gjk_solver_indep-inl.h.

◆ shapeDistance()

template<typename S >
template<typename Shape1 , typename Shape2 >
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.

◆ shapeIntersect() [1/3]

template<typename S >
template<typename Shape1 , typename Shape2 >
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.

◆ shapeIntersect() [2/3]

template<typename S_ >
template<typename Shape1 , typename Shape2 >
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

◆ shapeIntersect() [3/3]

template<typename S_ >
template<typename Shape1 , typename Shape2 >
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.

◆ shapeSignedDistance()

template<typename S >
template<typename Shape1 , typename Shape2 >
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.

◆ shapeTriangleDistance() [1/2]

template<typename S >
template<typename Shape >
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.

◆ shapeTriangleDistance() [2/2]

template<typename S >
template<typename Shape >
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.

◆ shapeTriangleIntersect() [1/2]

template<typename S >
template<typename Shape >
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.

◆ shapeTriangleIntersect() [2/2]

template<typename S >
template<typename Shape >
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.

Friends And Related Function Documentation

◆ operator<<

template<typename S_ >
std::ostream& operator<< ( std::ostream &  out,
const GJKSolver_indep< S_ > &  solver 
)
friend

Definition at line 186 of file gjk_solver_indep.h.

Member Data Documentation

◆ cached_guess

template<typename S_ >
Vector3<S> fcl::detail::GJKSolver_indep< S_ >::cached_guess
mutable

smart guess

Definition at line 183 of file gjk_solver_indep.h.

◆ enable_cached_guess

template<typename S_ >
bool fcl::detail::GJKSolver_indep< S_ >::enable_cached_guess
mutable

Whether smart guess can be provided.

Definition at line 180 of file gjk_solver_indep.h.

◆ epa_max_face_num

template<typename S_ >
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.

◆ epa_max_iterations

template<typename S_ >
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.

◆ epa_max_vertex_num

template<typename S_ >
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.

◆ epa_tolerance

template<typename S_ >
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.

◆ gjk_max_iterations

template<typename S_ >
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.

◆ gjk_tolerance

template<typename S_ >
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.


The documentation for this struct was generated from the following files:


fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:50