Blender V5.0
btMultiBodyConstraint.h File Reference

Go to the source code of this file.

Classes

struct  btMultiBodyJacobianData

Enumerations

enum  btTypedMultiBodyConstraintType {
  MULTIBODY_CONSTRAINT_LIMIT =3 , MULTIBODY_CONSTRAINT_1DOF_JOINT_MOTOR , MULTIBODY_CONSTRAINT_GEAR , MULTIBODY_CONSTRAINT_POINT_TO_POINT ,
  MULTIBODY_CONSTRAINT_SLIDER , MULTIBODY_CONSTRAINT_SPHERICAL_MOTOR , MULTIBODY_CONSTRAINT_FIXED , MAX_MULTIBODY_CONSTRAINT_TYPE
}

Functions

void applyDeltaVee (btMultiBodyJacobianData &data, btScalar *delta_vee, btScalar impulse, int velocityIndex, int ndof)
btScalar fillMultiBodyConstraint (btMultiBodySolverConstraint &solverConstraint, btMultiBodyJacobianData &data, btScalar *jacOrgA, btScalar *jacOrgB, const btVector3 &constraintNormalAng, const btVector3 &constraintNormalLin, const btVector3 &posAworld, const btVector3 &posBworld, btScalar posError, const btContactSolverInfo &infoGlobal, btScalar lowerLimit, btScalar upperLimit, bool angConstraint=false, btScalar relaxation=1.f, bool isFriction=false, btScalar desiredVelocity=0, btScalar cfmSlip=0)
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btMultiBodyConstraint (btMultiBody *bodyA, btMultiBody *bodyB, int linkA, int linkB, int numRows, bool isUnilateral, int type)
virtual ~btMultiBodyConstraint ()
void updateJacobianSizes ()
void allocateJacobiansMultiDof ()
int getConstraintType () const
virtual void setFrameInB (const btMatrix3x3 &frameInB)
virtual void setPivotInB (const btVector3 &pivotInB)
virtual void finalizeMultiDof ()=0
virtual int getIslandIdA () const =0
virtual int getIslandIdB () const =0
virtual void createConstraintRows (btMultiBodyConstraintArray &constraintRows, btMultiBodyJacobianData &data, const btContactSolverInfo &infoGlobal)=0
int getNumRows () const
btMultiBodygetMultiBodyA ()
btMultiBodygetMultiBodyB ()
int getLinkA () const
int getLinkB () const
void internalSetAppliedImpulse (int dof, btScalar appliedImpulse)
btScalar getAppliedImpulse (int dof)
btScalar getPosition (int row) const
void setPosition (int row, btScalar pos)
bool isUnilateral () const
btScalarjacobianA (int row)
btScalarjacobianB (int row)
btScalar getMaxAppliedImpulse () const
void setMaxAppliedImpulse (btScalar maxImp)
virtual void debugDraw (class btIDebugDraw *drawer)=0
virtual void setGearRatio (btScalar ratio)
virtual void setGearAuxLink (int gearAuxLink)
virtual void setRelativePositionTarget (btScalar relPosTarget)
virtual void setErp (btScalar erp)

Variables

 btMultiBodyConstraint
btMultiBodym_bodyB
int m_linkA
int m_linkB
int m_type
int m_numRows
int m_jacSizeA
int m_jacSizeBoth
int m_posOffset
bool m_isUnilateral
int m_numDofsFinalized
btScalar m_maxAppliedImpulse
btAlignedObjectArray< btScalarm_data

Enumeration Type Documentation

◆ btTypedMultiBodyConstraintType

Enumerator
MULTIBODY_CONSTRAINT_LIMIT 
MULTIBODY_CONSTRAINT_1DOF_JOINT_MOTOR 
MULTIBODY_CONSTRAINT_GEAR 
MULTIBODY_CONSTRAINT_POINT_TO_POINT 
MULTIBODY_CONSTRAINT_SLIDER 
MULTIBODY_CONSTRAINT_SPHERICAL_MOTOR 
MULTIBODY_CONSTRAINT_FIXED 
MAX_MULTIBODY_CONSTRAINT_TYPE 

