SparrowEngine/scene.h

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