#ifndef SCENETREE_H #define SCENETREE_H #include #include #include "scene.h" #include "light.h" #include "resourcemanager.h" #include "containernode.h" class CameraNode; /** * @brief The SceneNode class represents a class of the game * that will be updated or used for rendering every frame */ class SceneTree : public Scene { public: SceneTree(); ~SceneTree(); virtual SceneIterator* getLights(); virtual SceneIterator* getGeometry(); void update(); Texture* getSkybox() {return m_skybox;} void setSkybox(Texture* skybox) {m_skybox = skybox;} void setMainCamera(CameraNode *camera); ContainerNode* getRootObject(){return &m_root;} void addToIndex(SceneNode* node); void removeObject(ContainerNode* parent,SceneNode *node); void removeFromIndex(SceneNode *node); void updateShaders(); private: ContainerNode m_root; std::vector m_lights; std::vector m_geometries; Texture* m_skybox; }; #endif // SCENETREE_H