Bullet Collision Detection & Physics Library
btDbvt.cpp File Reference
#include "btDbvt.h"
Include dependency graph for btDbvt.cpp:

Go to the source code of this file.

Classes

struct  btDbvtNodeEnumerator
 

Typedefs

typedef btAlignedObjectArray< btDbvtNode * > tNodeArray
 btDbvt implementation by Nathanael Presson
 
typedef btAlignedObjectArray< const btDbvtNode * > tConstNodeArray
 

Functions

static DBVT_INLINE int indexof (const btDbvtNode *node)
 
static DBVT_INLINE btDbvtVolume merge (const btDbvtVolume &a, const btDbvtVolume &b)
 
static DBVT_INLINE btScalar size (const btDbvtVolume &a)
 
static void getmaxdepth (const btDbvtNode *node, int depth, int &maxdepth)
 
static DBVT_INLINE void deletenode (btDbvt *pdbvt, btDbvtNode *node)
 
static void recursedeletenode (btDbvt *pdbvt, btDbvtNode *node)
 
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, void *data)
 
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume, void *data)
 
static DBVT_INLINE btDbvtNodecreatenode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume0, const btDbvtVolume &volume1, void *data)
 
static void insertleaf (btDbvt *pdbvt, btDbvtNode *root, btDbvtNode *leaf)
 
static btDbvtNoderemoveleaf (btDbvt *pdbvt, btDbvtNode *leaf)
 
static void fetchleaves (btDbvt *pdbvt, btDbvtNode *root, tNodeArray &leaves, int depth=-1)
 
static bool leftOfAxis (const btDbvtNode *node, const btVector3 &org, const btVector3 &axis)
 
static int split (btDbvtNode **leaves, int count, const btVector3 &org, const btVector3 &axis)
 
static btDbvtVolume bounds (btDbvtNode **leaves, int count)
 
static void bottomup (btDbvt *pdbvt, btDbvtNode **leaves, int count)
 
static btDbvtNodetopdown (btDbvt *pdbvt, btDbvtNode **leaves, int count, int bu_treshold)
 
static DBVT_INLINE btDbvtNodesort (btDbvtNode *n, btDbvtNode *&r)
 

Typedef Documentation

◆ tConstNodeArray

Definition at line 21 of file btDbvt.cpp.

◆ tNodeArray

btDbvt implementation by Nathanael Presson

Definition at line 20 of file btDbvt.cpp.

Function Documentation

◆ bottomup()

static void bottomup ( btDbvt * pdbvt,
btDbvtNode ** leaves,
int count )
static

Definition at line 318 of file btDbvt.cpp.

◆ bounds()

static btDbvtVolume bounds ( btDbvtNode ** leaves,
int count )
static

Definition at line 299 of file btDbvt.cpp.

◆ createnode() [1/3]

static DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
const btDbvtVolume & volume,
void * data )
static

Definition at line 115 of file btDbvt.cpp.

◆ createnode() [2/3]

static DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
const btDbvtVolume & volume0,
const btDbvtVolume & volume1,
void * data )
static

Definition at line 126 of file btDbvt.cpp.

◆ createnode() [3/3]

static DBVT_INLINE btDbvtNode * createnode ( btDbvt * pdbvt,
btDbvtNode * parent,
void * data )
static

Definition at line 94 of file btDbvt.cpp.

◆ deletenode()

static DBVT_INLINE void deletenode ( btDbvt * pdbvt,
btDbvtNode * node )
static

Definition at line 72 of file btDbvt.cpp.

◆ fetchleaves()

static void fetchleaves ( btDbvt * pdbvt,
btDbvtNode * root,
tNodeArray & leaves,
int depth = -1 )
static

Definition at line 230 of file btDbvt.cpp.

◆ getmaxdepth()

static void getmaxdepth ( const btDbvtNode * node,
int depth,
int & maxdepth )
static

Definition at line 60 of file btDbvt.cpp.

◆ indexof()

static DBVT_INLINE int indexof ( const btDbvtNode * node)
static

Definition at line 31 of file btDbvt.cpp.

◆ insertleaf()

static void insertleaf ( btDbvt * pdbvt,
btDbvtNode * root,
btDbvtNode * leaf )
static

Definition at line 138 of file btDbvt.cpp.

◆ leftOfAxis()

static bool leftOfAxis ( const btDbvtNode * node,
const btVector3 & org,
const btVector3 & axis )
static

Definition at line 248 of file btDbvt.cpp.

◆ merge()

static DBVT_INLINE btDbvtVolume merge ( const btDbvtVolume & a,
const btDbvtVolume & b )
static

Definition at line 37 of file btDbvt.cpp.

◆ recursedeletenode()

static void recursedeletenode ( btDbvt * pdbvt,
btDbvtNode * node )
static

Definition at line 80 of file btDbvt.cpp.

◆ removeleaf()

static btDbvtNode * removeleaf ( btDbvt * pdbvt,
btDbvtNode * leaf )
static

Definition at line 188 of file btDbvt.cpp.

◆ size()

static DBVT_INLINE btScalar size ( const btDbvtVolume & a)
static

Definition at line 52 of file btDbvt.cpp.

◆ sort()

static DBVT_INLINE btDbvtNode * sort ( btDbvtNode * n,
btDbvtNode *& r )
static

Definition at line 418 of file btDbvt.cpp.

◆ split()

static int split ( btDbvtNode ** leaves,
int count,
const btVector3 & org,
const btVector3 & axis )
static

Definition at line 258 of file btDbvt.cpp.

◆ topdown()

static btDbvtNode * topdown ( btDbvt * pdbvt,
btDbvtNode ** leaves,
int count,
int bu_treshold )
static

Definition at line 352 of file btDbvt.cpp.