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

collision and distance solver based on libccd library. More...

#include <gjk_solver_libccd.h>

Public Types

using S = S_
 

Public Member Functions

void enableCachedGuess (bool if_enable) const
 
Vector3< SgetCachedGuess () const
 
 GJKSolver_libccd ()
 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 *dist=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 *dist=nullptr, Vector3< S > *p1=nullptr, Vector3< S > *p2=nullptr) const
 
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 *dist=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 *dist=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

S collision_tolerance
 the threshold used in GJK algorithm to stop collision iteration More...
 
S distance_tolerance
 the threshold used in GJK algorithm to stop distance iteration More...
 
unsigned int max_collision_iterations
 maximum number of iterations used in GJK algorithm for collision More...
 
unsigned int max_distance_iterations
 maximum number of iterations used in GJK algorithm for distance More...
 

Friends

std::ostream & operator<< (std::ostream &out, const GJKSolver_libccd &solver)
 

Detailed Description

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

collision and distance solver based on libccd library.

Definition at line 54 of file gjk_solver_libccd.h.

Member Typedef Documentation

◆ S

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

Definition at line 56 of file gjk_solver_libccd.h.

Constructor & Destructor Documentation

◆ GJKSolver_libccd()

default setting for GJK algorithm

Definition at line 971 of file gjk_solver_libccd-inl.h.

Member Function Documentation

◆ enableCachedGuess()

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

Definition at line 981 of file gjk_solver_libccd-inl.h.

◆ getCachedGuess()

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

Definition at line 1000 of file gjk_solver_libccd-inl.h.

◆ setCachedGuess()

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

Definition at line 990 of file gjk_solver_libccd-inl.h.

◆ shapeDistance()

template<typename S >
template<typename Shape1 , typename Shape2 >
bool fcl::detail::GJKSolver_libccd< S >::shapeDistance ( const Shape1 &  s1,
const Transform3< S > &  tf1,
const Shape2 &  s2,
const Transform3< S > &  tf2,
S dist = nullptr,
Vector3< S > *  p1 = nullptr,
Vector3< S > *  p2 = nullptr 
) const

distance computation between two shapes

Definition at line 640 of file gjk_solver_libccd-inl.h.

◆ shapeIntersect() [1/3]

template<typename S >
template<typename Shape1 , typename Shape2 >
bool fcl::detail::GJKSolver_libccd< 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 169 of file gjk_solver_libccd-inl.h.

◆ shapeIntersect() [2/3]

template<typename S_ >
template<typename Shape1 , typename Shape2 >
FCL_DEPRECATED bool fcl::detail::GJKSolver_libccd< 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_libccd< 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 72 of file gjk_solver_libccd-inl.h.

◆ shapeSignedDistance()

template<typename S >
template<typename Shape1 , typename Shape2 >
bool fcl::detail::GJKSolver_libccd< S >::shapeSignedDistance ( const Shape1 &  s1,
const Transform3< S > &  tf1,
const Shape2 &  s2,
const Transform3< S > &  tf2,
S dist = nullptr,
Vector3< S > *  p1 = nullptr,
Vector3< S > *  p2 = nullptr 
) const

Definition at line 583 of file gjk_solver_libccd-inl.h.

◆ shapeTriangleDistance() [1/2]

template<typename S >
template<typename Shape >
bool fcl::detail::GJKSolver_libccd< S >::shapeTriangleDistance ( const Shape &  s,
const Transform3< S > &  tf,
const Vector3< S > &  P1,
const Vector3< S > &  P2,
const Vector3< S > &  P3,
S dist = nullptr,
Vector3< S > *  p1 = nullptr,
Vector3< S > *  p2 = nullptr 
) const

distance computation between one shape and a triangle

Definition at line 860 of file gjk_solver_libccd-inl.h.

◆ shapeTriangleDistance() [2/2]

template<typename S >
template<typename Shape >
bool fcl::detail::GJKSolver_libccd< 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 dist = nullptr,
Vector3< S > *  p1 = nullptr,
Vector3< S > *  p2 = nullptr 
) const

distance computation between one shape and a triangle with transformation

Definition at line 933 of file gjk_solver_libccd-inl.h.

◆ shapeTriangleIntersect() [1/2]

template<typename S >
template<typename Shape >
bool fcl::detail::GJKSolver_libccd< 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 387 of file gjk_solver_libccd-inl.h.

◆ shapeTriangleIntersect() [2/2]

template<typename S >
template<typename Shape >
bool fcl::detail::GJKSolver_libccd< 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 462 of file gjk_solver_libccd-inl.h.

Friends And Related Function Documentation

◆ operator<<

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

Definition at line 174 of file gjk_solver_libccd.h.

Member Data Documentation

◆ collision_tolerance

template<typename S_ >
S fcl::detail::GJKSolver_libccd< S_ >::collision_tolerance

the threshold used in GJK algorithm to stop collision iteration

Definition at line 168 of file gjk_solver_libccd.h.

◆ distance_tolerance

template<typename S_ >
S fcl::detail::GJKSolver_libccd< S_ >::distance_tolerance

the threshold used in GJK algorithm to stop distance iteration

Definition at line 171 of file gjk_solver_libccd.h.

◆ max_collision_iterations

template<typename S_ >
unsigned int fcl::detail::GJKSolver_libccd< S_ >::max_collision_iterations

maximum number of iterations used in GJK algorithm for collision

Definition at line 162 of file gjk_solver_libccd.h.

◆ max_distance_iterations

template<typename S_ >
unsigned int fcl::detail::GJKSolver_libccd< S_ >::max_distance_iterations

maximum number of iterations used in GJK algorithm for distance

Definition at line 165 of file gjk_solver_libccd.h.


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


fcl
Author(s):
autogenerated on Tue Jun 22 2021 07:27:56