Blender V4.3
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::~btSoftMultiBodyDynamicsWorld ( )
virtual

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

◆ predictUnconstraintMotion()

void btSoftMultiBodyDynamicsWorld::predictUnconstraintMotion ( btScalar timeStep)
protectedvirtual

Reimplemented from btMultiBodyDynamicsWorld.

Definition at line 69 of file btSoftMultiBodyDynamicsWorld.cpp.

References BT_PROFILE, and btSoftBodySolver::predictMotion().

◆ 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, getBroadphaseHandle(), 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 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().

Referenced by btSoftSingleRayCallback::process().

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