Blender
V3.3
|
#include "BulletDynamics/ConstraintSolver/btTypedConstraint.h"
#include "BulletDynamics/ConstraintSolver/btContactSolverInfo.h"
#include "BulletDynamics/ConstraintSolver/btSolverBody.h"
#include "BulletDynamics/ConstraintSolver/btSolverConstraint.h"
#include "BulletCollision/NarrowPhaseCollision/btManifoldPoint.h"
#include "BulletDynamics/ConstraintSolver/btConstraintSolver.h"
Go to the source code of this file.
Classes | |
struct | btSolverAnalyticsData |
Typedefs | |
typedef btScalar(* | btSingleConstraintRowSolver) (btSolverBody &, btSolverBody &, const btSolverConstraint &) |
typedef btScalar(* btSingleConstraintRowSolver) (btSolverBody &, btSolverBody &, const btSolverConstraint &) |
Definition at line 30 of file btSequentialImpulseConstraintSolver.h.
btSolverConstraint & btSequentialImpulseConstraintSolver::addFrictionConstraint | ( | const btVector3 & | normalAxis, |
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
int | frictionIndex, | ||
btManifoldPoint & | cp, | ||
const btVector3 & | rel_pos1, | ||
const btVector3 & | rel_pos2, | ||
btCollisionObject * | colObj0, | ||
btCollisionObject * | colObj1, | ||
btScalar | relaxation, | ||
const btContactSolverInfo & | infoGlobal, | ||
btScalar | desiredVelocity = 0. , |
||
btScalar | cfmSlip = 0. |
||
) |
Definition at line 610 of file btSequentialImpulseConstraintSolver.cpp.
References btSolverConstraint, btAlignedObjectArray< T >::expandNonInitializing(), infoGlobal, m_tmpSolverContactFrictionConstraintPool, and setupFrictionConstraint().
Referenced by convertContact().
btSolverConstraint & btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraint | ( | const btVector3 & | normalAxis, |
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
int | frictionIndex, | ||
btManifoldPoint & | cp, | ||
btScalar | torsionalFriction, | ||
const btVector3 & | rel_pos1, | ||
const btVector3 & | rel_pos2, | ||
btCollisionObject * | colObj0, | ||
btCollisionObject * | colObj1, | ||
btScalar | relaxation, | ||
btScalar | desiredVelocity = 0 , |
||
btScalar | cfmSlip = 0.f |
||
) |
Definition at line 682 of file btSequentialImpulseConstraintSolver.cpp.
References btSolverConstraint, btAlignedObjectArray< T >::expandNonInitializing(), m_tmpSolverContactRollingFrictionConstraintPool, and setupTorsionalFrictionConstraint().
Referenced by convertContact().
|
static |
Definition at line 504 of file btSequentialImpulseConstraintSolver.cpp.
References btVector3.
Referenced by convertContact(), convertMultiBodyContact(), and internalSetupContactConstraints().
BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
unsigned long btSequentialImpulseConstraintSolver::btRand2 | ( | ) |
Definition at line 420 of file btSequentialImpulseConstraintSolver.cpp.
References m_btSeed2.
Referenced by btRandInt2().
int btSequentialImpulseConstraintSolver::btRandInt2 | ( | int | n | ) |
Definition at line 427 of file btSequentialImpulseConstraintSolver.cpp.
Referenced by randomizeBatchedConstraintOrdering(), and solveSingleIteration().
btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver | ( | ) |
Definition at line 353 of file btSequentialImpulseConstraintSolver.cpp.
References m_btSeed2, m_cachedSolverMode, and setupSolverFunctions().
Referenced by btConstraintSolverPoolMt::btConstraintSolverPoolMt(), btDiscreteDynamicsWorld(), and RB_dworld_new().
|
virtual |
Definition at line 1358 of file btSequentialImpulseConstraintSolver.cpp.
References BT_ENABLE_GYROSCOPIC_FORCE_EXPLICIT, BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_BODY, BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_WORLD, BT_PROFILE, btSolverBody, btVector3, btRigidBody::computeGyroscopicForceExplicit(), btRigidBody::computeGyroscopicImpulseImplicit_Body(), btRigidBody::computeGyroscopicImpulseImplicit_World(), btRigidBody::getFlags(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), getOrInitSolverBody(), infoGlobal, m_kinematicBodyUniqueIdToSolverBodyTable, btContactSolverInfoData::m_maxGyroscopicForce, btContactSolverInfoData::m_timeStep, numBodies, btAlignedObjectArray< T >::resize(), and btRigidBody::upcast().
void btSequentialImpulseConstraintSolver::convertContact | ( | btPersistentManifold * | manifold, |
const btContactSolverInfo & | infoGlobal | ||
) |
avoid collision response between two static objects
Bullet has several options to set the friction directions By default, each contact has only a single friction direction that is recomputed automatically very frame based on the relative linear velocity. If the relative velocity it zero, it will automatically compute a friction direction.
You can also enable two friction directions, using the SOLVER_USE_2_FRICTION_DIRECTIONS. In that case, the second friction direction will be orthogonal to both contact normal and first friction direction.
If you choose SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION, then the friction will be independent from the relative projected velocity.
The user can manually override the friction directions for certain contacts using a contact callback, and use contactPoint.m_contactPointFlags |= BT_CONTACT_FLAG_LATERAL_FRICTION_INITIALIZED In that case, you can set the target relative motion in each friction direction (cp.m_contactMotion1 and cp.m_contactMotion2) this will give a conveyor belt effect
Definition at line 999 of file btSequentialImpulseConstraintSolver.cpp.
References addFrictionConstraint(), addTorsionalFrictionConstraint(), applyAnisotropicFriction(), BT_CONTACT_FLAG_LATERAL_FRICTION_INITIALIZED, btCollisionObject, btPlaneSpace1(), btSolverBody, btSolverConstraint, btSqrt(), btVector3, CF_ANISOTROPIC_FRICTION, CF_ANISOTROPIC_ROLLING_FRICTION, btAlignedObjectArray< T >::expandNonInitializing(), btManifoldPoint::getDistance(), getOrInitSolverBody(), btManifoldPoint::getPositionWorldOnA(), btManifoldPoint::getPositionWorldOnB(), infoGlobal, btManifoldPoint::m_combinedRollingFriction, btManifoldPoint::m_combinedSpinningFriction, btManifoldPoint::m_contactMotion1, btManifoldPoint::m_contactMotion2, btManifoldPoint::m_contactPointFlags, btManifoldPoint::m_frictionCFM, btManifoldPoint::m_lateralFrictionDir1, btManifoldPoint::m_lateralFrictionDir2, btManifoldPoint::m_normalWorldOnB, btContactSolverInfoData::m_solverMode, btContactSolverInfoData::m_timeStep, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, setFrictionConstraintImpulse(), setupContactConstraint(), SIMD_EPSILON, btAlignedObjectArray< T >::size(), SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION, SOLVER_ENABLE_FRICTION_DIRECTION_CACHING, and SOLVER_USE_2_FRICTION_DIRECTIONS.
Referenced by convertContacts().
|
virtual |
Definition at line 1149 of file btSequentialImpulseConstraintSolver.cpp.
References btPersistentManifold(), convertContact(), infoGlobal, manifoldPtr, and numManifolds.
void btSequentialImpulseConstraintSolver::convertJoint | ( | btSolverConstraint * | currentConstraintRow, |
btTypedConstraint * | constraint, | ||
const btTypedConstraint::btConstraintInfo1 & | info1, | ||
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
the size of btSolverConstraint needs be a multiple of btScalar
finalize the constraint setup
Definition at line 1162 of file btSequentialImpulseConstraintSolver.cpp.
References btAssert, btFabs(), btSolverBody, btSolverConstraint, btVector3, btRigidBody::getAngularVelocity(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), btRigidBody::getLinearVelocity(), infoGlobal, btContactSolverInfoData::m_damping, btContactSolverInfoData::m_erp, btContactSolverInfoData::m_globalCfm, m_maxOverrideNumSolverIterations, btContactSolverInfoData::m_numIterations, btContactSolverInfoData::m_timeStep, rbB, SIMD_EPSILON, SIMD_INFINITY, and sum().
Referenced by convertJoints(), and internalConvertMultipleJoints().
|
virtual |
setup the btSolverConstraints
Definition at line 1294 of file btSequentialImpulseConstraintSolver.cpp.
References BT_PROFILE, btAssert, btJointFeedback, btSolverConstraint, btTypedConstraint(), constraints, convertJoint(), fb(), getOrInitSolverBody(), infoGlobal, isEnabled(), btContactSolverInfoData::m_timeStep, m_tmpConstraintSizesPool, m_tmpSolverNonContactConstraintPool, numConstraints, rbB, and btAlignedObjectArray< T >::resizeNoInitialize().
btSingleConstraintRowSolver getActiveConstraintRowSolverGeneric | ( | ) |
Definition at line 184 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSingleConstraintRowGeneric.
btSingleConstraintRowSolver getActiveConstraintRowSolverLowerLimit | ( | ) |
Definition at line 192 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSingleConstraintRowLowerLimit.
int btSequentialImpulseConstraintSolver::getOrInitSolverBody | ( | btCollisionObject & | body, |
btScalar | timeStep | ||
) |
Definition at line 691 of file btSequentialImpulseConstraintSolver.cpp.
References btAssert, btSolverBody, CO_FEATHERSTONE_LINK, btRigidBody::getInvMass(), initSolverBody(), m_fixedBodyId, m_kinematicBodyUniqueIdToSolverBodyTable, NULL, btAlignedObjectArray< T >::resize(), btAlignedObjectArray< T >::size(), uniqueId, and btRigidBody::upcast().
Referenced by addMultiBodyFrictionConstraint(), addMultiBodySpinningFrictionConstraint(), addMultiBodyTorsionalFrictionConstraint(), convertBodies(), convertContact(), convertJoints(), convertMultiBodyContact(), solveSingleIteration(), and writeToSolverBody().
unsigned long getRandSeed | ( | ) | const |
Definition at line 174 of file btSequentialImpulseConstraintSolver.h.
References m_btSeed2.
btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarConstraintRowSolverGeneric | ( | ) |
Various implementations of solving a single constraint row using a generic equality constraint, using scalar reference, SSE2 or SSE4.
Definition at line 389 of file btSequentialImpulseConstraintSolver.cpp.
References gResolveSingleConstraintRowGeneric_scalar_reference().
btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarConstraintRowSolverLowerLimit | ( | ) |
Various implementations of solving a single constraint row using an inequality (lower limit) constraint, using scalar reference, SSE2 or SSE4.
Definition at line 394 of file btSequentialImpulseConstraintSolver.cpp.
References gResolveSingleConstraintRowLowerLimit_scalar_reference().
|
virtual |
Definition at line 179 of file btSequentialImpulseConstraintSolver.h.
References BT_SEQUENTIAL_IMPULSE_SOLVER.
btSingleConstraintRowSolver getSSE2ConstraintRowSolverGeneric | ( | ) |
btSingleConstraintRowSolver getSSE2ConstraintRowSolverLowerLimit | ( | ) |
btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverGeneric | ( | ) |
btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverLowerLimit | ( | ) |
void btSequentialImpulseConstraintSolver::initSolverBody | ( | btSolverBody * | solverBody, |
btCollisionObject * | collisionObject, | ||
btScalar | timeStep | ||
) |
Definition at line 459 of file btSequentialImpulseConstraintSolver.cpp.
References btVector3, btRigidBody::getAngularFactor(), btRigidBody::getAngularVelocity(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), btRigidBody::getLinearFactor(), btRigidBody::getLinearVelocity(), btRigidBody::getTotalForce(), btRigidBody::getTotalTorque(), btRigidBody::m_angularFactor, and btRigidBody::upcast().
Referenced by getOrInitSolverBody(), getOrInitSolverBodyThreadsafe(), and internalConvertBodies().
|
virtual |
clear internal cached data and reset random seed
Definition at line 517 of file kernel/device/gpu/kernel.h.
References m_numVertices.
Referenced by PathTraceWorkCPU::adaptive_sampling_converge_filter_count_active(), PathTraceWorkGPU::adaptive_sampling_converge_filter_count_active(), adaptive_sampling_convergence_check(), PathTraceWorkGPU::adaptive_sampling_convergence_check_count_active(), BKE_brush_gpencil_paint_presets(), BKE_brush_gpencil_sculpt_presets(), BKE_brush_gpencil_vertex_presets(), BKE_brush_gpencil_weight_presets(), BKE_id_attribute_copy_domains_temp(), BKE_ptcache_id_reset(), BKE_ptcache_object_reset(), bmo_dissolve_degenerate_exec(), ED_view3d_local_collections_set(), Freestyle::StyleModule::execute(), gpencil_primitive_move(), gpencil_primitive_size(), gpencil_primitive_strength(), blender::eevee::Film::init(), kernel_adaptive_sampling_convergence_check(), blender::deg::Node::Stats::Stats(), ui_searchbox_update(), BlenderSession::view_draw(), and blender::gpu::MTLTexture::~MTLTexture().
btScalar btSequentialImpulseConstraintSolver::resolveSingleConstraintRowGeneric | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 269 of file btSequentialImpulseConstraintSolver.cpp.
References Freestyle::c, and m_resolveSingleConstraintRowGeneric.
Referenced by resolveAllRollingFrictionConstraints(), resolveMultipleContactConstraintsInterleaved(), resolveMultipleContactFrictionConstraints(), resolveMultipleContactRollingFrictionConstraints(), resolveMultipleJointConstraints(), and solveSingleIteration().
btScalar btSequentialImpulseConstraintSolver::resolveSingleConstraintRowGenericSIMD | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 263 of file btSequentialImpulseConstraintSolver.cpp.
References Freestyle::c, and m_resolveSingleConstraintRowGeneric.
btScalar btSequentialImpulseConstraintSolver::resolveSingleConstraintRowLowerLimit | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 279 of file btSequentialImpulseConstraintSolver.cpp.
References Freestyle::c, and m_resolveSingleConstraintRowLowerLimit.
Referenced by resolveMultipleContactConstraints(), resolveMultipleContactConstraintsInterleaved(), and solveSingleIteration().
btScalar btSequentialImpulseConstraintSolver::resolveSingleConstraintRowLowerLimitSIMD | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 274 of file btSequentialImpulseConstraintSolver.cpp.
References Freestyle::c, and m_resolveSingleConstraintRowLowerLimit.
btScalar resolveSplitPenetrationImpulse | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 139 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSplitPenetrationImpulse.
Referenced by resolveMultipleContactSplitPenetrationImpulseConstraints(), and solveGroupCacheFriendlySplitImpulseIterations().
btScalar resolveSplitPenetrationImpulseCacheFriendly | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 126 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSplitPenetrationImpulse.
btScalar resolveSplitPenetrationSIMD | ( | btSolverBody & | bodyA, |
btSolverBody & | bodyB, | ||
const btSolverConstraint & | contactConstraint | ||
) |
Definition at line 121 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSplitPenetrationImpulse.
btScalar btSequentialImpulseConstraintSolver::restitutionCurve | ( | btScalar | rel_vel, |
btScalar | restitution, | ||
btScalar | velocityThreshold | ||
) |
Definition at line 494 of file btSequentialImpulseConstraintSolver.cpp.
References btFabs().
Referenced by setupContactConstraint(), setupMultiBodyContactConstraint(), and setupMultiBodyTorsionalFrictionConstraint().
void setConstraintRowSolverGeneric | ( | btSingleConstraintRowSolver | rowSolver | ) |
Definition at line 188 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSingleConstraintRowGeneric.
void setConstraintRowSolverLowerLimit | ( | btSingleConstraintRowSolver | rowSolver | ) |
Definition at line 196 of file btSequentialImpulseConstraintSolver.h.
References m_resolveSingleConstraintRowLowerLimit.
void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulse | ( | btSolverConstraint & | solverConstraint, |
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
btManifoldPoint & | cp, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 981 of file btSequentialImpulseConstraintSolver.cpp.
References btSolverConstraint, infoGlobal, btContactSolverInfoData::m_solverMode, m_tmpSolverContactFrictionConstraintPool, and SOLVER_USE_2_FRICTION_DIRECTIONS.
Referenced by convertContact(), and internalSetupContactConstraints().
void setRandSeed | ( | unsigned long | seed | ) |
Definition at line 170 of file btSequentialImpulseConstraintSolver.h.
void btSequentialImpulseConstraintSolver::setupContactConstraint | ( | btSolverConstraint & | solverConstraint, |
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
btManifoldPoint & | cp, | ||
const btContactSolverInfo & | infoGlobal, | ||
btScalar & | relaxation, | ||
const btVector3 & | rel_pos1, | ||
const btVector3 & | rel_pos2 | ||
) |
warm starting (or zero if disabled)
Definition at line 796 of file btSequentialImpulseConstraintSolver.cpp.
References BT_CONTACT_FLAG_CONTACT_STIFFNESS_DAMPING, BT_CONTACT_FLAG_HAS_CONTACT_CFM, BT_CONTACT_FLAG_HAS_CONTACT_ERP, btSolverBody, btVector3, btRigidBody::computeImpulseDenominator(), blender::math::cross(), btRigidBody::getAngularFactor(), btManifoldPoint::getDistance(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), btRigidBody::getVelocityInLocalPoint(), infoGlobal, btManifoldPoint::m_appliedImpulse, btManifoldPoint::m_combinedContactDamping1, btManifoldPoint::m_combinedContactStiffness1, btManifoldPoint::m_combinedFriction, btManifoldPoint::m_combinedRestitution, btManifoldPoint::m_contactCFM, btManifoldPoint::m_contactERP, btManifoldPoint::m_contactPointFlags, btContactSolverInfoData::m_erp2, btContactSolverInfoData::m_globalCfm, btContactSolverInfoData::m_linearSlop, btManifoldPoint::m_normalWorldOnB, btContactSolverInfoData::m_restitutionVelocityThreshold, btContactSolverInfoData::m_solverMode, btContactSolverInfoData::m_sor, btContactSolverInfoData::m_splitImpulse, btContactSolverInfoData::m_splitImpulsePenetrationThreshold, btContactSolverInfoData::m_timeStep, btContactSolverInfoData::m_warmstartingFactor, restitutionCurve(), SIMD_EPSILON, and SOLVER_USE_WARMSTARTING.
Referenced by convertContact(), and internalSetupContactConstraints().
void btSequentialImpulseConstraintSolver::setupFrictionConstraint | ( | btSolverConstraint & | solverConstraint, |
const btVector3 & | normalAxis, | ||
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
btManifoldPoint & | cp, | ||
const btVector3 & | rel_pos1, | ||
const btVector3 & | rel_pos2, | ||
btCollisionObject * | colObj0, | ||
btCollisionObject * | colObj1, | ||
btScalar | relaxation, | ||
const btContactSolverInfo & | infoGlobal, | ||
btScalar | desiredVelocity = 0. , |
||
btScalar | cfmSlip = 0. |
||
) |
Definition at line 518 of file btSequentialImpulseConstraintSolver.cpp.
References BT_CONTACT_FLAG_FRICTION_ANCHOR, btSolverBody, btVector3, blender::math::cross(), blender::math::distance(), blender::math::dot(), btRigidBody::getAngularFactor(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), btManifoldPoint::getPositionWorldOnA(), btManifoldPoint::getPositionWorldOnB(), infoGlobal, btManifoldPoint::m_combinedFriction, btManifoldPoint::m_contactPointFlags, btContactSolverInfoData::m_frictionERP, and btContactSolverInfoData::m_timeStep.
Referenced by addFrictionConstraint(), and internalSetupContactConstraints().
Definition at line 360 of file btSequentialImpulseConstraintSolver.cpp.
References btCpuFeatureUtility::CPU_FEATURE_FMA3, btCpuFeatureUtility::CPU_FEATURE_SSE4_1, btCpuFeatureUtility::getCpuFeatures(), gResolveSingleConstraintRowGeneric_scalar_reference(), gResolveSingleConstraintRowLowerLimit_scalar_reference(), gResolveSplitPenetrationImpulse_scalar_reference(), gResolveSplitPenetrationImpulse_sse2(), m_resolveSingleConstraintRowGeneric, m_resolveSingleConstraintRowLowerLimit, and m_resolveSplitPenetrationImpulse.
Referenced by btSequentialImpulseConstraintSolver().
void btSequentialImpulseConstraintSolver::setupTorsionalFrictionConstraint | ( | btSolverConstraint & | solverConstraint, |
const btVector3 & | normalAxis, | ||
int | solverBodyIdA, | ||
int | solverBodyIdB, | ||
btManifoldPoint & | cp, | ||
btScalar | combinedTorsionalFriction, | ||
const btVector3 & | rel_pos1, | ||
const btVector3 & | rel_pos2, | ||
btCollisionObject * | colObj0, | ||
btCollisionObject * | colObj1, | ||
btScalar | relaxation, | ||
btScalar | desiredVelocity = 0. , |
||
btScalar | cfmSlip = 0. |
||
) |
Definition at line 619 of file btSequentialImpulseConstraintSolver.cpp.
References btSimdScalar, btSolverBody, btVector3, btRigidBody::getAngularFactor(), btRigidBody::getInvInertiaTensorWorld(), and sum().
Referenced by addTorsionalFrictionConstraint(), and internalSetupContactConstraints().
|
virtual |
Referenced by solveMultiBodyGroup().
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Definition at line 1697 of file btSequentialImpulseConstraintSolver.cpp.
References BT_PROFILE, btMax(), btSolverConstraint, infoGlobal, btContactSolverInfoData::m_numIterations, m_orderTmpConstraintPool, btContactSolverInfoData::m_splitImpulse, m_tmpSolverContactConstraintPool, resolveSplitPenetrationImpulse(), and btAlignedObjectArray< T >::size().
Referenced by solveDeformableGroupIterations().
|
protectedvirtual |
|
protected |
Definition at line 1808 of file btSequentialImpulseConstraintSolver.cpp.
References infoGlobal, m_angularVelocity, m_externalForceImpulse, m_externalTorqueImpulse, m_linearVelocity, btContactSolverInfoData::m_splitImpulse, btContactSolverInfoData::m_splitImpulseTurnErp, btContactSolverInfoData::m_timeStep, m_worldTransform, and btRigidBody::setLinearVelocity().
Referenced by internalWriteBackBodies().
|
protected |
Definition at line 1765 of file btSequentialImpulseConstraintSolver.cpp.
References btAssert, btSolverConstraint, infoGlobal, btManifoldPoint::m_appliedImpulse, btManifoldPoint::m_appliedImpulseLateral1, btManifoldPoint::m_appliedImpulseLateral2, btContactSolverInfoData::m_solverMode, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, and SOLVER_USE_2_FRICTION_DIRECTIONS.
Referenced by internalWriteBackContacts().
|
protected |
Definition at line 1785 of file btSequentialImpulseConstraintSolver.cpp.
References btFabs(), btJointFeedback, btSolverConstraint, btTypedConstraint(), fb(), infoGlobal, btContactSolverInfoData::m_timeStep, and m_tmpSolverNonContactConstraintPool.
Referenced by internalWriteBackJoints().
|
virtual |
Definition at line 385 of file btSequentialImpulseConstraintSolver.cpp.
btSequentialImpulseConstraintSolver __pad0__ |
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method.
Definition at line 51 of file btSequentialImpulseConstraintSolver.h.
btSolverAnalyticsData m_analyticsData |
Definition at line 212 of file btSequentialImpulseConstraintSolver.h.
Referenced by solveDeformableGroupIterations().
unsigned long m_btSeed2 |
m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction
Definition at line 108 of file btSequentialImpulseConstraintSolver.h.
Referenced by btRand2(), btSequentialImpulseConstraintSolver(), getRandSeed(), and setRandSeed().
int m_cachedSolverMode |
Definition at line 80 of file btSequentialImpulseConstraintSolver.h.
Referenced by btSequentialImpulseConstraintSolver().
int m_fixedBodyId |
Definition at line 67 of file btSequentialImpulseConstraintSolver.h.
Referenced by getOrInitSolverBody(), and getOrInitSolverBodyThreadsafe().
btAlignedObjectArray<int> m_kinematicBodyUniqueIdToSolverBodyTable |
Definition at line 75 of file btSequentialImpulseConstraintSolver.h.
Referenced by convertBodies(), getOrInitSolverBody(), and getOrInitSolverBodyThreadsafe().
btScalar m_leastSquaresResidual |
Definition at line 83 of file btSequentialImpulseConstraintSolver.h.
Referenced by solveDeformableGroupIterations().
int m_maxOverrideNumSolverIterations |
Definition at line 66 of file btSequentialImpulseConstraintSolver.h.
Referenced by convertJoint(), and solveDeformableGroupIterations().
btAlignedObjectArray<int> m_orderFrictionConstraintPool |
Definition at line 64 of file btSequentialImpulseConstraintSolver.h.
Referenced by solveSingleIteration().
btAlignedObjectArray<int> m_orderNonContactConstraintPool |
Definition at line 63 of file btSequentialImpulseConstraintSolver.h.
Referenced by solveSingleIteration().
btAlignedObjectArray<int> m_orderTmpConstraintPool |
Definition at line 62 of file btSequentialImpulseConstraintSolver.h.
Referenced by solveGroupCacheFriendlySplitImpulseIterations(), and solveSingleIteration().
btSingleConstraintRowSolver m_resolveSingleConstraintRowGeneric |
Definition at line 77 of file btSequentialImpulseConstraintSolver.h.
Referenced by getActiveConstraintRowSolverGeneric(), resolveSingleConstraintRowGeneric(), resolveSingleConstraintRowGenericSIMD(), setConstraintRowSolverGeneric(), and setupSolverFunctions().
btSingleConstraintRowSolver m_resolveSingleConstraintRowLowerLimit |
Definition at line 78 of file btSequentialImpulseConstraintSolver.h.
Referenced by getActiveConstraintRowSolverLowerLimit(), resolveSingleConstraintRowLowerLimit(), resolveSingleConstraintRowLowerLimitSIMD(), setConstraintRowSolverLowerLimit(), and setupSolverFunctions().
btSingleConstraintRowSolver m_resolveSplitPenetrationImpulse |
Definition at line 79 of file btSequentialImpulseConstraintSolver.h.
Referenced by resolveSplitPenetrationImpulse(), resolveSplitPenetrationImpulseCacheFriendly(), resolveSplitPenetrationSIMD(), and setupSolverFunctions().
btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> m_tmpConstraintSizesPool |
Definition at line 65 of file btSequentialImpulseConstraintSolver.h.
Referenced by convertJoints(), btMLCPSolver::createMLCPFast(), btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(), internalConvertMultipleJoints(), and internalInitMultipleJoints().
btConstraintArray m_tmpSolverContactConstraintPool |
Definition at line 57 of file btSequentialImpulseConstraintSolver.h.
Referenced by allocAllContactConstraints(), convertContact(), internalAllocContactConstraints(), internalSetupContactConstraints(), resolveAllRollingFrictionConstraints(), resolveMultipleContactConstraints(), resolveMultipleContactConstraintsInterleaved(), resolveMultipleContactFrictionConstraints(), resolveMultipleContactRollingFrictionConstraints(), resolveMultipleContactSplitPenetrationImpulseConstraints(), setupAllContactConstraints(), setupBatchedContactConstraints(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveGroupCacheFriendlySplitImpulseIterations(), solveSingleIteration(), and writeBackContacts().
btConstraintArray m_tmpSolverContactFrictionConstraintPool |
Definition at line 59 of file btSequentialImpulseConstraintSolver.h.
Referenced by addFrictionConstraint(), allocAllContactConstraints(), convertContact(), internalAllocContactConstraints(), internalSetupContactConstraints(), resolveMultipleContactConstraintsInterleaved(), resolveMultipleContactFrictionConstraints(), setFrictionConstraintImpulse(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveSingleIteration(), and writeBackContacts().
btConstraintArray m_tmpSolverContactRollingFrictionConstraintPool |
Definition at line 60 of file btSequentialImpulseConstraintSolver.h.
Referenced by addTorsionalFrictionConstraint(), allocAllContactConstraints(), internalAllocContactConstraints(), internalSetupContactConstraints(), resolveAllRollingFrictionConstraints(), resolveMultipleContactConstraintsInterleaved(), resolveMultipleContactRollingFrictionConstraints(), and solveSingleIteration().
btConstraintArray m_tmpSolverNonContactConstraintPool |
Definition at line 58 of file btSequentialImpulseConstraintSolver.h.
Referenced by convertJoints(), btMLCPSolver::createMLCPFast(), btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(), internalConvertMultipleJoints(), resolveMultipleJointConstraints(), setupBatchedJointConstraints(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveSingleIteration(), and writeBackJoints().