Blender V5.0
btBroadphaseProxy.h File Reference

Go to the source code of this file.

Classes

class  btBroadphasePairSortPredicate

Enumerations

enum  BroadphaseNativeTypes {
  BOX_SHAPE_PROXYTYPE , TRIANGLE_SHAPE_PROXYTYPE , TETRAHEDRAL_SHAPE_PROXYTYPE , CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE ,
  CONVEX_HULL_SHAPE_PROXYTYPE , CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE , CUSTOM_POLYHEDRAL_SHAPE_TYPE , IMPLICIT_CONVEX_SHAPES_START_HERE ,
  SPHERE_SHAPE_PROXYTYPE , MULTI_SPHERE_SHAPE_PROXYTYPE , CAPSULE_SHAPE_PROXYTYPE , CONE_SHAPE_PROXYTYPE ,
  CONVEX_SHAPE_PROXYTYPE , CYLINDER_SHAPE_PROXYTYPE , UNIFORM_SCALING_SHAPE_PROXYTYPE , MINKOWSKI_SUM_SHAPE_PROXYTYPE ,
  MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE , BOX_2D_SHAPE_PROXYTYPE , CONVEX_2D_SHAPE_PROXYTYPE , CUSTOM_CONVEX_SHAPE_TYPE ,
  CONCAVE_SHAPES_START_HERE , TRIANGLE_MESH_SHAPE_PROXYTYPE , SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE , FAST_CONCAVE_MESH_PROXYTYPE ,
  TERRAIN_SHAPE_PROXYTYPE , GIMPACT_SHAPE_PROXYTYPE , MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE , EMPTY_SHAPE_PROXYTYPE ,
  STATIC_PLANE_PROXYTYPE , CUSTOM_CONCAVE_SHAPE_TYPE , SDF_SHAPE_PROXYTYPE = CUSTOM_CONCAVE_SHAPE_TYPE , CONCAVE_SHAPES_END_HERE ,
  COMPOUND_SHAPE_PROXYTYPE , SOFTBODY_SHAPE_PROXYTYPE , HFFLUID_SHAPE_PROXYTYPE , HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE ,
  INVALID_SHAPE_PROXYTYPE , MAX_BROADPHASE_COLLISION_TYPES
}
enum  CollisionFilterGroups {
  DefaultFilter = 1 , StaticFilter = 2 , KinematicFilter = 4 , DebrisFilter = 8 ,
  SensorTrigger = 16 , CharacterFilter = 32 , AllFilter = -1
}
 optional filtering to cull potential collisions More...

Functions

SIMD_FORCE_INLINE int getUid () const
 btBroadphaseProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, void *userPtr, int collisionFilterGroup, int collisionFilterMask)
static SIMD_FORCE_INLINE bool isPolyhedral (int proxyType)
static SIMD_FORCE_INLINE bool isConvex (int proxyType)
static SIMD_FORCE_INLINE bool isNonMoving (int proxyType)
static SIMD_FORCE_INLINE bool isConcave (int proxyType)
static SIMD_FORCE_INLINE bool isCompound (int proxyType)
static SIMD_FORCE_INLINE bool isSoftBody (int proxyType)
static SIMD_FORCE_INLINE bool isInfinite (int proxyType)
static SIMD_FORCE_INLINE bool isConvex2d (int proxyType)
 btBroadphasePair (btBroadphaseProxy &proxy0, btBroadphaseProxy &proxy1)
SIMD_FORCE_INLINE bool operator== (const btBroadphasePair &a, const btBroadphasePair &b)

Variables

 btBroadphaseProxy
void * m_clientObject
int m_collisionFilterGroup
int m_collisionFilterMask
int m_uniqueId
btVector3 m_aabbMin
btVector3 m_aabbMax
 btBroadphasePair
btBroadphaseProxym_pProxy0
btBroadphaseProxym_pProxy1
btCollisionAlgorithmm_algorithm
union { 
   void *   m_internalInfo1 
   int   m_internalTmpValue 
}; 

Enumeration Type Documentation

◆ BroadphaseNativeTypes

btDispatcher uses these types IMPORTANT NOTE:The types are ordered polyhedral, implicit convex and concave to facilitate type checking CUSTOM_POLYHEDRAL_SHAPE_TYPE,CUSTOM_CONVEX_SHAPE_TYPE and CUSTOM_CONCAVE_SHAPE_TYPE can be used to extend Bullet without modifying source code

