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, 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)
 
const btScalarjacobianA (int row) const
 
btScalarjacobianB (int row)
 
const btScalarjacobianB (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, btScalar damping=1.0)
 

Protected Attributes

btMultiBodym_bodyA
 
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
 

Detailed Description

Definition at line 55 of file btMultiBodyConstraint.h.

Constructor & Destructor Documentation

◆ btMultiBodyConstraint()

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

Definition at line 5 of file btMultiBodyConstraint.cpp.

◆ ~btMultiBodyConstraint()

btMultiBodyConstraint::~btMultiBodyConstraint ( )
virtual

Definition at line 43 of file btMultiBodyConstraint.cpp.

Member Function Documentation

◆ allocateJacobiansMultiDof()

void btMultiBodyConstraint::allocateJacobiansMultiDof ( )

Definition at line 35 of file btMultiBodyConstraint.cpp.

◆ applyDeltaVee()

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

Definition at line 47 of file btMultiBodyConstraint.cpp.

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

btMultiBodyConstraint::BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ createConstraintRows()

◆ debugDraw()

◆ 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,
btScalar damping = 1.0 )
protected

Definition at line 53 of file btMultiBodyConstraint.cpp.

◆ finalizeMultiDof()

◆ getAppliedImpulse()

btScalar btMultiBodyConstraint::getAppliedImpulse ( int dof)
inline

Definition at line 154 of file btMultiBodyConstraint.h.

◆ getConstraintType()

int btMultiBodyConstraint::getConstraintType ( ) const
inline

Definition at line 108 of file btMultiBodyConstraint.h.

◆ getIslandIdA()

◆ getIslandIdB()

◆ getLinkA()

int btMultiBodyConstraint::getLinkA ( ) const
inline

Definition at line 139 of file btMultiBodyConstraint.h.

◆ getLinkB()

int btMultiBodyConstraint::getLinkB ( ) const
inline

Definition at line 143 of file btMultiBodyConstraint.h.

◆ getMaxAppliedImpulse()

btScalar btMultiBodyConstraint::getMaxAppliedImpulse ( ) const
inline

Definition at line 198 of file btMultiBodyConstraint.h.

◆ getMultiBodyA()

btMultiBody * btMultiBodyConstraint::getMultiBodyA ( )
inline

Definition at line 130 of file btMultiBodyConstraint.h.

◆ getMultiBodyB()

btMultiBody * btMultiBodyConstraint::getMultiBodyB ( )
inline

Definition at line 134 of file btMultiBodyConstraint.h.

◆ getNumRows()

int btMultiBodyConstraint::getNumRows ( ) const
inline

Definition at line 125 of file btMultiBodyConstraint.h.

◆ getPosition()

btScalar btMultiBodyConstraint::getPosition ( int row) const
inline

Definition at line 163 of file btMultiBodyConstraint.h.

◆ internalSetAppliedImpulse()

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

Definition at line 147 of file btMultiBodyConstraint.h.

◆ isUnilateral()

bool btMultiBodyConstraint::isUnilateral ( ) const
inline

Definition at line 173 of file btMultiBodyConstraint.h.

◆ jacobianA() [1/2]

btScalar * btMultiBodyConstraint::jacobianA ( int row)
inline

Definition at line 181 of file btMultiBodyConstraint.h.

◆ jacobianA() [2/2]

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

Definition at line 185 of file btMultiBodyConstraint.h.

◆ jacobianB() [1/2]

btScalar * btMultiBodyConstraint::jacobianB ( int row)
inline

Definition at line 189 of file btMultiBodyConstraint.h.

◆ jacobianB() [2/2]

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

Definition at line 193 of file btMultiBodyConstraint.h.

◆ setErp()

virtual void btMultiBodyConstraint::setErp ( btScalar erp)
inlinevirtual

◆ setFrameInB()

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

◆ setGearAuxLink()

virtual void btMultiBodyConstraint::setGearAuxLink ( int gearAuxLink)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 210 of file btMultiBodyConstraint.h.

◆ setGearRatio()

virtual void btMultiBodyConstraint::setGearRatio ( btScalar ratio)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 209 of file btMultiBodyConstraint.h.

◆ setMaxAppliedImpulse()

void btMultiBodyConstraint::setMaxAppliedImpulse ( btScalar maxImp)
inline

Definition at line 202 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 168 of file btMultiBodyConstraint.h.

◆ setRelativePositionTarget()

virtual void btMultiBodyConstraint::setRelativePositionTarget ( btScalar relPosTarget)
inlinevirtual

Reimplemented in btMultiBodyGearConstraint.

Definition at line 211 of file btMultiBodyConstraint.h.

◆ updateJacobianSizes()

void btMultiBodyConstraint::updateJacobianSizes ( )

Definition at line 20 of file btMultiBodyConstraint.cpp.

Member Data Documentation

◆ m_bodyA

btMultiBody* btMultiBodyConstraint::m_bodyA
protected

Definition at line 59 of file btMultiBodyConstraint.h.

◆ m_bodyB

btMultiBody* btMultiBodyConstraint::m_bodyB
protected

Definition at line 60 of file btMultiBodyConstraint.h.

◆ m_data

btAlignedObjectArray<btScalar> btMultiBodyConstraint::m_data
protected

Definition at line 80 of file btMultiBodyConstraint.h.

◆ m_isUnilateral

bool btMultiBodyConstraint::m_isUnilateral
protected

Definition at line 71 of file btMultiBodyConstraint.h.

◆ m_jacSizeA

int btMultiBodyConstraint::m_jacSizeA
protected

Definition at line 67 of file btMultiBodyConstraint.h.

◆ m_jacSizeBoth

int btMultiBodyConstraint::m_jacSizeBoth
protected

Definition at line 68 of file btMultiBodyConstraint.h.

◆ m_linkA

int btMultiBodyConstraint::m_linkA
protected

Definition at line 61 of file btMultiBodyConstraint.h.

◆ m_linkB

int btMultiBodyConstraint::m_linkB
protected

Definition at line 62 of file btMultiBodyConstraint.h.

◆ m_maxAppliedImpulse

btScalar btMultiBodyConstraint::m_maxAppliedImpulse
protected

Definition at line 73 of file btMultiBodyConstraint.h.

◆ m_numDofsFinalized

int btMultiBodyConstraint::m_numDofsFinalized
protected

Definition at line 72 of file btMultiBodyConstraint.h.

◆ m_numRows

int btMultiBodyConstraint::m_numRows
protected

Definition at line 66 of file btMultiBodyConstraint.h.

◆ m_posOffset

int btMultiBodyConstraint::m_posOffset
protected

Definition at line 69 of file btMultiBodyConstraint.h.

◆ m_type

int btMultiBodyConstraint::m_type
protected

Definition at line 64 of file btMultiBodyConstraint.h.


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