Blender
V3.3
|
#include <btDeformableMultiBodyDynamicsWorld.h>
Classes | |
struct | btDeformableSingleRayCallback |
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 () |
![]() | |
virtual void | calculateSimulationIslands () |
virtual void | serializeMultiBodies (btSerializer *serializer) |
Additional Inherited Members | |
![]() | |
btAlignedObjectArray< btMultiBody * > | m_multiBodies |
btAlignedObjectArray< btMultiBodyConstraint * > | m_multiBodyConstraints |
btAlignedObjectArray< btMultiBodyConstraint * > | m_sortedMultiBodyConstraints |
btMultiBodyConstraintSolver * | m_multiBodyConstraintSolver |
MultiBodyInplaceSolverIslandCallback * | m_solverMultiBodyIslandCallback |
btAlignedObjectArray< btQuaternion > | m_scratch_world_to_local |
btAlignedObjectArray< btVector3 > | m_scratch_local_origin |
btAlignedObjectArray< btQuaternion > | m_scratch_world_to_local1 |
btAlignedObjectArray< btVector3 > | m_scratch_local_origin1 |
btAlignedObjectArray< btScalar > | m_scratch_r |
btAlignedObjectArray< btVector3 > | m_scratch_v |
btAlignedObjectArray< btMatrix3x3 > | m_scratch_m |
Definition at line 37 of file btDeformableMultiBodyDynamicsWorld.h.
btDeformableMultiBodyDynamicsWorld::btDeformableMultiBodyDynamicsWorld | ( | btDispatcher * | dispatcher, |
btBroadphaseInterface * | pairCache, | ||
btDeformableMultiBodyConstraintSolver * | constraintSolver, | ||
btCollisionConfiguration * | collisionConfiguration, | ||
btDeformableBodySolver * | deformableBodySolver = 0 |
||
) |
Definition at line 42 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btSoftBodyWorldInfo::air_density, btVector3, btSparseSdf< CELLSIZE >::Initialize(), btSoftBodyWorldInfo::m_broadphase, btSoftBodyWorldInfo::m_dispatcher, btSoftBodyWorldInfo::m_gravity, btSoftBodyWorldInfo::m_sparsesdf, btSparseSdf< CELLSIZE >::Reset(), btSparseSdf< CELLSIZE >::setDefaultVoxelsz(), fDrawFlags::Std, btSoftBodyWorldInfo::water_density, btSoftBodyWorldInfo::water_normal, and btSoftBodyWorldInfo::water_offset.
|
virtual |
Definition at line 70 of file btDeformableMultiBodyDynamicsWorld.cpp.
void btDeformableMultiBodyDynamicsWorld::addForce | ( | btSoftBody * | psb, |
btDeformableLagrangianForce * | force | ||
) |
Definition at line 682 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btDeformableLagrangianForce::addSoftBody(), btDeformableLagrangianForce::getForceType(), btDeformableBackwardEulerObjective::getIndices(), btDeformableBackwardEulerObjective::m_lf, btDeformableBodySolver::m_objective, btAlignedObjectArray< T >::push_back(), btDeformableLagrangianForce::setIndices(), and btAlignedObjectArray< T >::size().
|
virtual |
Definition at line 501 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btCollisionWorld::addCollisionObject(), btAlignedObjectArray< T >::push_back(), and btSoftBody::setSoftBodySolver().
Definition at line 674 of file btDeformableMultiBodyDynamicsWorld.cpp.
Referenced by internalSingleStepSimulation().
Definition at line 163 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btSoftBody::applyRepulsionForce(), BT_PROFILE, and btAlignedObjectArray< T >::size().
Referenced by internalSingleStepSimulation().
Definition at line 560 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btMultiBodyDynamicsWorld::applyGravity(), usdtokens::b(), btAssert, btMultiBody, clearGravity(), btMultiBodyDynamicsWorld::clearMultiBodyConstraintForces(), btMultiBodyDynamicsWorld::forwardKinematics(), btRigidBody::integrateVelocities(), ISLAND_SLEEPING, btMultiBodyDynamicsWorld::m_multiBodies, m_nonStaticRigidBodies, btMultiBodyDynamicsWorld::m_scratch_m, btMultiBodyDynamicsWorld::m_scratch_r, btMultiBodyDynamicsWorld::m_scratch_v, btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by internalSingleStepSimulation().
Definition at line 661 of file btDeformableMultiBodyDynamicsWorld.cpp.
Referenced by internalSingleStepSimulation().
|
protected |
Definition at line 620 of file btDeformableMultiBodyDynamicsWorld.cpp.
References usdtokens::b(), BT_PROFILE, btMultiBody, btRigidBody::clearGravity(), ISLAND_SLEEPING, m_gravity, btMultiBodyDynamicsWorld::m_multiBodies, m_nonStaticRigidBodies, and btAlignedObjectArray< T >::size().
Referenced by applyRigidBodyGravity().
|
virtual |
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 546 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btMultiBodyDynamicsWorld::debugDrawWorld(), btSoftBodyHelpers::Draw(), btSoftBodyHelpers::DrawFrame(), getDrawFlags(), getSoftBodyArray(), and btAlignedObjectArray< T >::size().
|
inline |
Definition at line 142 of file btDeformableMultiBodyDynamicsWorld.h.
Referenced by debugDrawWorld().
|
inlinevirtual |
Definition at line 85 of file btDeformableMultiBodyDynamicsWorld.h.
|
inlinevirtual |
Definition at line 90 of file btDeformableMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 104 of file btDeformableMultiBodyDynamicsWorld.h.
Referenced by debugDrawWorld().
|
inline |
Definition at line 109 of file btDeformableMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 114 of file btDeformableMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 119 of file btDeformableMultiBodyDynamicsWorld.h.
|
inlinevirtual |
Definition at line 95 of file btDeformableMultiBodyDynamicsWorld.h.
References BT_DEFORMABLE_MULTIBODY_DYNAMICS_WORLD.
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 295 of file btDeformableMultiBodyDynamicsWorld.cpp.
References Freestyle::a, BT_PROFILE, btCollisionShape, btCross(), btMatrix3x3, btTransform, btVector3, Freestyle::c, CO_FEATHERSTONE_LINK, Diagonal(), btSparseSdf< CELLSIZE >::Evaluate(), findJacobian(), generateUnitOrthogonalVector(), btSoftBody::getWorldInfo(), btMultiBodyDynamicsWorld::integrateTransforms(), btSoftBody::interpolateRenderMesh(), inverse(), btSoftBody::m_deformableAnchors, btMultiBodyJacobianData::m_deltaVelocitiesUnitImpulse, btSoftBody::Node::m_im, btMultiBodyJacobianData::m_jacobians, btSoftBodyWorldInfo::m_maxDisplacement, btMultiBodyLinkCollider::m_multiBody, btSoftBody::m_nodes, btSoftBodyWorldInfo::m_sparsesdf, btSoftBody::m_worldInfo, btSoftBody::Node::m_x, node, normal, OuterProduct(), positionCorrection(), rot, btAlignedObjectArray< T >::size(), and btMultiBodyLinkCollider::upcast().
Referenced by internalSingleStepSimulation().
|
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().
void btDeformableMultiBodyDynamicsWorld::performDeformableCollisionDetection | ( | ) |
Definition at line 118 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btAlignedObjectArray< T >::size().
Referenced by internalSingleStepSimulation().
Definition at line 176 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btSoftBody::applyRepulsionForce(), BT_PROFILE, blender::math::cross(), btSoftBody::m_faceNodeContacts, btSoftBody::m_faces, btSoftBody::Face::m_n, btSoftBody::Face::m_n0, btSoftBody::Face::m_n1, btSoftBody::m_nodes, btSoftBody::Node::m_q, btSoftBody::Node::m_v, btSoftBody::Face::m_vn, btSoftBody::Node::m_x, r, and btAlignedObjectArray< T >::size().
Referenced by internalSingleStepSimulation().
Definition at line 273 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btTransform, btVector3, btRigidBody::getPushVelocity(), btRigidBody::getTurnVelocity(), infoGlobal, btTransformUtil::integrateTransform(), m_nonStaticRigidBodies, btContactSolverInfoData::m_splitImpulseTurnErp, btRigidBody::setPushVelocity(), and btRigidBody::setTurnVelocity().
Referenced by integrateTransforms().
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 514 of file btDeformableMultiBodyDynamicsWorld.cpp.
References BT_PROFILE, btDeformableBodySolver::predictMotion(), and btMultiBodyDynamicsWorld::predictUnconstraintMotion().
Referenced by internalSingleStepSimulation().
|
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().
|
inline |
Definition at line 267 of file btDeformableMultiBodyDynamicsWorld.h.
References btVector3, btSoftBody::sRayCast::fraction, btSoftBody::sRayCast::index, btSoftBody::m_faces, btCollisionWorld::LocalShapeInfo::m_shapePart, btCollisionWorld::LocalShapeInfo::m_triangleIndex, normal, btSoftBody::rayFaceTest(), btCollisionWorld::rayTestSingle(), and btSoftBody::upcast().
Referenced by btDeformableMultiBodyDynamicsWorld::btDeformableSingleRayCallback::process().
Definition at line 521 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btDispatcherInfo::m_debugDraw, btDeformableBackwardEulerObjective::m_KKTPreconditioner, btDeformableBackwardEulerObjective::m_massPreconditioner, btDeformableBodySolver::m_objective, btDeformableBackwardEulerObjective::m_preconditioner, btDeformableBackwardEulerObjective::m_projection, btDispatcherInfo::m_stepCount, btDispatcherInfo::m_timeStep, btDeformableBodySolver::m_useProjection, btDeformableContactProjection::m_useStrainLimiting, btDeformableBodySolver::reinitialize(), btDeformableBodySolver::setImplicit(), and btDeformableBodySolver::setLineSearch().
Referenced by internalSingleStepSimulation().
void btDeformableMultiBodyDynamicsWorld::removeCollisionObject | ( | btCollisionObject * | collisionObject | ) |
Definition at line 739 of file btDeformableMultiBodyDynamicsWorld.cpp.
References removeCollisionObject(), removeSoftBody(), and btSoftBody::upcast().
void btDeformableMultiBodyDynamicsWorld::removeForce | ( | btSoftBody * | psb, |
btDeformableLagrangianForce * | force | ||
) |
void btDeformableMultiBodyDynamicsWorld::removeSoftBody | ( | btSoftBody * | body | ) |
Definition at line 730 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btDeformableBodySolver::reinitialize(), btAlignedObjectArray< T >::remove(), btCollisionWorld::removeCollisionObject(), and removeSoftBodyForce().
Referenced by removeCollisionObject().
void btDeformableMultiBodyDynamicsWorld::removeSoftBodyForce | ( | btSoftBody * | psb | ) |
Definition at line 721 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btDeformableBackwardEulerObjective::m_lf, btDeformableBodySolver::m_objective, and btAlignedObjectArray< T >::size().
Referenced by removeSoftBody().
|
inline |
Definition at line 143 of file btDeformableMultiBodyDynamicsWorld.h.
Definition at line 157 of file btDeformableMultiBodyDynamicsWorld.h.
Definition at line 162 of file btDeformableMultiBodyDynamicsWorld.h.
|
inline |
Definition at line 78 of file btDeformableMultiBodyDynamicsWorld.h.
void btDeformableMultiBodyDynamicsWorld::setupConstraints | ( | ) |
Definition at line 407 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btMultiBodyConstraint, btTypedConstraint(), btSimulationIslandManager::buildIslands(), getCollisionWorld(), getNumConstraints(), m_islandManager, btMultiBodyDynamicsWorld::m_sortedMultiBodyConstraints, btDeformableBodySolver::setConstraints(), MultiBodyInplaceSolverIslandCallback::setup(), btAlignedObjectArray< T >::size(), and sortConstraints().
Referenced by solveConstraints().
Definition at line 167 of file btDeformableMultiBodyDynamicsWorld.h.
void btDeformableMultiBodyDynamicsWorld::softBodySelfCollision | ( | ) |
Definition at line 260 of file btDeformableMultiBodyDynamicsWorld.cpp.
References BT_PROFILE, btSoftBody::defaultCollisionHandler(), and btAlignedObjectArray< T >::size().
Definition at line 379 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btDeformableBodySolver::backupVelocity(), BT_PROFILE, btDeformableBodySolver::m_objective, btDeformableBackwardEulerObjective::m_projection, btDeformableContactProjection::setLagrangeMultiplier(), btDeformableContactProjection::setProjection(), setupConstraints(), btDeformableBodySolver::setupDeformableSolve(), solveContactConstraints(), and btDeformableBodySolver::solveDeformableConstraints().
Referenced by internalSingleStepSimulation().
void btDeformableMultiBodyDynamicsWorld::solveContactConstraints | ( | ) |
Definition at line 443 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btConstraintSolver::allSolved(), usdtokens::b(), btMultiBody, getCollisionWorld(), ISLAND_SLEEPING, m_constraintSolver, m_islandManager, btMultiBodyDynamicsWorld::m_multiBodies, btMultiBodyDynamicsWorld::m_scratch_m, btMultiBodyDynamicsWorld::m_scratch_r, btMultiBodyDynamicsWorld::m_scratch_v, DeformableBodyInplaceSolverIslandCallback::processConstraints(), btSimulationIslandManager::processIslands(), btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by solveConstraints().
void btDeformableMultiBodyDynamicsWorld::solveMultiBodyConstraints | ( | ) |
void btDeformableMultiBodyDynamicsWorld::sortConstraints | ( | ) |
Definition at line 425 of file btDeformableMultiBodyDynamicsWorld.cpp.
References getNumConstraints(), m_constraints, btMultiBodyDynamicsWorld::m_multiBodyConstraints, btMultiBodyDynamicsWorld::m_sortedMultiBodyConstraints, btAlignedObjectArray< T >::quickSort(), btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by setupConstraints().
|
virtual |
Definition at line 748 of file btDeformableMultiBodyDynamicsWorld.cpp.
References btFuzzyZero(), btMultiBodyDynamicsWorld::clearForces(), btIDebugDraw::DBG_NoDeactivation, gDisableDeactivation, btIDebugDraw::getDebugMode(), internalSingleStepSimulation(), m_fixedTimeStep, m_latencyMotionStateInterpolation, m_localTime, saveKinematicState(), startProfiling(), and synchronizeMotionStates().
|
protectedvirtual |
Reimplemented from btMultiBodyDynamicsWorld.
Definition at line 139 of file btDeformableMultiBodyDynamicsWorld.cpp.
References ACTIVE_TAG, DISABLE_DEACTIVATION, ISLAND_SLEEPING, btSoftBody::setZeroVelocity(), btAlignedObjectArray< T >::size(), btMultiBodyDynamicsWorld::updateActivationState(), btSoftBody::updateDeactivation(), WANTS_DEACTIVATION, and btSoftBody::wantsSleeping().
Referenced by internalSingleStepSimulation().