38 #ifndef FCL_NARROWPHASE_DETAIL_EPA_H 39 #define FCL_NARROWPHASE_DETAIL_EPA_H 41 #include "fcl/narrowphase/detail/convexity_based_algorithm/gjk.h" 80 void append(SimplexF* face);
82 void remove(SimplexF* face);
85 static void bind(SimplexF* fa,
size_t ea, SimplexF* fb,
size_t eb);
92 SimplexHorizon() : cf(
nullptr), ff(
nullptr), nf(0) {}
96 unsigned int max_face_num;
97 unsigned int max_vertex_num;
98 unsigned int max_iterations;
103 enum Status {Valid, Touching, Degenerated, NonConvex, InvalidHull, OutOfFaces, OutOfVertices, AccuracyReached, FallBack, Failed};
112 SimplexList hull, stock;
115 unsigned int max_face_num_,
116 unsigned int max_vertex_num_,
117 unsigned int max_iterations_,
124 bool getEdgeDist(SimplexF* face, SimplexV* a, SimplexV* b, S& dist);
126 SimplexF* newFace(SimplexV* a, SimplexV* b, SimplexV* c,
bool forced);
131 Status evaluate(
GJK<S>& gjk,
const Vector3<S>& guess);
134 bool expand(
size_t pass, SimplexV* w, SimplexF* f,
size_t e, SimplexHorizon& horizon);
143 #include "fcl/narrowphase/detail/convexity_based_algorithm/epa-inl.h" Main namespace.
Definition: broadphase_bruteforce-inl.h:45
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]
Definition: epa-inl.h:349
class for EPA algorithm
Definition: epa.h:57
SimplexF * findBest()
Find the best polytope face to split.
Definition: epa-inl.h:207
class for GJK algorithm
Definition: gjk.h:52