Classes | Public Types | Public Member Functions | Public Attributes | Private Types | Static Private Member Functions | Private Attributes | List of all members
fcl::detail::EPA< S > Struct Template Reference

class for EPA algorithm More...

#include <epa.h>

Classes

struct  SimplexF
 
struct  SimplexHorizon
 
struct  SimplexList
 

Public Types

enum  Status {
  Valid, Touching, Degenerated, NonConvex,
  InvalidHull, OutOfFaces, OutOfVertices, AccuracyReached,
  FallBack, Failed
}
 

Public Member Functions

 EPA (unsigned int max_face_num_, unsigned int max_vertex_num_, unsigned int max_iterations_, S tolerance_)
 
Status evaluate (GJK< S > &gjk, const Vector3< S > &guess)
 
bool expand (size_t pass, SimplexV *w, SimplexF *f, size_t e, SimplexHorizon &horizon)
 the goal is to add a face connecting vertex w and face edge f[e] More...
 
SimplexFfindBest ()
 Find the best polytope face to split. More...
 
bool getEdgeDist (SimplexF *face, SimplexV *a, SimplexV *b, S &dist)
 
void initialize ()
 
SimplexFnewFace (SimplexV *a, SimplexV *b, SimplexV *c, bool forced)
 
 ~EPA ()
 

Public Attributes

depth
 
SimplexFfc_store
 
SimplexList hull
 
size_t nextsv
 
Vector3< S > normal
 
GJK< S >::Simplex result
 
Status status
 
SimplexList stock
 
SimplexVsv_store
 

Private Types

using SimplexV = typename GJK< S >::SimplexV
 

Static Private Member Functions

static void bind (SimplexF *fa, size_t ea, SimplexF *fb, size_t eb)
 

Private Attributes

unsigned int max_face_num
 
unsigned int max_iterations
 
unsigned int max_vertex_num
 
tolerance
 

Detailed Description

template<typename S>
struct fcl::detail::EPA< S >

class for EPA algorithm

Definition at line 57 of file epa.h.

Member Typedef Documentation

◆ SimplexV

template<typename S >
using fcl::detail::EPA< S >::SimplexV = typename GJK<S>::SimplexV
private

Definition at line 60 of file epa.h.

Member Enumeration Documentation

◆ Status

template<typename S >
enum fcl::detail::EPA::Status
Enumerator
Valid 
Touching 
Degenerated 
NonConvex 
InvalidHull 
OutOfFaces 
OutOfVertices 
AccuracyReached 
FallBack 
Failed 

Definition at line 103 of file epa.h.

Constructor & Destructor Documentation

◆ EPA()

template<typename S >
fcl::detail::EPA< S >::EPA ( unsigned int  max_face_num_,
unsigned int  max_vertex_num_,
unsigned int  max_iterations_,
tolerance_ 
)

Definition at line 92 of file epa-inl.h.

◆ ~EPA()

template<typename S >
fcl::detail::EPA< S >::~EPA

Definition at line 106 of file epa-inl.h.

Member Function Documentation

◆ bind()

template<typename S >
void fcl::detail::EPA< S >::bind ( SimplexF fa,
size_t  ea,
SimplexF fb,
size_t  eb 
)
staticprivate

Definition at line 84 of file epa-inl.h.

◆ evaluate()

template<typename S >
EPA< S >::Status fcl::detail::EPA< S >::evaluate ( GJK< S > &  gjk,
const Vector3< S > &  guess 
)

Definition at line 225 of file epa-inl.h.

◆ expand()

template<typename S >
bool fcl::detail::EPA< S >::expand ( size_t  pass,
SimplexV w,
SimplexF f,
size_t  e,
SimplexHorizon horizon 
)

the goal is to add a face connecting vertex w and face edge f[e]

Definition at line 349 of file epa-inl.h.

◆ findBest()

template<typename S >
EPA< S >::SimplexF * fcl::detail::EPA< S >::findBest

Find the best polytope face to split.

Definition at line 207 of file epa-inl.h.

◆ getEdgeDist()

template<typename S >
bool fcl::detail::EPA< S >::getEdgeDist ( SimplexF face,
SimplexV a,
SimplexV b,
S &  dist 
)

Definition at line 128 of file epa-inl.h.

◆ initialize()

template<typename S >
void fcl::detail::EPA< S >::initialize

Definition at line 114 of file epa-inl.h.

◆ newFace()

template<typename S >
EPA< S >::SimplexF * fcl::detail::EPA< S >::newFace ( SimplexV a,
SimplexV b,
SimplexV c,
bool  forced 
)

Definition at line 159 of file epa-inl.h.

Member Data Documentation

◆ depth

template<typename S >
S fcl::detail::EPA< S >::depth

Definition at line 108 of file epa.h.

◆ fc_store

template<typename S >
SimplexF* fcl::detail::EPA< S >::fc_store

Definition at line 110 of file epa.h.

◆ hull

template<typename S >
SimplexList fcl::detail::EPA< S >::hull

Definition at line 112 of file epa.h.

◆ max_face_num

template<typename S >
unsigned int fcl::detail::EPA< S >::max_face_num
private

Definition at line 96 of file epa.h.

◆ max_iterations

template<typename S >
unsigned int fcl::detail::EPA< S >::max_iterations
private

Definition at line 98 of file epa.h.

◆ max_vertex_num

template<typename S >
unsigned int fcl::detail::EPA< S >::max_vertex_num
private

Definition at line 97 of file epa.h.

◆ nextsv

template<typename S >
size_t fcl::detail::EPA< S >::nextsv

Definition at line 111 of file epa.h.

◆ normal

template<typename S >
Vector3<S> fcl::detail::EPA< S >::normal

Definition at line 107 of file epa.h.

◆ result

template<typename S >
GJK<S>::Simplex fcl::detail::EPA< S >::result

Definition at line 106 of file epa.h.

◆ status

template<typename S >
Status fcl::detail::EPA< S >::status

Definition at line 105 of file epa.h.

◆ stock

template<typename S >
SimplexList fcl::detail::EPA< S >::stock

Definition at line 112 of file epa.h.

◆ sv_store

template<typename S >
SimplexV* fcl::detail::EPA< S >::sv_store

Definition at line 109 of file epa.h.

◆ tolerance

template<typename S >
S fcl::detail::EPA< S >::tolerance
private

Definition at line 99 of file epa.h.


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


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