56 if ( dist_a * dist_b >=
btScalar(0.0) )
68 const btScalar proj_length=dist_a-dist_b;
69 const btScalar distance = (dist_a)/(proj_length);
87 if ( (
btScalar)(cp0.
dot(triangleNormal)) >=edge_tolerance)
93 cp1 = v1p.
cross( v2p);
94 if ( (
btScalar)(cp1.
dot(triangleNormal)) >=edge_tolerance)
99 if ( (
btScalar)(cp2.
dot(triangleNormal)) >=edge_tolerance)
124 m_convexShape = convexShape;
125 m_convexShapeFrom = convexShapeFrom;
126 m_convexShapeTo = convexShapeTo;
127 m_triangleToWorld = triangleToWorld;
129 m_triangleCollisionMargin = triangleCollisionMargin;
130 m_allowedPenetration = 0.f;
137 triangleShape.
setMargin(m_triangleCollisionMargin);
144 #ifdef USE_SUBSIMPLEX_CONVEX_CAST 149 #endif //#USE_SUBSIMPLEX_CONVEX_CAST 154 if (convexCaster.
calcTimeOfImpact(m_convexShapeFrom,m_convexShapeTo,m_triangleToWorld, m_triangleToWorld, castResult))
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)
btScalar length2() const
Return the length of the vector squared.
btContinuousConvexCollision implements angular and linear time of impact for convex objects...
btTriangleConvexcastCallback(const btConvexShape *convexShape, const btTransform &convexShapeFrom, const btTransform &convexShapeTo, const btTransform &triangleToWorld, const btScalar triangleCollisionMargin)
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1.
The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape...
btScalar m_allowedPenetration
virtual void setMargin(btScalar margin)
RayResult stores the closest result alternatively, add a callback method to decide about closest/all ...
btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points...
btVector3 cross(const btVector3 &v) const
Return the cross product between this and another vector.
btScalar dot(const btVector3 &v) const
Return the dot product.
btVector3 can be used to represent 3D points and vectors.
virtual btScalar reportHit(const btVector3 &hitNormalLocal, btScalar hitFraction, int partId, int triangleIndex)=0
btSubsimplexConvexCast implements Gino van den Bergens' paper "Ray Casting against bteral Convex Obje...
EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to calculate the penetration depth be...
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)
virtual bool calcTimeOfImpact(const btTransform &fromA, const btTransform &toA, const btTransform &fromB, const btTransform &toB, CastResult &result)
cast a convex against another convex object
btTriangleRaycastCallback(const btVector3 &from, const btVector3 &to, unsigned int flags=0)
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...