]> git.tdb.fi Git - libs/gl.git/blob - source/orderedscene.h
Drop Id tags and copyright notices from files
[libs/gl.git] / source / orderedscene.h
1 #ifndef MSP_GL_ORDEREDSCENE_H_
2 #define MSP_GL_ORDEREDSCENE_H_
3
4 #include <list>
5 #include <msp/gl/scene.h>
6
7 namespace Msp {
8 namespace GL {
9
10 /**
11 A scene that renders its contents in a specific order.  Inserting Renderables
12 in the middle and removing them are O(N) operations.
13 */
14 class OrderedScene: public Scene
15 {
16 private:
17         typedef std::list<const Renderable *> RenderableList;
18
19         RenderableList renderables;
20
21 public:
22         virtual void add(const Renderable &);
23         virtual void remove(const Renderable &);
24         void prepend(const Renderable &);
25         void insert(unsigned, const Renderable &);
26         void insert_after(const Renderable &, const Renderable &);
27
28         using Scene::render;
29         virtual void render(Renderer &, const Tag & = Tag()) const;
30 };
31
32 } // namespace GL
33 } // namespace Msp
34
35 #endif