33 m_btConvexTriangleCallback(ci.m_dispatcher1,body0Wrap,body1Wrap,isSwapped),
34 m_isSwapped(isSwapped)
52 m_dispatcher(dispatcher),
81 partId,
int triangleIndex)
83 BT_PROFILE(
"btConvexTriangleCallback::processTriangle");
158 colAlgo->~btCollisionAlgorithm();
183 btVector3 extra(extraMargin,extraMargin,extraMargin);
198 BT_PROFILE(
"btConvexConcaveCollisionAlgorithm::processCollision");
245 if (squareMot0 < convexbody->getCcdSquareMotionThreshold())
269 :m_ccdSphereFromTrans(from),
270 m_ccdSphereToTrans(to),
271 m_ccdSphereRadius(ccdSphereRadius),
272 m_hitFraction(hitFraction)
277 virtual void processTriangle(
btVector3* triangle,
int partId,
int triangleIndex)
296 ident,ident,castResult))
317 rayAabbMin -=
btVector3(ccdRadius0,ccdRadius0,ccdRadius0);
318 rayAabbMax +=
btVector3(ccdRadius0,ccdRadius0,ccdRadius0);
321 LocalTriangleSphereCastCallback raycastCallback(convexFromLocal,convexToLocal,
340 return raycastCallback.m_hitFraction;
virtual ~btConvexConcaveCollisionAlgorithm()
virtual void releaseManifold(btPersistentManifold *manifold)=0
virtual void processCollision(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
void push_back(const T &_Val)
const btDispatcherInfo * m_dispatchInfoPtr
btDispatcher * m_dispatcher
btConvexTriangleCallback m_btConvexTriangleCallback
const btCollisionObjectWrapper * getBody0Wrap() const
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
virtual void drawLine(const btVector3 &from, const btVector3 &to, const btVector3 &color)=0
virtual ~btConvexTriangleCallback()
virtual btCollisionAlgorithm * findAlgorithm(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, btPersistentManifold *sharedManifold, ebtDispatcherQueryType queryType)=0
void setPersistentManifold(btPersistentManifold *manifoldPtr)
btScalar m_collisionMarginTriangle
This class is not enabled yet (work-in-progress) to more aggressively activate objects.
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
void setHitFraction(btScalar hitFraction)
void refreshContactPoints()
The btSphereShape implements an implicit sphere, centered around a local origin with radius...
btManifoldResult is a helper class to manage contact results.
class btIDebugDraw * m_debugDraw
const btCollisionShape * getCollisionShape() const
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const =0
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const =0
getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t...
virtual void setShapeIdentifiersA(int partId0, int index0)
setShapeIdentifiersA/B provides experimental support for per-triangle material / custom material comb...
btTransform & getWorldTransform()
virtual void setMargin(btScalar margin)
RayResult stores the closest result alternatively, add a callback method to decide about closest/all ...
const btCollisionObjectWrapper * m_convexBodyWrap
btScalar m_closestPointDistanceThreshold
btVoronoiSimplexSolver is an implementation of the closest point distance algorithm from a 1-4 points...
The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTrian...
const btCollisionObject * getCollisionObject() const
btScalar calculateTimeOfImpact(btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
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 (...
btCollisionObject can be used to manage collision detection objects.
const btTransform & getInterpolationWorldTransform() const
void setTimeStepAndCounters(btScalar collisionMarginTriangle, const btDispatcherInfo &dispatchInfo, const btCollisionObjectWrapper *convexBodyWrap, const btCollisionObjectWrapper *triBodyWrap, btManifoldResult *resultOut)
virtual void freeCollisionAlgorithm(void *ptr)=0
virtual btPersistentManifold * getNewManifold(const btCollisionObject *b0, const btCollisionObject *b1)=0
virtual void setShapeIdentifiersB(int partId1, int index1)
btVector3 can be used to represent 3D points and vectors.
const btVector3 & getAabbMin() const
btSubsimplexConvexCast implements Gino van den Bergens' paper "Ray Casting against bteral Convex Obje...
const btVector3 & getAabbMax() const
btScalar getHitFraction() const
The btConcaveShape class provides an interface for non-moving (static) concave shapes.
const btCollisionObject * getBody0Internal() const
virtual int getDebugMode() const =0
void setBody1Wrap(const btCollisionObjectWrapper *obj1Wrap)
const btTransform & getWorldTransform() const
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)
virtual void getAllContactManifolds(btManifoldArray &manifoldArray)
const btCollisionObjectWrapper * m_triBodyWrap
btConvexConcaveCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
btConvexTriangleCallback(btDispatcher *dispatcher, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
const btCollisionObjectWrapper * getBody1Wrap() const
virtual btScalar getMargin() const
void setBody0Wrap(const btCollisionObjectWrapper *obj0Wrap)
void setMax(const btVector3 &other)
Set each element to the max of the current values and the values of another btVector3.
btDispatcher * m_dispatcher1
btPersistentManifold * m_manifoldPtr
btScalar getCcdSweptSphereRadius() const
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
btCollisionAlgorithm is an collision interface that is compatible with the Broadphase and btDispatche...
bool TestTriangleAgainstAabb2(const btVector3 *vertices, const btVector3 &aabbMin, const btVector3 &aabbMax)
conservative test for overlap between triangle and aabb
void setBodies(const btCollisionObject *body0, const btCollisionObject *body1)
void setMin(const btVector3 &other)
Set each element to the min of the current values and the values of another btVector3.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
const btCollisionShape * getCollisionShape() const
btManifoldResult * m_resultOut
virtual void clearManifold(btPersistentManifold *manifold)=0