btRigidBody Class Reference

The btRigidBody is the main class for rigid body objects. More...

#include <btRigidBody.h>

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

List of all members.

Classes

struct  btRigidBodyConstructionInfo
 The btRigidBodyConstructionInfo structure provides information to create a rigid body. More...

Public Member Functions

 btRigidBody (const btRigidBodyConstructionInfo &constructionInfo)
 btRigidBody constructor using construction info
 btRigidBody (btScalar mass, btMotionState *motionState, btCollisionShape *collisionShape, const btVector3 &localInertia=btVector3(0, 0, 0))
 btRigidBody constructor for backwards compatibility.
virtual ~btRigidBody ()
void proceedToTransform (const btTransform &newTrans)
void predictIntegratedTransform (btScalar step, btTransform &predictedTransform)
 continuous collision detection needs prediction
void saveKinematicState (btScalar step)
void applyGravity ()
void setGravity (const btVector3 &acceleration)
const btVector3getGravity () const
void setDamping (btScalar lin_damping, btScalar ang_damping)
btScalar getLinearDamping () const
btScalar getAngularDamping () const
btScalar getLinearSleepingThreshold () const
btScalar getAngularSleepingThreshold () const
void applyDamping (btScalar timeStep)
 applyDamping damps the velocity, using the given m_linearDamping and m_angularDamping
SIMD_FORCE_INLINE const
btCollisionShape
getCollisionShape () const
SIMD_FORCE_INLINE
btCollisionShape
getCollisionShape ()
void setMassProps (btScalar mass, const btVector3 &inertia)
const btVector3getLinearFactor () const
void setLinearFactor (const btVector3 &linearFactor)
btScalar getInvMass () const
const btMatrix3x3getInvInertiaTensorWorld () const
void integrateVelocities (btScalar step)
void setCenterOfMassTransform (const btTransform &xform)
void applyCentralForce (const btVector3 &force)
const btVector3getTotalForce ()
const btVector3getTotalTorque ()
const btVector3getInvInertiaDiagLocal () const
void setInvInertiaDiagLocal (const btVector3 &diagInvInertia)
void setSleepingThresholds (btScalar linear, btScalar angular)
void applyTorque (const btVector3 &torque)
void applyForce (const btVector3 &force, const btVector3 &rel_pos)
void applyCentralImpulse (const btVector3 &impulse)
void applyTorqueImpulse (const btVector3 &torque)
void applyImpulse (const btVector3 &impulse, const btVector3 &rel_pos)
void clearForces ()
void updateInertiaTensor ()
const btVector3getCenterOfMassPosition () const
btQuaternion getOrientation () const
const btTransformgetCenterOfMassTransform () const
const btVector3getLinearVelocity () const
const btVector3getAngularVelocity () const
void setLinearVelocity (const btVector3 &lin_vel)
void setAngularVelocity (const btVector3 &ang_vel)
btVector3 getVelocityInLocalPoint (const btVector3 &rel_pos) const
void translate (const btVector3 &v)
void getAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
SIMD_FORCE_INLINE btScalar computeImpulseDenominator (const btVector3 &pos, const btVector3 &normal) const
SIMD_FORCE_INLINE btScalar computeAngularImpulseDenominator (const btVector3 &axis) const
SIMD_FORCE_INLINE void updateDeactivation (btScalar timeStep)
SIMD_FORCE_INLINE bool wantsSleeping ()
const btBroadphaseProxygetBroadphaseProxy () const
btBroadphaseProxygetBroadphaseProxy ()
void setNewBroadphaseProxy (btBroadphaseProxy *broadphaseProxy)
btMotionStategetMotionState ()
const btMotionStategetMotionState () const
void setMotionState (btMotionState *motionState)
void setAngularFactor (const btVector3 &angFac)
void setAngularFactor (btScalar angFac)
const btVector3getAngularFactor () const
bool isInWorld () const
virtual bool checkCollideWithOverride (btCollisionObject *co)
void addConstraintRef (btTypedConstraint *c)
void removeConstraintRef (btTypedConstraint *c)
btTypedConstraintgetConstraintRef (int index)
int getNumConstraintRefs ()
void setFlags (int flags)
int getFlags () const
btVector3internalGetDeltaLinearVelocity ()
 some internal methods, don't use them
