Blender V2.61 - r43446
|
#include <btContinuousConvexCollision.h>
Public Member Functions | |
btContinuousConvexCollision (const btConvexShape *shapeA, const btConvexShape *shapeB, btSimplexSolverInterface *simplexSolver, btConvexPenetrationDepthSolver *penetrationDepthSolver) | |
virtual bool | calcTimeOfImpact (const btTransform &fromA, const btTransform &toA, const btTransform &fromB, const btTransform &toB, CastResult &result) |
cast a convex against another convex object |
btContinuousConvexCollision implements angular and linear time of impact for convex objects. Based on Brian Mirtich's Conservative Advancement idea (PhD thesis). Algorithm operates in worldspace, in order to keep inbetween motion globally consistent. It uses GJK at the moment. Future improvement would use minkowski sum / supporting vertex, merging innerloops
Definition at line 29 of file btContinuousConvexCollision.h.
btContinuousConvexCollision::btContinuousConvexCollision | ( | const btConvexShape * | shapeA, |
const btConvexShape * | shapeB, | ||
btSimplexSolverInterface * | simplexSolver, | ||
btConvexPenetrationDepthSolver * | penetrationDepthSolver | ||
) |
Definition at line 28 of file btContinuousConvexCollision.cpp.
bool btContinuousConvexCollision::calcTimeOfImpact | ( | const btTransform & | fromA, |
const btTransform & | toA, | ||
const btTransform & | fromB, | ||
const btTransform & | toB, | ||
CastResult & | result | ||
) | [virtual] |
cast a convex against another convex object
compute linear and angular velocity for this interval, to interpolate
Implements btConvexCast.
Definition at line 39 of file btContinuousConvexCollision.cpp.
References btTransformUtil::calculateVelocity(), btConvexCast::CastResult::DebugDraw(), btIDebugDraw::drawSphere(), btGjkPairDetector::getClosestPoints(), btTransform::getOrigin(), btTransformUtil::integrateTransform(), btTransform::inverseTimes(), length(), btConvexCast::CastResult::m_allowedPenetration, btConvexCast::CastResult::m_debugDrawer, btPointCollector::m_distance, btConvexCast::CastResult::m_fraction, btPointCollector::m_hasResult, btConvexCast::CastResult::m_hitPoint, btConvexCast::CastResult::m_normal, btPointCollector::m_normalOnBInWorld, btPointCollector::m_pointInWorld, btDiscreteCollisionDetectorInterface::ClosestPointInput::m_transformA, btDiscreteCollisionDetectorInterface::ClosestPointInput::m_transformB, MAX_ITERATIONS, btTransform::setIdentity(), and SIMD_EPSILON.
Referenced by btTriangleConvexcastCallback::processTriangle().