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
#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<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