Blender
V3.3
|
#include <btDeformableContactProjection.h>
Public Types | |
typedef btAlignedObjectArray< btVector3 > | TVStack |
Public Member Functions | |
btDeformableContactProjection (btAlignedObjectArray< btSoftBody * > &softBodies) | |
virtual | ~btDeformableContactProjection () |
virtual void | project (TVStack &x) |
virtual void | applyDynamicFriction (TVStack &f) |
virtual btScalar | update (btCollisionObject **deformableBodies, int numDeformableBodies, const btContactSolverInfo &infoGlobal) |
virtual void | setConstraints (const btContactSolverInfo &infoGlobal) |
virtual void | setProjection () |
virtual void | reinitialize (bool nodeUpdated) |
btScalar | solveSplitImpulse (btCollisionObject **deformableBodies, int numDeformableBodies, const btContactSolverInfo &infoGlobal) |
virtual void | setLagrangeMultiplier () |
void | checkConstraints (const TVStack &x) |
Definition at line 37 of file btDeformableContactProjection.h.
Definition at line 40 of file btDeformableContactProjection.h.
|
inline |
Definition at line 67 of file btDeformableContactProjection.h.
|
inlinevirtual |
Definition at line 72 of file btDeformableContactProjection.h.
Definition at line 563 of file btDeformableContactProjection.cpp.
References btDeformableFaceRigidContactConstraint::getContact(), btDeformableFaceNodeContactConstraint::getContact(), btDeformableNodeRigidContactConstraint::getDv(), btDeformableFaceRigidContactConstraint::getDv(), btDeformableFaceNodeContactConstraint::getDv(), m_deformableConstraints, btSoftBody::DeformableFaceRigidContact::m_face, btSoftBody::DeformableFaceNodeContact::m_face, m_faceRigidConstraints, btSoftBody::Face::m_n, btDeformableNodeRigidContactConstraint::m_node, btSoftBody::DeformableFaceNodeContact::m_node, m_nodeRigidConstraints, m_softBodies, node, and btAlignedObjectArray< T >::size().
Referenced by btDeformableBackwardEulerObjective::applyDynamicFriction().
Definition at line 442 of file btDeformableContactProjection.cpp.
References btVector3, LagrangeMultiplier::m_dirs, LagrangeMultiplier::m_indices, m_lagrangeMultipliers, LagrangeMultiplier::m_num_constraints, LagrangeMultiplier::m_num_nodes, LagrangeMultiplier::m_weights, btAlignedObjectArray< T >::size(), and x.
Definition at line 153 of file btDeformableContactProjection.cpp.
References btAssert, btCross(), btVector3, btHashMap< Key, Value >::getAtIndex(), btHashMap< Key, Value >::getKeyAtIndex(), btHashInt::getUid1(), btReducedVector::m_indices, m_projectionsDict, btReducedVector::m_vecs, SIMD_EPSILON, btAlignedObjectArray< T >::size(), btHashMap< Key, Value >::size(), and x.
Referenced by btDeformableBackwardEulerObjective::project().
Definition at line 614 of file btDeformableContactProjection.cpp.
References btAlignedObjectArray< T >::clear(), btHashMap< Key, Value >::clear(), m_deformableConstraints, m_faceRigidConstraints, m_lagrangeMultipliers, m_nodeAnchorConstraints, m_nodeRigidConstraints, m_projectionsDict, m_softBodies, m_staticConstraints, N, btAlignedObjectArray< T >::resize(), and btAlignedObjectArray< T >::size().
Referenced by btDeformableBackwardEulerObjective::reinitialize().
|
virtual |
Definition at line 90 of file btDeformableContactProjection.cpp.
References BT_PROFILE, infoGlobal, btSoftBody::DeformableRigidContact::m_c1, btSoftBody::DeformableRigidContact::m_c2, btSoftBody::sCti::m_colObj, btSoftBody::DeformableRigidContact::m_cti, btSoftBody::m_deformableAnchors, m_faceRigidConstraints, btSoftBody::m_faceRigidContacts, btSoftBody::Node::m_im, btSoftBody::DeformableNodeRigidAnchor::m_local, btSoftBody::DeformableNodeRigidContact::m_node, m_nodeAnchorConstraints, m_nodeRigidConstraints, btSoftBody::m_nodeRigidContacts, btSoftBody::m_nodes, m_softBodies, m_staticConstraints, m_useStrainLimiting, btAlignedObjectArray< T >::push_back(), and btAlignedObjectArray< T >::size().
Referenced by btDeformableBackwardEulerObjective::setConstraints().
|
virtual |
Definition at line 460 of file btDeformableContactProjection.cpp.
References btVector3, btSoftBody::Node::index, btSoftBody::Node::m_constrained, LagrangeMultiplier::m_dirs, m_faceRigidConstraints, LagrangeMultiplier::m_indices, m_lagrangeMultipliers, btSoftBody::Face::m_n, m_nodeAnchorConstraints, m_nodeRigidConstraints, LagrangeMultiplier::m_num_constraints, LagrangeMultiplier::m_num_nodes, btSoftBody::Face::m_pcontact, m_softBodies, m_staticConstraints, LagrangeMultiplier::m_weights, btAlignedObjectArray< T >::push_back(), and btAlignedObjectArray< T >::size().
Referenced by btDeformableMultiBodyDynamicsWorld::solveConstraints().
|
virtual |
Definition at line 202 of file btDeformableContactProjection.cpp.
References BT_PROFILE, btMax(), btVector3, btHashMap< Key, Value >::find(), btSoftBody::Node::index, indices, btHashMap< Key, Value >::insert(), l, btSoftBody::Node::m_constrained, m_faceRigidConstraints, btReducedVector::m_indices, btSoftBody::Face::m_n, m_nodeAnchorConstraints, m_nodeRigidConstraints, btModifiedGramSchmidt< TV >::m_out, m_projectionsDict, m_softBodies, m_staticConstraints, btReducedVector::m_vecs, node, NULL, btAlignedObjectArray< T >::push_back(), SIMD_INFINITY, btAlignedObjectArray< T >::size(), btModifiedGramSchmidt< TV >::solve(), btReducedVector::sort(), and v.
Referenced by btDeformableMultiBodyDynamicsWorld::solveConstraints().
btScalar btDeformableContactProjection::solveSplitImpulse | ( | btCollisionObject ** | deformableBodies, |
int | numDeformableBodies, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 61 of file btDeformableContactProjection.cpp.
References btCollisionObject, btMax(), infoGlobal, m_faceRigidConstraints, m_nodeRigidConstraints, m_softBodies, btAlignedObjectArray< T >::size(), and btDeformableRigidContactConstraint::solveSplitImpulse().
|
virtual |
Definition at line 20 of file btDeformableContactProjection.cpp.
References btCollisionObject, btMax(), infoGlobal, m_deformableConstraints, m_faceRigidConstraints, m_nodeAnchorConstraints, m_nodeRigidConstraints, m_softBodies, btAlignedObjectArray< T >::size(), btDeformableNodeAnchorConstraint::solveConstraint(), btDeformableRigidContactConstraint::solveConstraint(), and btDeformableFaceNodeContactConstraint::solveConstraint().
Referenced by btDeformableBodySolver::solveContactConstraints().
btAlignedObjectArray<btDeformableContactConstraint*> btDeformableContactProjection::m_allFaceConstraints |
Definition at line 44 of file btDeformableContactProjection.h.
btAlignedObjectArray<btAlignedObjectArray<btDeformableFaceNodeContactConstraint> > btDeformableContactProjection::m_deformableConstraints |
Definition at line 61 of file btDeformableContactProjection.h.
Referenced by applyDynamicFriction(), reinitialize(), and update().
btAlignedObjectArray<btAlignedObjectArray<btDeformableFaceRigidContactConstraint> > btDeformableContactProjection::m_faceRigidConstraints |
Definition at line 59 of file btDeformableContactProjection.h.
Referenced by applyDynamicFriction(), reinitialize(), setConstraints(), setLagrangeMultiplier(), setProjection(), solveSplitImpulse(), and update().
btAlignedObjectArray<LagrangeMultiplier> btDeformableContactProjection::m_lagrangeMultipliers |
Definition at line 52 of file btDeformableContactProjection.h.
Referenced by btDeformableBackwardEulerObjective::addLagrangeMultiplier(), btDeformableBackwardEulerObjective::addLagrangeMultiplierRHS(), KKTPreconditioner::buildDiagonalS(), checkConstraints(), btDeformableBackwardEulerObjective::multiply(), reinitialize(), KKTPreconditioner::reinitialize(), and setLagrangeMultiplier().
btAlignedObjectArray<btAlignedObjectArray<btDeformableNodeAnchorConstraint> > btDeformableContactProjection::m_nodeAnchorConstraints |
Definition at line 63 of file btDeformableContactProjection.h.
Referenced by reinitialize(), setConstraints(), setLagrangeMultiplier(), setProjection(), and update().
btAlignedObjectArray<btAlignedObjectArray<btDeformableNodeRigidContactConstraint> > btDeformableContactProjection::m_nodeRigidConstraints |
Definition at line 57 of file btDeformableContactProjection.h.
Referenced by applyDynamicFriction(), reinitialize(), setConstraints(), setLagrangeMultiplier(), setProjection(), solveSplitImpulse(), and update().
btHashMap<btHashInt, btAlignedObjectArray<btVector3> > btDeformableContactProjection::m_projectionsDict |
Definition at line 47 of file btDeformableContactProjection.h.
Referenced by project(), reinitialize(), and setProjection().
btAlignedObjectArray<btSoftBody*>& btDeformableContactProjection::m_softBodies |
Definition at line 41 of file btDeformableContactProjection.h.
Referenced by applyDynamicFriction(), reinitialize(), setConstraints(), setLagrangeMultiplier(), setProjection(), solveSplitImpulse(), and update().
btAlignedObjectArray<btAlignedObjectArray<btDeformableStaticConstraint> > btDeformableContactProjection::m_staticConstraints |
Definition at line 55 of file btDeformableContactProjection.h.
Referenced by reinitialize(), setConstraints(), setLagrangeMultiplier(), and setProjection().
bool btDeformableContactProjection::m_useStrainLimiting |
Definition at line 65 of file btDeformableContactProjection.h.
Referenced by btDeformableMultiBodyDynamicsWorld::reinitialize(), and setConstraints().