Bullet Collision Detection & Physics Library: btDeformableMultiBodyDynamicsWorld Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
btDeformableMultiBodyDynamicsWorld Class Reference

`#include <btDeformableMultiBodyDynamicsWorld.h>`

Inheritance diagram for btDeformableMultiBodyDynamicsWorld:
[legend]
Collaboration diagram for btDeformableMultiBodyDynamicsWorld:
[legend]

## Classes
struct | btDeformableSingleRayCallback

## Public Member Functions
| btDeformableMultiBodyDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btDeformableMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration, btDeformableBodySolver *deformableBodySolver=0)
virtual int | stepSimulation (btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
| if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
virtual void | debugDrawWorld ()
void | setSolverCallback (btSolverCallback cb)
virtual | ~btDeformableMultiBodyDynamicsWorld ()
virtual btMultiBodyDynamicsWorld * | getMultiBodyDynamicsWorld ()
virtual const btMultiBodyDynamicsWorld * | getMultiBodyDynamicsWorld () const
virtual btDynamicsWorldType | getWorldType () const
virtual void | predictUnconstraintMotion (btScalar timeStep)
virtual void | addSoftBody (btSoftBody *body, int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter)
btSoftBodyArray & | getSoftBodyArray ()
const btSoftBodyArray & | getSoftBodyArray () const
btSoftBodyWorldInfo & | getWorldInfo ()
const btSoftBodyWorldInfo & | getWorldInfo () const
virtual void | setGravity (const btVector3 &gravity)
void | reinitialize (btScalar timeStep)
void | applyRigidBodyGravity (btScalar timeStep)
void | beforeSolverCallbacks (btScalar timeStep)
void | afterSolverCallbacks (btScalar timeStep)
void | addForce (btSoftBody *psb, btDeformableLagrangianForce *force)
void | removeForce (btSoftBody *psb, btDeformableLagrangianForce *force)
void | removeSoftBodyForce (btSoftBody *psb)
void | removeSoftBody (btSoftBody *body)
void | removeCollisionObject (btCollisionObject *collisionObject)
| removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject
int | getDrawFlags () const
void | setDrawFlags (int f)
void | setupConstraints ()
void | performDeformableCollisionDetection ()
void | solveMultiBodyConstraints ()
void | solveContactConstraints ()
void | sortConstraints ()
void | softBodySelfCollision ()
void | setImplicit (bool implicit)
void | setLineSearch (bool lineSearch)
void | setUseProjection (bool useProjection)
void | applyRepulsionForce (btScalar timeStep)
void | performGeometricCollisions (btScalar timeStep)
void | rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const
| rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.
void | rayTestSingle (const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, RayResultCallback &resultCallback) const
Public Member Functions inherited from btMultiBodyDynamicsWorld
| btMultiBodyDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
virtual | ~btMultiBodyDynamicsWorld ()
virtual void | solveConstraints (btContactSolverInfo &solverInfo)
virtual void | addMultiBody (btMultiBody *body, int group=btBroadphaseProxy::DefaultFilter, int mask=btBroadphaseProxy::AllFilter)
virtual void | removeMultiBody (btMultiBody *body)
virtual int | getNumMultibodies () const
btMultiBody * | getMultiBody (int mbIndex)
const btMultiBody * | getMultiBody (int mbIndex) const
virtual void | addMultiBodyConstraint (btMultiBodyConstraint *constraint)
virtual int | getNumMultiBodyConstraints () const
virtual btMultiBodyConstraint * | getMultiBodyConstraint (int constraintIndex)
virtual const btMultiBodyConstraint * | getMultiBodyConstraint (int constraintIndex) const
virtual void | removeMultiBodyConstraint (btMultiBodyConstraint *constraint)
void | integrateMultiBodyTransforms (btScalar timeStep)
void | predictMultiBodyTransforms (btScalar timeStep)
virtual void | debugDrawMultiBodyConstraint (btMultiBodyConstraint *constraint)
void | forwardKinematics ()
virtual void | clearForces ()
| the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
virtual void | clearMultiBodyConstraintForces ()
virtual void | clearMultiBodyForces ()
virtual void | applyGravity ()
| apply gravity, call this once per timestep
virtual void | serialize (btSerializer *serializer)
| Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)
virtual void | setMultiBodyConstraintSolver (btMultiBodyConstraintSolver *solver)
virtual void | setConstraintSolver (btConstraintSolver *solver)
virtual void | getAnalyticsData (btAlignedObjectArray< struct btSolverAnalyticsData > &m_islandAnalyticsData) const
virtual void | solveExternalForces (btContactSolverInfo &solverInfo)
virtual void | solveInternalConstraints (btContactSolverInfo &solverInfo)
void | buildIslands ()
virtual void | saveKinematicState (btScalar timeStep)
Public Member Functions inherited from btDiscreteDynamicsWorld
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btDiscreteDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
| this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those
virtual | ~btDiscreteDynamicsWorld ()
virtual void | synchronizeMotionStates ()
void | synchronizeSingleMotionState (btRigidBody *body)
| this can be useful to synchronize a single rigid body -> graphics object
virtual void | addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false)
virtual void | removeConstraint (btTypedConstraint *constraint)
virtual void | addAction (btActionInterface *)
virtual void | removeAction (btActionInterface *)
btSimulationIslandManager * | getSimulationIslandManager ()
const btSimulationIslandManager * | getSimulationIslandManager () const
btCollisionWorld * | getCollisionWorld ()
virtual btVector3 | getGravity () const
virtual void | addCollisionObject (btCollisionObject *collisionObject, int collisionFilterGroup=btBroadphaseProxy::StaticFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter)
virtual void | addRigidBody (btRigidBody *body)
virtual void | addRigidBody (btRigidBody *body, int group, int mask)
virtual void | removeRigidBody (btRigidBody *body)
virtual void | debugDrawConstraint (btTypedConstraint *constraint)
virtual btConstraintSolver * | getConstraintSolver ()
virtual int | getNumConstraints () const
virtual btTypedConstraint * | getConstraint (int index)
virtual const btTypedConstraint * | getConstraint (int index) const
virtual void | setNumTasks (int numTasks)
virtual void | updateVehicles (btScalar timeStep)
| obsolete, use updateActions instead
virtual void | addVehicle (btActionInterface *vehicle)
| obsolete, use addAction instead
virtual void | removeVehicle (btActionInterface *vehicle)
| obsolete, use removeAction instead
virtual void | addCharacter (btActionInterface *character)
| obsolete, use addAction instead
virtual void | removeCharacter (btActionInterface *character)
| obsolete, use removeAction instead
void | setSynchronizeAllMotionStates (bool synchronizeAll)
bool | getSynchronizeAllMotionStates () const
void | setApplySpeculativeContactRestitution (bool enable)
bool | getApplySpeculativeContactRestitution () const
void | setLatencyMotionStateInterpolation (bool latencyInterpolation)
| Interpolate motion state between previous and current transform, instead of current and next transform.
bool | getLatencyMotionStateInterpolation () const
btAlignedObjectArray< btRigidBody * > & | getNonStaticRigidBodies ()
const btAlignedObjectArray< btRigidBody * > & | getNonStaticRigidBodies () const
Public Member Functions inherited from btDynamicsWorld
| btDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphase, btCollisionConfiguration *collisionConfiguration)
virtual | ~btDynamicsWorld ()
void | setInternalTickCallback (btInternalTickCallback cb, void *worldUserInfo=0, bool isPreTick=false)
| Set the callback for when an internal tick (simulation substep) happens, optional user info.
void | setWorldUserInfo (void *worldUserInfo)
void * | getWorldUserInfo () const
btContactSolverInfo & | getSolverInfo ()
const btContactSolverInfo & | getSolverInfo () const
Public Member Functions inherited from btCollisionWorld
| btCollisionWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphasePairCache, btCollisionConfiguration *collisionConfiguration)
| for debug drawing
virtual | ~btCollisionWorld ()
void | setBroadphase (btBroadphaseInterface *pairCache)
const btBroadphaseInterface * | getBroadphase () const
btBroadphaseInterface * | getBroadphase ()
btOverlappingPairCache * | getPairCache ()
btDispatcher * | getDispatcher ()
const btDispatcher * | getDispatcher () const
void | updateSingleAabb (btCollisionObject *colObj)
virtual void | updateAabbs ()
virtual void | computeOverlappingPairs ()
| the computeOverlappingPairs is usually already called by performDiscreteCollisionDetection (or stepSimulation) it can be useful to use if you perform ray tests without collision detection/simulation
virtual void | setDebugDrawer (btIDebugDraw *debugDrawer)
virtual btIDebugDraw * | getDebugDrawer ()
virtual void | debugDrawObject (const btTransform &worldTransform, const btCollisionShape *shape, const btVector3 &color)
int | getNumCollisionObjects () const
void | convexSweepTest (const btConvexShape *castShape, const btTransform &from, const btTransform &to, ConvexResultCallback &resultCallback, btScalar allowedCcdPenetration=btScalar(0.)) const
| convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback.
void | contactTest (btCollisionObject *colObj, ContactResultCallback &resultCallback)
| contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback.
void | contactPairTest (btCollisionObject *colObjA, btCollisionObject *colObjB, ContactResultCallback &resultCallback)
| contactTest performs a discrete collision test between two collision objects and calls the resultCallback if overlap if detected.
virtual void | refreshBroadphaseProxy (btCollisionObject *collisionObject)
btCollisionObjectArray & | getCollisionObjectArray ()
const btCollisionObjectArray & | getCollisionObjectArray () const
virtual void | performDiscreteCollisionDetection ()
btDispatcherInfo & | getDispatchInfo ()
const btDispatcherInfo & | getDispatchInfo () const
bool | getForceUpdateAllAabbs () const
void | setForceUpdateAllAabbs (bool forceUpdateAllAabbs)

