Bullet Collision Detection & Physics Library: btMultiBodyConstraint Class Reference

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:
[legend]
Collaboration diagram for btMultiBodyConstraint:
[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

Implemented in btMultiBodyGearConstraint, btMultiBodyPoint2Point, btMultiBodySliderConstraint, btMultiBodyFixedConstraint, btMultiBodyJointMotor, and btMultiBodyJointLimitConstraint.

## ◆ debugDraw()

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

Implemented in btMultiBodySliderConstraint, btMultiBodyGearConstraint, btMultiBodyFixedConstraint, btMultiBodyJointMotor, btMultiBodyPoint2Point, and btMultiBodyJointLimitConstraint.

## ◆ 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

Implemented in btMultiBodyGearConstraint, btMultiBodyPoint2Point, btMultiBodySliderConstraint, btMultiBodyFixedConstraint, btMultiBodyJointMotor, and btMultiBodyJointLimitConstraint.

## ◆ getAppliedImpulse()

btScalar btMultiBodyConstraint::getAppliedImpulse | ( | int | dof | ) |
| inline

Definition at line 130 of file btMultiBodyConstraint.h.

## ◆ getIslandIdA()

virtual int btMultiBodyConstraint::getIslandIdA | ( |  | ) | const
| pure virtual

Implemented in btMultiBodyGearConstraint, btMultiBodyPoint2Point, btMultiBodySliderConstraint, btMultiBodyFixedConstraint, btMultiBodyJointMotor, and btMultiBodyJointLimitConstraint.

## ◆ getIslandIdB()

virtual int btMultiBodyConstraint::getIslandIdB | ( |  | ) | const
| pure virtual

Implemented in btMultiBodyGearConstraint, btMultiBodyPoint2Point, btMultiBodySliderConstraint, btMultiBodyFixedConstraint, btMultiBodyJointMotor, and btMultiBodyJointLimitConstraint.

## ◆ 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

Reimplemented in btMultiBodyGearConstraint, btMultiBodySliderConstraint, and btMultiBodyFixedConstraint.

Definition at line 96 of file btMultiBodyConstraint.h.

## ◆ 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

Reimplemented in btMultiBodyGearConstraint, btMultiBodySliderConstraint, btMultiBodyFixedConstraint, and btMultiBodyPoint2Point.

Definition at line 97 of file btMultiBodyConstraint.h.

## ◆ 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:

- btMultiBodyConstraint.h
- btMultiBodyConstraint.cpp