Definition at line 25 of file btMultiBodyConstraint.h.

Function Documentation

◆ allocateJacobiansMultiDof()

◆ applyDeltaVee()

void btMultiBodyConstraint::applyDeltaVee ( btMultiBodyJacobianData & data,
btScalar * delta_vee,
btScalar impulse,
int velocityIndex,
int ndof )

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ btMultiBodyConstraint()

btMultiBodyConstraint ( btMultiBody * bodyA,
btMultiBody * bodyB,
int linkA,
int linkB,
int numRows,
bool isUnilateral,
int type )

References btMultiBody, and isUnilateral().

◆ createConstraintRows()

virtual void createConstraintRows ( btMultiBodyConstraintArray & constraintRows,
btMultiBodyJacobianData & data,
const btContactSolverInfo & infoGlobal )
pure virtual

References data, and infoGlobal.

◆ debugDraw()

virtual void debugDraw ( class btIDebugDraw * drawer)
pure virtual

◆ fillMultiBodyConstraint()

◆ finalizeMultiDof()

virtual void finalizeMultiDof ( )
pure virtual

◆ getAppliedImpulse()

btScalar getAppliedImpulse ( int dof)

Definition at line 154 of file btMultiBodyConstraint.h.

References btAssert, getNumRows(), and m_data.

◆ getConstraintType()

int getConstraintType ( ) const

Definition at line 108 of file btMultiBodyConstraint.h.

References m_type.

◆ getIslandIdA()

virtual int getIslandIdA ( ) const
pure virtual

◆ getIslandIdB()

virtual int getIslandIdB ( ) const
pure virtual

◆ getLinkA()

int getLinkA ( ) const

Definition at line 139 of file btMultiBodyConstraint.h.

References m_linkA.

◆ getLinkB()

int getLinkB ( ) const

Definition at line 143 of file btMultiBodyConstraint.h.

References m_linkB.

◆ getMaxAppliedImpulse()

btScalar getMaxAppliedImpulse ( ) const

Definition at line 198 of file btMultiBodyConstraint.h.

◆ getMultiBodyA()

btMultiBody * getMultiBodyA ( )

Definition at line 130 of file btMultiBodyConstraint.h.

References btMultiBody.

◆ getMultiBodyB()

btMultiBody * getMultiBodyB ( )

Definition at line 134 of file btMultiBodyConstraint.h.

References btMultiBody, and m_bodyB.

◆ getNumRows()

◆ getPosition()

btScalar getPosition ( int row) const

Definition at line 163 of file btMultiBodyConstraint.h.

References m_data, and m_posOffset.

Referenced by btMultiBodyJointLimitConstraint::createConstraintRows().

◆ internalSetAppliedImpulse()

void internalSetAppliedImpulse ( int dof,
btScalar appliedImpulse )

Definition at line 147 of file btMultiBodyConstraint.h.

References btAssert, getNumRows(), and m_data.

◆ isUnilateral()

bool isUnilateral ( ) const

Definition at line 173 of file btMultiBodyConstraint.h.

References m_isUnilateral.

Referenced by btMultiBodyConstraint().

◆ jacobianA()

◆ jacobianB()

◆ setErp()

virtual void setErp ( btScalar erp)
virtual

Definition at line 212 of file btMultiBodyConstraint.h.

◆ setFrameInB()

virtual void setFrameInB ( const btMatrix3x3 & frameInB)
virtual

Definition at line 113 of file btMultiBodyConstraint.h.

References btMatrix3x3, and frameInB.

◆ setGearAuxLink()

virtual void setGearAuxLink ( int gearAuxLink)
virtual

Definition at line 210 of file btMultiBodyConstraint.h.

◆ setGearRatio()

virtual void setGearRatio ( btScalar ratio)
virtual

Definition at line 209 of file btMultiBodyConstraint.h.

◆ setMaxAppliedImpulse()

void setMaxAppliedImpulse ( btScalar maxImp)

Definition at line 202 of file btMultiBodyConstraint.h.

◆ setPivotInB()

virtual void setPivotInB ( const btVector3 & pivotInB)
virtual

