From c1604cb3ad909c14c2ffd4c0ee669aadc0866c01 Mon Sep 17 00:00:00 2001 From: Lendemor Date: Fri, 25 Sep 2015 00:22:36 +0200 Subject: [PATCH] added differents kind of nodes --- scene.h | 63 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/scene.h b/scene.h index 15d96dc..d5bc029 100644 --- a/scene.h +++ b/scene.h @@ -1,6 +1,8 @@ #ifndef SCENE_H #define SCENE_H +#include "SFML/System.hpp" + class SceneNode; class Scene @@ -8,39 +10,78 @@ class Scene public: Scene(); void update(); - void render(); private: SceneNode* m_sceneNodeTree; }; - +//Node Interface class SceneNode { public: SceneNode(); - virtual void update(); + virtual void update() = 0; private: SceneNode* m_parentNode; + std::vector 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