Bullet Collision Detection & Physics Library
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btMultiBodyConstraint Class Referenceabstract

#include <btMultiBodyConstraint.h>

Inheritance diagram for btMultiBodyConstraint:
Inheritance graph
[legend]
Collaboration diagram for btMultiBodyConstraint:
Collaboration graph
[legend]

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: