#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; }; #endif // SCENE_H