Classes | Public Types | Public Member Functions | Public Attributes
fcl::details::EPA Struct Reference

class for EPA algorithm More...

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

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

List of all members.

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_, 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.
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]

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

Referenced by ~EPA().

Referenced by ~EPA().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines