26 :m_simplexSolver(simplexSolver),
27 m_convexA(convexA),m_convexB(convexB)
33 #ifdef BT_USE_DOUBLE_PRECISION
34 #define MAX_ITERATIONS 64
36 #define MAX_ITERATIONS 32
63 v = supVertexA-supVertexB;
68 bool hasResult =
false;
75 #ifdef BT_USE_DOUBLE_PRECISION
79 #endif //BT_USE_DOUBLE_PRECISION
83 while ( (dist2 > epsilon) && maxIter--)
87 w = supVertexA-supVertexB;
104 lambda = lambda - VdotW / VdotR;
111 w = supVertexA-supVertexB;
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const =0
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
#define MAX_ITERATIONS
Typically the conservative advancement reaches solution in a few iterations, clip it to 32 for degene...
const btConvexShape * m_convexA
btSimplexSolverInterface * m_simplexSolver
btScalar dot(const btVector3 &v) const
Return the dot product.
The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape...
btScalar m_allowedPenetration
RayResult stores the closest result alternatively, add a callback method to decide about closest/all ...
#define btSimplexSolverInterface
virtual bool calcTimeOfImpact(const btTransform &fromA, const btTransform &toA, const btTransform &fromB, const btTransform &toB, CastResult &result)
SimsimplexConvexCast calculateTimeOfImpact calculates the time of impact+normal for the linear cast (...
btSubsimplexConvexCast(const btConvexShape *shapeA, const btConvexShape *shapeB, btSimplexSolverInterface *simplexSolver)
const btConvexShape * m_convexB
btVector3 can be used to represent 3D points and vectors.
btScalar length2() const
Return the length of the vector squared.
btVector3 normalized() const
Return a normalized version of this vector.
void setInterpolate3(const btVector3 &v0, const btVector3 &v1, btScalar rt)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...