#include <list>
#include <msp/datafile/objectloader.h>
#include "renderable.h"
+#include "vector.h"
namespace Msp {
namespace GL {
-class Culler;
-
/**
Scenes are containers for other Renderables. This is a base class that can't
be instantiated. Examples of available Scene types are SimpleScene,
protected:
std::list<Renderable *> owned_data;
- std::list<Culler *> cullers;
+ mutable Vector4 frustum_edges[6];
Scene() { }
private:
virtual void add(const Renderable &) = 0;
virtual void remove(const Renderable &) = 0;
- void add_culler(Culler &);
- void remove_culler(Culler &);
-
using Renderable::render;
virtual void render(const Tag & = Tag()) const;
protected:
- virtual void setup_cullers(const Renderer &) const;
- virtual bool cull(const Renderer &, const Renderable &) const;
+ bool setup_frustum(const Renderer &) const;
+ bool frustum_cull(const Renderable &) const;
};
} // namespace GL