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... | |
SimplexF * | findBest () |
Find the best polytope face to split. More... | |
bool | getEdgeDist (SimplexF *face, SimplexV *a, SimplexV *b, S &dist) |
void | initialize () |
SimplexF * | newFace (SimplexV *a, SimplexV *b, SimplexV *c, bool forced) |
~EPA () | |
Public Attributes | |
S | depth |
SimplexF * | fc_store |
SimplexList | hull |
size_t | nextsv |
Vector3< S > | normal |
GJK< S >::Simplex | result |
Status | status |
SimplexList | stock |
SimplexV * | sv_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 |
S | tolerance |
class for EPA algorithm
|
private |
enum fcl::detail::EPA::Status |
fcl::detail::EPA< S >::EPA | ( | unsigned int | max_face_num_, |
unsigned int | max_vertex_num_, | ||
unsigned int | max_iterations_, | ||
S | tolerance_ | ||
) |
fcl::detail::EPA< S >::~EPA |
|
staticprivate |
EPA< S >::Status fcl::detail::EPA< S >::evaluate | ( | GJK< S > & | gjk, |
const Vector3< S > & | guess | ||
) |
bool fcl::detail::EPA< S >::expand | ( | size_t | pass, |
SimplexV * | w, | ||
SimplexF * | f, | ||
size_t | e, | ||
SimplexHorizon & | horizon | ||
) |
EPA< S >::SimplexF * fcl::detail::EPA< S >::findBest |
bool fcl::detail::EPA< S >::getEdgeDist | ( | SimplexF * | face, |
SimplexV * | a, | ||
SimplexV * | b, | ||
S & | dist | ||
) |
void fcl::detail::EPA< S >::initialize |
S fcl::detail::EPA< S >::depth |
SimplexF* fcl::detail::EPA< S >::fc_store |
SimplexList fcl::detail::EPA< S >::hull |
|
private |
|
private |
|
private |
size_t fcl::detail::EPA< S >::nextsv |
Vector3<S> fcl::detail::EPA< S >::normal |
GJK<S>::Simplex fcl::detail::EPA< S >::result |
Status fcl::detail::EPA< S >::status |
SimplexList fcl::detail::EPA< S >::stock |
SimplexV* fcl::detail::EPA< S >::sv_store |
|
private |