|
Bullet Collision Detection & Physics Library
|
The btGhostObject can keep track of all objects that are overlapping By default, this overlap is based on the AABB This is useful for creating a character controller, collision sensors/triggers, explosions etc. More...
#include <btGhostObject.h>


Static Public Member Functions | |
| static const btGhostObject * | upcast (const btCollisionObject *colObj) |
| static btGhostObject * | upcast (btCollisionObject *colObj) |
Protected Attributes | |
| btAlignedObjectArray< btCollisionObject * > | m_overlappingObjects |
Protected Attributes inherited from btCollisionObject | |
| 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_worldArrayIndex |
| int | m_activationState1 |
| btScalar | m_deactivationTime |
| btScalar | m_friction |
| btScalar | m_restitution |
| btScalar | m_rollingFriction |
| btScalar | m_spinningFriction |
| btScalar | m_contactDamping |
| btScalar | m_contactStiffness |
| 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 | |
| int | m_userIndex2 |
| int | m_userIndex |
| int | m_userIndex3 |
| 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. | |
| btAlignedObjectArray< const btCollisionObject * > | m_objectsWithoutCollisionCheck |
| int | m_updateRevision |
| internal update revision number. It will be increased when the object changes. This allows some subsystems to perform lazy evaluation. | |
| btVector3 | m_customDebugColorRGB |
Additional Inherited Members | |
Public Types inherited from btCollisionObject | |
| enum | CollisionFlags { CF_DYNAMIC_OBJECT = 0 , 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 , CF_HAS_CONTACT_STIFFNESS_DAMPING = 128 , CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR = 256 , CF_HAS_FRICTION_ANCHOR = 512 , CF_HAS_COLLISION_SOUND_TRIGGER = 1024 } |
| 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 } |
The btGhostObject can keep track of all objects that are overlapping By default, this overlap is based on the AABB This is useful for creating a character controller, collision sensors/triggers, explosions etc.
We plan on adding rayTest and other queries for the btGhostObject
Definition at line 33 of file btGhostObject.h.
| btGhostObject::btGhostObject | ( | ) |
Definition at line 21 of file btGhostObject.cpp.
|
virtual |
btGhostObject should have been removed from the world, so no overlapping objects
Definition at line 26 of file btGhostObject.cpp.
|
virtual |
this method is mainly for expert/internal use only.
if this linearSearch becomes too slow (too many overlapping objects) we should add a more appropriate data structure
Reimplemented in btPairCachingGhostObject.
Definition at line 32 of file btGhostObject.cpp.
| void btGhostObject::convexSweepTest | ( | const class btConvexShape * | castShape, |
| const btTransform & | convexFromWorld, | ||
| const btTransform & | convexToWorld, | ||
| btCollisionWorld::ConvexResultCallback & | resultCallback, | ||
| btScalar | allowedCcdPenetration = 0.f |
||
| ) | const |
go over all objects, and if the ray intersects their aabb + cast shape aabb,
Definition at line 99 of file btGhostObject.cpp.
|
inline |
Definition at line 53 of file btGhostObject.h.
|
inline |
Definition at line 58 of file btGhostObject.h.
|
inline |
Definition at line 63 of file btGhostObject.h.
|
inline |
Definition at line 68 of file btGhostObject.h.
|
inline |
Definition at line 73 of file btGhostObject.h.
| void btGhostObject::rayTest | ( | const btVector3 & | rayFromWorld, |
| const btVector3 & | rayToWorld, | ||
| btCollisionWorld::RayResultCallback & | resultCallback | ||
| ) | const |
Definition at line 143 of file btGhostObject.cpp.
|
virtual |
this method is mainly for expert/internal use only.
Reimplemented in btPairCachingGhostObject.
Definition at line 45 of file btGhostObject.cpp.
|
inlinestatic |
Definition at line 88 of file btGhostObject.h.
|
inlinestatic |
Definition at line 82 of file btGhostObject.h.
|
protected |
Definition at line 37 of file btGhostObject.h.