Blender V4.5
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 )

◆ createConstraintRows()

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

◆ debugDraw()

virtual void debugDraw ( class btIDebugDraw * drawer)
pure virtual

References debugDraw().

◆ fillMultiBodyConstraint()

◆ finalizeMultiDof()

virtual void finalizeMultiDof ( )
pure virtual

References finalizeMultiDof().

◆ getAppliedImpulse()

btScalar getAppliedImpulse ( int dof)

Definition at line 154 of file btMultiBodyConstraint.h.

References btAssert, getAppliedImpulse(), getNumRows(), and m_data.

◆ getConstraintType()

int getConstraintType ( ) const

Definition at line 108 of file btMultiBodyConstraint.h.

References getConstraintType(), and m_type.

◆ getIslandIdA()

virtual int getIslandIdA ( ) const
pure virtual

References getIslandIdA().

Referenced by getIslandIdA(), and getIslandIdA().

◆ getIslandIdB()

virtual int getIslandIdB ( ) const
pure virtual

References getIslandIdB().

Referenced by getIslandIdB(), and getIslandIdB().

◆ getLinkA()

int getLinkA ( ) const

Definition at line 139 of file btMultiBodyConstraint.h.

References getLinkA(), and m_linkA.

Referenced by getLinkA().

◆ getLinkB()

int getLinkB ( ) const

Definition at line 143 of file btMultiBodyConstraint.h.

References getLinkB(), and m_linkB.

Referenced by getLinkB().

◆ getMaxAppliedImpulse()

btScalar getMaxAppliedImpulse ( ) const

Definition at line 198 of file btMultiBodyConstraint.h.

References getMaxAppliedImpulse().

◆ getMultiBodyA()

btMultiBody * getMultiBodyA ( )

Definition at line 130 of file btMultiBodyConstraint.h.

References btMultiBody, and getMultiBodyA().

Referenced by getMultiBodyA().

◆ getMultiBodyB()

btMultiBody * getMultiBodyB ( )

Definition at line 134 of file btMultiBodyConstraint.h.

References btMultiBody, getMultiBodyB(), and m_bodyB.

Referenced by getMultiBodyB().

◆ getNumRows()

◆ getPosition()

btScalar getPosition ( int row) const

◆ internalSetAppliedImpulse()

void internalSetAppliedImpulse ( int dof,
btScalar appliedImpulse )

Definition at line 147 of file btMultiBodyConstraint.h.

References btAssert, getNumRows(), internalSetAppliedImpulse(), and m_data.

◆ isUnilateral()

bool isUnilateral ( ) const

Definition at line 173 of file btMultiBodyConstraint.h.

References isUnilateral(), and m_isUnilateral.

Referenced by btMultiBodyConstraint(), and isUnilateral().

◆ jacobianA()

◆ jacobianB()

◆ setErp()

virtual void setErp ( btScalar erp)
virtual

Definition at line 212 of file btMultiBodyConstraint.h.

References setErp().

Referenced by setErp().

◆ setFrameInB()

virtual void setFrameInB ( const btMatrix3x3 & frameInB)
virtual

Definition at line 113 of file btMultiBodyConstraint.h.

References btMatrix3x3, frameInB, and setFrameInB().

Referenced by setFrameInB().

◆ setGearAuxLink()

virtual void setGearAuxLink ( int gearAuxLink)
virtual

Definition at line 210 of file btMultiBodyConstraint.h.

References setGearAuxLink().

Referenced by setGearAuxLink().

◆ setGearRatio()

virtual void setGearRatio ( btScalar ratio)
virtual

Definition at line 209 of file btMultiBodyConstraint.h.

References setGearRatio().

Referenced by setGearRatio().

◆ setMaxAppliedImpulse()

void setMaxAppliedImpulse ( btScalar maxImp)

Definition at line 202 of file btMultiBodyConstraint.h.

References setMaxAppliedImpulse().

◆ setPivotInB()

virtual void setPivotInB ( const btVector3 & pivotInB)
virtual

Definition at line 114 of file btMultiBodyConstraint.h.

References btVector3, and setPivotInB().

Referenced by setPivotInB().

◆ setPosition()

void setPosition ( int row,
btScalar pos )

◆ setRelativePositionTarget()

virtual void setRelativePositionTarget ( btScalar relPosTarget)
virtual

Definition at line 211 of file btMultiBodyConstraint.h.

References setRelativePositionTarget().

Referenced by setRelativePositionTarget().

◆ updateJacobianSizes()

void btMultiBodyConstraint::updateJacobianSizes ( )

Definition at line 20 of file btMultiBodyConstraint.cpp.

References m_bodyB, m_jacSizeA, and m_jacSizeBoth.

Referenced by allocateJacobiansMultiDof(), and btMultiBodyConstraint().

◆ ~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(), btMultiBodyConstraint(), 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