]> git.tdb.fi Git - libs/gl.git/blob - source/scene.h
3b35f45b5558702a0d7f33019456ab444e5b5be1
[libs/gl.git] / source / scene.h
1 /* $Id$
2
3 This file is part of libmspgl
4 Copyright © 2010-2011  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #ifndef MSP_GL_SCENE_H_
9 #define MSP_GL_SCENE_H_
10
11 #include "renderable.h"
12
13 namespace Msp {
14 namespace GL {
15
16 /**
17 Scenes are containers for other Renderables.  This is a base class that can't
18 be instantiated.  At the moment the available Scene types are SimpleScene,
19 InstancedScene and OrderedScene.
20 */
21 class Scene: public Renderable
22 {
23 protected:
24         Scene() { }
25 public:
26         virtual ~Scene() { }
27
28         virtual void add(const Renderable &) = 0;
29         virtual void remove(const Renderable &) = 0;
30
31         using Renderable::render;
32         virtual void render(const Tag & = Tag()) const;
33 };
34
35 } // namespace GL
36 } // namespace Msp
37
38 #endif