btCollisionObject can be used to manage collision detection objects. More...
#include <btCollisionObject.h>
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 } |
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 btVector3 & | getAnisotropicFriction () 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. | |
btScalar | getContactProcessingThreshold () const |
bool | isStaticObject () const |
bool | isKinematicObject () const |
bool | isStaticOrKinematicObject () const |
bool | hasContactResponse () const |
btCollisionObject () | |
virtual | ~btCollisionObject () |
virtual void | setCollisionShape (btCollisionShape *collisionShape) |
const btCollisionShape * | getCollisionShape () const |
btCollisionShape * | getCollisionShape () |
void * | internalGetExtensionPointer () const |
Avoid using this internal API call, the extension pointer is used by some Bullet extensions. | |
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. | |
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 | |
btTransform & | getWorldTransform () |
const btTransform & | getWorldTransform () const |
void | setWorldTransform (const btTransform &worldTrans) |
btBroadphaseProxy * | getBroadphaseHandle () |
const btBroadphaseProxy * | getBroadphaseHandle () const |
void | setBroadphaseHandle (btBroadphaseProxy *handle) |
const btTransform & | getInterpolationWorldTransform () const |
btTransform & | getInterpolationWorldTransform () |
void | setInterpolationWorldTransform (const btTransform &trans) |
void | setInterpolationLinearVelocity (const btVector3 &linvel) |
void | setInterpolationAngularVelocity (const btVector3 &angvel) |
const btVector3 & | getInterpolationLinearVelocity () const |
const btVector3 & | getInterpolationAngularVelocity () 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:: | |
void | setCcdSweptSphereRadius (btScalar radius) |
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: | |
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. | |
void * | getUserPointer () const |
users can point to their objects, userPointer is not used by Bullet | |
void | setUserPointer (void *userPointer) |
users can point to their objects, userPointer is not used by Bullet | |
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) | |
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 | |
btVector3 | m_interpolationLinearVelocity |
btVector3 | m_interpolationAngularVelocity |
btVector3 | m_anisotropicFriction |
int | m_hasAnisotropicFriction |
btScalar | m_contactProcessingThreshold |
btBroadphaseProxy * | m_broadphaseHandle |
btCollisionShape * | m_collisionShape |
void * | m_extensionPointer |
m_extensionPointer is used by some internal low-level Bullet extensions. | |
btCollisionShape * | m_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. | |
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. | |
void * | m_userObjectPointer |
users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer | |
btScalar | m_hitFraction |
time of impact calculation | |
btScalar | m_ccdSweptSphereRadius |
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm:: | |
btScalar | m_ccdMotionThreshold |
Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold. | |
int | m_checkCollideWith |
If some object should have elaborate collision filtering by sub-classes. |
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.
CF_ANISOTROPIC_FRICTION_DISABLED | |
CF_ANISOTROPIC_FRICTION | |
CF_ANISOTROPIC_ROLLING_FRICTION |
Definition at line 141 of file btCollisionObject.h.
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 118 of file btCollisionObject.h.
Definition at line 129 of file btCollisionObject.h.
btCollisionObject::btCollisionObject | ( | ) |
Definition at line 20 of file btCollisionObject.cpp.
btCollisionObject::~btCollisionObject | ( | ) | [virtual] |
Definition at line 46 of file btCollisionObject.cpp.
void btCollisionObject::activate | ( | bool | forceActivation = false |
) | const |
Definition at line 61 of file btCollisionObject.cpp.
btCollisionObject::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
int btCollisionObject::calculateSerializeBufferSize | ( | ) | const [inline, virtual] |
Reimplemented in btRigidBody, and btSoftBody.
Definition at line 527 of file btCollisionObject.h.
bool btCollisionObject::checkCollideWith | ( | const btCollisionObject * | co | ) | const [inline] |
Definition at line 442 of file btCollisionObject.h.
virtual bool btCollisionObject::checkCollideWithOverride | ( | const btCollisionObject * | ) | const [inline, protected, virtual] |
Reimplemented in btRigidBody.
Definition at line 109 of file btCollisionObject.h.
void btCollisionObject::forceActivationState | ( | int | newState | ) | const |
Definition at line 56 of file btCollisionObject.cpp.
int btCollisionObject::getActivationState | ( | ) | const [inline] |
Definition at line 236 of file btCollisionObject.h.
const btVector3& btCollisionObject::getAnisotropicFriction | ( | ) | const [inline] |
Definition at line 154 of file btCollisionObject.h.
btBroadphaseProxy* btCollisionObject::getBroadphaseHandle | ( | ) | [inline] |
Definition at line 307 of file btCollisionObject.h.
const btBroadphaseProxy* btCollisionObject::getBroadphaseHandle | ( | ) | const [inline] |
Definition at line 312 of file btCollisionObject.h.
btScalar btCollisionObject::getCcdMotionThreshold | ( | ) | const [inline] |
Definition at line 411 of file btCollisionObject.h.
btScalar btCollisionObject::getCcdSquareMotionThreshold | ( | ) | const [inline] |
Definition at line 416 of file btCollisionObject.h.
btScalar btCollisionObject::getCcdSweptSphereRadius | ( | ) | const [inline] |
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
Definition at line 400 of file btCollisionObject.h.
int btCollisionObject::getCollisionFlags | ( | ) | const [inline] |
Definition at line 389 of file btCollisionObject.h.
const btCollisionShape* btCollisionObject::getCollisionShape | ( | ) | const [inline] |
Reimplemented in btRigidBody.
Definition at line 209 of file btCollisionObject.h.
btCollisionShape* btCollisionObject::getCollisionShape | ( | ) | [inline] |
Reimplemented in btRigidBody.
Definition at line 214 of file btCollisionObject.h.
int btCollisionObject::getCompanionId | ( | ) | const [inline] |
Definition at line 368 of file btCollisionObject.h.
btScalar btCollisionObject::getContactProcessingThreshold | ( | ) | const [inline] |
Definition at line 175 of file btCollisionObject.h.
btScalar btCollisionObject::getDeactivationTime | ( | ) | const [inline] |
Definition at line 244 of file btCollisionObject.h.
btScalar btCollisionObject::getFriction | ( | ) | const [inline] |
Definition at line 270 of file btCollisionObject.h.
btScalar btCollisionObject::getHitFraction | ( | ) | const [inline] |
Definition at line 378 of file btCollisionObject.h.
int btCollisionObject::getInternalType | ( | ) | const [inline] |
reserved for Bullet internal usage
Definition at line 286 of file btCollisionObject.h.
const btVector3& btCollisionObject::getInterpolationAngularVelocity | ( | ) | const [inline] |
Definition at line 353 of file btCollisionObject.h.
const btVector3& btCollisionObject::getInterpolationLinearVelocity | ( | ) | const [inline] |
Definition at line 348 of file btCollisionObject.h.
const btTransform& btCollisionObject::getInterpolationWorldTransform | ( | ) | const [inline] |
Definition at line 323 of file btCollisionObject.h.
btTransform& btCollisionObject::getInterpolationWorldTransform | ( | ) | [inline] |
Definition at line 328 of file btCollisionObject.h.
int btCollisionObject::getIslandTag | ( | ) | const [inline] |
Definition at line 358 of file btCollisionObject.h.
btScalar btCollisionObject::getRestitution | ( | ) | const [inline] |
Definition at line 262 of file btCollisionObject.h.
btScalar btCollisionObject::getRollingFriction | ( | ) | const [inline] |
Definition at line 279 of file btCollisionObject.h.
void* btCollisionObject::getUserPointer | ( | ) | const [inline] |
users can point to their objects, userPointer is not used by Bullet
Definition at line 430 of file btCollisionObject.h.
btTransform& btCollisionObject::getWorldTransform | ( | ) | [inline] |
Definition at line 291 of file btCollisionObject.h.
const btTransform& btCollisionObject::getWorldTransform | ( | ) | const [inline] |
Definition at line 296 of file btCollisionObject.h.
bool btCollisionObject::hasAnisotropicFriction | ( | int | frictionMode = CF_ANISOTROPIC_FRICTION |
) | const [inline] |
Definition at line 164 of file btCollisionObject.h.
bool btCollisionObject::hasContactResponse | ( | ) | const [inline] |
Definition at line 194 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 225 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 231 of file btCollisionObject.h.
bool btCollisionObject::isActive | ( | ) | const [inline] |
Definition at line 253 of file btCollisionObject.h.
bool btCollisionObject::isKinematicObject | ( | ) | const [inline] |
Definition at line 184 of file btCollisionObject.h.
bool btCollisionObject::isStaticObject | ( | ) | const [inline] |
Definition at line 180 of file btCollisionObject.h.
bool btCollisionObject::isStaticOrKinematicObject | ( | ) | const [inline] |
Definition at line 189 of file btCollisionObject.h.
bool btCollisionObject::mergesSimulationIslands | ( | ) | const [inline] |
static objects, kinematic and object without contact response don't merge islands
Definition at line 148 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 btRigidBody, and btSoftBody.
Definition at line 70 of file btCollisionObject.cpp.
void btCollisionObject::serializeSingleObject | ( | class btSerializer * | serializer | ) | const [virtual] |
Reimplemented in btRigidBody.
Definition at line 110 of file btCollisionObject.cpp.
void btCollisionObject::setActivationState | ( | int | newState | ) | const |
Definition at line 50 of file btCollisionObject.cpp.
void btCollisionObject::setAnisotropicFriction | ( | const btVector3 & | anisotropicFriction, | |
int | frictionMode = CF_ANISOTROPIC_FRICTION | |||
) | [inline] |
Definition at line 158 of file btCollisionObject.h.
void btCollisionObject::setBroadphaseHandle | ( | btBroadphaseProxy * | handle | ) | [inline] |
Definition at line 317 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 424 of file btCollisionObject.h.
void btCollisionObject::setCcdSweptSphereRadius | ( | btScalar | radius | ) | [inline] |
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
Definition at line 406 of file btCollisionObject.h.
void btCollisionObject::setCollisionFlags | ( | int | flags | ) | [inline] |
Definition at line 394 of file btCollisionObject.h.
virtual void btCollisionObject::setCollisionShape | ( | btCollisionShape * | collisionShape | ) | [inline, virtual] |
Reimplemented in btSoftBody.
Definition at line 203 of file btCollisionObject.h.
void btCollisionObject::setCompanionId | ( | int | id | ) | [inline] |
Definition at line 373 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 171 of file btCollisionObject.h.
void btCollisionObject::setDeactivationTime | ( | btScalar | time | ) | [inline] |
Definition at line 240 of file btCollisionObject.h.
void btCollisionObject::setFriction | ( | btScalar | frict | ) | [inline] |
Definition at line 266 of file btCollisionObject.h.
void btCollisionObject::setHitFraction | ( | btScalar | hitFraction | ) | [inline] |
Definition at line 383 of file btCollisionObject.h.
void btCollisionObject::setInterpolationAngularVelocity | ( | const btVector3 & | angvel | ) | [inline] |
Definition at line 343 of file btCollisionObject.h.
void btCollisionObject::setInterpolationLinearVelocity | ( | const btVector3 & | linvel | ) | [inline] |
Definition at line 338 of file btCollisionObject.h.
void btCollisionObject::setInterpolationWorldTransform | ( | const btTransform & | trans | ) | [inline] |
Definition at line 333 of file btCollisionObject.h.
void btCollisionObject::setIslandTag | ( | int | tag | ) | [inline] |
Definition at line 363 of file btCollisionObject.h.
void btCollisionObject::setRestitution | ( | btScalar | rest | ) | [inline] |
Definition at line 258 of file btCollisionObject.h.
void btCollisionObject::setRollingFriction | ( | btScalar | frict | ) | [inline] |
Definition at line 275 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 436 of file btCollisionObject.h.
void btCollisionObject::setWorldTransform | ( | const btTransform & | worldTrans | ) | [inline] |
Definition at line 301 of file btCollisionObject.h.
int btCollisionObject::m_activationState1 [mutable, protected] |
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 104 of file btCollisionObject.h.
btScalar btCollisionObject::m_ccdSweptSphereRadius [protected] |
Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
Definition at line 101 of file btCollisionObject.h.
int btCollisionObject::m_checkCollideWith [protected] |
If some object should have elaborate collision filtering by sub-classes.
Definition at line 107 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.
Definition at line 66 of file btCollisionObject.h.
btScalar btCollisionObject::m_deactivationTime [mutable, protected] |
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 98 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.
Definition at line 62 of file btCollisionObject.h.
Definition at line 61 of file btCollisionObject.h.
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.
void* btCollisionObject::m_userObjectPointer [protected] |
users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer
Definition at line 95 of file btCollisionObject.h.
btTransform btCollisionObject::m_worldTransform [protected] |
Definition at line 54 of file btCollisionObject.h.