Enumerator
BOX_SHAPE_PROXYTYPE 
TRIANGLE_SHAPE_PROXYTYPE 
TETRAHEDRAL_SHAPE_PROXYTYPE 
CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE 
CONVEX_HULL_SHAPE_PROXYTYPE 
CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE 
CUSTOM_POLYHEDRAL_SHAPE_TYPE 
IMPLICIT_CONVEX_SHAPES_START_HERE 
SPHERE_SHAPE_PROXYTYPE 
MULTI_SPHERE_SHAPE_PROXYTYPE 
CAPSULE_SHAPE_PROXYTYPE 
CONE_SHAPE_PROXYTYPE 
CONVEX_SHAPE_PROXYTYPE 
CYLINDER_SHAPE_PROXYTYPE 
UNIFORM_SCALING_SHAPE_PROXYTYPE 
MINKOWSKI_SUM_SHAPE_PROXYTYPE 
MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE 
BOX_2D_SHAPE_PROXYTYPE 
CONVEX_2D_SHAPE_PROXYTYPE 
CUSTOM_CONVEX_SHAPE_TYPE 
CONCAVE_SHAPES_START_HERE 
TRIANGLE_MESH_SHAPE_PROXYTYPE 
SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE 
FAST_CONCAVE_MESH_PROXYTYPE 

used for demo integration FAST/Swift collision library and Bullet

TERRAIN_SHAPE_PROXYTYPE 
GIMPACT_SHAPE_PROXYTYPE 

Used for GIMPACT Trimesh integration.

MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE 

Multimaterial mesh.

EMPTY_SHAPE_PROXYTYPE 
STATIC_PLANE_PROXYTYPE 
CUSTOM_CONCAVE_SHAPE_TYPE 
SDF_SHAPE_PROXYTYPE 
CONCAVE_SHAPES_END_HERE 
COMPOUND_SHAPE_PROXYTYPE 
SOFTBODY_SHAPE_PROXYTYPE 
HFFLUID_SHAPE_PROXYTYPE 
HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE 
INVALID_SHAPE_PROXYTYPE 
MAX_BROADPHASE_COLLISION_TYPES 

Definition at line 27 of file btBroadphaseProxy.h.

◆ CollisionFilterGroups

optional filtering to cull potential collisions

Enumerator
DefaultFilter 
StaticFilter 
KinematicFilter 
DebrisFilter 
SensorTrigger 
CharacterFilter 
AllFilter 

Definition at line 90 of file btBroadphaseProxy.h.

Function Documentation

◆ btBroadphasePair()

btBroadphasePair ( btBroadphaseProxy & proxy0,
btBroadphaseProxy & proxy1 )

Definition at line 190 of file btBroadphaseProxy.h.

References btBroadphaseProxy, m_algorithm, m_internalInfo1, m_pProxy0, and m_pProxy1.

◆ btBroadphaseProxy()

btBroadphaseProxy ( const btVector3 & aabbMin,
const btVector3 & aabbMax,
void * userPtr,
int collisionFilterGroup,
int collisionFilterMask )

◆ getUid()

SIMD_FORCE_INLINE int getUid ( ) const

Definition at line 111 of file btBroadphaseProxy.h.

References m_uniqueId, and SIMD_FORCE_INLINE.

◆ isCompound()

SIMD_FORCE_INLINE bool isCompound ( int proxyType)
static

Definition at line 150 of file btBroadphaseProxy.h.

References COMPOUND_SHAPE_PROXYTYPE, and SIMD_FORCE_INLINE.

◆ isConcave()

SIMD_FORCE_INLINE bool isConcave ( int proxyType)
static

◆ isConvex()

SIMD_FORCE_INLINE bool isConvex ( int proxyType)
static

◆ isConvex2d()

SIMD_FORCE_INLINE bool isConvex2d ( int proxyType)
static

◆ isInfinite()

SIMD_FORCE_INLINE bool isInfinite ( int proxyType)
static

Definition at line 160 of file btBroadphaseProxy.h.

References SIMD_FORCE_INLINE, and STATIC_PLANE_PROXYTYPE.

◆ isNonMoving()

SIMD_FORCE_INLINE bool isNonMoving ( int proxyType)
static

Definition at line 140 of file btBroadphaseProxy.h.

References GIMPACT_SHAPE_PROXYTYPE, isConcave(), and SIMD_FORCE_INLINE.

◆ isPolyhedral()

SIMD_FORCE_INLINE bool isPolyhedral ( int proxyType)
static