## Protected Member Functions
virtual void | internalSingleStepSimulation (btScalar timeStep)
virtual void | integrateTransforms (btScalar timeStep)
void | positionCorrection (btScalar timeStep)
void | solveConstraints (btScalar timeStep)
void | updateActivationState (btScalar timeStep)
void | clearGravity ()
Protected Member Functions inherited from btMultiBodyDynamicsWorld
virtual void | calculateSimulationIslands ()
virtual void | serializeMultiBodies (btSerializer *serializer)
Protected Member Functions inherited from btDiscreteDynamicsWorld
void | integrateTransformsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep)
void | updateActions (btScalar timeStep)
void | startProfiling (btScalar timeStep)
void | releasePredictiveContacts ()
void | createPredictiveContactsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep)
virtual void | createPredictiveContacts (btScalar timeStep)
void | serializeRigidBodies (btSerializer *serializer)
void | serializeDynamicsWorldInfo (btSerializer *serializer)
Protected Member Functions inherited from btCollisionWorld
void | serializeCollisionObjects (btSerializer *serializer)
void | serializeContactManifolds (btSerializer *serializer)

## Private Types
typedef btAlignedObjectArray< btVector3 > | TVStack
typedef void(*) | btSolverCallback(btScalar time, btDeformableMultiBodyDynamicsWorld *world)

