Blender V2.61 - r43446
Public Member Functions

btSubsimplexConvexCast Class Reference

#include <btSubSimplexConvexCast.h>

Inheritance diagram for btSubsimplexConvexCast:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 btSubsimplexConvexCast (const btConvexShape *shapeA, const btConvexShape *shapeB, btSimplexSolverInterface *simplexSolver)
virtual bool calcTimeOfImpact (const btTransform &fromA, const btTransform &toA, const btTransform &fromB, const btTransform &toB, CastResult &result)

Detailed Description

btSubsimplexConvexCast implements Gino van den Bergens' paper "Ray Casting against bteral Convex Objects with Application to Continuous Collision Detection" GJK based Ray Cast, optimized version Objects should not start in overlap, otherwise results are not defined.

Definition at line 28 of file btSubSimplexConvexCast.h.


Constructor & Destructor Documentation

btSubsimplexConvexCast::btSubsimplexConvexCast ( const btConvexShape *  shapeA,
const btConvexShape *  shapeB,
btSimplexSolverInterface *  simplexSolver 
)

Definition at line 25 of file btSubSimplexConvexCast.cpp.


Member Function Documentation

bool btSubsimplexConvexCast::calcTimeOfImpact ( const btTransform fromA,
const btTransform toA,
const btTransform fromB,
const btTransform toB,
CastResult result 
) [virtual]

SimsimplexConvexCast calculateTimeOfImpact calculates the time of impact+normal for the linear cast (sweep) between two moving objects. Precondition is that objects should not penetration/overlap at the start from the interval. Overlap can be tested using btGjkPairDetector.

take relative motion

Just like regular GJK only add the vertex if it isn't already (close) to current vertex, it would lead to divisions by zero and NaN etc.

Implements btConvexCast.

Definition at line 38 of file btSubSimplexConvexCast.cpp.

References KDL::epsilon, btTransform::getBasis(), btTransform::getOrigin(), btConvexCast::CastResult::m_allowedPenetration, btConvexCast::CastResult::m_fraction, btConvexCast::CastResult::m_hitPoint, btConvexCast::CastResult::m_normal, MAX_ITERATIONS, p, SIMD_EPSILON, and simple_enum_gen::w.

Referenced by btConvexConcaveCollisionAlgorithm::calculateTimeOfImpact(), btSoftBodyConcaveCollisionAlgorithm::calculateTimeOfImpact(), and btCollisionWorld::rayTestSingle().


The documentation for this class was generated from the following files: