Bullet Collision Detection & Physics Library
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btCollisionObject Class Reference

btCollisionObject can be used to manage collision detection objects. More...

#include <btCollisionObject.h>

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

Public Types

enum  CollisionFlags {
  CF_STATIC_OBJECT = 1,
  CF_KINEMATIC_OBJECT = 2,
  CF_NO_CONTACT_RESPONSE = 4,
  CF_CUSTOM_MATERIAL_CALLBACK = 8,
  CF_CHARACTER_OBJECT = 16,
  CF_DISABLE_VISUALIZE_OBJECT = 32,
  CF_DISABLE_SPU_COLLISION_PROCESSING = 64
}
 
enum  CollisionObjectTypes {
  CO_COLLISION_OBJECT =1,
  CO_RIGID_BODY =2,
  CO_GHOST_OBJECT =4,
  CO_SOFT_BODY =8,
  CO_HF_FLUID =16,
  CO_USER_TYPE =32,
  CO_FEATHERSTONE_LINK =64
}
 
enum  AnisotropicFrictionFlags {
  CF_ANISOTROPIC_FRICTION_DISABLED =0,
  CF_ANISOTROPIC_FRICTION = 1,
  CF_ANISOTROPIC_ROLLING_FRICTION = 2
}
 

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
 
bool mergesSimulationIslands () const
 
const btVector3getAnisotropicFriction () const
 
void setAnisotropicFriction (const btVector3 &anisotropicFriction, int frictionMode=CF_ANISOTROPIC_FRICTION)
 
bool hasAnisotropicFriction (int frictionMode=CF_ANISOTROPIC_FRICTION) const
 
void setContactProcessingThreshold (btScalar contactProcessingThreshold)
 the constraint solver can discard solving contacts, if the distance is above this threshold. More...
 
btScalar getContactProcessingThreshold () const
 
bool isStaticObject () const
 
bool isKinematicObject () const
 
bool isStaticOrKinematicObject () const
 
bool hasContactResponse () const
 
 btCollisionObject ()
 
virtual ~btCollisionObject ()
 
virtual void setCollisionShape (btCollisionShape *collisionShape)
 
const btCollisionShapegetCollisionShape () const
 
btCollisionShapegetCollisionShape ()
 
void * internalGetExtensionPointer () const
 Avoid using this internal API call, the extension pointer is used by some Bullet extensions. More...
 
void internalSetExtensionPointer (void *pointer)
 Avoid using this internal API call, the extension pointer is used by some Bullet extensions If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead. More...
 
int getActivationState () const
 
void setActivationState (int newState) const
 
void setDeactivationTime (btScalar time)
 
btScalar getDeactivationTime () const
 
void forceActivationState (int newState) const
 
void activate (bool forceActivation=false) const
 
bool isActive () const
 
void setRestitution (btScalar rest)
 
btScalar getRestitution () const
 
void setFriction (btScalar frict)
 
btScalar getFriction () const
 
void setRollingFriction (btScalar frict)
 
btScalar getRollingFriction () const
 
int getInternalType () const
 reserved for Bullet internal usage More...
 
btTransformgetWorldTransform ()
 
const btTransformgetWorldTransform () const
 
void setWorldTransform (const btTransform &worldTrans)
 
btBroadphaseProxygetBroadphaseHandle ()
 
const btBroadphaseProxygetBroadphaseHandle () const
 
void setBroadphaseHandle (btBroadphaseProxy *handle)
 
const btTransformgetInterpolationWorldTransform () const
 
btTransformgetInterpolationWorldTransform ()
 
void setInterpolationWorldTransform (const btTransform &trans)
 
void setInterpolationLinearVelocity (const btVector3 &linvel)
 
void setInterpolationAngularVelocity (const btVector3 &angvel)
 
const btVector3getInterpolationLinearVelocity () const
 
const btVector3getInterpolationAngularVelocity () const
 
int getIslandTag () const
 
void setIslandTag (int tag)
 
int getCompanionId () const
 
void setCompanionId (int id)
 
btScalar getHitFraction () const
 
void setHitFraction (btScalar hitFraction)
 
int getCollisionFlags () const
 
void setCollisionFlags (int flags)
 
btScalar getCcdSweptSphereRadius () const
 Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: More...
 
void setCcdSweptSphereRadius (btScalar radius)
 Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: More...
 
btScalar getCcdMotionThreshold () const
 
btScalar getCcdSquareMotionThreshold () const
 
void setCcdMotionThreshold (btScalar ccdMotionThreshold)
 Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold. More...
 
void * getUserPointer () const
 users can point to their objects, userPointer is not used by Bullet More...
 
int getUserIndex () const
 
void setUserPointer (void *userPointer)
 users can point to their objects, userPointer is not used by Bullet More...
 
void setUserIndex (int index)
 users can point to their objects, userPointer is not used by Bullet More...
 
int getUpdateRevisionInternal () const
 
bool checkCollideWith (const btCollisionObject *co) const
 
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) More...
 
virtual void serializeSingleObject (class btSerializer *serializer) const
 

Protected Member Functions

virtual bool checkCollideWithOverride (const btCollisionObject *) const
 

Protected Attributes

btTransform m_worldTransform
 
btTransform m_interpolationWorldTransform
 m_interpolationWorldTransform is used for CCD and interpolation it can be either previous or future (predicted) transform More...
 
btVector3 m_interpolationLinearVelocity
 
btVector3 m_interpolationAngularVelocity
 
btVector3 m_anisotropicFriction
 
int m_hasAnisotropicFriction
 
btScalar m_contactProcessingThreshold
 
btBroadphaseProxym_broadphaseHandle
 
btCollisionShapem_collisionShape
 
void * m_extensionPointer
 m_extensionPointer is used by some internal low-level Bullet extensions. More...
 
btCollisionShapem_rootCollisionShape
 m_rootCollisionShape is temporarily used to store the original collision shape The m_collisionShape might be temporarily replaced by a child collision shape during collision detection purposes If it is NULL, the m_collisionShape is not temporarily replaced. More...
 
int m_collisionFlags
 
int m_islandTag1
 
int m_companionId
 
int m_activationState1
 
btScalar m_deactivationTime
 
btScalar m_friction
 
btScalar m_restitution
 
btScalar m_rollingFriction
 
int m_internalType
 m_internalType is reserved to distinguish Bullet's btCollisionObject, btRigidBody, btSoftBody, btGhostObject etc. More...
 
union {
   void *   m_userObjectPointer
 
   int   m_userIndex
 
}; 
 users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer More...
 
btScalar m_hitFraction
 time of impact calculation More...
 
btScalar m_ccdSweptSphereRadius
 Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: More...
 
btScalar m_ccdMotionThreshold
 Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold. More...
 
int m_checkCollideWith
 If some object should have elaborate collision filtering by sub-classes. More...
 
int m_updateRevision
 internal update revision number. It will be increased when the object changes. This allows some subsystems to perform lazy evaluation. More...
 

Detailed Description

btCollisionObject can be used to manage collision detection objects.

btCollisionObject maintains all information that is needed for a collision detection: Shape, Transform and AABB proxy. They can be added to the btCollisionWorld.

Definition at line 49 of file btCollisionObject.h.

Member Enumeration Documentation

Enumerator
CF_ANISOTROPIC_FRICTION_DISABLED 
CF_ANISOTROPIC_FRICTION 
CF_ANISOTROPIC_ROLLING_FRICTION 

Definition at line 149 of file btCollisionObject.h.

Enumerator
CF_STATIC_OBJECT 
CF_KINEMATIC_OBJECT 
CF_NO_CONTACT_RESPONSE 
CF_CUSTOM_MATERIAL_CALLBACK 
CF_CHARACTER_OBJECT 
CF_DISABLE_VISUALIZE_OBJECT 
CF_DISABLE_SPU_COLLISION_PROCESSING 

Definition at line 125 of file btCollisionObject.h.

Enumerator
CO_COLLISION_OBJECT 
CO_RIGID_BODY 
CO_GHOST_OBJECT 

CO_GHOST_OBJECT keeps track of all objects overlapping its AABB and that pass its collision filter It is useful for collision sensors, explosion objects, character controller etc.

CO_SOFT_BODY 
CO_HF_FLUID 
CO_USER_TYPE 
CO_FEATHERSTONE_LINK 

Definition at line 136 of file btCollisionObject.h.

Constructor & Destructor Documentation

btCollisionObject::btCollisionObject ( )

Definition at line 20 of file btCollisionObject.cpp.

btCollisionObject::~btCollisionObject ( )
virtual

Definition at line 47 of file btCollisionObject.cpp.

Member Function Documentation

void btCollisionObject::activate ( bool  forceActivation = false) const

Definition at line 62 of file btCollisionObject.cpp.

btCollisionObject::BT_DECLARE_ALIGNED_ALLOCATOR ( )
int btCollisionObject::calculateSerializeBufferSize ( ) const
inlinevirtual

Reimplemented in btSoftBody, and btRigidBody.

Definition at line 558 of file btCollisionObject.h.

bool btCollisionObject::checkCollideWith ( const btCollisionObject co) const
inline

Definition at line 473 of file btCollisionObject.h.

virtual bool btCollisionObject::checkCollideWithOverride ( const btCollisionObject ) const
inlineprotectedvirtual

Reimplemented in btRigidBody, and btMultiBodyLinkCollider.

Definition at line 116 of file btCollisionObject.h.

void btCollisionObject::forceActivationState ( int  newState) const

Definition at line 57 of file btCollisionObject.cpp.

int btCollisionObject::getActivationState ( ) const
inline

Definition at line 245 of file btCollisionObject.h.

const btVector3& btCollisionObject::getAnisotropicFriction ( ) const
inline

Definition at line 162 of file btCollisionObject.h.

btBroadphaseProxy* btCollisionObject::getBroadphaseHandle ( )
inline

Definition at line 320 of file btCollisionObject.h.

const btBroadphaseProxy* btCollisionObject::getBroadphaseHandle ( ) const
inline

Definition at line 325 of file btCollisionObject.h.

btScalar btCollisionObject::getCcdMotionThreshold ( ) const
inline

Definition at line 427 of file btCollisionObject.h.

btScalar btCollisionObject::getCcdSquareMotionThreshold ( ) const
inline

Definition at line 432 of file btCollisionObject.h.

btScalar btCollisionObject::getCcdSweptSphereRadius ( ) const
inline

Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::

Definition at line 416 of file btCollisionObject.h.

int btCollisionObject::getCollisionFlags ( ) const
inline

Definition at line 405 of file btCollisionObject.h.

const btCollisionShape* btCollisionObject::getCollisionShape ( ) const
inline

Definition at line 218 of file btCollisionObject.h.

btCollisionShape* btCollisionObject::getCollisionShape ( )
inline

Definition at line 223 of file btCollisionObject.h.

int btCollisionObject::getCompanionId ( ) const
inline

Definition at line 384 of file btCollisionObject.h.

btScalar btCollisionObject::getContactProcessingThreshold ( ) const
inline

Definition at line 183 of file btCollisionObject.h.

btScalar btCollisionObject::getDeactivationTime ( ) const
inline

Definition at line 253 of file btCollisionObject.h.

btScalar btCollisionObject::getFriction ( ) const
inline

Definition at line 281 of file btCollisionObject.h.

btScalar btCollisionObject::getHitFraction ( ) const
inline

Definition at line 394 of file btCollisionObject.h.

int btCollisionObject::getInternalType ( ) const
inline

reserved for Bullet internal usage

Definition at line 298 of file btCollisionObject.h.

const btVector3& btCollisionObject::getInterpolationAngularVelocity ( ) const
inline

Definition at line 369 of file btCollisionObject.h.

const btVector3& btCollisionObject::getInterpolationLinearVelocity ( ) const
inline

Definition at line 364 of file btCollisionObject.h.

const btTransform& btCollisionObject::getInterpolationWorldTransform ( ) const
inline

Definition at line 336 of file btCollisionObject.h.

btTransform& btCollisionObject::getInterpolationWorldTransform ( )
inline

Definition at line 341 of file btCollisionObject.h.

int btCollisionObject::getIslandTag ( ) const
inline

Definition at line 374 of file btCollisionObject.h.

btScalar btCollisionObject::getRestitution ( ) const
inline

Definition at line 272 of file btCollisionObject.h.

btScalar btCollisionObject::getRollingFriction ( ) const
inline

Definition at line 291 of file btCollisionObject.h.

int btCollisionObject::getUpdateRevisionInternal ( ) const
inline

Definition at line 467 of file btCollisionObject.h.

int btCollisionObject::getUserIndex ( ) const
inline

Definition at line 451 of file btCollisionObject.h.

void* btCollisionObject::getUserPointer ( ) const
inline

users can point to their objects, userPointer is not used by Bullet

Definition at line 446 of file btCollisionObject.h.

btTransform& btCollisionObject::getWorldTransform ( )
inline

Definition at line 303 of file btCollisionObject.h.

const btTransform& btCollisionObject::getWorldTransform ( ) const
inline

Definition at line 308 of file btCollisionObject.h.

bool btCollisionObject::hasAnisotropicFriction ( int  frictionMode = CF_ANISOTROPIC_FRICTION) const
inline

Definition at line 172 of file btCollisionObject.h.

bool btCollisionObject::hasContactResponse ( ) const
inline

Definition at line 202 of file btCollisionObject.h.

void* btCollisionObject::internalGetExtensionPointer ( ) const
inline

Avoid using this internal API call, the extension pointer is used by some Bullet extensions.

If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.

Definition at line 234 of file btCollisionObject.h.

void btCollisionObject::internalSetExtensionPointer ( void *  pointer)
inline

Avoid using this internal API call, the extension pointer is used by some Bullet extensions If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.

Definition at line 240 of file btCollisionObject.h.

bool btCollisionObject::isActive ( ) const
inline

Definition at line 262 of file btCollisionObject.h.

bool btCollisionObject::isKinematicObject ( ) const
inline

Definition at line 192 of file btCollisionObject.h.

bool btCollisionObject::isStaticObject ( ) const
inline

Definition at line 188 of file btCollisionObject.h.

bool btCollisionObject::isStaticOrKinematicObject ( ) const
inline

Definition at line 197 of file btCollisionObject.h.

bool btCollisionObject::mergesSimulationIslands ( ) const
inline

static objects, kinematic and object without contact response don't merge islands

Definition at line 156 of file btCollisionObject.h.

const char * btCollisionObject::serialize ( void *  dataBuffer,
class btSerializer serializer 
) const
virtual

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

Reimplemented in btSoftBody, and btRigidBody.

Definition at line 71 of file btCollisionObject.cpp.

void btCollisionObject::serializeSingleObject ( class btSerializer serializer) const
virtual

Reimplemented in btRigidBody.

Definition at line 111 of file btCollisionObject.cpp.

void btCollisionObject::setActivationState ( int  newState) const

Definition at line 51 of file btCollisionObject.cpp.

void btCollisionObject::setAnisotropicFriction ( const btVector3 anisotropicFriction,
int  frictionMode = CF_ANISOTROPIC_FRICTION 
)
inline

Definition at line 166 of file btCollisionObject.h.

void btCollisionObject::setBroadphaseHandle ( btBroadphaseProxy handle)
inline

Definition at line 330 of file btCollisionObject.h.

void btCollisionObject::setCcdMotionThreshold ( btScalar  ccdMotionThreshold)
inline

Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold.

Definition at line 440 of file btCollisionObject.h.

void btCollisionObject::setCcdSweptSphereRadius ( btScalar  radius)
inline

Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::

Definition at line 422 of file btCollisionObject.h.

void btCollisionObject::setCollisionFlags ( int  flags)
inline

Definition at line 410 of file btCollisionObject.h.

virtual void btCollisionObject::setCollisionShape ( btCollisionShape collisionShape)
inlinevirtual

Reimplemented in btSoftBody.

Definition at line 211 of file btCollisionObject.h.

void btCollisionObject::setCompanionId ( int  id)
inline

Definition at line 389 of file btCollisionObject.h.

void btCollisionObject::setContactProcessingThreshold ( btScalar  contactProcessingThreshold)
inline

the constraint solver can discard solving contacts, if the distance is above this threshold.

0 by default. Note that using contacts with positive distance can improve stability. It increases, however, the chance of colliding with degerate contacts, such as 'interior' triangle edges

Definition at line 179 of file btCollisionObject.h.

void btCollisionObject::setDeactivationTime ( btScalar  time)
inline

Definition at line 249 of file btCollisionObject.h.

void btCollisionObject::setFriction ( btScalar  frict)
inline

Definition at line 276 of file btCollisionObject.h.

void btCollisionObject::setHitFraction ( btScalar  hitFraction)
inline

Definition at line 399 of file btCollisionObject.h.

void btCollisionObject::setInterpolationAngularVelocity ( const btVector3 angvel)
inline

Definition at line 358 of file btCollisionObject.h.

void btCollisionObject::setInterpolationLinearVelocity ( const btVector3 linvel)
inline

Definition at line 352 of file btCollisionObject.h.

void btCollisionObject::setInterpolationWorldTransform ( const btTransform trans)
inline

Definition at line 346 of file btCollisionObject.h.

void btCollisionObject::setIslandTag ( int  tag)
inline

Definition at line 379 of file btCollisionObject.h.

void btCollisionObject::setRestitution ( btScalar  rest)
inline

Definition at line 267 of file btCollisionObject.h.