Definition at line 114 of file btMultiBodyConstraint.h.

References btVector3.

◆ setPosition()

void setPosition ( int row,
btScalar pos )

Definition at line 168 of file btMultiBodyConstraint.h.

References m_data, m_posOffset, and pos.

Referenced by btMultiBodyJointLimitConstraint::createConstraintRows().

◆ setRelativePositionTarget()

virtual void setRelativePositionTarget ( btScalar relPosTarget)
virtual

Definition at line 211 of file btMultiBodyConstraint.h.

◆ updateJacobianSizes()

void btMultiBodyConstraint::updateJacobianSizes ( )

Definition at line 20 of file btMultiBodyConstraint.cpp.

References m_bodyB, m_jacSizeA, and m_jacSizeBoth.

Referenced by allocateJacobiansMultiDof().

◆ ~btMultiBodyConstraint()

btMultiBodyConstraint::~btMultiBodyConstraint ( )
virtual

Definition at line 43 of file btMultiBodyConstraint.cpp.

Variable Documentation

◆ btMultiBodyConstraint

btMultiBodyConstraint::btMultiBodyConstraint
Initial value:
{
protected:
btMultiBody* m_bodyA
btMultiBody
Definition btMultiBody.h:51

Definition at line 56 of file btMultiBodyConstraint.h.

Referenced by btMultiBodyDynamicsWorld::addMultiBodyConstraint(), btGetMultiBodyConstraintIslandId(), btMultiBodyFixedConstraint::btMultiBodyFixedConstraint(), btMultiBodyFixedConstraint::btMultiBodyFixedConstraint(), btMultiBodyGearConstraint::btMultiBodyGearConstraint(), btMultiBodyJointLimitConstraint::btMultiBodyJointLimitConstraint(), btMultiBodyJointMotor::btMultiBodyJointMotor(), btMultiBodyJointMotor::btMultiBodyJointMotor(), btMultiBodyPoint2Point(), btMultiBodyPoint2Point(), btMultiBodySliderConstraint::btMultiBodySliderConstraint(), btMultiBodySliderConstraint::btMultiBodySliderConstraint(), btMultiBodySphericalJointMotor::btMultiBodySphericalJointMotor(), btMultiBodyDynamicsWorld::calculateSimulationIslands(), btMultiBodyDynamicsWorld::debugDrawMultiBodyConstraint(), btMultiBodyDynamicsWorld::debugDrawWorld(), btMultiBodyDynamicsWorld::getMultiBodyConstraint(), btMultiBodyDynamicsWorld::getMultiBodyConstraint(), btSortMultiBodyConstraintOnIslandPredicate::operator()(), DeformableBodyInplaceSolverIslandCallback::processConstraints(), MultiBodyInplaceSolverIslandCallback::processConstraints(), MultiBodyInplaceSolverIslandCallback::processIsland(), btMultiBodyDynamicsWorld::removeMultiBodyConstraint(), MultiBodyInplaceSolverIslandCallback::setup(), btDeformableMultiBodyDynamicsWorld::setupConstraints(), solveDeformableBodyGroup(), btMultiBodyDynamicsWorld::solveExternalForces(), solveGroupCacheFriendlyFinish(), and solveMultiBodyGroup().

◆ m_bodyB

◆ m_data

◆ m_isUnilateral

bool m_isUnilateral

Definition at line 71 of file btMultiBodyConstraint.h.

Referenced by isUnilateral().

◆ m_jacSizeA

int m_jacSizeA

Definition at line 67 of file btMultiBodyConstraint.h.

Referenced by jacobianB(), and updateJacobianSizes().

◆ m_jacSizeBoth

◆ m_linkA

◆ m_linkB

◆ m_maxAppliedImpulse

btScalar m_maxAppliedImpulse

Definition at line 73 of file btMultiBodyConstraint.h.

◆ m_numDofsFinalized

◆ m_numRows

int m_numRows

◆ m_posOffset

int m_posOffset

Definition at line 69 of file btMultiBodyConstraint.h.

Referenced by allocateJacobiansMultiDof(), getPosition(), and setPosition().

◆ m_type