Blender V2.61 - r43446
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

btRigidBody Class Reference

#include <btRigidBody.h>

List of all members.

Classes

struct  btRigidBodyConstructionInfo

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))
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 btVector3 & getGravity () 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 btVector3 & getLinearFactor () 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 btVector3 & getTotalForce () const
const btVector3 & getTotalTorque () const
const btVector3 & getInvInertiaDiagLocal () 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 btVector3 & getCenterOfMassPosition () const
btQuaternion getOrientation () const
const btTransformgetCenterOfMassTransform () const
const btVector3 & getLinearVelocity () const
const btVector3 & getAngularVelocity () 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 btBroadphaseProxy * getBroadphaseProxy () const
btBroadphaseProxy * getBroadphaseProxy ()
void setNewBroadphaseProxy (btBroadphaseProxy *broadphaseProxy)
btMotionStategetMotionState ()
const btMotionStategetMotionState () const
void setMotionState (btMotionState *motionState)
void setAngularFactor (const btVector3 &angFac)
void setAngularFactor (btScalar angFac)
const btVector3 & getAngularFactor () const
bool isInWorld () const
virtual bool checkCollideWithOverride (btCollisionObject *co)
void addConstraintRef (btTypedConstraint *c)
void removeConstraintRef (btTypedConstraint *c)
btTypedConstraintgetConstraintRef (int index)
int getNumConstraintRefs () const
void setFlags (int flags)
int getFlags () const
const btVector3 & getDeltaLinearVelocity () const
const btVector3 & getDeltaAngularVelocity () const
const btVector3 & getPushVelocity () const
const btVector3 & getTurnVelocity () const
btVector3 & internalGetDeltaLinearVelocity ()
btVector3 & internalGetDeltaAngularVelocity ()
const btVector3 & internalGetAngularFactor () const
const btVector3 & internalGetInvMass () const
btVector3 & internalGetPushVelocity ()
btVector3 & internalGetTurnVelocity ()
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)
virtual void serializeSingleObject (class btSerializer *serializer) const

Static Public Member Functions

static const btRigidBodyupcast (const btCollisionObject *colObj)
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

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 30 of file btRigidBody.cpp.

References setupRigidBody().

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 35 of file btRigidBody.cpp.

References setupRigidBody().

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

Definition at line 171 of file btRigidBody.h.

References btAssert, and btAlignedObjectArray< T >::size().


Member Function Documentation

void btRigidBody::addConstraintRef ( btTypedConstraint c)
void btRigidBody::applyCentralForce ( const btVector3 &  force) [inline]

Definition at line 268 of file btRigidBody.h.

Referenced by applyForce(), CcdPhysicsController::ApplyForce(), and applyGravity().

void btRigidBody::applyCentralImpulse ( const btVector3 &  impulse) [inline]
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.

References btPow().

Referenced by btSimpleDynamicsWorld::predictUnconstraintMotion(), and btDiscreteDynamicsWorld::predictUnconstraintMotion().

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

Definition at line 304 of file btRigidBody.h.

References applyCentralForce(), and applyTorque().

void btRigidBody::applyGravity ( )
void btRigidBody::applyImpulse ( const btVector3 &  impulse,
const btVector3 &  rel_pos 
) [inline]
void btRigidBody::applyTorque ( const btVector3 &  torque) [inline]

Definition at line 299 of file btRigidBody.h.

References m_angularFactor.

Referenced by applyForce(), and CcdPhysicsController::ApplyTorque().

void btRigidBody::applyTorqueImpulse ( const btVector3 &  torque) [inline]
btRigidBody::ATTRIBUTE_ALIGNED64 ( btVector3  m_deltaLinearVelocity) [protected]
int btRigidBody::calculateSerializeBufferSize ( ) const [virtual]

Definition at line 356 of file btRigidBody.cpp.

References btRigidBodyData.

Referenced by ATTRIBUTE_ALIGNED16(), and serializeSingleObject().

bool btRigidBody::checkCollideWithOverride ( btCollisionObject *  co) [virtual]
void btRigidBody::clearForces ( ) [inline]
SIMD_FORCE_INLINE btScalar btRigidBody::computeAngularImpulseDenominator ( const btVector3 &  axis) const [inline]

Definition at line 399 of file btRigidBody.h.

References getInvInertiaTensorWorld().

Referenced by btConeTwistConstraint::solveConstraintObsolete().

SIMD_FORCE_INLINE btScalar btRigidBody::computeImpulseDenominator ( const btVector3 &  pos,
const btVector3 &  normal 
) const [inline]
void btRigidBody::getAabb ( btVector3 &  aabbMin,
btVector3 &  aabbMax 
) const

Definition at line 126 of file btRigidBody.cpp.

References btCollisionShape::getAabb(), and getCollisionShape().

btScalar btRigidBody::getAngularDamping ( ) const [inline]

Definition at line 223 of file btRigidBody.h.

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

Definition at line 233 of file btRigidBody.h.

const btVector3& btRigidBody::getAngularVelocity ( ) const [inline]
const btBroadphaseProxy* btRigidBody::getBroadphaseProxy ( ) const [inline]

Definition at line 444 of file btRigidBody.h.

Referenced by btDiscreteDynamicsWorld::integrateTransforms(), and isInWorld().

btBroadphaseProxy* btRigidBody::getBroadphaseProxy ( ) [inline]

Definition at line 448 of file btRigidBody.h.

const btVector3& btRigidBody::getCenterOfMassPosition ( ) const [inline]
const btTransform& btRigidBody::getCenterOfMassTransform ( ) const [inline]
SIMD_FORCE_INLINE const btCollisionShape* btRigidBody::getCollisionShape ( ) const [inline]
SIMD_FORCE_INLINE btCollisionShape* btRigidBody::getCollisionShape ( ) [inline]

Definition at line 244 of file btRigidBody.h.

btTypedConstraint* btRigidBody::getConstraintRef ( int  index) [inline]
const btVector3& btRigidBody::getDeltaAngularVelocity ( ) const [inline]

Definition at line 527 of file btRigidBody.h.

References m_deltaAngularVelocity.

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

Definition at line 522 of file btRigidBody.h.

int btRigidBody::getFlags ( void  ) const [inline]
const btVector3& btRigidBody::getGravity ( ) const [inline]

Definition at line 211 of file btRigidBody.h.

const btVector3& btRigidBody::getInvInertiaDiagLocal ( ) const [inline]
const btMatrix3x3& btRigidBody::getInvInertiaTensorWorld ( ) const [inline]
btScalar btRigidBody::getInvMass ( ) const [inline]
btScalar btRigidBody::getLinearDamping ( ) const [inline]

Definition at line 218 of file btRigidBody.h.

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

Definition at line 228 of file btRigidBody.h.

const btVector3& btRigidBody::getLinearVelocity ( ) const [inline]
btMotionState* btRigidBody::getMotionState ( ) [inline]
const btMotionState* btRigidBody::getMotionState ( ) const [inline]

Definition at line 462 of file btRigidBody.h.

int btRigidBody::getNumConstraintRefs ( ) const [inline]
btQuaternion btRigidBody::getOrientation ( ) const

Definition at line 278 of file btRigidBody.cpp.

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

Definition at line 532 of file btRigidBody.h.

References m_pushVelocity.

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

Definition at line 273 of file btRigidBody.h.

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

Definition at line 278 of file btRigidBody.h.

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

Definition at line 537 of file btRigidBody.h.

References m_turnVelocity.

btVector3 btRigidBody::getVelocityInLocalPoint ( const btVector3 &  rel_pos) const [inline]
void btRigidBody::integrateVelocities ( btScalar  step)

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

Definition at line 260 of file btRigidBody.cpp.

References MAX_ANGVEL, and step().

Referenced by btSimpleDynamicsWorld::predictUnconstraintMotion(), and btDiscreteDynamicsWorld::predictUnconstraintMotion().

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

Definition at line 556 of file btRigidBody.h.

