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 btMultiBodyDynamicsWorldgetMultiBodyDynamicsWorld ()
 
virtual const btMultiBodyDynamicsWorldgetMultiBodyDynamicsWorld () const
 
virtual btDynamicsWorldType getWorldType () const
 
virtual void predictUnconstraintMotion (btScalar timeStep)
 
virtual void addSoftBody (btSoftBody *body, int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter)
 
btSoftBodyArraygetSoftBodyArray ()
 
const btSoftBodyArraygetSoftBodyArray () const
 
btSoftBodyWorldInfogetWorldInfo ()
 
const btSoftBodyWorldInfogetWorldInfo () 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
 
btMultiBodygetMultiBody (int mbIndex)
 
const btMultiBodygetMultiBody (int mbIndex) const
 
virtual void addMultiBodyConstraint (btMultiBodyConstraint *constraint)
 
virtual int getNumMultiBodyConstraints () const
 
virtual btMultiBodyConstraintgetMultiBodyConstraint (int constraintIndex)
 
virtual const btMultiBodyConstraintgetMultiBodyConstraint (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
 
MultiBodyInplaceSolverIslandCallbackm_solverMultiBodyIslandCallback
 
btAlignedObjectArray< btQuaternionm_scratch_world_to_local
 
btAlignedObjectArray< btVector3m_scratch_local_origin
 
btAlignedObjectArray< btQuaternionm_scratch_world_to_local1
 
btAlignedObjectArray< btVector3m_scratch_local_origin1
 
btAlignedObjectArray< btScalarm_scratch_r
 
btAlignedObjectArray< btVector3m_scratch_v
 
btAlignedObjectArray< btMatrix3x3m_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: