Bullet Collision Detection & Physics Library
btMultiBodyConstraint Class Referenceabstract

#include <btMultiBodyConstraint.h>

Inheritance diagram for btMultiBodyConstraint:
Collaboration diagram for btMultiBodyConstraint:

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btMultiBodyConstraint (btMultiBody *bodyA, btMultiBody *bodyB, int linkA, int linkB, int numRows, bool isUnilateral)
virtual ~btMultiBodyConstraint ()
void updateJacobianSizes ()
void allocateJacobiansMultiDof ()
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
btMultiBody * getMultiBodyA ()
btMultiBody * getMultiBodyB ()
void internalSetAppliedImpulse (int dof, btScalar appliedImpulse)
btScalar getAppliedImpulse (int dof)
btScalar getPosition (int row) const
void setPosition (int row, btScalar pos)
bool isUnilateral () const
btScalar * jacobianA (int row)
const btScalar * jacobianA (int row) const
btScalar * jacobianB (int row)
const btScalar * jacobianB (int row) const
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)

Protected Member 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)

Protected Attributes

btMultiBody * m_bodyA
btMultiBody * m_bodyB
int m_linkA
int m_linkB
int m_numRows
int m_jacSizeA
int m_jacSizeBoth
int m_posOffset
bool m_isUnilateral
int m_numDofsFinalized
btScalar m_maxAppliedImpulse
btAlignedObjectArray< btScalar > m_data

Detailed Description

Definition at line 42 of file btMultiBodyConstraint.h.

Constructor & Destructor Documentation

◆ btMultiBodyConstraint()

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

Definition at line 7 of file btMultiBodyConstraint.cpp.

◆ ~btMultiBodyConstraint()

btMultiBodyConstraint::~btMultiBodyConstraint ( )
virtual

Definition at line 45 of file btMultiBodyConstraint.cpp.

Member Function Documentation

◆ allocateJacobiansMultiDof()

void btMultiBodyConstraint::allocateJacobiansMultiDof ( )

Definition at line 37 of file btMultiBodyConstraint.cpp.

◆ applyDeltaVee()

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

Definition at line 49 of file btMultiBodyConstraint.cpp.

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btMultiBodyConstraint::BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ createConstraintRows()

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

◆ debugDraw()

virtual void btMultiBodyConstraint::debugDraw ( class btIDebugDraw * drawer)
pure virtual

◆ fillMultiBodyConstraint()

btScalar btMultiBodyConstraint::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 )
protected

warm starting (or zero if disabled)

Definition at line 55 of file btMultiBodyConstraint.cpp.

◆ finalizeMultiDof()

virtual void btMultiBodyConstraint::finalizeMultiDof ( )
pure virtual

◆ getAppliedImpulse()

btScalar btMultiBodyConstraint::getAppliedImpulse ( int dof)
inline

Definition at line 130 of file btMultiBodyConstraint.h.

◆ getIslandIdA()

virtual int btMultiBodyConstraint::getIslandIdA ( ) const
pure virtual

◆ getIslandIdB()

virtual int btMultiBodyConstraint::getIslandIdB ( ) const
pure virtual

◆ getMaxAppliedImpulse()

btScalar btMultiBodyConstraint::getMaxAppliedImpulse ( ) const
inline

Definition at line 175 of file btMultiBodyConstraint.h.

◆ getMultiBodyA()

btMultiBody * btMultiBodyConstraint::getMultiBodyA ( )
inline

Definition at line 113 of file btMultiBodyConstraint.h.

◆ getMultiBodyB()

btMultiBody * btMultiBodyConstraint::getMultiBodyB ( )
inline

Definition at line 117 of file btMultiBodyConstraint.h.

◆ getNumRows()

int btMultiBodyConstraint::getNumRows ( ) const
inline

Definition at line 108 of file btMultiBodyConstraint.h.

◆ getPosition()

btScalar btMultiBodyConstraint::getPosition ( int row) const
inline

Definition at line 139 of file btMultiBodyConstraint.h.

◆ internalSetAppliedImpulse()

void btMultiBodyConstraint::internalSetAppliedImpulse ( int dof,
btScalar appliedImpulse )
inline

Definition at line 122 of file btMultiBodyConstraint.h.

◆ isUnilateral()

bool btMultiBodyConstraint::isUnilateral ( ) const
inline

Definition at line 150 of file btMultiBodyConstraint.h.

◆ jacobianA() [1/2]

btScalar * btMultiBodyConstraint::jacobianA ( int row)
inline

Definition at line 158 of file btMultiBodyConstraint.h.

◆ jacobianA() [2/2]

const btScalar * btMultiBodyConstraint::jacobianA ( int row) const
inline

Definition at line 162 of file btMultiBodyConstraint.h.

◆ jacobianB() [1/2]

btScalar * btMultiBodyConstraint::jacobianB ( int row)
inline

Definition at line 166 of file btMultiBodyConstraint.h.

◆ jacobianB() [2/2]

const btScalar * btMultiBodyConstraint::jacobianB ( int row) const
inline

Definition at line 170 of file btMultiBodyConstraint.h.

◆ setErp()

virtual void btMultiBodyConstraint::setErp ( btScalar erp)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint, and btMultiBodyJointMotor.

Definition at line 189 of file btMultiBodyConstraint.h.

◆ setFrameInB()

virtual void btMultiBodyConstraint::setFrameInB ( const btMatrix3x3 & frameInB)
inlinevirtual

◆ setGearAuxLink()

virtual void btMultiBodyConstraint::setGearAuxLink ( int gearAuxLink)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 187 of file btMultiBodyConstraint.h.

◆ setGearRatio()

virtual void btMultiBodyConstraint::setGearRatio ( btScalar ratio)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 186 of file btMultiBodyConstraint.h.

◆ setMaxAppliedImpulse()

void btMultiBodyConstraint::setMaxAppliedImpulse ( btScalar maxImp)
inline

Definition at line 179 of file btMultiBodyConstraint.h.

◆ setPivotInB()

virtual void btMultiBodyConstraint::setPivotInB ( const btVector3 & pivotInB)
inlinevirtual

◆ setPosition()

void btMultiBodyConstraint::setPosition ( int row,
btScalar pos )
inline

Definition at line 144 of file btMultiBodyConstraint.h.

◆ setRelativePositionTarget()

virtual void btMultiBodyConstraint::setRelativePositionTarget ( btScalar relPosTarget)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 188 of file btMultiBodyConstraint.h.

◆ updateJacobianSizes()

void btMultiBodyConstraint::updateJacobianSizes ( )

Definition at line 22 of file btMultiBodyConstraint.cpp.

Member Data Documentation

◆ m_bodyA

btMultiBody* btMultiBodyConstraint::m_bodyA
protected

Definition at line 46 of file btMultiBodyConstraint.h.

◆ m_bodyB

btMultiBody* btMultiBodyConstraint::m_bodyB
protected

Definition at line 47 of file btMultiBodyConstraint.h.

◆ m_data

btAlignedObjectArray<btScalar> btMultiBodyConstraint::m_data
protected

Definition at line 66 of file btMultiBodyConstraint.h.

◆ m_isUnilateral

bool btMultiBodyConstraint::m_isUnilateral
protected

Definition at line 56 of file btMultiBodyConstraint.h.

◆ m_jacSizeA

int btMultiBodyConstraint::m_jacSizeA
protected

Definition at line 52 of file btMultiBodyConstraint.h.

◆ m_jacSizeBoth

int btMultiBodyConstraint::m_jacSizeBoth
protected

Definition at line 53 of file btMultiBodyConstraint.h.

◆ m_linkA

int btMultiBodyConstraint::m_linkA
protected

Definition at line 48 of file btMultiBodyConstraint.h.

◆ m_linkB

int btMultiBodyConstraint::m_linkB
protected

Definition at line 49 of file btMultiBodyConstraint.h.

◆ m_maxAppliedImpulse

btScalar btMultiBodyConstraint::m_maxAppliedImpulse
protected

Definition at line 58 of file btMultiBodyConstraint.h.

◆ m_numDofsFinalized

int btMultiBodyConstraint::m_numDofsFinalized
protected

Definition at line 57 of file btMultiBodyConstraint.h.

◆ m_numRows

int btMultiBodyConstraint::m_numRows
protected

Definition at line 51 of file btMultiBodyConstraint.h.

◆ m_posOffset

int btMultiBodyConstraint::m_posOffset
protected

Definition at line 54 of file btMultiBodyConstraint.h.


The documentation for this class was generated from the following files: