1 #include <msp/datafile/collection.h>
2 #include "animatedobject.h"
14 for(list<Renderable *>::iterator i=owned_data.begin(); i!=owned_data.end(); ++i)
18 void Scene::add_culler(Culler &c)
20 cullers.push_back(&c);
23 void Scene::remove_culler(Culler &c)
25 list<Culler *>::iterator i = find(cullers.begin(), cullers.end(), &c);
30 void Scene::render(const Tag &tag) const
33 render(renderer, tag);
36 void Scene::setup_cullers(const Renderer &renderer) const
38 for(list<Culler *>::const_iterator i=cullers.begin(); i!=cullers.end(); ++i)
39 (*i)->setup_pass(renderer);
42 bool Scene::cull(const Renderer &renderer, const Renderable &renderable) const
44 for(list<Culler *>::const_iterator i=cullers.begin(); i!=cullers.end(); ++i)
45 if((*i)->cull(renderer, renderable))
51 Scene::Loader::Loader(Scene &s, Collection &c):
52 DataFile::CollectionObjectLoader<Scene>(s, &c)
54 add("object", &Loader::object);
57 void Scene::Loader::object(const string &n)
59 RefPtr<AnimatedObject> anob = new AnimatedObject(get_collection().get<GL::Object>(n));
62 obj.owned_data.push_back(anob.release());