added differents kind of nodes

This commit is contained in:
Lendemor 2015-09-25 00:22:36 +02:00
parent 8e14399b3f
commit c1604cb3ad

63
scene.h
View File

@ -1,6 +1,8 @@
#ifndef SCENE_H #ifndef SCENE_H
#define SCENE_H #define SCENE_H
#include "SFML/System.hpp"
class SceneNode; class SceneNode;
class Scene class Scene
@ -8,39 +10,78 @@ class Scene
public: public:
Scene(); Scene();
void update(); void update();
void render();
private: private:
SceneNode* m_sceneNodeTree; SceneNode* m_sceneNodeTree;
}; };
//Node Interface
class SceneNode class SceneNode
{ {
public: public:
SceneNode(); SceneNode();
virtual void update(); virtual void update() = 0;
private: private:
SceneNode* m_parentNode; SceneNode* m_parentNode;
std::vector<SceneNode*> m_childrenNode;
}; };
class CameraSceneNode : public SceneNode //general Node
class ObjectNode : public SceneNode, public PhongEntity
{ {
//add bullet rigidbody
public:
virtual void update();
}; };
class LightSceneNode : public SceneNode class FragmentNode: public ObjectNode
{ {
// TODO: later
}; };
class TerrainSceneNode: public SceneNode class ItemNode: public ObjectNode
{ {
// TODO: later
}; };
class ObjectSceneNode : public SceneNode // Node
class GUINode : public SceneNode, public GUIEntity
{ {
public:
virtual void update();
}; };
class PlayerNode: public SceneNode, public FPSCamera
{
public:
virtual void update();
};
class EnvironmentNode : public SceneNode
{
public:
virtual void update();
// parametre skybox
// directionnal light
// parametre fog
};
class LightNode : public SceneNode
{
public:
virtual void update();
//position
//puissance
//lighting angle
//couleur
};
class ChunkNode: public SceneNode
{
public:
virtual void update();
// map
};
#endif // SCENE_H #endif // SCENE_H