#ifndef MSP_GL_SCENE_H_
#define MSP_GL_SCENE_H_
+#include <map>
#include <set>
#include "renderable.h"
namespace Msp {
namespace GL {
+class Object;
+class ObjectInstance;
+
class Scene: public Renderable
{
private:
- std::set<const Renderable *> renderables;
+ typedef std::set<const ObjectInstance *> InstanceSet;
+ typedef std::map<const Object *, InstanceSet> ObjectMap;
+ typedef std::set<const Renderable *> RenderableSet;
+
+ ObjectMap objects;
+ RenderableSet renderables;
public:
void add(const Renderable &);
void remove(const Renderable &);
- virtual bool has_pass(const Tag &) const { return true; }
- virtual void render(const Tag &tag=Tag()) const;
+ virtual void render(const Tag &tag = Tag()) const;
};
} // namespace GL