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

class for GJK algorithm More...

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

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

List of all members.

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.
void getSupport (const Vec3f &d, SimplexV &sv) const
 apply the support function along a direction, the result is return in sv
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
void removeVertex (Simplex &simplex)
 discard one vertex from the simplex
void appendVertex (Simplex &simplex, const Vec3f &v)
 append one vertex to the simplex
bool encloseOrigin ()
 whether the simplex enclose the origin
SimplexgetSimplex () const
 get the underlying simplex using in GJK, can be used for cache in next iteration
Vec3f getGuessFromSimplex () const
 get the guess from current simplex

Public Attributes

MinkowskiDiff shape
Vec3f ray
FCL_REAL distance
Simplex simplices [2]

Detailed Description

class for GJK algorithm

Note:
The computations are performed in the frame of the first shape.

Member Enumeration Documentation

Enumerator:
Valid 
Inside 
Failed 

Constructor & Destructor Documentation

fcl::details::GJK::GJK ( unsigned int  max_iterations_,
FCL_REAL  tolerance_ 
) [inline]

References initialize().


Member Function Documentation

void fcl::details::GJK::appendVertex ( Simplex simplex,
const Vec3f v 
)

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 
)
Vec3f fcl::details::GJK::getGuessFromSimplex ( ) const
Simplex* fcl::details::GJK::getSimplex ( ) const [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().

void fcl::details::GJK::getSupport ( const Vec3f d,
SimplexV sv 
) const

apply the support function along a direction, the result is return in sv

void fcl::details::GJK::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

void fcl::details::GJK::initialize ( )

Referenced by GJK().

void fcl::details::GJK::removeVertex ( Simplex simplex)

discard one vertex from the simplex


Member Data Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines