+++ /dev/null
-#include <msp/datafile/collection.h>
-#include "animatedobject.h"
-#include "culler.h"
-#include "renderer.h"
-#include "scene.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-Scene::~Scene()
-{
- for(list<Renderable *>::iterator i=owned_data.begin(); i!=owned_data.end(); ++i)
- delete *i;
-}
-
-void Scene::add_culler(Culler &c)
-{
- cullers.push_back(&c);
-}
-
-void Scene::remove_culler(Culler &c)
-{
- list<Culler *>::iterator i = find(cullers.begin(), cullers.end(), &c);
- if(i!=cullers.end())
- cullers.erase(i);
-}
-
-void Scene::render(const Tag &tag) const
-{
- Renderer renderer(0);
- render(renderer, tag);
-}
-
-void Scene::setup_cullers(const Renderer &renderer) const
-{
- for(list<Culler *>::const_iterator i=cullers.begin(); i!=cullers.end(); ++i)
- (*i)->setup_pass(renderer);
-}
-
-bool Scene::cull(const Renderer &renderer, const Renderable &renderable) const
-{
- for(list<Culler *>::const_iterator i=cullers.begin(); i!=cullers.end(); ++i)
- if((*i)->cull(renderer, renderable))
- return true;
- return false;
-}
-
-
-Scene::Loader::Loader(Scene &s, Collection &c):
- DataFile::CollectionObjectLoader<Scene>(s, &c)
-{
- add("object", &Loader::object);
-}
-
-void Scene::Loader::object(const string &n)
-{
- RefPtr<AnimatedObject> anob = new AnimatedObject(get_collection().get<GL::Object>(n));
- load_sub(*anob);
- obj.add(*anob);
- obj.owned_data.push_back(anob.release());
-}
-
-} // namespace GL
-} // namespace Msp