/*! * @file bv_tree.h * Definition of a bounding volume tree */ #ifndef _BV_TREE_NODE_H #define _BV_TREE_NODE_H #include "base_object.h" #include "abstract_model.h" // FORWARD DECLARATION class BoundingVolume; class BVTree; class PNode; class WorldEntity; template class tList; //! A class that represents a bounding volume tree class BVTreeNode : public BaseObject { public: BVTreeNode(); virtual ~BVTreeNode(); virtual void spawnBVTree(const int depth, sVec3D *verticesList, const int length ) = 0; virtual BoundingVolume* getBV(int index) const = 0; inline const int getIndex() { return this->treeIndex; } virtual void collideWith(BVTreeNode* treeNode, WorldEntity* nodeA, WorldEntity* nodeB) = 0; virtual void drawBV(int depth, int drawMode) = 0; private: unsigned int treeIndex; //!< Index number of the BV in the tree }; #endif /* _BV_TREE_NODE_H */