|
| BT_DECLARE_ALIGNED_ALLOCATOR () |
|
| btQuantizedBvh () |
|
virtual | ~btQuantizedBvh () |
|
void | setQuantizationValues (const btVector3 &bvhAabbMin, const btVector3 &bvhAabbMax, btScalar quantizationMargin=btScalar(1.0)) |
| ***************************************** expert/internal use only *************************
|
|
QuantizedNodeArray & | getLeafNodeArray () |
|
void | buildInternal () |
| buildInternal is expert use only: assumes that setQuantizationValues and LeafNodeArray are initialized
|
|
void | reportAabbOverlappingNodex (btNodeOverlapCallback *nodeCallback, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
| ***************************************** expert/internal use only *************************
|
|
void | reportRayOverlappingNodex (btNodeOverlapCallback *nodeCallback, const btVector3 &raySource, const btVector3 &rayTarget) const |
|
void | reportBoxCastOverlappingNodex (btNodeOverlapCallback *nodeCallback, const btVector3 &raySource, const btVector3 &rayTarget, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
|
void | quantize (unsigned short *out, const btVector3 &point, int isMax) const |
|
void | quantizeWithClamp (unsigned short *out, const btVector3 &point2, int isMax) const |
|
btVector3 | unQuantize (const unsigned short *vecIn) const |
|
void | setTraversalMode (btTraversalMode traversalMode) |
| setTraversalMode let's you choose between stackless, recursive or stackless cache friendly tree traversal. Note this is only implemented for quantized trees.
|
|
QuantizedNodeArray & | getQuantizedNodeArray () |
|
BvhSubtreeInfoArray & | getSubtreeInfoArray () |
|
unsigned | calculateSerializeBufferSize () const |
|
virtual bool | serialize (void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const |
| Data buffer MUST be 16 byte aligned.
|
|
virtual int | calculateSerializeBufferSizeNew () const |
|
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
| fills the dataBuffer and returns the struct name (and 0 on failure)
|
|
virtual void | deSerializeFloat (struct btQuantizedBvhFloatData &quantizedBvhFloatData) |
|
virtual void | deSerializeDouble (struct btQuantizedBvhDoubleData &quantizedBvhDoubleData) |
|
bool | isQuantized () |
|
|
void | setInternalNodeAabbMin (int nodeIndex, const btVector3 &aabbMin) |
| two versions, one for quantized and normal nodes.
|
|
void | setInternalNodeAabbMax (int nodeIndex, const btVector3 &aabbMax) |
|
btVector3 | getAabbMin (int nodeIndex) const |
|
btVector3 | getAabbMax (int nodeIndex) const |
|
void | setInternalNodeEscapeIndex (int nodeIndex, int escapeIndex) |
|
void | mergeInternalNodeAabb (int nodeIndex, const btVector3 &newAabbMin, const btVector3 &newAabbMax) |
|
void | swapLeafNodes (int firstIndex, int secondIndex) |
|
void | assignInternalNodeFromLeafNode (int internalNode, int leafNodeIndex) |
|
void | buildTree (int startIndex, int endIndex) |
|
int | calcSplittingAxis (int startIndex, int endIndex) |
|
int | sortAndCalcSplittingIndex (int startIndex, int endIndex, int splitAxis) |
|
void | walkStacklessTree (btNodeOverlapCallback *nodeCallback, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
|
void | walkStacklessQuantizedTreeAgainstRay (btNodeOverlapCallback *nodeCallback, const btVector3 &raySource, const btVector3 &rayTarget, const btVector3 &aabbMin, const btVector3 &aabbMax, int startNodeIndex, int endNodeIndex) const |
|
void | walkStacklessQuantizedTree (btNodeOverlapCallback *nodeCallback, unsigned short int *quantizedQueryAabbMin, unsigned short int *quantizedQueryAabbMax, int startNodeIndex, int endNodeIndex) const |
|
void | walkStacklessTreeAgainstRay (btNodeOverlapCallback *nodeCallback, const btVector3 &raySource, const btVector3 &rayTarget, const btVector3 &aabbMin, const btVector3 &aabbMax, int startNodeIndex, int endNodeIndex) const |
|
void | walkStacklessQuantizedTreeCacheFriendly (btNodeOverlapCallback *nodeCallback, unsigned short int *quantizedQueryAabbMin, unsigned short int *quantizedQueryAabbMax) const |
| tree traversal designed for small-memory processors like PS3 SPU
|
|
void | walkRecursiveQuantizedTreeAgainstQueryAabb (const btQuantizedBvhNode *currentNode, btNodeOverlapCallback *nodeCallback, unsigned short int *quantizedQueryAabbMin, unsigned short int *quantizedQueryAabbMax) const |
| use the 16-byte stackless 'skipindex' node tree to do a recursive traversal
|
|
void | walkRecursiveQuantizedTreeAgainstQuantizedTree (const btQuantizedBvhNode *treeNodeA, const btQuantizedBvhNode *treeNodeB, btNodeOverlapCallback *nodeCallback) const |
| use the 16-byte stackless 'skipindex' node tree to do a recursive traversal
|
|
void | updateSubtreeHeaders (int leftChildNodexIndex, int rightChildNodexIndex) |
|
The btQuantizedBvh class stores an AABB tree that can be quickly traversed on CPU and Cell SPU.
It is used by the btBvhTriangleMeshShape as midphase. It is recommended to use quantization for better performance and lower memory requirements.
Definition at line 166 of file btQuantizedBvh.h.
void btQuantizedBvh::buildInternal |
( |
| ) |
|
buildInternal is expert use only: assumes that setQuantizationValues and LeafNodeArray are initialized
assumes that caller filled in the m_quantizedLeafNodes
if the entire tree is small then subtree size, we need to create a header info for the tree
Definition at line 36 of file btQuantizedBvh.cpp.