16#ifndef BT_SOFT_BODY_CONCAVE_COLLISION_ALGORITHM_H
17#define BT_SOFT_BODY_CONCAVE_COLLISION_ALGORITHM_H
#define MAX_NUM_PARTS_IN_BITS
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define SIMD_FORCE_INLINE
btCollisionAlgorithm is an collision interface that is compatible with the Broadphase and btDispatche...
btCollisionObject can be used to manage collision detection objects.
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
virtual void * allocateCollisionAlgorithm(int size)=0
The btHashMap template class implements a generic and lightweight hashmap.
btManifoldResult is a helper class to manage contact results.
btSoftBodyConcaveCollisionAlgorithm supports collision between soft body shapes and (concave) triange...
virtual void processCollision(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
btSoftBodyTriangleCallback m_btSoftBodyTriangleCallback
btSoftBodyConcaveCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
virtual void getAllContactManifolds(btManifoldArray &manifoldArray)
btScalar calculateTimeOfImpact(btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual ~btSoftBodyConcaveCollisionAlgorithm()
For each triangle in the concave mesh that overlaps with the AABB of a soft body (m_softBody),...
const btCollisionObject * m_triBody
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)
const btDispatcherInfo * m_dispatchInfoPtr
btSoftBodyTriangleCallback(btDispatcher *dispatcher, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped)
btHashMap< btHashKey< btTriIndex >, btTriIndex > m_shapeCache
const btVector3 & getAabbMax() const
btScalar m_collisionMarginTriangle
btManifoldResult * m_resultOut
virtual ~btSoftBodyTriangleCallback()
const btVector3 & getAabbMin() const
void setTimeStepAndCounters(btScalar collisionMarginTriangle, const btCollisionObjectWrapper *triObjWrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
btDispatcher * m_dispatcher
The btSoftBody is an class to simulate cloth and volumetric soft bodies.
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
Used by the btCollisionDispatcher to register and create instances for btCollisionAlgorithm.
virtual btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
virtual btCollisionAlgorithm * CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
int getTriangleIndex() const
class btCollisionShape * m_childShape
btTriIndex(int partId, int triangleIndex, btCollisionShape *shape)
int m_PartIdTriangleIndex