Blender V4.5
btSoftRigidDynamicsWorld Class Reference

#include <btSoftRigidDynamicsWorld.h>

Inherits btDiscreteDynamicsWorld.

Public Member Functions

 btSoftRigidDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration, btSoftBodySolver *softBodySolver=0)
virtual ~btSoftRigidDynamicsWorld ()
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)
btSoftBodyWorldInfo & getWorldInfo ()
const btSoftBodyWorldInfo & getWorldInfo () const
virtual btDynamicsWorldType getWorldType () const
btSoftBodyArray & getSoftBodyArray ()
const btSoftBodyArray & getSoftBodyArray () const
virtual void rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const
virtual void serialize (btSerializer *serializer)

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)

Detailed Description

Definition at line 26 of file btSoftRigidDynamicsWorld.h.

Constructor & Destructor Documentation

◆ btSoftRigidDynamicsWorld()

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

◆ ~btSoftRigidDynamicsWorld()

btSoftRigidDynamicsWorld::~btSoftRigidDynamicsWorld ( )
virtual

Definition at line 60 of file btSoftRigidDynamicsWorld.cpp.

References btAlignedFree.

Member Function Documentation

◆ addSoftBody()

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

◆ debugDrawWorld()

◆ getDrawFlags()

int btSoftRigidDynamicsWorld::getDrawFlags ( ) const
inline

Definition at line 61 of file btSoftRigidDynamicsWorld.h.

◆ getSoftBodyArray() [1/2]

btSoftBodyArray & btSoftRigidDynamicsWorld::getSoftBodyArray ( )
inline

Definition at line 78 of file btSoftRigidDynamicsWorld.h.

Referenced by internalSingleStepSimulation().

◆ getSoftBodyArray() [2/2]

const btSoftBodyArray & btSoftRigidDynamicsWorld::getSoftBodyArray ( ) const
inline

Definition at line 83 of file btSoftRigidDynamicsWorld.h.

◆ getWorldInfo() [1/2]

btSoftBodyWorldInfo & btSoftRigidDynamicsWorld::getWorldInfo ( )
inline

Definition at line 64 of file btSoftRigidDynamicsWorld.h.

◆ getWorldInfo() [2/2]

const btSoftBodyWorldInfo & btSoftRigidDynamicsWorld::getWorldInfo ( ) const
inline

Definition at line 68 of file btSoftRigidDynamicsWorld.h.

◆ getWorldType()

virtual btDynamicsWorldType btSoftRigidDynamicsWorld::getWorldType ( ) const
inlinevirtual

Definition at line 73 of file btSoftRigidDynamicsWorld.h.

References BT_SOFT_RIGID_DYNAMICS_WORLD.

◆ internalSingleStepSimulation()

void btSoftRigidDynamicsWorld::internalSingleStepSimulation ( btScalar timeStep)
protectedvirtual

solve soft bodies constraints

update soft bodies

Definition at line 78 of file btSoftRigidDynamicsWorld.cpp.

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

◆ predictUnconstraintMotion()

void btSoftRigidDynamicsWorld::predictUnconstraintMotion ( btScalar timeStep)
protectedvirtual

Definition at line 69 of file btSoftRigidDynamicsWorld.cpp.

References BT_PROFILE.

◆ rayTest()

void btSoftRigidDynamicsWorld::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 btSoftRigidDynamicsWorld.cpp.

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

◆ rayTestSingle()

void btSoftRigidDynamicsWorld::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 btSoftRigidDynamicsWorld.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().

Referenced by btSoftSingleRayCallback::process().

◆ removeCollisionObject()

void btSoftRigidDynamicsWorld::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 btSoftRigidDynamicsWorld.cpp.

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

◆ removeSoftBody()

void btSoftRigidDynamicsWorld::removeSoftBody ( btSoftBody * body)

◆ serialize()

void btSoftRigidDynamicsWorld::serialize ( btSerializer * serializer)
virtual

◆ serializeSoftBodies()

void btSoftRigidDynamicsWorld::serializeSoftBodies ( btSerializer * serializer)
protected

◆ setDrawFlags()

void btSoftRigidDynamicsWorld::setDrawFlags ( int f)
inline

Definition at line 62 of file btSoftRigidDynamicsWorld.h.

◆ solveSoftBodiesConstraints()

void btSoftRigidDynamicsWorld::solveSoftBodiesConstraints ( btScalar timeStep)
protected

Definition at line 107 of file btSoftRigidDynamicsWorld.cpp.

References BT_PROFILE, and btSoftBody::solveClusters().

Referenced by internalSingleStepSimulation().


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