SparrowEngine/src/scene/scenetree.h
2016-12-07 19:42:58 +01:00

48 lines
1.0 KiB
C++

#ifndef SCENETREE_H
#define SCENETREE_H
#include <vector>
#include <string>
#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<Light*>* getLights();
virtual SceneIterator<GeometryNode*>* 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<Light*> m_lights;
std::vector<GeometryNode*> m_geometries;
Texture* m_skybox;
};
#endif // SCENETREE_H