btVector3internalGetDeltaAngularVelocity ()
const btVector3internalGetAngularFactor () const
const btVector3internalGetInvMass () const
btVector3internalGetPushVelocity ()
btVector3internalGetTurnVelocity ()
SIMD_FORCE_INLINE void internalGetVelocityInLocalPointObsolete (const btVector3 &rel_pos, btVector3 &velocity) const
SIMD_FORCE_INLINE void internalGetAngularVelocity (btVector3 &angVel) const
SIMD_FORCE_INLINE void internalApplyImpulse (const btVector3 &linearComponent, const btVector3 &angularComponent, const btScalar impulseMagnitude)
SIMD_FORCE_INLINE void internalApplyPushImpulse (const btVector3 &linearComponent, const btVector3 &angularComponent, btScalar impulseMagnitude)
void internalWritebackVelocity ()
void internalWritebackVelocity (btScalar timeStep)
virtual int calculateSerializeBufferSize () const
virtual const char * serialize (void *dataBuffer, class btSerializer *serializer) const
 fills the dataBuffer and returns the struct name (and 0 on failure)

Static Public Member Functions

static const btRigidBodyupcast (const btCollisionObject *colObj)
 to keep collision detection and dynamics separate we don't store a rigidbody pointer but a rigidbody is derived from btCollisionObject, so we can safely perform an upcast
static btRigidBodyupcast (btCollisionObject *colObj)

Public Attributes

int m_contactSolverType
int m_frictionSolverType

Protected Member Functions

 ATTRIBUTE_ALIGNED64 (btVector3 m_deltaLinearVelocity)
void setupRigidBody (const btRigidBodyConstructionInfo &constructionInfo)
 setupRigidBody is only used internally by the constructor

Protected Attributes

btVector3 m_deltaAngularVelocity
btVector3 m_angularFactor
btVector3 m_invMass
btVector3 m_pushVelocity
btVector3 m_turnVelocity

Private Attributes

btMatrix3x3 m_invInertiaTensorWorld
btVector3 m_linearVelocity
btVector3 m_angularVelocity
btScalar m_inverseMass
btVector3 m_linearFactor
btVector3 m_gravity
btVector3 m_gravity_acceleration
btVector3 m_invInertiaLocal
btVector3 m_totalForce
btVector3 m_totalTorque
btScalar m_linearDamping
btScalar m_angularDamping
bool m_additionalDamping
btScalar m_additionalDampingFactor
btScalar m_additionalLinearDampingThresholdSqr
btScalar m_additionalAngularDampingThresholdSqr
btScalar m_additionalAngularDampingFactor
btScalar m_linearSleepingThreshold
btScalar m_angularSleepingThreshold
btMotionStatem_optionalMotionState
btAlignedObjectArray
< btTypedConstraint * > 
m_constraintRefs
int m_rigidbodyFlags
int m_debugBodyId

Detailed Description

The btRigidBody is the main class for rigid body objects.

It is derived from btCollisionObject, so it keeps a pointer to a btCollisionShape. It is recommended for performance and memory use to share btCollisionShape objects whenever possible. There are 3 types of rigid bodies:

Definition at line 55 of file btRigidBody.h.


Constructor & Destructor Documentation

btRigidBody::btRigidBody ( const btRigidBodyConstructionInfo constructionInfo  ) 

btRigidBody constructor using construction info

Definition at line 29 of file btRigidBody.cpp.

btRigidBody::btRigidBody ( btScalar  mass,
btMotionState motionState,
btCollisionShape collisionShape,
const btVector3 localInertia = btVector3(0,0,0) 
)

btRigidBody constructor for backwards compatibility.

To specify friction (etc) during rigid body construction, please use the other constructor (using btRigidBodyConstructionInfo)

Definition at line 34 of file btRigidBody.cpp.

virtual btRigidBody::~btRigidBody (  )  [inline, virtual]

Definition at line 171 of file btRigidBody.h.


Member Function Documentation

void btRigidBody::addConstraintRef ( btTypedConstraint c  ) 

Definition at line 338 of file btRigidBody.cpp.

void btRigidBody::applyCentralForce ( const btVector3 force  )  [inline]

Definition at line 268 of file btRigidBody.h.

void btRigidBody::applyCentralImpulse ( const btVector3 impulse  )  [inline]

Definition at line 310 of file btRigidBody.h.

void btRigidBody::applyDamping ( btScalar  timeStep  ) 

applyDamping damps the velocity, using the given m_linearDamping and m_angularDamping

Definition at line 158 of file btRigidBody.cpp.

void btRigidBody::applyForce ( const btVector3 force,
const btVector3 rel_pos 
) [inline]

