All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::details::EPA Struct Reference

class for EPA algorithm More...

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

Collaboration diagram for fcl::details::EPA:

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 *c, 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

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

References initialize().

fcl::details::EPA::~EPA ( )
inline

References fc_store, and sv_store.

Member Function Documentation

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

Find the best polytope face to split.

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

Referenced by EPA().

SimplexF* fcl::details::EPA::newFace ( SimplexV a,
SimplexV b,
SimplexV c,
bool  forced 
)

Member Data Documentation

SimplexF* fcl::details::EPA::fc_store

Referenced by ~EPA().

SimplexList fcl::details::EPA::hull
size_t fcl::details::EPA::nextsv
Status fcl::details::EPA::status
SimplexList fcl::details::EPA::stock
SimplexV* fcl::details::EPA::sv_store

Referenced by ~EPA().