]> git.tdb.fi Git - libs/gl.git/blobdiff - source/scene.h
Fix a stupid error with PixelStore parameter mask
[libs/gl.git] / source / scene.h
index 611f3508e2d7e103a592787aa5e08ea75f0f1625..9e90b1284a014e90aa9a03191172b7137c80e35b 100644 (file)
@@ -1,8 +1,9 @@
 #ifndef MSP_GL_SCENE_H_
 #define MSP_GL_SCENE_H_
 
-#include <list>
+#include <vector>
 #include <msp/datafile/objectloader.h>
+#include "matrix.h"
 #include "renderable.h"
 #include "vector.h"
 
@@ -27,8 +28,9 @@ public:
        };
 
 protected:
-       std::list<Renderable *> owned_data;
-       mutable Vector3 frustum_edges[4];
+       std::vector<Renderable *> owned_data;
+       mutable Matrix culling_matrix;
+       mutable Vector4 frustum_edges[6];
 
        Scene() { }
 private:
@@ -37,15 +39,12 @@ private:
 public:
        virtual ~Scene();
 
-       virtual void add(const Renderable &) = 0;
-       virtual void remove(const Renderable &) = 0;
-
-       using Renderable::render;
-       virtual void render(const Tag & = Tag()) const;
+       virtual void add(Renderable &) = 0;
+       virtual void remove(Renderable &) = 0;
 
 protected:
-       void setup_frustum(const Renderer &) const;
-       bool frustum_cull(const Renderer &, const Renderable &) const;
+       bool setup_frustum(const Renderer &) const;
+       bool frustum_cull(const Renderable &) const;
 };
 
 } // namespace GL