Definition at line 304 of file btRigidBody.h.

void btRigidBody::applyGravity (  ) 

Definition at line 215 of file btRigidBody.cpp.

void btRigidBody::applyImpulse ( const btVector3 impulse,
const btVector3 rel_pos 
) [inline]

Definition at line 320 of file btRigidBody.h.

void btRigidBody::applyTorque ( const btVector3 torque  )  [inline]

Definition at line 299 of file btRigidBody.h.

void btRigidBody::applyTorqueImpulse ( const btVector3 torque  )  [inline]

Definition at line 315 of file btRigidBody.h.

btRigidBody::ATTRIBUTE_ALIGNED64 ( btVector3  m_deltaLinearVelocity  )  [protected]
int btRigidBody::calculateSerializeBufferSize (  )  const [virtual]

Reimplemented from btCollisionObject.

Definition at line 353 of file btRigidBody.cpp.

bool btRigidBody::checkCollideWithOverride ( btCollisionObject co  )  [virtual]

Definition at line 300 of file btRigidBody.cpp.

void btRigidBody::clearForces (  )  [inline]

Definition at line 332 of file btRigidBody.h.

SIMD_FORCE_INLINE btScalar btRigidBody::computeAngularImpulseDenominator ( const btVector3 axis  )  const [inline]

Definition at line 399 of file btRigidBody.h.

SIMD_FORCE_INLINE btScalar btRigidBody::computeImpulseDenominator ( const btVector3 pos,
const btVector3 normal 
) const [inline]

Definition at line 387 of file btRigidBody.h.

void btRigidBody::getAabb ( btVector3 aabbMin,
btVector3 aabbMax 
) const

Definition at line 126 of file btRigidBody.cpp.

btScalar btRigidBody::getAngularDamping (  )  const [inline]

Definition at line 223 of file btRigidBody.h.

const btVector3& btRigidBody::getAngularFactor (  )  const [inline]

Definition at line 486 of file btRigidBody.h.

btScalar btRigidBody::getAngularSleepingThreshold (  )  const [inline]

Definition at line 233 of file btRigidBody.h.

const btVector3& btRigidBody::getAngularVelocity (  )  const [inline]

Definition at line 351 of file btRigidBody.h.

btBroadphaseProxy* btRigidBody::getBroadphaseProxy (  )  [inline]

Definition at line 448 of file btRigidBody.h.

const btBroadphaseProxy* btRigidBody::getBroadphaseProxy (  )  const [inline]

Definition at line 444 of file btRigidBody.h.

const btVector3& btRigidBody::getCenterOfMassPosition (  )  const [inline]

Definition at line 340 of file btRigidBody.h.

const btTransform& btRigidBody::getCenterOfMassTransform (  )  const [inline]

Definition at line 345 of file btRigidBody.h.

SIMD_FORCE_INLINE btCollisionShape* btRigidBody::getCollisionShape (  )  [inline]

Reimplemented from btCollisionObject.

Definition at line 244 of file btRigidBody.h.

SIMD_FORCE_INLINE const btCollisionShape* btRigidBody::getCollisionShape (  )  const [inline]

Reimplemented from btCollisionObject.

Definition at line 240 of file btRigidBody.h.

btTypedConstraint* btRigidBody::getConstraintRef ( int  index  )  [inline]

Definition at line 502 of file btRigidBody.h.

int btRigidBody::getFlags (  )  const [inline]

Definition at line 517 of file btRigidBody.h.

const btVector3& btRigidBody::getGravity (  )  const [inline]

Definition at line 211 of file btRigidBody.h.

const btVector3& btRigidBody::getInvInertiaDiagLocal (  )  const [inline]

Definition at line 283 of file btRigidBody.h.

const btMatrix3x3& btRigidBody::getInvInertiaTensorWorld (  )  const [inline]

Definition at line 260 of file btRigidBody.h.

btScalar btRigidBody::getInvMass (  )  const [inline]

Definition at line 259 of file btRigidBody.h.

btScalar btRigidBody::getLinearDamping (  )  const [inline]

Definition at line 218 of file btRigidBody.h.

const btVector3& btRigidBody::getLinearFactor (  )  const [inline]

Definition at line 250 of file btRigidBody.h.

btScalar btRigidBody::getLinearSleepingThreshold (  )  const [inline]

Definition at line 228 of file btRigidBody.h.

const btVector3& btRigidBody::getLinearVelocity (  )  const [inline]

Definition at line 348 of file btRigidBody.h.

