#ifndef _SceneGraph_H__ #define _SceneGraph_H__ #include "Containers.h" #include "AxisAlignedBox3.h" namespace GtpVisibilityPreprocessor { /** Basic scene graph node, we are interested only in bounding boxes and topology of the scene graph */ class SceneGraphNode { public: virtual bool IsLeaf() const = NULL; protected: AxisAlignedBox3 mBox; }; /** Basic scene graph node, we are interested only in bounding boxes and topology of the scene graph */ class SceneGraphInterior: public SceneGraphNode { public: ~SceneGraphInterior(); virtual bool IsLeaf() const { return false; } protected: NodeContainer mChildren; }; /** Basic scene graph node, we are interested only in bounding boxes and topology of the scene graph */ class SceneGraphLeaf: public SceneGraphNode { public: ~SceneGraphLeaf(); virtual bool IsLeaf() const { return true; } protected: MeshContainer mGeometry; }; /** Scene graph class */ class SceneGraph { protected: SceneGraphNode *mRoot; }; }; #endif