/* ----------------------------------------------------------------------------- This source file is part of the GameTools Project http://www.gametools.org Author: Martin Szydlowski ----------------------------------------------------------------------------- */ #ifndef _OgreBiHierarchySceneNode_H__ #define _OgreBiHierarchySceneNode_H__ #include #include "OgreBihRenderable.h" namespace Ogre { class BiHierarchySceneNode : public SceneNode, public BihRenderable { public: BiHierarchySceneNode(SceneManager *creator): SceneNode(creator) {}; BiHierarchySceneNode(SceneManager *creator, const String& name): SceneNode(creator, name) {}; ~BiHierarchySceneNode() {}; // gather info for kd-tree creation virtual void computeScene(BihPlaneEventList& events, AxisAlignedBox& aabb, int& nObjects, bool includeChildren = true); // add all contained objects to render queue virtual void queueObjects(Camera* cam, RenderQueue* queue, bool onlyShadowCasters); // place all entities in geometry queue (for CHC) virtual void getGeometryList(GeometryVector *geometryList); // return a bounding box enclosing all objects virtual AxisAlignedBox getBoundingBox(void) const; // DEBUG String dumpToString(void); protected: virtual void _updateBounds(void); typedef std::set StringSet; static StringSet& getExcludedMovables(void); }; } // namespace Ogre #endif // _OgreBiHierarchySceneNode_H__