namespace GL {
/**
-Scenes are containers for other Renderables. This is a base class that can't
-be instantiated. Examples of available Scene types are SimpleScene,
-InstancedScene and OrderedScene.
+Container for other renderables. Subclasses provide different ways of
+rendering the contents.
+
+All types of Scenes perform frustum culling on the contents, skipping
+renderables whose bounding sphere is fully outside the view volume. If a
+bounding sphere cannot be determined, culling is not performed on that
+renderable.
+
+SimpleScene is a good default choice if there are no specific requirements.
*/
class Scene: public Renderable
{
private:
ContentMap *content;
- unsigned inst_counter;
+
+ static unsigned inline_counter;
public:
Loader(Scene &s, Collection &c): Loader(s, c, 0) { }
void object(const std::string &);
void object_tagged(const std::string &, const std::string &);
void scene(const std::string &);
+ void scene_inline();
};
public:
mutable Matrix culling_matrix;
mutable Vector4 frustum_edges[6];
- Scene() { }
+ Scene() = default;
private:
Scene(const Scene &);
Scene &operator=(const Scene &);
public:
- virtual ~Scene() { }
+ virtual ~Scene() = default;
virtual void add(Renderable &) = 0;
virtual void remove(Renderable &) = 0;