-void Scene::add(const Renderable &r)
-{
- if(const ObjectInstance *oi=dynamic_cast<const ObjectInstance *>(&r))
- objects[&oi->get_object()].insert(oi);
- else
- renderables.insert(&r);
-}
-
-void Scene::remove(const Renderable &r)
-{
- if(const ObjectInstance *oi=dynamic_cast<const ObjectInstance *>(&r))
- {
- ObjectMap::iterator i=objects.find(&oi->get_object());
- if(i!=objects.end())
- {
- i->second.erase(oi);
- if(i->second.empty())
- objects.erase(i);
- }
- }
- else
- renderables.erase(&r);
-}
-