Blender  V3.3
Classes | Public Member Functions | Protected Member Functions | List of all members
btDeformableMultiBodyDynamicsWorld Class Reference

#include <btDeformableMultiBodyDynamicsWorld.h>

Inheritance diagram for btDeformableMultiBodyDynamicsWorld:
btMultiBodyDynamicsWorld

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.))
 
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
 
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)
 
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
 
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 ()
 
virtual void clearMultiBodyConstraintForces ()
 
virtual void clearMultiBodyForces ()
 
virtual void applyGravity ()
 
virtual void serialize (btSerializer *serializer)
 
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 ()
 

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)
 

Additional Inherited Members

- 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
 

Detailed Description

Definition at line 37 of file btDeformableMultiBodyDynamicsWorld.h.

Constructor & Destructor Documentation

◆ btDeformableMultiBodyDynamicsWorld()

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

◆ ~btDeformableMultiBodyDynamicsWorld()

btDeformableMultiBodyDynamicsWorld::~btDeformableMultiBodyDynamicsWorld ( )
virtual

Definition at line 70 of file btDeformableMultiBodyDynamicsWorld.cpp.

Member Function Documentation

◆ addForce()

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

◆ addSoftBody()

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

◆ afterSolverCallbacks()

void btDeformableMultiBodyDynamicsWorld::afterSolverCallbacks ( btScalar  timeStep)

◆ applyRepulsionForce()

void btDeformableMultiBodyDynamicsWorld::applyRepulsionForce ( btScalar  timeStep)

◆ applyRigidBodyGravity()

void btDeformableMultiBodyDynamicsWorld::applyRigidBodyGravity ( btScalar  timeStep)

◆ beforeSolverCallbacks()

void btDeformableMultiBodyDynamicsWorld::beforeSolverCallbacks ( btScalar  timeStep)

◆ clearGravity()

void btDeformableMultiBodyDynamicsWorld::clearGravity ( )
protected

◆ debugDrawWorld()

void btDeformableMultiBodyDynamicsWorld::debugDrawWorld ( )
virtual

◆ getDrawFlags()

int btDeformableMultiBodyDynamicsWorld::getDrawFlags ( ) const
inline

Definition at line 142 of file btDeformableMultiBodyDynamicsWorld.h.

Referenced by debugDrawWorld().

◆ 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.

Referenced by debugDrawWorld().

◆ 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

◆ integrateTransforms()

void btDeformableMultiBodyDynamicsWorld::integrateTransforms ( btScalar  timeStep)
protectedvirtual

◆ internalSingleStepSimulation()

void btDeformableMultiBodyDynamicsWorld::internalSingleStepSimulation ( btScalar  timeStep)
protectedvirtual

apply gravity and explicit force to velocity, predict motion

perform collision detection that involves rigid/multi bodies

solve contact constraints and then deformable bodies momemtum equation

update vehicle simulation

Definition at line 75 of file btDeformableMultiBodyDynamicsWorld.cpp.

References afterSolverCallbacks(), applyRepulsionForce(), applyRigidBodyGravity(), beforeSolverCallbacks(), BT_PROFILE, btMultiBodyDynamicsWorld::calculateSimulationIslands(), integrateTransforms(), performDeformableCollisionDetection(), performGeometricCollisions(), predictUnconstraintMotion(), reinitialize(), solveConstraints(), updateActions(), and updateActivationState().

Referenced by stepSimulation().

◆ performDeformableCollisionDetection()

void btDeformableMultiBodyDynamicsWorld::performDeformableCollisionDetection ( )

◆ performGeometricCollisions()

void btDeformableMultiBodyDynamicsWorld::performGeometricCollisions ( btScalar  timeStep)

◆ positionCorrection()

void btDeformableMultiBodyDynamicsWorld::positionCorrection ( btScalar  timeStep)
protected

◆ predictUnconstraintMotion()

void btDeformableMultiBodyDynamicsWorld::predictUnconstraintMotion ( btScalar  timeStep)
virtual

◆ rayTest()

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

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

Definition at line 250 of file btDeformableMultiBodyDynamicsWorld.h.

References BT_PROFILE, getBroadphaseHandle(), and btDeformableMultiBodyDynamicsWorld::btDeformableSingleRayCallback::process().

◆ rayTestSingle()

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

◆ reinitialize()

void btDeformableMultiBodyDynamicsWorld::reinitialize ( btScalar  timeStep)

◆ removeCollisionObject()

void btDeformableMultiBodyDynamicsWorld::removeCollisionObject ( btCollisionObject *  collisionObject)

◆ removeForce()

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

◆ removeSoftBody()

void btDeformableMultiBodyDynamicsWorld::removeSoftBody ( btSoftBody *  body)

◆ removeSoftBodyForce()

void btDeformableMultiBodyDynamicsWorld::removeSoftBodyForce ( btSoftBody *  psb)

◆ setDrawFlags()

void btDeformableMultiBodyDynamicsWorld::setDrawFlags ( int  f)
inline

Definition at line 143 of file btDeformableMultiBodyDynamicsWorld.h.

◆ setImplicit()

void btDeformableMultiBodyDynamicsWorld::setImplicit ( bool  implicit)
inline

Definition at line 157 of file btDeformableMultiBodyDynamicsWorld.h.

◆ setLineSearch()

void btDeformableMultiBodyDynamicsWorld::setLineSearch ( bool  lineSearch)
inline

Definition at line 162 of file btDeformableMultiBodyDynamicsWorld.h.

◆ setSolverCallback()

void btDeformableMultiBodyDynamicsWorld::setSolverCallback ( btSolverCallback  cb)
inline

Definition at line 78 of file btDeformableMultiBodyDynamicsWorld.h.

◆ setupConstraints()

void btDeformableMultiBodyDynamicsWorld::setupConstraints ( )

◆ setUseProjection()

void btDeformableMultiBodyDynamicsWorld::setUseProjection ( bool  useProjection)
inline

Definition at line 167 of file btDeformableMultiBodyDynamicsWorld.h.

◆ softBodySelfCollision()

void btDeformableMultiBodyDynamicsWorld::softBodySelfCollision ( )

◆ solveConstraints()

void btDeformableMultiBodyDynamicsWorld::solveConstraints ( btScalar  timeStep)
protected

◆ solveContactConstraints()

void btDeformableMultiBodyDynamicsWorld::solveContactConstraints ( )

◆ solveMultiBodyConstraints()

void btDeformableMultiBodyDynamicsWorld::solveMultiBodyConstraints ( )

◆ sortConstraints()

void btDeformableMultiBodyDynamicsWorld::sortConstraints ( )

◆ stepSimulation()

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

◆ updateActivationState()

void btDeformableMultiBodyDynamicsWorld::updateActivationState ( btScalar  timeStep)
protectedvirtual

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