#include <btConvexConvexAlgorithm.h>
Classes | |
struct | CreateFunc |
Public Member Functions | |
btConvexConvexAlgorithm (btPersistentManifold *mf, const btCollisionAlgorithmConstructionInfo &ci, btCollisionObject *body0, btCollisionObject *body1, btSimplexSolverInterface *simplexSolver, btConvexPenetrationDepthSolver *pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold) | |
cache separating vector to speedup collision detection | |
virtual btScalar | calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) |
virtual void | getAllContactManifolds (btManifoldArray &manifoldArray) |
const btPersistentManifold * | getManifold () |
virtual void | processCollision (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) |
void | setLowLevelOfDetail (bool useLowLevel) |
virtual | ~btConvexConvexAlgorithm () |
Private Attributes | |
bool | m_lowLevelOfDetail |
btPersistentManifold * | m_manifoldPtr |
int | m_minimumPointsPerturbationThreshold |
int | m_numPerturbationIterations |
bool | m_ownManifold |
btConvexPenetrationDepthSolver * | m_pdSolver |
btSimplexSolverInterface * | m_simplexSolver |
Enabling USE_SEPDISTANCE_UTIL2 requires 100% reliable distance computation. However, when using large size ratios GJK can be imprecise so the distance is not conservative. In that case, enabling this USE_SEPDISTANCE_UTIL2 would result in failing/missing collisions. Either improve GJK for large size ratios (testing a 100 units versus a 0.1 unit object) or only enable the util for certain pairs that have a small size ratio The convexConvexAlgorithm collision algorithm implements time of impact, convex closest points and penetration depth calculations between two convex objects. Multiple contact points are calculated by perturbing the orientation of the smallest object orthogonal to the separating normal. This idea was described by Gino van den Bergen in this forum topic http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=288&p=888#p888
Definition at line 40 of file btConvexConvexAlgorithm.h.
btConvexConvexAlgorithm::btConvexConvexAlgorithm | ( | btPersistentManifold * | mf, |
const btCollisionAlgorithmConstructionInfo & | ci, | ||
btCollisionObject * | body0, | ||
btCollisionObject * | body1, | ||
btSimplexSolverInterface * | simplexSolver, | ||
btConvexPenetrationDepthSolver * | pdSolver, | ||
int | numPerturbationIterations, | ||
int | minimumPointsPerturbationThreshold | ||
) |
cache separating vector to speedup collision detection
virtual btConvexConvexAlgorithm::~btConvexConvexAlgorithm | ( | ) | [virtual] |
virtual btScalar btConvexConvexAlgorithm::calculateTimeOfImpact | ( | btCollisionObject * | body0, |
btCollisionObject * | body1, | ||
const btDispatcherInfo & | dispatchInfo, | ||
btManifoldResult * | resultOut | ||
) | [virtual] |
Implements btCollisionAlgorithm.
virtual void btConvexConvexAlgorithm::getAllContactManifolds | ( | btManifoldArray & | manifoldArray | ) | [inline, virtual] |
should we use m_ownManifold to avoid adding duplicates?
Implements btCollisionAlgorithm.
Definition at line 71 of file btConvexConvexAlgorithm.h.
const btPersistentManifold* btConvexConvexAlgorithm::getManifold | ( | ) | [inline] |
Definition at line 82 of file btConvexConvexAlgorithm.h.
virtual void btConvexConvexAlgorithm::processCollision | ( | btCollisionObject * | body0, |
btCollisionObject * | body1, | ||
const btDispatcherInfo & | dispatchInfo, | ||
btManifoldResult * | resultOut | ||
) | [virtual] |
Implements btCollisionAlgorithm.
void btConvexConvexAlgorithm::setLowLevelOfDetail | ( | bool | useLowLevel | ) |
bool btConvexConvexAlgorithm::m_lowLevelOfDetail [private] |
Definition at line 51 of file btConvexConvexAlgorithm.h.
btPersistentManifold* btConvexConvexAlgorithm::m_manifoldPtr [private] |
Definition at line 50 of file btConvexConvexAlgorithm.h.
Definition at line 54 of file btConvexConvexAlgorithm.h.
int btConvexConvexAlgorithm::m_numPerturbationIterations [private] |
Definition at line 53 of file btConvexConvexAlgorithm.h.
bool btConvexConvexAlgorithm::m_ownManifold [private] |
Definition at line 49 of file btConvexConvexAlgorithm.h.
Definition at line 46 of file btConvexConvexAlgorithm.h.
Definition at line 45 of file btConvexConvexAlgorithm.h.