Classes | Public Types | Public Member Functions | Public Attributes | List of all members
hpp::fcl::details::EPA Struct Reference

class for EPA algorithm More...

#include <hpp/fcl/narrowphase/gjk.h>

Collaboration diagram for hpp::fcl::details::EPA:
[legend]

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_, FCL_REAL tolerance_)
 
 ~EPA ()
 
void initialize ()
 
bool getEdgeDist (SimplexF *face, SimplexV *a, SimplexV *b, FCL_REAL &dist)
 
SimplexF * newFace (SimplexV *a, SimplexV *b, SimplexV *vertex, bool forced)
 
SimplexF * findBest ()
 Find the best polytope face to split. More...
 
Status evaluate (GJK &gjk, const Vec3f &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...
 

Public Attributes

Status status
 
GJK::Simplex result
 
Vec3f normal
 
FCL_REAL depth
 
SimplexVsv_store
 
SimplexF * fc_store
 
size_t nextsv
 
SimplexList hull
 
SimplexList stock
 

Detailed Description

class for EPA algorithm

Member Enumeration Documentation

Enumerator
Valid 
Touching 
Degenerated 
NonConvex 
InvalidHull 
OutOfFaces 
OutOfVertices 
AccuracyReached 
FallBack 
Failed 

Constructor & Destructor Documentation

hpp::fcl::details::EPA::EPA ( unsigned int  max_face_num_,
unsigned int  max_vertex_num_,
unsigned int  max_iterations_,
FCL_REAL  tolerance_ 
)
inline
hpp::fcl::details::EPA::~EPA ( )
inline

Member Function Documentation

Status hpp::fcl::details::EPA::evaluate ( GJK gjk,
const Vec3f guess 
)
bool hpp::fcl::details::EPA::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]

SimplexF* hpp::fcl::details::EPA::findBest ( )

Find the best polytope face to split.

bool hpp::fcl::details::EPA::getEdgeDist ( SimplexF *  face,
SimplexV a,
SimplexV b,
FCL_REAL dist 
)
void hpp::fcl::details::EPA::initialize ( )
SimplexF* hpp::fcl::details::EPA::newFace ( SimplexV a,
SimplexV b,
SimplexV vertex,
bool  forced 
)

Member Data Documentation

FCL_REAL hpp::fcl::details::EPA::depth
SimplexF* hpp::fcl::details::EPA::fc_store
SimplexList hpp::fcl::details::EPA::hull
size_t hpp::fcl::details::EPA::nextsv
Vec3f hpp::fcl::details::EPA::normal
GJK::Simplex hpp::fcl::details::EPA::result
Status hpp::fcl::details::EPA::status
SimplexList hpp::fcl::details::EPA::stock
SimplexV* hpp::fcl::details::EPA::sv_store