/*! \file bv_tree.h \brief Definition of a bounding volume tree */ #ifndef _OBB_TREE_NODE_H #define _OBB_TREE_NODE_H #include "bv_tree_node.h" // FORWARD DEFINITION class BoundingVolume; class sVec3D; //! A class that represents a bounding volume tree class OBBTreeNode : public BVTreeNode { public: OBBTreeNode(); virtual ~OBBTreeNode(); virtual void spawnBVTree(const int depth, tList *verticesList); BoundingVolume* getBV(int index) const { return this->bvElement; } inline const int getIndex() { return this->treeIndex; } virtual void collideWith(const BVTree &tree); virtual void drawBV(int currentDepth, const int depth) const; virtual void drawBVPolygon(int currentDepth, const int depth) const; virtual void drawBVBlended(int currentDepth, const int depth) const; protected: BoundingVolume* bvElement; OBBTreeNode* nodeLeft; OBBTreeNode* nodeRight; private: unsigned int treeIndex; //!< Index number of the BV in the tree }; #endif /* _OBB_TREE_NODE_H */