## Private Attributes
btDeformableBodySolver * | m_deformableBodySolver
| Solver classes that encapsulate multiple deformable bodies for solving.
btSoftBodyArray | m_softBodies
int | m_drawFlags
bool | m_drawNodeTree
bool | m_drawFaceTree
bool | m_drawClusterTree
btSoftBodyWorldInfo | m_sbi
btScalar | m_internalTime
int | m_ccdIterations
bool | m_implicit
bool | m_lineSearch
bool | m_useProjection
DeformableBodyInplaceSolverIslandCallback * | m_solverDeformableBodyIslandCallback
btSolverCallback | m_solverCallback

## Additional Inherited Members
Static Public Member Functions inherited from btCollisionWorld
static void | rayTestSingle (const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, RayResultCallback &resultCallback)
| rayTestSingle performs a raycast call and calls the resultCallback.
static void | rayTestSingleInternal (const btTransform &rayFromTrans, const btTransform &rayToTrans, const btCollisionObjectWrapper *collisionObjectWrap, RayResultCallback &resultCallback)
static void | objectQuerySingle (const btConvexShape *castShape, const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, ConvexResultCallback &resultCallback, btScalar allowedPenetration)
| objectQuerySingle performs a collision detection query and calls the resultCallback. It is used internally by rayTest.
static void | objectQuerySingleInternal (const btConvexShape *castShape, const btTransform &convexFromTrans, const btTransform &convexToTrans, const btCollisionObjectWrapper *colObjWrap, ConvexResultCallback &resultCallback, btScalar allowedPenetration)
Protected Attributes inherited from btMultiBodyDynamicsWorld
btAlignedObjectArray< btMultiBody * > | m_multiBodies
btAlignedObjectArray< btMultiBodyConstraint * > | m_multiBodyConstraints
btAlignedObjectArray< btMultiBodyConstraint * > | m_sortedMultiBodyConstraints
btMultiBodyConstraintSolver * | m_multiBodyConstraintSolver
MultiBodyInplaceSolverIslandCallback * | m_solverMultiBodyIslandCallback
btAlignedObjectArray< btQuaternion > | m_scratch_world_to_local
btAlignedObjectArray< btVector3 > | m_scratch_local_origin
btAlignedObjectArray< btQuaternion > | m_scratch_world_to_local1
btAlignedObjectArray< btVector3 > | m_scratch_local_origin1
btAlignedObjectArray< btScalar > | m_scratch_r
btAlignedObjectArray< btVector3 > | m_scratch_v
btAlignedObjectArray< btMatrix3x3 > | m_scratch_m
Protected Attributes inherited from btDiscreteDynamicsWorld
btAlignedObjectArray< btTypedConstraint * > | m_sortedConstraints
InplaceSolverIslandCallback * | m_solverIslandCallback
btConstraintSolver * | m_constraintSolver
btSimulationIslandManager * | m_islandManager
btAlignedObjectArray< btTypedConstraint * > | m_constraints
btAlignedObjectArray< btRigidBody * > | m_nonStaticRigidBodies
btVector3 | m_gravity
btScalar | m_localTime
btScalar | m_fixedTimeStep
bool | m_ownsIslandManager
bool | m_ownsConstraintSolver
bool | m_synchronizeAllMotionStates
bool | m_applySpeculativeContactRestitution
btAlignedObjectArray< btActionInterface * > | m_actions
int | m_profileTimings
bool | m_latencyMotionStateInterpolation
btAlignedObjectArray< btPersistentManifold * > | m_predictiveManifolds
btSpinMutex | m_predictiveManifoldsMutex
Protected Attributes inherited from btDynamicsWorld
btInternalTickCallback | m_internalTickCallback
btInternalTickCallback | m_internalPreTickCallback
void * | m_worldUserInfo
btContactSolverInfo | m_solverInfo
Protected Attributes inherited from btCollisionWorld
btAlignedObjectArray< btCollisionObject * > | m_collisionObjects
btDispatcher * | m_dispatcher1
btDispatcherInfo | m_dispatchInfo
btBroadphaseInterface * | m_broadphasePairCache
btIDebugDraw * | m_debugDrawer
bool | m_forceUpdateAllAabbs
| m_forceUpdateAllAabbs can be set to false as an optimization to only update active object AABBs it is true by default, because it is error-prone (setting the position of static objects wouldn't update their AABB)

## Detailed Description

Definition at line 37 of file btDeformableMultiBodyDynamicsWorld.h.

## Member Typedef Documentation

## ◆ btSolverCallback

void(*) btDeformableMultiBodyDynamicsWorld::btSolverCallback(btScalar time, btDeformableMultiBodyDynamicsWorld *world)
| private

Definition at line 55 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ TVStack

btAlignedObjectArray<btVector3> btDeformableMultiBodyDynamicsWorld::TVStack
| private

Definition at line 39 of file btDeformableMultiBodyDynamicsWorld.h.

## Constructor & Destructor Documentation

## ◆ btDeformableMultiBodyDynamicsWorld()

btDeformableMultiBodyDynamicsWorld::btDeformableMultiBodyDynamicsWorld | ( | btDispatcher * | dispatcher,
|  | btBroadphaseInterface * | pairCache,
|  | btDeformableMultiBodyConstraintSolver * | constraintSolver,
|  | btCollisionConfiguration * | collisionConfiguration,
|  | btDeformableBodySolver * | deformableBodySolver = 0 )

Definition at line 42 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ ~btDeformableMultiBodyDynamicsWorld()

btDeformableMultiBodyDynamicsWorld::~btDeformableMultiBodyDynamicsWorld | ( |  | ) |
| virtual

Definition at line 70 of file btDeformableMultiBodyDynamicsWorld.cpp.

## Member Function Documentation

## ◆ addForce()

void btDeformableMultiBodyDynamicsWorld::addForce | ( | btSoftBody * | psb,
|  | btDeformableLagrangianForce * | force )

Definition at line 613 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ addSoftBody()

void btDeformableMultiBodyDynamicsWorld::addSoftBody | ( | btSoftBody * | body,
|  | int | collisionFilterGroup = btBroadphaseProxy::DefaultFilter,
|  | int | collisionFilterMask = btBroadphaseProxy::AllFilter )
| virtual

Definition at line 426 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ afterSolverCallbacks()

void btDeformableMultiBodyDynamicsWorld::afterSolverCallbacks | ( | btScalar | timeStep | ) |

Definition at line 605 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ applyRepulsionForce()

void btDeformableMultiBodyDynamicsWorld::applyRepulsionForce | ( | btScalar | timeStep | ) |

Definition at line 163 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ applyRigidBodyGravity()

void btDeformableMultiBodyDynamicsWorld::applyRigidBodyGravity | ( | btScalar | timeStep | ) |

Definition at line 491 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ beforeSolverCallbacks()

void btDeformableMultiBodyDynamicsWorld::beforeSolverCallbacks | ( | btScalar | timeStep | ) |

Definition at line 592 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ clearGravity()

void btDeformableMultiBodyDynamicsWorld::clearGravity | ( |  | ) |
| protected

Definition at line 551 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ debugDrawWorld()

void btDeformableMultiBodyDynamicsWorld::debugDrawWorld | ( |  | ) |
| virtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 477 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ getDrawFlags()

int btDeformableMultiBodyDynamicsWorld::getDrawFlags | ( |  | ) | const
| inline

Definition at line 144 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getMultiBodyDynamicsWorld() [1/2]

virtual btMultiBodyDynamicsWorld * btDeformableMultiBodyDynamicsWorld::getMultiBodyDynamicsWorld | ( |  | ) |
| inlinevirtual

Definition at line 85 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getMultiBodyDynamicsWorld() [2/2]

virtual const btMultiBodyDynamicsWorld * btDeformableMultiBodyDynamicsWorld::getMultiBodyDynamicsWorld | ( |  | ) | const
| inlinevirtual

Definition at line 90 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getSoftBodyArray() [1/2]

btSoftBodyArray & btDeformableMultiBodyDynamicsWorld::getSoftBodyArray | ( |  | ) |
| inline

Definition at line 104 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getSoftBodyArray() [2/2]

const btSoftBodyArray & btDeformableMultiBodyDynamicsWorld::getSoftBodyArray | ( |  | ) | const
| inline

Definition at line 109 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getWorldInfo() [1/2]

btSoftBodyWorldInfo & btDeformableMultiBodyDynamicsWorld::getWorldInfo | ( |  | ) |
| inline

Definition at line 114 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getWorldInfo() [2/2]

const btSoftBodyWorldInfo & btDeformableMultiBodyDynamicsWorld::getWorldInfo | ( |  | ) | const
| inline

Definition at line 119 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ getWorldType()

virtual btDynamicsWorldType btDeformableMultiBodyDynamicsWorld::getWorldType | ( |  | ) | const
| inlinevirtual

Reimplemented from btDiscreteDynamicsWorld.

Definition at line 95 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ integrateTransforms()

void btDeformableMultiBodyDynamicsWorld::integrateTransforms | ( | btScalar | timeStep | ) |
| protectedvirtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 296 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ internalSingleStepSimulation()

void btDeformableMultiBodyDynamicsWorld::internalSingleStepSimulation | ( | btScalar | timeStep | ) |
| protectedvirtual

apply gravity and explicit force to velocity, predict motion

perform collision detection that involves rigid/multi bodies

update vehicle simulation

Reimplemented from btDiscreteDynamicsWorld.

Definition at line 75 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ performDeformableCollisionDetection()

void btDeformableMultiBodyDynamicsWorld::performDeformableCollisionDetection | ( |  | ) |

Definition at line 118 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ performGeometricCollisions()

void btDeformableMultiBodyDynamicsWorld::performGeometricCollisions | ( | btScalar | timeStep | ) |

Definition at line 176 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ positionCorrection()

void btDeformableMultiBodyDynamicsWorld::positionCorrection | ( | btScalar | timeStep | ) |
| protected

Definition at line 274 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ predictUnconstraintMotion()

void btDeformableMultiBodyDynamicsWorld::predictUnconstraintMotion | ( | btScalar | timeStep | ) |
| virtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 439 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ rayTest()

void btDeformableMultiBodyDynamicsWorld::rayTest | ( | const btVector3 & | rayFromWorld,
|  | const btVector3 & | rayToWorld,
|  | RayResultCallback & | resultCallback ) const
| inlinevirtual

rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.

use the broadphase to accelerate the search for objects, based on their aabb and for each object with ray-aabb overlap, perform an exact ray test

use the broadphase to accelerate the search for objects, based on their aabb and for each object with ray-aabb overlap, perform an exact ray test

Reimplemented from btCollisionWorld.

Definition at line 252 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ rayTestSingle()

void btDeformableMultiBodyDynamicsWorld::rayTestSingle | ( | const btTransform & | rayFromTrans,
|  | const btTransform & | rayToTrans,
|  | btCollisionObject * | collisionObject,
|  | const btCollisionShape * | collisionShape,
|  | const btTransform & | colObjWorldTransform,
|  | RayResultCallback & | resultCallback ) const
| inline

Definition at line 269 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ reinitialize()

void btDeformableMultiBodyDynamicsWorld::reinitialize | ( | btScalar | timeStep | ) |

Definition at line 452 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ removeCollisionObject()

void btDeformableMultiBodyDynamicsWorld::removeCollisionObject | ( | btCollisionObject * | collisionObject | ) |
| virtual

removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject

Reimplemented from btDiscreteDynamicsWorld.

Definition at line 670 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ removeForce()

void btDeformableMultiBodyDynamicsWorld::removeForce | ( | btSoftBody * | psb,
|  | btDeformableLagrangianForce * | force )

Definition at line 634 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ removeSoftBody()

void btDeformableMultiBodyDynamicsWorld::removeSoftBody | ( | btSoftBody * | body | ) |

Definition at line 661 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ removeSoftBodyForce()

void btDeformableMultiBodyDynamicsWorld::removeSoftBodyForce | ( | btSoftBody * | psb | ) |

Definition at line 652 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ setDrawFlags()

void btDeformableMultiBodyDynamicsWorld::setDrawFlags | ( | int | f | ) |
| inline

Definition at line 145 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ setGravity()

void btDeformableMultiBodyDynamicsWorld::setGravity | ( | const btVector3 & | gravity | ) |
| virtual

Reimplemented from btDiscreteDynamicsWorld.

Definition at line 446 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ setImplicit()

void btDeformableMultiBodyDynamicsWorld::setImplicit | ( | bool | implicit | ) |
| inline

Definition at line 159 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ setLineSearch()

void btDeformableMultiBodyDynamicsWorld::setLineSearch | ( | bool | lineSearch | ) |
| inline

Definition at line 164 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ setSolverCallback()

void btDeformableMultiBodyDynamicsWorld::setSolverCallback | ( | btSolverCallback | cb | ) |
| inline

Definition at line 78 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ setupConstraints()

void btDeformableMultiBodyDynamicsWorld::setupConstraints | ( |  | ) |

Definition at line 332 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ setUseProjection()

void btDeformableMultiBodyDynamicsWorld::setUseProjection | ( | bool | useProjection | ) |
| inline

Definition at line 169 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ softBodySelfCollision()

void btDeformableMultiBodyDynamicsWorld::softBodySelfCollision | ( |  | ) |

Definition at line 261 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ solveConstraints()

void btDeformableMultiBodyDynamicsWorld::solveConstraints | ( | btScalar | timeStep | ) |
| protected

Definition at line 304 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ solveContactConstraints()

void btDeformableMultiBodyDynamicsWorld::solveContactConstraints | ( |  | ) |

Definition at line 368 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ solveMultiBodyConstraints()

void btDeformableMultiBodyDynamicsWorld::solveMultiBodyConstraints | ( |  | ) |

## ◆ sortConstraints()

void btDeformableMultiBodyDynamicsWorld::sortConstraints | ( |  | ) |

Definition at line 350 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ stepSimulation()

int btDeformableMultiBodyDynamicsWorld::stepSimulation | ( | btScalar | timeStep,
|  | int | maxSubSteps = 1,
|  | btScalar | fixedTimeStep = btScalar(1.) / btScalar(60.) )
| virtual

if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's

Reimplemented from btDiscreteDynamicsWorld.

Definition at line 679 of file btDeformableMultiBodyDynamicsWorld.cpp.

## ◆ updateActivationState()

void btDeformableMultiBodyDynamicsWorld::updateActivationState | ( | btScalar | timeStep | ) |
| protectedvirtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 139 of file btDeformableMultiBodyDynamicsWorld.cpp.

## Member Data Documentation

## ◆ m_ccdIterations

int btDeformableMultiBodyDynamicsWorld::m_ccdIterations
| private

Definition at line 49 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_deformableBodySolver

btDeformableBodySolver* btDeformableMultiBodyDynamicsWorld::m_deformableBodySolver
| private

Solver classes that encapsulate multiple deformable bodies for solving.

Definition at line 41 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_drawClusterTree

bool btDeformableMultiBodyDynamicsWorld::m_drawClusterTree
| private

Definition at line 46 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_drawFaceTree

bool btDeformableMultiBodyDynamicsWorld::m_drawFaceTree
| private

Definition at line 45 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_drawFlags

int btDeformableMultiBodyDynamicsWorld::m_drawFlags
| private

Definition at line 43 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_drawNodeTree

bool btDeformableMultiBodyDynamicsWorld::m_drawNodeTree
| private

Definition at line 44 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_implicit

bool btDeformableMultiBodyDynamicsWorld::m_implicit
| private

Definition at line 50 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_internalTime

btScalar btDeformableMultiBodyDynamicsWorld::m_internalTime
| private

Definition at line 48 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_lineSearch

bool btDeformableMultiBodyDynamicsWorld::m_lineSearch
| private

Definition at line 51 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_sbi

btSoftBodyWorldInfo btDeformableMultiBodyDynamicsWorld::m_sbi
| private

Definition at line 47 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_softBodies

btSoftBodyArray btDeformableMultiBodyDynamicsWorld::m_softBodies
| private

Definition at line 42 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_solverCallback

btSolverCallback btDeformableMultiBodyDynamicsWorld::m_solverCallback
| private

Definition at line 56 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_solverDeformableBodyIslandCallback

DeformableBodyInplaceSolverIslandCallback* btDeformableMultiBodyDynamicsWorld::m_solverDeformableBodyIslandCallback
| private

Definition at line 53 of file btDeformableMultiBodyDynamicsWorld.h.

## ◆ m_useProjection

bool btDeformableMultiBodyDynamicsWorld::m_useProjection
| private

Definition at line 52 of file btDeformableMultiBodyDynamicsWorld.h.

The documentation for this class was generated from the following files:

- btDeformableMultiBodyDynamicsWorld.h
- btDeformableMultiBodyDynamicsWorld.cpp