#ifndef SCENE_H #define SCENE_H #include #include 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 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