| 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>


| Public Member Functions | |
| btGhostObject () | |
| virtual | ~btGhostObject () | 
| void | convexSweepTest (const class btConvexShape *castShape, const btTransform &convexFromWorld, const btTransform &convexToWorld, btCollisionWorld::ConvexResultCallback &resultCallback, btScalar allowedCcdPenetration=0.f) const | 
| void | rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, btCollisionWorld::RayResultCallback &resultCallback) const | 
| virtual void | addOverlappingObjectInternal (btBroadphaseProxy *otherProxy, btBroadphaseProxy *thisProxy=0) | 
| this method is mainly for expert/internal use only.  More... | |
| virtual void | removeOverlappingObjectInternal (btBroadphaseProxy *otherProxy, btDispatcher *dispatcher, btBroadphaseProxy *thisProxy=0) | 
| this method is mainly for expert/internal use only.  More... | |
| int | getNumOverlappingObjects () const | 
| btCollisionObject * | getOverlappingObject (int index) | 
| const btCollisionObject * | getOverlappingObject (int index) const | 
| btAlignedObjectArray< btCollisionObject * > & | getOverlappingPairs () | 
| const btAlignedObjectArray< btCollisionObject * > | getOverlappingPairs () const | 
|  Public Member Functions inherited from btCollisionObject | |
| 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.  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 btCollisionShape * | getCollisionShape () const | 
| btCollisionShape * | getCollisionShape () | 
| void | setIgnoreCollisionCheck (const btCollisionObject *co, bool ignoreCollisionCheck) | 
| virtual bool | checkCollideWithOverride (const btCollisionObject *co) const | 
| 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... | |
| 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::  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 | 
| 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  More... | |
| 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.  More... | |
| 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.  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... | |
| void * | m_userObjectPointer | 
| users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer  More... | |
| int | m_userIndex | 
| 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... | |
| 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.  More... | |
| Additional Inherited Members | |
|  Public Types inherited from btCollisionObject | |
| 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 } | 
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 34 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 33 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 102 of file btGhostObject.cpp.
| 
 | inline | 
Definition at line 55 of file btGhostObject.h.
| 
 | inline | 
Definition at line 60 of file btGhostObject.h.
| 
 | inline | 
Definition at line 65 of file btGhostObject.h.
| 
 | inline | 
Definition at line 70 of file btGhostObject.h.
| 
 | inline | 
Definition at line 75 of file btGhostObject.h.
| void btGhostObject::rayTest | ( | const btVector3 & | rayFromWorld, | 
| const btVector3 & | rayToWorld, | ||
| btCollisionWorld::RayResultCallback & | resultCallback | ||
| ) | const | 
Definition at line 146 of file btGhostObject.cpp.
| 
 | virtual | 
this method is mainly for expert/internal use only.
Reimplemented in btPairCachingGhostObject.
Definition at line 46 of file btGhostObject.cpp.
| 
 | inlinestatic | 
Definition at line 84 of file btGhostObject.h.
| 
 | inlinestatic | 
Definition at line 90 of file btGhostObject.h.
| 
 | protected | 
Definition at line 38 of file btGhostObject.h.
 1.8.11
 1.8.11