93 lines
1.3 KiB
C++
93 lines
1.3 KiB
C++
#ifndef SCENE_H
|
|
#define SCENE_H
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
class SceneNode
|
|
{
|
|
public:
|
|
SceneNode* m_parent;
|
|
virtual void update() = 0;
|
|
};
|
|
|
|
|
|
class ContainerNode : public SceneNode
|
|
{
|
|
public:
|
|
virtual void update();
|
|
void addChild(const std::string &childName);
|
|
void removeChild(const std::string &childName);
|
|
protected:
|
|
std::vector<SceneNode*> m_children;
|
|
};
|
|
|
|
class Scene : public ContainerNode
|
|
{
|
|
public:
|
|
Scene(std::string name);
|
|
~Scene();
|
|
private:
|
|
std::string m_name;
|
|
};
|
|
|
|
//general Node
|
|
|
|
class ObjectNode : public SceneNode, public PhongEntity
|
|
{
|
|
//add bullet rigidbody
|
|
public:
|
|
virtual void update();
|
|
};
|
|
|
|
class FragmentNode: public ObjectNode
|
|
{
|
|
// TODO: later
|
|
};
|
|
|
|
class ItemNode: public ObjectNode
|
|
{
|
|
// TODO: later
|
|
};
|
|
|
|
// 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
|