const btMotionState* btRigidBody::getMotionState (  )  const [inline]

Definition at line 462 of file btRigidBody.h.

btMotionState* btRigidBody::getMotionState (  )  [inline]

Definition at line 458 of file btRigidBody.h.

int btRigidBody::getNumConstraintRefs (  )  [inline]

Definition at line 507 of file btRigidBody.h.

btQuaternion btRigidBody::getOrientation (  )  const

Definition at line 275 of file btRigidBody.cpp.

const btVector3& btRigidBody::getTotalForce (  )  [inline]

Definition at line 273 of file btRigidBody.h.

const btVector3& btRigidBody::getTotalTorque (  )  [inline]

Definition at line 278 of file btRigidBody.h.

btVector3 btRigidBody::getVelocityInLocalPoint ( const btVector3 rel_pos  )  const [inline]

Definition at line 366 of file btRigidBody.h.

void btRigidBody::integrateVelocities ( btScalar  step  ) 

clamp angular velocity. collision calculations will fail on higher angular velocities

Definition at line 257 of file btRigidBody.cpp.

SIMD_FORCE_INLINE void btRigidBody::internalApplyImpulse ( const btVector3 linearComponent,
const btVector3 angularComponent,
const btScalar  impulseMagnitude 
) [inline]

Definition at line 568 of file btRigidBody.h.

SIMD_FORCE_INLINE void btRigidBody::internalApplyPushImpulse ( const btVector3 linearComponent,
const btVector3 angularComponent,
btScalar  impulseMagnitude 
) [inline]

Definition at line 577 of file btRigidBody.h.

const btVector3& btRigidBody::internalGetAngularFactor (  )  const [inline]

Definition at line 536 of file btRigidBody.h.

SIMD_FORCE_INLINE void btRigidBody::internalGetAngularVelocity ( btVector3 angVel  )  const [inline]

Definition at line 561 of file btRigidBody.h.

btVector3& btRigidBody::internalGetDeltaAngularVelocity (  )  [inline]

Definition at line 531 of file btRigidBody.h.

btVector3& btRigidBody::internalGetDeltaLinearVelocity (  )  [inline]

some internal methods, don't use them

Definition at line 526 of file btRigidBody.h.

const btVector3& btRigidBody::internalGetInvMass (  )  const [inline]

Definition at line 541 of file btRigidBody.h.

btVector3& btRigidBody::internalGetPushVelocity (  )  [inline]

Definition at line 546 of file btRigidBody.h.

btVector3& btRigidBody::internalGetTurnVelocity (  )  [inline]

Definition at line 551 of file btRigidBody.h.

SIMD_FORCE_INLINE void btRigidBody::internalGetVelocityInLocalPointObsolete ( const btVector3 rel_pos,
btVector3 velocity 
) const [inline]

Definition at line 556 of file btRigidBody.h.

void btRigidBody::internalWritebackVelocity ( btScalar  timeStep  ) 

Definition at line 316 of file btRigidBody.cpp.

void btRigidBody::internalWritebackVelocity (  )  [inline]

Definition at line 586 of file btRigidBody.h.

bool btRigidBody::isInWorld (  )  const [inline]

Definition at line 492 of file btRigidBody.h.

void btRigidBody::predictIntegratedTransform ( btScalar  step,
btTransform predictedTransform 
)

continuous collision detection needs prediction

Definition at line 103 of file btRigidBody.cpp.

void btRigidBody::proceedToTransform ( const btTransform newTrans  ) 

Definition at line 224 of file btRigidBody.cpp.

void btRigidBody::removeConstraintRef ( btTypedConstraint c  ) 

Definition at line 347 of file btRigidBody.cpp.

void btRigidBody::saveKinematicState ( btScalar  step  ) 

Definition at line 108 of file btRigidBody.cpp.

const char * btRigidBody::serialize ( void *  dataBuffer,
class btSerializer serializer 
) const [virtual]

fills the dataBuffer and returns the struct name (and 0 on failure)

Reimplemented from btCollisionObject.

Definition at line 360 of file btRigidBody.cpp.

void btRigidBody::setAngularFactor ( btScalar  angFac  )  [inline]

Definition at line 482 of file btRigidBody.h.

void btRigidBody::setAngularFactor ( const btVector3 angFac  )  [inline]

Definition at line 477 of file btRigidBody.h.

void btRigidBody::setAngularVelocity ( const btVector3 ang_vel  )  [inline]

Definition at line 361 of file btRigidBody.h.

