]> git.tdb.fi Git - libs/gl.git/blob - source/scene.cpp
Add class Renderable
[libs/gl.git] / source / scene.cpp
1 /* $Id$
2
3 This file is part of libmspgl
4 Copyright © 2007  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #include "scene.h"
9
10 using namespace std;
11
12 namespace Msp {
13 namespace GL {
14
15 void Scene::add(const Renderable &r)
16 {
17         renderables.insert(&r);
18 }
19
20 void Scene::remove(const Renderable &r)
21 {
22         renderables.erase(&r);
23 }
24
25 void Scene::render() const
26 {
27         for(set<const Renderable *>::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
28                 (*i)->render();
29 }
30
31 void Scene::render(const string &pn) const
32 {
33         for(set<const Renderable *>::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
34                 if((*i)->has_pass(pn))
35                         (*i)->render(pn);
36 }
37
38 } // namespace GL
39 } // namespace Msp