Bullet Collision Detection & Physics Library
Classes | Typedefs | Functions
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 More...
 
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 btDbvtNode * createnode (btDbvt *pdbvt, btDbvtNode *parent, void *data)
 
static DBVT_INLINE btDbvtNode * createnode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume, void *data)
 
static DBVT_INLINE btDbvtNode * createnode (btDbvt *pdbvt, btDbvtNode *parent, const btDbvtVolume &volume0, const btDbvtVolume &volume1, void *data)
 
static void insertleaf (btDbvt *pdbvt, btDbvtNode *root, btDbvtNode *leaf)
 
static btDbvtNode * removeleaf (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 btDbvtNode * topdown (btDbvt *pdbvt, btDbvtNode **leaves, int count, int bu_treshold)
 
static DBVT_INLINE btDbvtNode * sort (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.