Blender V5.0
btSoftMultiBodyDynamicsWorld Class Reference

#include <btSoftMultiBodyDynamicsWorld.h>

Inherits btMultiBodyDynamicsWorld.

Public Member Functions

 btSoftMultiBodyDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration, btSoftBodySolver *softBodySolver=0)
virtual ~btSoftMultiBodyDynamicsWorld ()
virtual void debugDrawWorld ()
void addSoftBody (btSoftBody *body, int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter)
void removeSoftBody (btSoftBody *body)
virtual void removeCollisionObject (btCollisionObject *collisionObject)
 removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btDiscreteDynamicsWorld::removeCollisionObject
int getDrawFlags () const
void setDrawFlags (int f)
btSoftBodyWorldInfogetWorldInfo ()
const btSoftBodyWorldInfogetWorldInfo () const
virtual btDynamicsWorldType getWorldType () const
btSoftBodyArraygetSoftBodyArray ()
const btSoftBodyArraygetSoftBodyArray () const
virtual void rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const
virtual void serialize (btSerializer *serializer)
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)
virtual void integrateTransforms (btScalar timeStep)
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 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 ()

Static Public Member Functions

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

Protected Member Functions

virtual void predictUnconstraintMotion (btScalar timeStep)
virtual void internalSingleStepSimulation (btScalar timeStep)
void solveSoftBodiesConstraints (btScalar timeStep)
void serializeSoftBodies (btSerializer *serializer)
Protected Member Functions inherited from btMultiBodyDynamicsWorld
virtual void calculateSimulationIslands ()
virtual void updateActivationState (btScalar timeStep)
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 29 of file btSoftMultiBodyDynamicsWorld.h.

Constructor & Destructor Documentation

◆ btSoftMultiBodyDynamicsWorld()

btSoftMultiBodyDynamicsWorld::btSoftMultiBodyDynamicsWorld ( btDispatcher * dispatcher,
btBroadphaseInterface * pairCache,
btMultiBodyConstraintSolver * constraintSolver,
btCollisionConfiguration * collisionConfiguration,
btSoftBodySolver * softBodySolver = 0 )

◆ ~btSoftMultiBodyDynamicsWorld()

btSoftMultiBodyDynamicsWorld::~btSoftMultiBodyDynamicsWorld ( )
virtual

Definition at line 60 of file btSoftMultiBodyDynamicsWorld.cpp.

References btAlignedFree.

Member Function Documentation

◆ addSoftBody()

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

◆ debugDrawWorld()

◆ getDrawFlags()

int btSoftMultiBodyDynamicsWorld::getDrawFlags ( ) const
inline

Definition at line 64 of file btSoftMultiBodyDynamicsWorld.h.

◆ getSoftBodyArray() [1/2]

btSoftBodyArray & btSoftMultiBodyDynamicsWorld::getSoftBodyArray ( )
inline

Definition at line 81 of file btSoftMultiBodyDynamicsWorld.h.

Referenced by internalSingleStepSimulation().

◆ getSoftBodyArray() [2/2]

const btSoftBodyArray & btSoftMultiBodyDynamicsWorld::getSoftBodyArray ( ) const
inline

Definition at line 86 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldInfo() [1/2]

btSoftBodyWorldInfo & btSoftMultiBodyDynamicsWorld::getWorldInfo ( )
inline

Definition at line 67 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldInfo() [2/2]

const btSoftBodyWorldInfo & btSoftMultiBodyDynamicsWorld::getWorldInfo ( ) const
inline

Definition at line 71 of file btSoftMultiBodyDynamicsWorld.h.

◆ getWorldType()

virtual btDynamicsWorldType btSoftMultiBodyDynamicsWorld::getWorldType ( ) const
inlinevirtual

Definition at line 76 of file btSoftMultiBodyDynamicsWorld.h.

References BT_SOFT_MULTIBODY_DYNAMICS_WORLD.

◆ internalSingleStepSimulation()

void btSoftMultiBodyDynamicsWorld::internalSingleStepSimulation ( btScalar timeStep)
protectedvirtual

solve soft bodies constraints

update soft bodies

Definition at line 78 of file btSoftMultiBodyDynamicsWorld.cpp.

References btAssert, btSoftBody::defaultCollisionHandler(), getSoftBodyArray(), i, and solveSoftBodiesConstraints().

◆ predictUnconstraintMotion()

void btSoftMultiBodyDynamicsWorld::predictUnconstraintMotion ( btScalar timeStep)
protectedvirtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 69 of file btSoftMultiBodyDynamicsWorld.cpp.

References BT_PROFILE.

◆ rayTest()

void btSoftMultiBodyDynamicsWorld::rayTest ( const btVector3 & rayFromWorld,
const btVector3 & rayToWorld,
RayResultCallback & resultCallback ) const
virtual

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 249 of file btSoftMultiBodyDynamicsWorld.cpp.

References BT_PROFILE, btVector3, getBroadphaseHandle(), i, and btSoftSingleRayCallback::process().

◆ rayTestSingle()

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

rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest. In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape. This allows more customization.

Definition at line 266 of file btSoftMultiBodyDynamicsWorld.cpp.

References btCollisionObject, btCollisionShape, btTransform, btVector3, btSoftBody::eFeature::Face, btSoftBody::sRayCast::feature, btSoftBody::sRayCast::fraction, btSoftBody::sRayCast::index, btSoftBody::m_faces, btCollisionWorld::LocalShapeInfo::m_shapePart, btCollisionWorld::LocalShapeInfo::m_triangleIndex, btSoftBody::rayTest(), btCollisionWorld::rayTestSingle(), and btSoftBody::upcast().

◆ removeCollisionObject()

void btSoftMultiBodyDynamicsWorld::removeCollisionObject ( btCollisionObject * collisionObject)
virtual

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

Definition at line 140 of file btSoftMultiBodyDynamicsWorld.cpp.

References btCollisionObject, removeSoftBody(), and btSoftBody::upcast().

◆ removeSoftBody()

void btSoftMultiBodyDynamicsWorld::removeSoftBody ( btSoftBody * body)

◆ serialize()

◆ serializeSoftBodies()

void btSoftMultiBodyDynamicsWorld::serializeSoftBodies ( btSerializer * serializer)
protected

◆ setDrawFlags()

void btSoftMultiBodyDynamicsWorld::setDrawFlags ( int f)
inline

Definition at line 65 of file btSoftMultiBodyDynamicsWorld.h.

◆ solveSoftBodiesConstraints()

void btSoftMultiBodyDynamicsWorld::solveSoftBodiesConstraints ( btScalar timeStep)
protected

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