added differents kind of nodes
This commit is contained in:
parent
8e14399b3f
commit
c1604cb3ad
63
scene.h
63
scene.h
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user