void btRigidBody::setCenterOfMassTransform ( const btTransform xform  ) 

Definition at line 283 of file btRigidBody.cpp.

void btRigidBody::setDamping ( btScalar  lin_damping,
btScalar  ang_damping 
)

Definition at line 148 of file btRigidBody.cpp.

void btRigidBody::setFlags ( int  flags  )  [inline]

Definition at line 512 of file btRigidBody.h.

void btRigidBody::setGravity ( const btVector3 acceleration  ) 

Definition at line 134 of file btRigidBody.cpp.

void btRigidBody::setInvInertiaDiagLocal ( const btVector3 diagInvInertia  )  [inline]

Definition at line 288 of file btRigidBody.h.

void btRigidBody::setLinearFactor ( const btVector3 linearFactor  )  [inline]

Definition at line 254 of file btRigidBody.h.

void btRigidBody::setLinearVelocity ( const btVector3 lin_vel  )  [inline]

Definition at line 356 of file btRigidBody.h.

void btRigidBody::setMassProps ( btScalar  mass,
const btVector3 inertia 
)

Definition at line 230 of file btRigidBody.cpp.

void btRigidBody::setMotionState ( btMotionState motionState  )  [inline]

Definition at line 466 of file btRigidBody.h.

void btRigidBody::setNewBroadphaseProxy ( btBroadphaseProxy broadphaseProxy  )  [inline]

Definition at line 452 of file btRigidBody.h.

void btRigidBody::setSleepingThresholds ( btScalar  linear,
btScalar  angular 
) [inline]

Definition at line 293 of file btRigidBody.h.

void btRigidBody::setupRigidBody ( const btRigidBodyConstructionInfo constructionInfo  )  [protected]

setupRigidBody is only used internally by the constructor

Definition at line 40 of file btRigidBody.cpp.

void btRigidBody::translate ( const btVector3 v  )  [inline]

Definition at line 375 of file btRigidBody.h.

static btRigidBody* btRigidBody::upcast ( btCollisionObject colObj  )  [inline, static]

Definition at line 195 of file btRigidBody.h.

static const btRigidBody* btRigidBody::upcast ( const btCollisionObject colObj  )  [inline, static]

to keep collision detection and dynamics separate we don't store a rigidbody pointer but a rigidbody is derived from btCollisionObject, so we can safely perform an upcast

Definition at line 189 of file btRigidBody.h.

SIMD_FORCE_INLINE void btRigidBody::updateDeactivation ( btScalar  timeStep  )  [inline]

Definition at line 405 of file btRigidBody.h.

void btRigidBody::updateInertiaTensor (  ) 

Definition at line 251 of file btRigidBody.cpp.

SIMD_FORCE_INLINE bool btRigidBody::wantsSleeping (  )  [inline]

Definition at line 422 of file btRigidBody.h.


Member Data Documentation

Definition at line 77 of file btRigidBody.h.

Definition at line 76 of file btRigidBody.h.

Definition at line 73 of file btRigidBody.h.

Definition at line 74 of file btRigidBody.h.

Definition at line 75 of file btRigidBody.h.

Definition at line 71 of file btRigidBody.h.

Definition at line 98 of file btRigidBody.h.

Definition at line 81 of file btRigidBody.h.

Definition at line 60 of file btRigidBody.h.

Definition at line 87 of file btRigidBody.h.

Definition at line 474 of file btRigidBody.h.

Definition at line 91 of file btRigidBody.h.

Definition at line 97 of file btRigidBody.h.

Definition at line 475 of file btRigidBody.h.

Definition at line 64 of file btRigidBody.h.

Definition at line 65 of file btRigidBody.h.

Definition at line 61 of file btRigidBody.h.

Definition at line 66 of file btRigidBody.h.

Definition at line 58 of file btRigidBody.h.

Definition at line 99 of file btRigidBody.h.

Definition at line 70 of file btRigidBody.h.

Definition at line 62 of file btRigidBody.h.

Definition at line 80 of file btRigidBody.h.

Definition at line 59 of file btRigidBody.h.

Definition at line 84 of file btRigidBody.h.

Definition at line 100 of file btRigidBody.h.

Definition at line 89 of file btRigidBody.h.

Definition at line 67 of file btRigidBody.h.

Definition at line 68 of file btRigidBody.h.

Definition at line 101 of file btRigidBody.h.


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

Generated on Mon Feb 15 22:23:34 2010 for Bullet Collision Detection & Physics Library by  doxygen 1.6.1