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