References m_angularFactor.

SIMD_FORCE_INLINE void btRigidBody::internalGetAngularVelocity ( btVector3 &  angVel) const [inline]
btVector3& btRigidBody::internalGetDeltaAngularVelocity ( ) [inline]
btVector3& btRigidBody::internalGetDeltaLinearVelocity ( ) [inline]
const btVector3& btRigidBody::internalGetInvMass ( ) const [inline]
btVector3& btRigidBody::internalGetPushVelocity ( ) [inline]
btVector3& btRigidBody::internalGetTurnVelocity ( ) [inline]
SIMD_FORCE_INLINE void btRigidBody::internalGetVelocityInLocalPointObsolete ( const btVector3 &  rel_pos,
btVector3 &  velocity 
) const [inline]
void btRigidBody::internalWritebackVelocity ( ) [inline]
void btRigidBody::internalWritebackVelocity ( btScalar  timeStep)
bool btRigidBody::isInWorld ( ) const [inline]

Definition at line 492 of file btRigidBody.h.

References getBroadphaseProxy().

void btRigidBody::predictIntegratedTransform ( btScalar  step,
btTransform predictedTransform 
)
void btRigidBody::proceedToTransform ( const btTransform newTrans)
void btRigidBody::removeConstraintRef ( btTypedConstraint c)
void btRigidBody::saveKinematicState ( btScalar  step)
const char * btRigidBody::serialize ( void *  dataBuffer,
class btSerializer serializer 
) const [virtual]

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

Definition at line 363 of file btRigidBody.cpp.

References btRigidBodyData, btRigidBodyDataName, m_angularFactor, and btMatrix3x3::serialize().

Referenced by ATTRIBUTE_ALIGNED16(), and serializeSingleObject().

void btRigidBody::serializeSingleObject ( class btSerializer serializer) const [virtual]
void btRigidBody::setAngularFactor ( btScalar  angFac) [inline]

Definition at line 482 of file btRigidBody.h.

References m_angularFactor.

void btRigidBody::setAngularFactor ( const btVector3 &  angFac) [inline]
void btRigidBody::setAngularVelocity ( const btVector3 &  ang_vel) [inline]
void btRigidBody::setCenterOfMassTransform ( const btTransform xform)
void btRigidBody::setDamping ( btScalar  lin_damping,
btScalar  ang_damping 
)

Definition at line 148 of file btRigidBody.cpp.

References btClamped().

Referenced by CcdPhysicsController::CreateRigidbody(), and setupRigidBody().

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

Definition at line 512 of file btRigidBody.h.

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

Definition at line 288 of file btRigidBody.h.

Referenced by CcdPhysicsController::setRigidBody().

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

Definition at line 254 of file btRigidBody.h.

References m_invMass.

Referenced by CcdPhysicsController::PostProcessReplica().

void btRigidBody::setLinearVelocity ( const btVector3 &  lin_vel) [inline]
void btRigidBody::setMassProps ( btScalar  mass,
const btVector3 &  inertia 
)
void btRigidBody::setMotionState ( btMotionState motionState) [inline]

Definition at line 466 of file btRigidBody.h.

References btMotionState::getWorldTransform().

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]
void btRigidBody::translate ( const btVector3 &  v) [inline]

Definition at line 375 of file btRigidBody.h.

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

Definition at line 195 of file btRigidBody.h.

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

Member Data Documentation

btVector3 btRigidBody::m_angularFactor [protected]

Definition at line 474 of file btRigidBody.h.

Referenced by setupRigidBody().

btVector3 btRigidBody::m_deltaAngularVelocity [protected]

Definition at line 475 of file btRigidBody.h.

Referenced by setupRigidBody().

btVector3 btRigidBody::m_invMass [protected]

Definition at line 99 of file btRigidBody.h.

Referenced by internalGetInvMass(), setLinearFactor(), setMassProps(), and setupRigidBody().

btVector3 btRigidBody::m_pushVelocity [protected]
btVector3 btRigidBody::m_turnVelocity [protected]

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