Blender  V3.3
Classes | Enumerations | Functions | Variables
btBroadphaseProxy.h File Reference
#include "LinearMath/btScalar.h"
#include "LinearMath/btVector3.h"
#include "LinearMath/btAlignedAllocator.h"

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
 
voidm_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 m_algorithm, m_internalInfo1, m_pProxy0, and m_pProxy1.

◆ btBroadphaseProxy()

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

Definition at line 121 of file btBroadphaseProxy.h.

◆ getUid()

SIMD_FORCE_INLINE int getUid ( ) const

Definition at line 111 of file btBroadphaseProxy.h.

References m_uniqueId.

◆ isCompound()

static SIMD_FORCE_INLINE bool isCompound ( int  proxyType)
static

Definition at line 150 of file btBroadphaseProxy.h.

References COMPOUND_SHAPE_PROXYTYPE.

◆ isConcave()

static SIMD_FORCE_INLINE bool isConcave ( int  proxyType)
static

Definition at line 145 of file btBroadphaseProxy.h.

References CONCAVE_SHAPES_END_HERE, and CONCAVE_SHAPES_START_HERE.

Referenced by isNonMoving().

◆ isConvex()

static SIMD_FORCE_INLINE bool isConvex ( int  proxyType)
static

Definition at line 135 of file btBroadphaseProxy.h.

References CONCAVE_SHAPES_START_HERE.

◆ isConvex2d()

static SIMD_FORCE_INLINE bool isConvex2d ( int  proxyType)
static

Definition at line 165 of file btBroadphaseProxy.h.

References BOX_2D_SHAPE_PROXYTYPE, and CONVEX_2D_SHAPE_PROXYTYPE.

◆ isInfinite()

static SIMD_FORCE_INLINE bool isInfinite ( int  proxyType)
static

Definition at line 160 of file btBroadphaseProxy.h.

References STATIC_PLANE_PROXYTYPE.

◆ isNonMoving()

static SIMD_FORCE_INLINE bool isNonMoving ( int  proxyType)
static

Definition at line 140 of file btBroadphaseProxy.h.

References GIMPACT_SHAPE_PROXYTYPE, and isConcave().

◆ isPolyhedral()

static SIMD_FORCE_INLINE bool isPolyhedral ( int  proxyType)
static

Definition at line 130 of file btBroadphaseProxy.h.

References IMPLICIT_CONVEX_SHAPES_START_HERE.

◆ isSoftBody()

static SIMD_FORCE_INLINE bool isSoftBody ( int  proxyType)
static

Definition at line 155 of file btBroadphaseProxy.h.

References SOFTBODY_SHAPE_PROXYTYPE.

◆ operator==()

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

Definition at line 243 of file btBroadphaseProxy.h.

References Freestyle::a, and usdtokens::b().

Variable Documentation

◆ 

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 btAxisSweep3Internal< BP_FP_INT_TYPE >::calculateOverlappingPairs(), btSimpleBroadphase::calculateOverlappingPairs(), btDbvtBroadphase::collide(), btSimulationIslandManager::findUnions(), CollisionDispatcherUpdater::forLoop(), btClosestNotMeConvexResultCallback::needsCollision(), btDbvtBroadphase::performDeferredRemoval(), and recoverFromPenetration().

◆ btBroadphaseProxy

btBroadphaseProxy

◆ m_aabbMax

btVector3 m_aabbMax

◆ m_aabbMin

btVector3 m_aabbMin

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

◆ m_collisionFilterGroup

int m_collisionFilterGroup

Definition at line 103 of file btBroadphaseProxy.h.

◆ m_collisionFilterMask

int m_collisionFilterMask

Definition at line 104 of file btBroadphaseProxy.h.

◆ 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().