class for GJK algorithm More...
#include <hpp/fcl/narrowphase/gjk.h>
Classes | |
struct | Simplex |
struct | SimplexV |
Public Types | |
enum | Status { Valid, Inside, Failed } |
Public Member Functions | |
GJK (unsigned int max_iterations_, FCL_REAL tolerance_) | |
void | initialize () |
Status | evaluate (const MinkowskiDiff &shape_, const Vec3f &guess) |
GJK algorithm, given the initial value guess. More... | |
void | getSupport (const Vec3f &d, SimplexV &sv) const |
apply the support function along a direction, the result is return in sv More... | |
void | getSupport (const Vec3f &d, const Vec3f &v, SimplexV &sv) const |
apply the support function along a direction, the result is return is sv, here shape0 is translating at velocity v More... | |
void | removeVertex (Simplex &simplex) |
discard one vertex from the simplex More... | |
void | appendVertex (Simplex &simplex, const Vec3f &v) |
append one vertex to the simplex More... | |
bool | encloseOrigin () |
whether the simplex enclose the origin More... | |
Simplex * | getSimplex () const |
get the underlying simplex using in GJK, can be used for cache in next iteration More... | |
Vec3f | getGuessFromSimplex () const |
get the guess from current simplex More... | |
Public Attributes | |
MinkowskiDiff | shape |
Vec3f | ray |
FCL_REAL | distance |
Simplex | simplices [2] |
class for GJK algorithm
|
inline |
References initialize().
append one vertex to the simplex
bool fcl::details::GJK::encloseOrigin | ( | ) |
whether the simplex enclose the origin
Status fcl::details::GJK::evaluate | ( | const MinkowskiDiff & | shape_, |
const Vec3f & | guess | ||
) |
GJK algorithm, given the initial value guess.
Referenced by fcl::GJKSolver_indep::shapeDistance(), fcl::GJKSolver_indep::shapeIntersect(), fcl::GJKSolver_indep::shapeTriangleDistance(), and fcl::GJKSolver_indep::shapeTriangleIntersect().
Vec3f fcl::details::GJK::getGuessFromSimplex | ( | ) | const |
get the guess from current simplex
Referenced by fcl::GJKSolver_indep::shapeDistance(), fcl::GJKSolver_indep::shapeIntersect(), fcl::GJKSolver_indep::shapeTriangleDistance(), and fcl::GJKSolver_indep::shapeTriangleIntersect().
|
inline |
get the underlying simplex using in GJK, can be used for cache in next iteration
Referenced by fcl::GJKSolver_indep::shapeDistance(), and fcl::GJKSolver_indep::shapeTriangleDistance().
apply the support function along a direction, the result is return in sv
apply the support function along a direction, the result is return is sv, here shape0 is translating at velocity v
void fcl::details::GJK::initialize | ( | ) |
Referenced by GJK().
void fcl::details::GJK::removeVertex | ( | Simplex & | simplex | ) |
discard one vertex from the simplex
FCL_REAL fcl::details::GJK::distance |
Vec3f fcl::details::GJK::ray |
MinkowskiDiff fcl::details::GJK::shape |
Simplex fcl::details::GJK::simplices[2] |