void btCollisionObject::setRollingFriction ( btScalar  frict)
inline

Definition at line 286 of file btCollisionObject.h.

void btCollisionObject::setUserIndex ( int  index)
inline

users can point to their objects, userPointer is not used by Bullet

Definition at line 462 of file btCollisionObject.h.

void btCollisionObject::setUserPointer ( void *  userPointer)
inline

users can point to their objects, userPointer is not used by Bullet

Definition at line 456 of file btCollisionObject.h.

void btCollisionObject::setWorldTransform ( const btTransform worldTrans)
inline

Definition at line 313 of file btCollisionObject.h.

Member Data Documentation

union { ... }

users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer

int btCollisionObject::m_activationState1
mutableprotected

Definition at line 83 of file btCollisionObject.h.

btVector3 btCollisionObject::m_anisotropicFriction
protected

Definition at line 64 of file btCollisionObject.h.

btBroadphaseProxy* btCollisionObject::m_broadphaseHandle
protected

Definition at line 68 of file btCollisionObject.h.

btScalar btCollisionObject::m_ccdMotionThreshold
protected

Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold.

Definition at line 108 of file btCollisionObject.h.

btScalar btCollisionObject::m_ccdSweptSphereRadius
protected

Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::

Definition at line 105 of file btCollisionObject.h.

int btCollisionObject::m_checkCollideWith
protected

If some object should have elaborate collision filtering by sub-classes.

Definition at line 111 of file btCollisionObject.h.

int btCollisionObject::m_collisionFlags
protected

Definition at line 78 of file btCollisionObject.h.

btCollisionShape* btCollisionObject::m_collisionShape
protected

Definition at line 69 of file btCollisionObject.h.

int btCollisionObject::m_companionId
protected

Definition at line 81 of file btCollisionObject.h.

btScalar btCollisionObject::m_contactProcessingThreshold
protected

Definition at line 66 of file btCollisionObject.h.

btScalar btCollisionObject::m_deactivationTime
mutableprotected

Definition at line 84 of file btCollisionObject.h.

void* btCollisionObject::m_extensionPointer
protected

m_extensionPointer is used by some internal low-level Bullet extensions.

Definition at line 71 of file btCollisionObject.h.

btScalar btCollisionObject::m_friction
protected

Definition at line 86 of file btCollisionObject.h.

int btCollisionObject::m_hasAnisotropicFriction
protected

Definition at line 65 of file btCollisionObject.h.

btScalar btCollisionObject::m_hitFraction
protected

time of impact calculation

Definition at line 102 of file btCollisionObject.h.

int btCollisionObject::m_internalType
protected

m_internalType is reserved to distinguish Bullet's btCollisionObject, btRigidBody, btSoftBody, btGhostObject etc.

do not assign your own m_internalType unless you write a new dynamics object class.

Definition at line 92 of file btCollisionObject.h.

btVector3 btCollisionObject::m_interpolationAngularVelocity
protected

Definition at line 62 of file btCollisionObject.h.

btVector3 btCollisionObject::m_interpolationLinearVelocity
protected

Definition at line 61 of file btCollisionObject.h.

btTransform btCollisionObject::m_interpolationWorldTransform
protected

m_interpolationWorldTransform is used for CCD and interpolation it can be either previous or future (predicted) transform

Definition at line 58 of file btCollisionObject.h.

int btCollisionObject::m_islandTag1
protected

Definition at line 80 of file btCollisionObject.h.

btScalar btCollisionObject::m_restitution
protected

Definition at line 87 of file btCollisionObject.h.

btScalar btCollisionObject::m_rollingFriction
protected

Definition at line 88 of file btCollisionObject.h.

btCollisionShape* btCollisionObject::m_rootCollisionShape
protected

m_rootCollisionShape is temporarily used to store the original collision shape The m_collisionShape might be temporarily replaced by a child collision shape during collision detection purposes If it is NULL, the m_collisionShape is not temporarily replaced.

Definition at line 76 of file btCollisionObject.h.

int btCollisionObject::m_updateRevision
protected

internal update revision number. It will be increased when the object changes. This allows some subsystems to perform lazy evaluation.

Definition at line 114 of file btCollisionObject.h.

int btCollisionObject::m_userIndex

Definition at line 98 of file btCollisionObject.h.

void* btCollisionObject::m_userObjectPointer

Definition at line 97 of file btCollisionObject.h.

btTransform btCollisionObject::m_worldTransform
protected

Definition at line 54 of file btCollisionObject.h.


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