16#ifndef BT_CONVEX_CONCAVE_COLLISION_ALGORITHM_H
17#define BT_CONVEX_CONCAVE_COLLISION_ALGORITHM_H
61 virtual void processTriangle(
btVector3 * triangle,
int partId,
int triangleIndex);
btAlignedObjectArray< btPersistentManifold * > btManifoldArray
virtual btScalar calculateTimeOfImpact(btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual void getAllContactManifolds(btManifoldArray &manifoldArray)
virtual void processCollision(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
#define SIMD_FORCE_INLINE
btActivatingCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo &ci)
btCollisionObject can be used to manage collision detection objects.
btConvexConcaveCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
btConvexTriangleCallback m_btConvexTriangleCallback
BT_DECLARE_ALIGNED_ALLOCATOR()
For each triangle in the concave mesh that overlaps with the AABB of a convex (m_convexProxy),...
const btVector3 & getAabbMax() const
btScalar m_collisionMarginTriangle
const btVector3 & getAabbMin() const
btDispatcher * m_dispatcher
btConvexTriangleCallback(btDispatcher *dispatcher, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
void setTimeStepAndCounters(btScalar collisionMarginTriangle, const btDispatcherInfo &dispatchInfo, const btCollisionObjectWrapper *convexBodyWrap, const btCollisionObjectWrapper *triBodyWrap, btManifoldResult *resultOut)
btManifoldResult * m_resultOut
const btDispatcherInfo * m_dispatchInfoPtr
btPersistentManifold * m_manifoldPtr
BT_DECLARE_ALIGNED_ALLOCATOR()
const btCollisionObjectWrapper * m_convexBodyWrap
const btCollisionObjectWrapper * m_triBodyWrap
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
virtual void * allocateCollisionAlgorithm(int size)=0
btManifoldResult is a helper class to manage contact results.
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTrian...
btVector3 can be used to represent 3D points and vectors.
btDispatcher * m_dispatcher1
btCollisionAlgorithmCreateFunc()
virtual btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
virtual btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)