Bullet Collision Detection & Physics Library
DeformableBodyInplaceSolverIslandCallback.h
Go to the documentation of this file.
1 //
2 // DeformableBodyInplaceSolverIslandCallback.h
3 // BulletSoftBody
4 //
5 // Created by Xuchen Han on 12/16/19.
6 //
7 
8 #ifndef DeformableBodyInplaceSolverIslandCallback_h
9 #define DeformableBodyInplaceSolverIslandCallback_h
10 
12 {
14 
16  btDispatcher* dispatcher)
17  : MultiBodyInplaceSolverIslandCallback(solver, dispatcher), m_deformableSolver(solver)
18  {
19  }
20 
21 
22  virtual void processConstraints(int islandId=-1)
23  {
24  btCollisionObject** bodies = m_bodies.size() ? &m_bodies[0] : 0;
25  btCollisionObject** softBodies = m_softBodies.size() ? &m_softBodies[0] : 0;
26  btPersistentManifold** manifold = m_manifolds.size() ? &m_manifolds[0] : 0;
27  btTypedConstraint** constraints = m_constraints.size() ? &m_constraints[0] : 0;
28  btMultiBodyConstraint** multiBodyConstraints = m_multiBodyConstraints.size() ? &m_multiBodyConstraints[0] : 0;
29 
30  //printf("mb contacts = %d, mb constraints = %d\n", mbContacts, m_multiBodyConstraints.size());
31 
34  {
37  }
38  m_bodies.resize(0);
43  }
44 };
45 
46 #endif /* DeformableBodyInplaceSolverIslandCallback_h */
btTypedConstraint
TypedConstraint is the baseclass for Bullet constraints and vehicles.
Definition: btTypedConstraint.h:74
btCollisionObject
btCollisionObject can be used to manage collision detection objects.
Definition: btCollisionObject.h:48
MultiBodyInplaceSolverIslandCallback::m_multiBodyConstraints
btAlignedObjectArray< btMultiBodyConstraint * > m_multiBodyConstraints
Definition: btMultiBodyInplaceSolverIslandCallback.h:82
btDispatcher
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
Definition: btDispatcher.h:76
btMultiBodyConstraint
Definition: btMultiBodyConstraint.h:40
DeformableBodyInplaceSolverIslandCallback::DeformableBodyInplaceSolverIslandCallback
DeformableBodyInplaceSolverIslandCallback(btDeformableMultiBodyConstraintSolver *solver, btDispatcher *dispatcher)
Definition: DeformableBodyInplaceSolverIslandCallback.h:15
DeformableBodyInplaceSolverIslandCallback::processConstraints
virtual void processConstraints(int islandId=-1)
Definition: DeformableBodyInplaceSolverIslandCallback.h:22
btSolverAnalyticsData::m_islandId
int m_islandId
Definition: btSequentialImpulseConstraintSolver.h:41
MultiBodyInplaceSolverIslandCallback::m_manifolds
btAlignedObjectArray< btPersistentManifold * > m_manifolds
Definition: btMultiBodyInplaceSolverIslandCallback.h:80
MultiBodyInplaceSolverIslandCallback
Definition: btMultiBodyInplaceSolverIslandCallback.h:65
MultiBodyInplaceSolverIslandCallback::m_softBodies
btAlignedObjectArray< btCollisionObject * > m_softBodies
Definition: btMultiBodyInplaceSolverIslandCallback.h:79
btAlignedObjectArray::resize
void resize(int newsize, const T &fillData=T())
Definition: btAlignedObjectArray.h:203
MultiBodyInplaceSolverIslandCallback::m_debugDrawer
btIDebugDraw * m_debugDrawer
Definition: btMultiBodyInplaceSolverIslandCallback.h:75
MultiBodyInplaceSolverIslandCallback::m_bodies
btAlignedObjectArray< btCollisionObject * > m_bodies
Definition: btMultiBodyInplaceSolverIslandCallback.h:78
btContactSolverInfoData::m_reportSolverAnalytics
int m_reportSolverAnalytics
Definition: btContactSolverInfo.h:69
btSequentialImpulseConstraintSolver::m_analyticsData
btSolverAnalyticsData m_analyticsData
Definition: btSequentialImpulseConstraintSolver.h:212
btDeformableMultiBodyConstraintSolver::solveDeformableBodyGroup
virtual void solveDeformableBodyGroup(btCollisionObject **bodies, int numBodies, btCollisionObject **deformableBodies, int numDeformableBodies, btPersistentManifold **manifold, int numManifolds, btTypedConstraint **constraints, int numConstraints, btMultiBodyConstraint **multiBodyConstraints, int numMultiBodyConstraints, const btContactSolverInfo &info, btIDebugDraw *debugDrawer, btDispatcher *dispatcher)
Definition: btDeformableMultiBodyConstraintSolver.cpp:61
btPersistentManifold
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
Definition: btPersistentManifold.h:63
MultiBodyInplaceSolverIslandCallback::m_dispatcher
btDispatcher * m_dispatcher
Definition: btMultiBodyInplaceSolverIslandCallback.h:76
MultiBodyInplaceSolverIslandCallback::m_islandAnalyticsData
btAlignedObjectArray< btSolverAnalyticsData > m_islandAnalyticsData
Definition: btMultiBodyInplaceSolverIslandCallback.h:84
MultiBodyInplaceSolverIslandCallback::m_constraints
btAlignedObjectArray< btTypedConstraint * > m_constraints
Definition: btMultiBodyInplaceSolverIslandCallback.h:81
btDeformableMultiBodyConstraintSolver
Definition: btDeformableMultiBodyConstraintSolver.h:32
DeformableBodyInplaceSolverIslandCallback::m_deformableSolver
btDeformableMultiBodyConstraintSolver * m_deformableSolver
Definition: DeformableBodyInplaceSolverIslandCallback.h:13
btAlignedObjectArray::push_back
void push_back(const T &_Val)
Definition: btAlignedObjectArray.h:257
MultiBodyInplaceSolverIslandCallback::m_solver
btMultiBodyConstraintSolver * m_solver
Definition: btMultiBodyInplaceSolverIslandCallback.h:69
DeformableBodyInplaceSolverIslandCallback
Definition: DeformableBodyInplaceSolverIslandCallback.h:11
MultiBodyInplaceSolverIslandCallback::m_solverInfo
btContactSolverInfo * m_solverInfo
Definition: btMultiBodyInplaceSolverIslandCallback.h:68
btAlignedObjectArray::size
int size() const
return the number of elements in the array
Definition: btAlignedObjectArray.h:142