Blender
V3.3
|
#include <btSoftRigidDynamicsWorld.h>
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 More... | |
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) |
Definition at line 26 of file btSoftRigidDynamicsWorld.h.
btSoftRigidDynamicsWorld::btSoftRigidDynamicsWorld | ( | btDispatcher * | dispatcher, |
btBroadphaseInterface * | pairCache, | ||
btConstraintSolver * | constraintSolver, | ||
btCollisionConfiguration * | collisionConfiguration, | ||
btSoftBodySolver * | softBodySolver = 0 |
||
) |
Definition at line 26 of file btSoftRigidDynamicsWorld.cpp.
References btSoftBodyWorldInfo::air_density, btAlignedAlloc, btVector3, btSparseSdf< CELLSIZE >::Initialize(), btSoftBodyWorldInfo::m_broadphase, btSoftBodyWorldInfo::m_dispatcher, btSoftBodyWorldInfo::m_gravity, btSoftBodyWorldInfo::m_sparsesdf, ptr, btSparseSdf< CELLSIZE >::Reset(), fDrawFlags::Std, btSoftBodyWorldInfo::water_density, btSoftBodyWorldInfo::water_normal, and btSoftBodyWorldInfo::water_offset.
|
virtual |
Definition at line 60 of file btSoftRigidDynamicsWorld.cpp.
References btAlignedFree, and btSoftBodySolver::~btSoftBodySolver().
void btSoftRigidDynamicsWorld::addSoftBody | ( | btSoftBody * | body, |
int | collisionFilterGroup = btBroadphaseProxy::DefaultFilter , |
||
int | collisionFilterMask = btBroadphaseProxy::AllFilter |
||
) |
Definition at line 120 of file btSoftRigidDynamicsWorld.cpp.
References btCollisionWorld::addCollisionObject(), btAlignedObjectArray< T >::push_back(), and btSoftBody::setSoftBodySolver().
|
virtual |
Definition at line 149 of file btSoftRigidDynamicsWorld.cpp.
References btIDebugDraw::DBG_DrawAabb, btIDebugDraw::DBG_DrawWireframe, debugDrawWorld(), btSoftBodyHelpers::Draw(), btSoftBodyHelpers::DrawClusterTree(), btSoftBodyHelpers::DrawFaceTree(), btSoftBodyHelpers::DrawFrame(), btSoftBodyHelpers::DrawNodeTree(), and btAlignedObjectArray< T >::size().
|
inline |
Definition at line 61 of file btSoftRigidDynamicsWorld.h.
|
inline |
Definition at line 78 of file btSoftRigidDynamicsWorld.h.
Referenced by internalSingleStepSimulation().
|
inline |
Definition at line 83 of file btSoftRigidDynamicsWorld.h.
|
inline |
Definition at line 64 of file btSoftRigidDynamicsWorld.h.
|
inline |
Definition at line 68 of file btSoftRigidDynamicsWorld.h.
|
inlinevirtual |
Definition at line 73 of file btSoftRigidDynamicsWorld.h.
References BT_SOFT_RIGID_DYNAMICS_WORLD.
solve soft bodies constraints
update soft bodies
Definition at line 78 of file btSoftRigidDynamicsWorld.cpp.
References btAssert, btSoftBodySolver::checkInitialized(), btSoftBody::defaultCollisionHandler(), getSoftBodyArray(), internalSingleStepSimulation(), btSoftBodySolver::optimize(), btAlignedObjectArray< T >::size(), solveSoftBodiesConstraints(), and btSoftBodySolver::updateSoftBodies().
Definition at line 69 of file btSoftRigidDynamicsWorld.cpp.
References BT_PROFILE, btSoftBodySolver::predictMotion(), and predictUnconstraintMotion().
|
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, getBroadphaseHandle(), and btSoftSingleRayCallback::process().
|
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 btVector3, btSoftBody::eFeature::Face, btSoftBody::sRayCast::feature, btSoftBody::sRayCast::fraction, btSoftBody::sRayCast::index, btSoftBody::m_faces, btCollisionWorld::LocalShapeInfo::m_shapePart, btCollisionWorld::LocalShapeInfo::m_triangleIndex, normal, btSoftBody::rayTest(), btCollisionWorld::rayTestSingle(), and btSoftBody::upcast().
|
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 removeCollisionObject(), removeSoftBody(), and btSoftBody::upcast().
void btSoftRigidDynamicsWorld::removeSoftBody | ( | btSoftBody * | body | ) |
Definition at line 133 of file btSoftRigidDynamicsWorld.cpp.
References btAlignedObjectArray< T >::remove(), and btCollisionWorld::removeCollisionObject().
Referenced by removeCollisionObject().
|
virtual |
Definition at line 333 of file btSoftRigidDynamicsWorld.cpp.
References btSerializer::finishSerialization(), serializeDynamicsWorldInfo(), serializeRigidBodies(), serializeSoftBodies(), and btSerializer::startSerialization().
|
protected |
Definition at line 316 of file btSoftRigidDynamicsWorld.cpp.
References btSerializer::allocate(), BT_SOFTBODY_CODE, btCollisionObject, CO_SOFT_BODY, btSerializer::finalizeChunk(), len, and btChunk::m_oldPtr.
Referenced by serialize().
|
inline |
Definition at line 62 of file btSoftRigidDynamicsWorld.h.
Definition at line 107 of file btSoftRigidDynamicsWorld.cpp.
References BT_PROFILE, btSoftBodySolver::getTimeScale(), btAlignedObjectArray< T >::size(), btSoftBody::solveClusters(), and btSoftBodySolver::solveConstraints().
Referenced by internalSingleStepSimulation().