Bullet Collision Detection & Physics Library
|
#include <btMultiBody.h>
Public Member Functions | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
btMultiBody (int n_links, btScalar mass, const btVector3 &inertia, bool fixedBase, bool canSleep, bool multiDof=false) | |
~btMultiBody () | |
void | setupFixed (int linkIndex, btScalar mass, const btVector3 &inertia, int parent, const btQuaternion &rotParentToThis, const btVector3 &parentComToThisPivotOffset, const btVector3 &thisPivotToThisComOffset, bool disableParentCollision) |
void | setupPrismatic (int i, btScalar mass, const btVector3 &inertia, int parent, const btQuaternion &rotParentToThis, const btVector3 &jointAxis, const btVector3 &parentComToThisComOffset, const btVector3 &thisPivotToThisComOffset, bool disableParentCollision) |
void | setupRevolute (int linkIndex, btScalar mass, const btVector3 &inertia, int parentIndex, const btQuaternion &rotParentToThis, const btVector3 &jointAxis, const btVector3 &parentComToThisPivotOffset, const btVector3 &thisPivotToThisComOffset, bool disableParentCollision=false) |
void | setupSpherical (int linkIndex, btScalar mass, const btVector3 &inertia, int parent, const btQuaternion &rotParentToThis, const btVector3 &parentComToThisPivotOffset, const btVector3 &thisPivotToThisComOffset, bool disableParentCollision=false) |
void | setupPlanar (int i, btScalar mass, const btVector3 &inertia, int parent, const btQuaternion &rotParentToThis, const btVector3 &rotationAxis, const btVector3 &parentComToThisComOffset, bool disableParentCollision=false) |
const btMultibodyLink & | getLink (int index) const |
btMultibodyLink & | getLink (int index) |
void | setBaseCollider (btMultiBodyLinkCollider *collider) |
const btMultiBodyLinkCollider * | getBaseCollider () const |
btMultiBodyLinkCollider * | getBaseCollider () |
int | getParent (int link_num) const |
int | getNumLinks () const |
int | getNumDofs () const |
int | getNumPosVars () const |
btScalar | getBaseMass () const |
const btVector3 & | getBaseInertia () const |
btScalar | getLinkMass (int i) const |
const btVector3 & | getLinkInertia (int i) const |
void | setBaseMass (btScalar mass) |
void | setBaseInertia (const btVector3 &inertia) |
const btVector3 & | getBasePos () const |
const btVector3 | getBaseVel () const |
const btQuaternion & | getWorldToBaseRot () const |
btVector3 | getBaseOmega () const |
void | setBasePos (const btVector3 &pos) |
void | setBaseWorldTransform (const btTransform &tr) |
void | setBaseVel (const btVector3 &vel) |
void | setWorldToBaseRot (const btQuaternion &rot) |
void | setBaseOmega (const btVector3 &omega) |
btScalar | getJointPos (int i) const |
btScalar | getJointVel (int i) const |
btScalar * | getJointVelMultiDof (int i) |
btScalar * | getJointPosMultiDof (int i) |
void | setJointPos (int i, btScalar q) |
void | setJointVel (int i, btScalar qdot) |
void | setJointPosMultiDof (int i, btScalar *q) |
void | setJointVelMultiDof (int i, btScalar *qdot) |
const btScalar * | getVelocityVector () const |
const btVector3 & | getRVector (int i) const |
const btQuaternion & | getParentToLocalRot (int i) const |
btVector3 | localPosToWorld (int i, const btVector3 &vec) const |
btVector3 | localDirToWorld (int i, const btVector3 &vec) const |
btVector3 | worldPosToLocal (int i, const btVector3 &vec) const |
btVector3 | worldDirToLocal (int i, const btVector3 &vec) const |
btScalar | getKineticEnergy () const |
btVector3 | getAngularMomentum () const |
void | clearForcesAndTorques () |
void | clearVelocities () |
void | addBaseForce (const btVector3 &f) |
void | addBaseTorque (const btVector3 &t) |
void | addLinkForce (int i, const btVector3 &f) |
void | addLinkTorque (int i, const btVector3 &t) |
void | addJointTorque (int i, btScalar Q) |
void | addJointTorqueMultiDof (int i, int dof, btScalar Q) |
void | addJointTorqueMultiDof (int i, const btScalar *Q) |
const btVector3 & | getBaseForce () const |
const btVector3 & | getBaseTorque () const |
const btVector3 & | getLinkForce (int i) const |
const btVector3 & | getLinkTorque (int i) const |
btScalar | getJointTorque (int i) const |
btScalar * | getJointTorqueMultiDof (int i) |
void | stepVelocities (btScalar dt, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v, btAlignedObjectArray< btMatrix3x3 > &scratch_m) |
void | stepVelocitiesMultiDof (btScalar dt, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v, btAlignedObjectArray< btMatrix3x3 > &scratch_m) |
void | calcAccelerationDeltas (const btScalar *force, btScalar *output, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v) const |
void | calcAccelerationDeltasMultiDof (const btScalar *force, btScalar *output, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v) const |
void | applyDeltaVee (const btScalar *delta_vee) |
void | applyDeltaVee (const btScalar *delta_vee, btScalar multiplier) |
void | applyDeltaVeeMultiDof (const btScalar *delta_vee, btScalar multiplier) |
void | stepPositions (btScalar dt) |
void | stepPositionsMultiDof (btScalar dt, btScalar *pq=0, btScalar *pqd=0) |
void | fillContactJacobian (int link, const btVector3 &contact_point, const btVector3 &normal, btScalar *jac, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v, btAlignedObjectArray< btMatrix3x3 > &scratch_m) const |
void | fillContactJacobianMultiDof (int link, const btVector3 &contact_point, const btVector3 &normal, btScalar *jac, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v, btAlignedObjectArray< btMatrix3x3 > &scratch_m) const |
void | filConstraintJacobianMultiDof (int link, const btVector3 &contact_point, const btVector3 &normal_ang, const btVector3 &normal_lin, btScalar *jac, btAlignedObjectArray< btScalar > &scratch_r, btAlignedObjectArray< btVector3 > &scratch_v, btAlignedObjectArray< btMatrix3x3 > &scratch_m) const |
void | setCanSleep (bool canSleep) |
bool | getCanSleep () const |
bool | isAwake () const |
void | wakeUp () |
void | goToSleep () |
void | checkMotionAndSleepIfRequired (btScalar timestep) |
bool | hasFixedBase () const |
int | getCompanionId () const |
void | setCompanionId (int id) |
void | setNumLinks (int numLinks) |
btScalar | getLinearDamping () const |
void | setLinearDamping (btScalar damp) |
btScalar | getAngularDamping () const |
void | setAngularDamping (btScalar damp) |
bool | getUseGyroTerm () const |
void | setUseGyroTerm (bool useGyro) |
btScalar | getMaxCoordinateVelocity () const |
void | setMaxCoordinateVelocity (btScalar maxVel) |
btScalar | getMaxAppliedImpulse () const |
void | setMaxAppliedImpulse (btScalar maxImp) |
void | setHasSelfCollision (bool hasSelfCollision) |
bool | hasSelfCollision () const |
bool | isMultiDof () |
void | finalizeMultiDof () |
void | useRK4Integration (bool use) |
bool | isUsingRK4Integration () const |
void | useGlobalVelocities (bool use) |
bool | isUsingGlobalVelocities () const |
bool | isPosUpdated () const |
void | setPosUpdated (bool updated) |
Private Member Functions | |
btMultiBody (const btMultiBody &) | |
void | operator= (const btMultiBody &) |
void | compTreeLinkVelocities (btVector3 *omega, btVector3 *vel) const |
void | solveImatrix (const btVector3 &rhs_top, const btVector3 &rhs_bot, float result[6]) const |
void | solveImatrix (const btSpatialForceVector &rhs, btSpatialMotionVector &result) const |
void | updateLinksDofOffsets () |
void | mulMatrix (btScalar *pA, btScalar *pB, int rowsA, int colsA, int rowsB, int colsB, btScalar *pC) const |
Definition at line 37 of file btMultiBody.h.
btMultiBody::btMultiBody | ( | int | n_links, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
bool | fixedBase, | ||
bool | canSleep, | ||
bool | multiDof = false |
||
) |
Definition at line 84 of file btMultiBody.cpp.
btMultiBody::~btMultiBody | ( | ) |
Definition at line 131 of file btMultiBody.cpp.
|
private |
|
inline |
Definition at line 268 of file btMultiBody.h.
|
inline |
Definition at line 272 of file btMultiBody.h.
void btMultiBody::addJointTorque | ( | int | i, |
btScalar | Q | ||
) |
Definition at line 572 of file btMultiBody.cpp.
void btMultiBody::addJointTorqueMultiDof | ( | int | i, |
int | dof, | ||
btScalar | Q | ||
) |
Definition at line 577 of file btMultiBody.cpp.
void btMultiBody::addJointTorqueMultiDof | ( | int | i, |
const btScalar * | Q | ||
) |
Definition at line 582 of file btMultiBody.cpp.
void btMultiBody::addLinkForce | ( | int | i, |
const btVector3 & | f | ||
) |
Definition at line 562 of file btMultiBody.cpp.
void btMultiBody::addLinkTorque | ( | int | i, |
const btVector3 & | t | ||
) |
Definition at line 567 of file btMultiBody.cpp.
|
inline |
Definition at line 328 of file btMultiBody.h.
Definition at line 337 of file btMultiBody.h.
Definition at line 367 of file btMultiBody.h.
btMultiBody::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
void btMultiBody::calcAccelerationDeltas | ( | const btScalar * | force, |
btScalar * | output, | ||
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v | ||
) | const |
Definition at line 2309 of file btMultiBody.cpp.
void btMultiBody::calcAccelerationDeltasMultiDof | ( | const btScalar * | force, |
btScalar * | output, | ||
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v | ||
) | const |
Definition at line 2146 of file btMultiBody.cpp.
void btMultiBody::checkMotionAndSleepIfRequired | ( | btScalar | timestep | ) |
Definition at line 2861 of file btMultiBody.cpp.
void btMultiBody::clearForcesAndTorques | ( | ) |
Definition at line 542 of file btMultiBody.cpp.
void btMultiBody::clearVelocities | ( | ) |
Definition at line 555 of file btMultiBody.cpp.
Definition at line 480 of file btMultiBody.cpp.
void btMultiBody::filConstraintJacobianMultiDof | ( | int | link, |
const btVector3 & | contact_point, | ||
const btVector3 & | normal_ang, | ||
const btVector3 & | normal_lin, | ||
btScalar * | jac, | ||
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v, | ||
btAlignedObjectArray< btMatrix3x3 > & | scratch_m | ||
) | const |
Definition at line 2626 of file btMultiBody.cpp.
void btMultiBody::fillContactJacobian | ( | int | link, |
const btVector3 & | contact_point, | ||
const btVector3 & | normal, | ||
btScalar * | jac, | ||
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v, | ||
btAlignedObjectArray< btMatrix3x3 > & | scratch_m | ||
) | const |
Definition at line 2758 of file btMultiBody.cpp.
|
inline |
Definition at line 413 of file btMultiBody.h.
void btMultiBody::finalizeMultiDof | ( | ) |
Definition at line 352 of file btMultiBody.cpp.
|
inline |
Definition at line 479 of file btMultiBody.h.
btVector3 btMultiBody::getAngularMomentum | ( | ) | const |
Definition at line 521 of file btMultiBody.cpp.
|
inline |
Definition at line 124 of file btMultiBody.h.
|
inline |
Definition at line 128 of file btMultiBody.h.
|
inline |
Definition at line 279 of file btMultiBody.h.
|
inline |
Definition at line 149 of file btMultiBody.h.
|
inline |
Definition at line 148 of file btMultiBody.h.
|
inline |
Definition at line 175 of file btMultiBody.h.
|
inline |
Definition at line 166 of file btMultiBody.h.
|
inline |
Definition at line 280 of file btMultiBody.h.
|
inline |
Definition at line 167 of file btMultiBody.h.
|
inline |
Definition at line 441 of file btMultiBody.h.
|
inline |
Definition at line 456 of file btMultiBody.h.
btScalar btMultiBody::getJointPos | ( | int | i | ) | const |
Definition at line 377 of file btMultiBody.cpp.
btScalar * btMultiBody::getJointPosMultiDof | ( | int | i | ) |
Definition at line 387 of file btMultiBody.cpp.
btScalar btMultiBody::getJointTorque | ( | int | i | ) | const |
Definition at line 598 of file btMultiBody.cpp.
btScalar * btMultiBody::getJointTorqueMultiDof | ( | int | i | ) |
Definition at line 603 of file btMultiBody.cpp.
btScalar btMultiBody::getJointVel | ( | int | i | ) | const |
Definition at line 382 of file btMultiBody.cpp.
btScalar * btMultiBody::getJointVelMultiDof | ( | int | i | ) |
Definition at line 392 of file btMultiBody.cpp.
btScalar btMultiBody::getKineticEnergy | ( | ) | const |
Definition at line 501 of file btMultiBody.cpp.
|
inline |
Definition at line 471 of file btMultiBody.h.
|
inline |
Definition at line 109 of file btMultiBody.h.
|
inline |
Definition at line 114 of file btMultiBody.h.
const btVector3 & btMultiBody::getLinkForce | ( | int | i | ) | const |
Definition at line 588 of file btMultiBody.cpp.
const btVector3 & btMultiBody::getLinkInertia | ( | int | i | ) | const |
Definition at line 372 of file btMultiBody.cpp.
btScalar btMultiBody::getLinkMass | ( | int | i | ) | const |
Definition at line 367 of file btMultiBody.cpp.
const btVector3 & btMultiBody::getLinkTorque | ( | int | i | ) | const |
Definition at line 593 of file btMultiBody.cpp.
|
inline |
Definition at line 505 of file btMultiBody.h.
|
inline |
Definition at line 496 of file btMultiBody.h.
|
inline |
Definition at line 146 of file btMultiBody.h.
|
inline |
Definition at line 145 of file btMultiBody.h.
|
inline |
Definition at line 147 of file btMultiBody.h.
int btMultiBody::getParent | ( | int | link_num | ) | const |
Definition at line 362 of file btMultiBody.cpp.
const btQuaternion & btMultiBody::getParentToLocalRot | ( | int | i | ) | const |
Definition at line 427 of file btMultiBody.cpp.
const btVector3 & btMultiBody::getRVector | ( | int | i | ) | const |
Definition at line 422 of file btMultiBody.cpp.
|
inline |
Definition at line 488 of file btMultiBody.h.
|
inline |
Definition at line 224 of file btMultiBody.h.
|
inline |
Definition at line 171 of file btMultiBody.h.
void btMultiBody::goToSleep | ( | ) |
Definition at line 2856 of file btMultiBody.cpp.
|
inline |
Definition at line 451 of file btMultiBody.h.
|
inline |
Definition at line 517 of file btMultiBody.h.
|
inline |
Definition at line 446 of file btMultiBody.h.
|
inline |
Definition at line 522 of file btMultiBody.h.
|
inline |
Definition at line 530 of file btMultiBody.h.
|
inline |
Definition at line 528 of file btMultiBody.h.
|
inline |
Definition at line 526 of file btMultiBody.h.
Definition at line 460 of file btMultiBody.cpp.
Definition at line 432 of file btMultiBody.cpp.
|
private |
Definition at line 1949 of file btMultiBody.cpp.
|
private |
|
inline |
Definition at line 483 of file btMultiBody.h.
|
inline |
Definition at line 120 of file btMultiBody.h.
|
inline |
Definition at line 159 of file btMultiBody.h.
|
inline |
Definition at line 158 of file btMultiBody.h.
|
inline |
Definition at line 197 of file btMultiBody.h.
|
inline |
Definition at line 177 of file btMultiBody.h.
|
inline |
Definition at line 188 of file btMultiBody.h.
|
inline |
Definition at line 182 of file btMultiBody.h.
|
inline |
Definition at line 436 of file btMultiBody.h.
|
inline |
Definition at line 460 of file btMultiBody.h.
|
inline |
Definition at line 513 of file btMultiBody.h.
void btMultiBody::setJointPos | ( | int | i, |
btScalar | q | ||
) |
Definition at line 397 of file btMultiBody.cpp.
void btMultiBody::setJointPosMultiDof | ( | int | i, |
btScalar * | q | ||
) |
Definition at line 403 of file btMultiBody.cpp.
void btMultiBody::setJointVel | ( | int | i, |
btScalar | qdot | ||
) |
Definition at line 411 of file btMultiBody.cpp.
void btMultiBody::setJointVelMultiDof | ( | int | i, |
btScalar * | qdot | ||
) |
Definition at line 416 of file btMultiBody.cpp.
|
inline |
Definition at line 475 of file btMultiBody.h.
|
inline |
Definition at line 509 of file btMultiBody.h.
|
inline |
Definition at line 500 of file btMultiBody.h.
|
inline |
Definition at line 466 of file btMultiBody.h.
|
inline |
Definition at line 534 of file btMultiBody.h.
void btMultiBody::setupFixed | ( | int | linkIndex, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
int | parent, | ||
const btQuaternion & | rotParentToThis, | ||
const btVector3 & | parentComToThisPivotOffset, | ||
const btVector3 & | thisPivotToThisComOffset, | ||
bool | disableParentCollision | ||
) |
Definition at line 135 of file btMultiBody.cpp.
void btMultiBody::setupPlanar | ( | int | i, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
int | parent, | ||
const btQuaternion & | rotParentToThis, | ||
const btVector3 & | rotationAxis, | ||
const btVector3 & | parentComToThisComOffset, | ||
bool | disableParentCollision = false |
||
) |
Definition at line 302 of file btMultiBody.cpp.
void btMultiBody::setupPrismatic | ( | int | i, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
int | parent, | ||
const btQuaternion & | rotParentToThis, | ||
const btVector3 & | jointAxis, | ||
const btVector3 & | parentComToThisComOffset, | ||
const btVector3 & | thisPivotToThisComOffset, | ||
bool | disableParentCollision | ||
) |
Definition at line 171 of file btMultiBody.cpp.
void btMultiBody::setupRevolute | ( | int | linkIndex, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
int | parentIndex, | ||
const btQuaternion & | rotParentToThis, | ||
const btVector3 & | jointAxis, | ||
const btVector3 & | parentComToThisPivotOffset, | ||
const btVector3 & | thisPivotToThisComOffset, | ||
bool | disableParentCollision = false |
||
) |
Definition at line 215 of file btMultiBody.cpp.
void btMultiBody::setupSpherical | ( | int | linkIndex, |
btScalar | mass, | ||
const btVector3 & | inertia, | ||
int | parent, | ||
const btQuaternion & | rotParentToThis, | ||
const btVector3 & | parentComToThisPivotOffset, | ||
const btVector3 & | thisPivotToThisComOffset, | ||
bool | disableParentCollision = false |
||
) |
Definition at line 260 of file btMultiBody.cpp.
|
inline |
Definition at line 492 of file btMultiBody.h.
|
inline |
Definition at line 193 of file btMultiBody.h.
|
private |
solve I * x = rhs, so the result = invI * rhs
Special routine for calculating the inverse of a spatial inertia matrix the 6x6 matrix is stored as 4 blocks of 3x3 matrices
Definition at line 1859 of file btMultiBody.cpp.
|
private |
solve I * x = rhs, so the result = invI * rhs
Special routine for calculating the inverse of a spatial inertia matrix the 6x6 matrix is stored as 4 blocks of 3x3 matrices
Definition at line 1908 of file btMultiBody.cpp.
void btMultiBody::stepPositions | ( | btScalar | dt | ) |
Definition at line 2455 of file btMultiBody.cpp.
baseBody => quat is alibi and omega is local coor
Definition at line 2491 of file btMultiBody.cpp.
void btMultiBody::stepVelocities | ( | btScalar | dt, |
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v, | ||
btAlignedObjectArray< btMatrix3x3 > & | scratch_m | ||
) |
Definition at line 1552 of file btMultiBody.cpp.
void btMultiBody::stepVelocitiesMultiDof | ( | btScalar | dt, |
btAlignedObjectArray< btScalar > & | scratch_r, | ||
btAlignedObjectArray< btVector3 > & | scratch_v, | ||
btAlignedObjectArray< btMatrix3x3 > & | scratch_m | ||
) |
Definition at line 1078 of file btMultiBody.cpp.
|
inlineprivate |
Definition at line 550 of file btMultiBody.h.
|
inline |
Definition at line 527 of file btMultiBody.h.
|
inline |
Definition at line 525 of file btMultiBody.h.
void btMultiBody::wakeUp | ( | ) |
Definition at line 2851 of file btMultiBody.cpp.
Definition at line 471 of file btMultiBody.cpp.
Definition at line 449 of file btMultiBody.cpp.
|
private |
Definition at line 622 of file btMultiBody.h.
|
private |
Definition at line 616 of file btMultiBody.h.
|
private |
Definition at line 610 of file btMultiBody.h.
|
private |
Definition at line 565 of file btMultiBody.h.
|
private |
Definition at line 573 of file btMultiBody.h.
|
private |
Definition at line 571 of file btMultiBody.h.
|
private |
Definition at line 570 of file btMultiBody.h.
|
private |
Definition at line 567 of file btMultiBody.h.
|
private |
Definition at line 568 of file btMultiBody.h.
|
private |
Definition at line 574 of file btMultiBody.h.
|
private |
Definition at line 604 of file btMultiBody.h.
|
private |
Definition at line 605 of file btMultiBody.h.
|
private |
Definition at line 602 of file btMultiBody.h.
|
private |
Definition at line 603 of file btMultiBody.h.
|
private |
Definition at line 611 of file btMultiBody.h.
|
private |
Definition at line 577 of file btMultiBody.h.
|
private |
Definition at line 614 of file btMultiBody.h.
|
private |
Definition at line 623 of file btMultiBody.h.
|
private |
Definition at line 607 of file btMultiBody.h.
|
private |
Definition at line 620 of file btMultiBody.h.
|
private |
Definition at line 621 of file btMultiBody.h.
|
private |
Definition at line 615 of file btMultiBody.h.
|
private |
Definition at line 576 of file btMultiBody.h.
|
private |
Definition at line 598 of file btMultiBody.h.
|
private |
Definition at line 618 of file btMultiBody.h.
|
private |
Definition at line 619 of file btMultiBody.h.
|
private |
Definition at line 623 of file btMultiBody.h.
|
private |
Definition at line 596 of file btMultiBody.h.
|
private |
Definition at line 612 of file btMultiBody.h.
|
private |
Definition at line 624 of file btMultiBody.h.
|
private |
Definition at line 617 of file btMultiBody.h.
|
private |
Definition at line 624 of file btMultiBody.h.
|
private |
Definition at line 597 of file btMultiBody.h.