Go to the source code of this file.
Classes | |
class | AABBCollisionNode |
class | AABBCollisionTree |
class | AABBNoLeafNode |
class | AABBNoLeafTree |
class | AABBOptimizedTree |
class | AABBQuantizedNode |
class | AABBQuantizedNoLeafNode |
class | AABBQuantizedNoLeafTree |
class | AABBQuantizedTree |
Defines | |
#define | EXWORD udword |
#define | EXWORD udword |
#define | IMPLEMENT_COLLISION_TREE(base_class, node) |
#define | IMPLEMENT_COLLISION_TREE(base_class, node) |
Common interface for a collision tree. | |
#define | IMPLEMENT_IMPLICIT_NODE(base_class, volume) |
Common interface for a node of an implicit tree. | |
#define | IMPLEMENT_IMPLICIT_NODE(base_class, volume) |
#define | IMPLEMENT_NOLEAF_NODE(base_class, volume) |
Common interface for a node of a no-leaf tree. | |
#define | IMPLEMENT_NOLEAF_NODE(base_class, volume) |
Typedefs | |
typedef bool(* | GenericWalkingCallback )(const void *current, void *user_data) |
#define IMPLEMENT_COLLISION_TREE | ( | base_class, | |
node | |||
) |
public: \ /* Constructor / Destructor */ \ base_class(); \ virtual ~base_class(); \ /* Builds from a standard tree */ \ override(AABBOptimizedTree) bool Build(AABBTree* tree); \ /* Refits the tree */ \ override(AABBOptimizedTree) bool Refit(const MeshInterface* mesh_interface); \ /* Walks the tree */ \ override(AABBOptimizedTree) bool Walk(GenericWalkingCallback callback, void* user_data) const; \ /* Data access */ \ inline_ const node* GetNodes() const { return mNodes; } \ /* Stats */ \ override(AABBOptimizedTree) udword GetUsedBytes() const { return mNbNodes*sizeof(node); } \ private: \ node* mNodes;
#define IMPLEMENT_COLLISION_TREE | ( | base_class, | |
node | |||
) |
public: \ /* Constructor / Destructor */ \ base_class(); \ virtual ~base_class(); \ /* Builds from a standard tree */ \ override(AABBOptimizedTree) bool Build(AABBTree* tree); \ /* Refits the tree */ \ override(AABBOptimizedTree) bool Refit(const MeshInterface* mesh_interface); \ /* Walks the tree */ \ override(AABBOptimizedTree) bool Walk(GenericWalkingCallback callback, void* user_data) const; \ /* Data access */ \ inline_ const node* GetNodes() const { return mNodes; } \ /* Stats */ \ override(AABBOptimizedTree) udword GetUsedBytes() const { return mNbNodes*sizeof(node); } \ private: \ node* mNodes;
Common interface for a collision tree.
#define IMPLEMENT_IMPLICIT_NODE | ( | base_class, | |
volume | |||
) |
public: \ /* Constructor / Destructor */ \ inline_ base_class() : mData(0) {} \ inline_ ~base_class() {} \ /* Leaf test */ \ inline_ BOOL IsLeaf() const { return mData&1; } \ /* Data access */ \ inline_ const base_class* GetPos() const { return (base_class*)mData; } \ inline_ const base_class* GetNeg() const { return ((base_class*)mData)+1; } \ /* Modified by S-cubed, Inc. */ \ inline_ const base_class* GetB() const { return mB; } \ inline_ udword GetPrimitive() const { return (mData>>1); } \ /* Stats */ \ inline_ udword GetNodeSize() const { return SIZEOFOBJECT; } \ \ volume mAABB; \ EXWORD mData; \ /* Modified by S-cubed, Inc. */ \ base_class* mB;
Common interface for a node of an implicit tree.
#define IMPLEMENT_IMPLICIT_NODE | ( | base_class, | |
volume | |||
) |
public: \ /* Constructor / Destructor */ \ inline_ base_class() : mData(0) {} \ inline_ ~base_class() {} \ /* Leaf test */ \ inline_ BOOL IsLeaf() const { return mData&1; } \ /* Data access */ \ inline_ const base_class* GetPos() const { return (base_class*)mData; } \ inline_ const base_class* GetNeg() const { return ((base_class*)mData)+1; } \ /* Modified by S-cubed, Inc. */ \ inline_ const base_class* GetB() const { return mB; } \ inline_ udword GetPrimitive() const { return (mData>>1); } \ /* Stats */ \ inline_ udword GetNodeSize() const { return SIZEOFOBJECT; } \ \ volume mAABB; \ EXWORD mData; \ /* Modified by S-cubed, Inc. */ \ base_class* mB;
#define IMPLEMENT_NOLEAF_NODE | ( | base_class, | |
volume | |||
) |
public: \ /* Constructor / Destructor */ \ inline_ base_class() : mPosData(0), mNegData(0) {} \ inline_ ~base_class() {} \ /* Leaf tests */ \ inline_ BOOL HasPosLeaf() const { return mPosData&1; } \ inline_ BOOL HasNegLeaf() const { return mNegData&1; } \ /* Data access */ \ inline_ const base_class* GetPos() const { return (base_class*)mPosData; } \ inline_ const base_class* GetNeg() const { return (base_class*)mNegData; } \ /* Modified by S-cubed, Inc. */ \ inline_ const base_class* GetB() const { return mB; } \ inline_ udword GetPosPrimitive() const { return (mPosData>>1); } \ inline_ udword GetNegPrimitive() const { return (mNegData>>1); } \ /* Stats */ \ inline_ udword GetNodeSize() const { return SIZEOFOBJECT; } \ \ volume mAABB; \ EXWORD mPosData; \ EXWORD mNegData; \ /* Modified by S-cubed, Inc. */ \ base_class* mB;
Common interface for a node of a no-leaf tree.
#define IMPLEMENT_NOLEAF_NODE | ( | base_class, | |
volume | |||
) |
public: \ /* Constructor / Destructor */ \ inline_ base_class() : mPosData(0), mNegData(0) {} \ inline_ ~base_class() {} \ /* Leaf tests */ \ inline_ BOOL HasPosLeaf() const { return mPosData&1; } \ inline_ BOOL HasNegLeaf() const { return mNegData&1; } \ /* Data access */ \ inline_ const base_class* GetPos() const { return (base_class*)mPosData; } \ inline_ const base_class* GetNeg() const { return (base_class*)mNegData; } \ /* Modified by S-cubed, Inc. */ \ inline_ const base_class* GetB() const { return mB; } \ inline_ udword GetPosPrimitive() const { return (mPosData>>1); } \ inline_ udword GetNegPrimitive() const { return (mNegData>>1); } \ /* Stats */ \ inline_ udword GetNodeSize() const { return SIZEOFOBJECT; } \ \ volume mAABB; \ EXWORD mPosData; \ EXWORD mNegData; \ /* Modified by S-cubed, Inc. */ \ base_class* mB;
typedef bool(* GenericWalkingCallback)(const void *current, void *user_data) |
Definition at line 145 of file OPC_OptimizedTree.h.