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 |
![]() | |
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 | |
![]() | |
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.