Definition at line 130 of file btBroadphaseProxy.h.

References IMPLICIT_CONVEX_SHAPES_START_HERE, and SIMD_FORCE_INLINE.

◆ isSoftBody()

SIMD_FORCE_INLINE bool isSoftBody ( int proxyType)
static

Definition at line 155 of file btBroadphaseProxy.h.

References SIMD_FORCE_INLINE, and SOFTBODY_SHAPE_PROXYTYPE.

◆ operator==()

SIMD_FORCE_INLINE bool operator== ( const btBroadphasePair & a,
const btBroadphasePair & b )

Definition at line 243 of file btBroadphaseProxy.h.

References b, btBroadphasePair, and SIMD_FORCE_INLINE.

Variable Documentation

◆ [union]

union { ... }

◆ btBroadphasePair

btBroadphasePair
Initial value:
{
: m_pProxy0(0),
{
}
void * m_internalInfo1
btBroadphasePair
btBroadphaseProxy * m_pProxy0
btCollisionAlgorithm * m_algorithm
btBroadphaseProxy * m_pProxy1
#define BT_DECLARE_ALIGNED_ALLOCATOR()
Definition btScalar.h:425

The btBroadphasePair class contains a pair of aabb-overlapping objects. A btDispatcher can search a btCollisionAlgorithm that performs exact/narrowphase collision detection on the actual collision shapes.

Definition at line 178 of file btBroadphaseProxy.h.

Referenced by addOverlappingPair(), btGhostPairCallback::addOverlappingPair(), btOverlappingPairCallback::addOverlappingPair(), btAxisSweep3Internal< BP_FP_INT_TYPE >::calculateOverlappingPairs(), btSimpleBroadphase::calculateOverlappingPairs(), btOverlappingPairCache::cleanOverlappingPair(), cleanOverlappingPair(), btDbvtBroadphase::collide(), btCollisionDispatcher::defaultNearCallback(), btOverlappingPairCache::findPair(), findPair(), btSimulationIslandManager::findUnions(), CollisionDispatcherUpdater::forLoop(), btOverlappingPairCache::getOverlappingPairArrayPtr(), btOverlappingPairCache::getOverlappingPairArrayPtr(), getOverlappingPairArrayPtr(), btClosestNotMeConvexResultCallback::needsCollision(), btBroadphasePairSortPredicate::operator()(), operator==(), btDbvtBroadphase::performDeferredRemoval(), btCollisionPairCallback::processOverlap(), btOverlapCallback::processOverlap(), CheckOverlapCallback::processOverlap(), RemovePairContainingProxy::processOverlap(), RemovingOverlapCallback::processOverlap(), and recoverFromPenetration().

◆ btBroadphaseProxy

btBroadphaseProxy
Initial value:

The btBroadphaseProxy is the main class that can be used with the Bullet broadphases. It stores collision shape type information, collision filter information and a client object, typically a btCollisionObject or btRigidBody.

Definition at line 85 of file btBroadphaseProxy.h.

Referenced by addOverlappingObjectInternal(), btPairCachingGhostObject::addOverlappingObjectInternal(), addOverlappingPair(), btGhostPairCallback::addOverlappingPair(), btOverlappingPairCallback::addOverlappingPair(), btBroadphasePair(), btDbvtProxy::btDbvtProxy(), btSimpleBroadphaseProxy::btSimpleBroadphaseProxy(), btOverlappingPairCache::cleanProxyFromPairs(), cleanProxyFromPairs(), btCollisionWorld::ContactResultCallback::ContactResultCallback(), btCollisionWorld::ConvexResultCallback::ConvexResultCallback(), createPredictiveContactsInternal(), btAxisSweep3Internal< BP_FP_INT_TYPE >::createProxy(), btAxisSweep3Internal< unsigned int >::createProxy(), btBroadphaseInterface::createProxy(), btDbvtBroadphase::createProxy(), btSimpleBroadphase::createProxy(), btAxisSweep3Internal< BP_FP_INT_TYPE >::destroyProxy(), btAxisSweep3Internal< unsigned int >::destroyProxy(), btBroadphaseInterface::destroyProxy(), btDbvtBroadphase::destroyProxy(), btSimpleBroadphase::destroyProxy(), btOverlappingPairCache::findPair(), findPair(), btAxisSweep3Internal< BP_FP_INT_TYPE >::getAabb(), btAxisSweep3Internal< unsigned int >::getAabb(), btBroadphaseInterface::getAabb(), btDbvtBroadphase::getAabb(), btSimpleBroadphase::getAabb(), getBroadphaseHandle(), btRigidBody::getBroadphaseProxy(), btRigidBody::getBroadphaseProxy(), btSimpleBroadphase::getSimpleProxyFromProxy(), btSimpleBroadphase::getSimpleProxyFromProxy(), integrateTransformsInternal(), btOverlapFilterCallback::needBroadphaseCollision(), rbFilterCallback::needBroadphaseCollision(), btOverlappingPairCache::needsBroadphaseCollision(), needsBroadphaseCollision(), btClosestNotMeConvexResultCallback::needsCollision(), btCollisionWorld::ContactResultCallback::needsCollision(), btCollisionWorld::ConvexResultCallback::needsCollision(), btCollisionWorld::RayResultCallback::needsCollision(), btCollisionWorld::objectQuerySingleInternal(), btBroadphaseAabbCallback::process(), btDeformableMultiBodyDynamicsWorld::btDeformableSingleRayCallback::process(), btSingleContactCallback::process(), btSingleRayCallback::process(), btSingleSweepCallback::process(), btSoftSingleRayCallback::process(), btCollisionWorld::RayResultCallback::RayResultCallback(), btCollisionWorld::rayTestSingleInternal(), btCollisionWorld::removeCollisionObject(), btPairCachingGhostObject::removeOverlappingObjectInternal(), removeOverlappingObjectInternal(), btGhostPairCallback::removeOverlappingPair(), btOverlappingPairCallback::removeOverlappingPair(), removeOverlappingPair(), btGhostPairCallback::removeOverlappingPairsContainingProxy(), btOverlappingPairCallback::removeOverlappingPairsContainingProxy(), removeOverlappingPairsContainingProxy(), btAxisSweep3Internal< BP_FP_INT_TYPE >::setAabb(), btAxisSweep3Internal< unsigned int >::setAabb(), btBroadphaseInterface::setAabb(), btDbvtBroadphase::setAabb(), btSimpleBroadphase::setAabb(), btDbvtBroadphase::setAabbForceUpdate(), setBroadphaseHandle(), btRigidBody::setNewBroadphaseProxy(), btAxisSweep3Internal< BP_FP_INT_TYPE >::testAabbOverlap(), btAxisSweep3Internal< unsigned int >::testAabbOverlap(), btSimpleBroadphase::testAabbOverlap(), btAxisSweep3Internal< BP_FP_INT_TYPE >::unQuantize(), btAxisSweep3Internal< unsigned int >::unQuantize(), and btCollisionWorld::~btCollisionWorld().

◆ m_aabbMax

btVector3 m_aabbMax

Definition at line 109 of file btBroadphaseProxy.h.

Referenced by btBroadphaseProxy(), calculateAabbBruteForce(), and getAabbMax().

◆ m_aabbMin

btVector3 m_aabbMin

Definition at line 108 of file btBroadphaseProxy.h.

Referenced by btBroadphaseProxy(), calculateAabbBruteForce(), and getAabbMin().

◆ m_algorithm

btCollisionAlgorithm* m_algorithm
mutable

Definition at line 211 of file btBroadphaseProxy.h.

Referenced by btBroadphasePair().

◆ m_clientObject

void* m_clientObject

Definition at line 102 of file btBroadphaseProxy.h.

Referenced by btBroadphaseProxy().

◆ m_collisionFilterGroup

int m_collisionFilterGroup

Definition at line 103 of file btBroadphaseProxy.h.

Referenced by btBroadphaseProxy().

◆ m_collisionFilterMask

int m_collisionFilterMask

Definition at line 104 of file btBroadphaseProxy.h.

Referenced by btBroadphaseProxy().

◆ m_internalInfo1

void* m_internalInfo1

Definition at line 213 of file btBroadphaseProxy.h.

Referenced by btBroadphasePair().

◆ m_internalTmpValue

int m_internalTmpValue

Definition at line 214 of file btBroadphaseProxy.h.

◆ m_pProxy0

btBroadphaseProxy* m_pProxy0

Definition at line 208 of file btBroadphaseProxy.h.

Referenced by btBroadphasePair().

◆ m_pProxy1

btBroadphaseProxy* m_pProxy1

Definition at line 209 of file btBroadphaseProxy.h.

Referenced by btBroadphasePair().

◆ m_uniqueId

int m_uniqueId

Definition at line 106 of file btBroadphaseProxy.h.

Referenced by getUid().