class for GJK algorithm More...
#include <gjk.h>
Classes | |
struct | Simplex |
struct | SimplexV |
Public Types | |
enum | Status { Valid, Inside, Failed } |
Public Member Functions | |
void | appendVertex (Simplex &simplex, const Vector3< S > &v) |
append one vertex to the simplex More... | |
bool | encloseOrigin () |
whether the simplex enclose the origin More... | |
Status | evaluate (const MinkowskiDiff< S > &shape_, const Vector3< S > &guess) |
GJK algorithm, given the initial value guess. More... | |
Vector3< S > | getGuessFromSimplex () const |
get the guess from current simplex More... | |
Simplex * | getSimplex () const |
get the underlying simplex using in GJK, can be used for cache in next iteration More... | |
void | getSupport (const Vector3< S > &d, const Vector3< S > &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 | getSupport (const Vector3< S > &d, SimplexV &sv) const |
apply the support function along a direction, the result is return in sv More... | |
GJK (unsigned int max_iterations_, S tolerance_) | |
void | initialize () |
void | removeVertex (Simplex &simplex) |
discard one vertex from the simplex More... | |
Public Attributes | |
S | distance |
Vector3< S > | ray |
MinkowskiDiff< S > | shape |
Simplex | simplices [2] |
Private Attributes | |
size_t | current |
SimplexV * | free_v [4] |
unsigned int | max_iterations |
size_t | nfree |
Simplex * | simplex |
Status | status |
SimplexV | store_v [4] |
S | tolerance |
class for GJK algorithm
enum fcl::detail::GJK::Status |
fcl::detail::GJK< S >::GJK | ( | unsigned int | max_iterations_, |
S | tolerance_ | ||
) |
void fcl::detail::GJK< S >::appendVertex | ( | Simplex & | simplex, |
const Vector3< S > & | v | ||
) |
bool fcl::detail::GJK< S >::encloseOrigin |
GJK< S >::Status fcl::detail::GJK< S >::evaluate | ( | const MinkowskiDiff< S > & | shape_, |
const Vector3< S > & | guess | ||
) |
Vector3< S > fcl::detail::GJK< S >::getGuessFromSimplex |
GJK< S >::Simplex * fcl::detail::GJK< S >::getSimplex |
void fcl::detail::GJK< S >::getSupport | ( | const Vector3< S > & | d, |
const Vector3< S > & | v, | ||
SimplexV & | sv | ||
) | const |
void fcl::detail::GJK< S >::getSupport | ( | const Vector3< S > & | d, |
SimplexV & | sv | ||
) | const |
void fcl::detail::GJK< S >::initialize |
void fcl::detail::GJK< S >::removeVertex | ( | Simplex & | simplex | ) |
|
private |
S fcl::detail::GJK< S >::distance |
|
private |
|
private |
|
private |
Vector3<S> fcl::detail::GJK< S >::ray |
MinkowskiDiff<S> fcl::detail::GJK< S >::shape |
|
private |
Simplex fcl::detail::GJK< S >::simplices[2] |
|
private |
|
private |
|
private |