btGjkPairDetector uses GJK to implement the btDiscreteCollisionDetectorInterface
More...
#include <btGjkPairDetector.h>
|
| btGjkPairDetector (const btConvexShape *objectA, const btConvexShape *objectB, btSimplexSolverInterface *simplexSolver, btConvexPenetrationDepthSolver *penetrationDepthSolver) |
|
| btGjkPairDetector (const btConvexShape *objectA, const btConvexShape *objectB, int shapeTypeA, int shapeTypeB, btScalar marginA, btScalar marginB, btSimplexSolverInterface *simplexSolver, btConvexPenetrationDepthSolver *penetrationDepthSolver) |
|
virtual | ~btGjkPairDetector () |
|
virtual void | getClosestPoints (const ClosestPointInput &input, Result &output, class btIDebugDraw *debugDraw, bool swapResults=false) |
|
void | getClosestPointsNonVirtual (const ClosestPointInput &input, Result &output, class btIDebugDraw *debugDraw) |
|
void | setMinkowskiA (const btConvexShape *minkA) |
|
void | setMinkowskiB (const btConvexShape *minkB) |
|
void | setCachedSeperatingAxis (const btVector3 &seperatingAxis) |
|
const btVector3 & | getCachedSeparatingAxis () const |
|
btScalar | getCachedSeparatingDistance () const |
|
void | setPenetrationDepthSolver (btConvexPenetrationDepthSolver *penetrationDepthSolver) |
|
void | setIgnoreMargin (bool ignoreMargin) |
| don't use setIgnoreMargin, it's for Bullet's internal use More...
|
|
virtual | ~btDiscreteCollisionDetectorInterface () |
|
virtual btGjkPairDetector::~btGjkPairDetector |
( |
| ) |
|
|
inlinevirtual |
const btVector3& btGjkPairDetector::getCachedSeparatingAxis |
( |
| ) |
const |
|
inline |
btScalar btGjkPairDetector::getCachedSeparatingDistance |
( |
| ) |
const |
|
inline |
this is another degenerate case, where the initial GJK calculation reports a degenerate case EPA reports no penetration, and the second GJK (using the supporting vector without margin) reports a valid positive distance. Use the results of the second GJK instead of failing. thanks to Jacob.Langford for the reproduction case http://code.google.com/p/bullet/issues/detail?id=250
for sticky convex collisions
Definition at line 84 of file btGjkPairDetector.cpp.
void btGjkPairDetector::setCachedSeperatingAxis |
( |
const btVector3 & |
seperatingAxis | ) |
|
|
inline |
void btGjkPairDetector::setIgnoreMargin |
( |
bool |
ignoreMargin | ) |
|
|
inline |
don't use setIgnoreMargin, it's for Bullet's internal use
Definition at line 95 of file btGjkPairDetector.h.
void btGjkPairDetector::setMinkowskiA |
( |
const btConvexShape * |
minkA | ) |
|
|
inline |
void btGjkPairDetector::setMinkowskiB |
( |
const btConvexShape * |
minkB | ) |
|
|
inline |
btVector3 btGjkPairDetector::m_cachedSeparatingAxis |
|
private |
btScalar btGjkPairDetector::m_cachedSeparatingDistance |
|
private |
int btGjkPairDetector::m_catchDegeneracies |
int btGjkPairDetector::m_curIter |
int btGjkPairDetector::m_degenerateSimplex |
int btGjkPairDetector::m_fixContactNormalDirection |
bool btGjkPairDetector::m_ignoreMargin |
|
private |
int btGjkPairDetector::m_lastUsedMethod |
int btGjkPairDetector::m_shapeTypeA |
|
private |
int btGjkPairDetector::m_shapeTypeB |
|
private |
The documentation for this class was generated from the following files: