]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/view.h
Only use postprocessors that can be supported
[r2c2.git] / source / 3d / view.h
index 5e954a737da05baf07bd9ff963c0224b26345185..a191a150ec60e1cd9819ed2ce8e7bd9a1f9db884 100644 (file)
@@ -1,14 +1,18 @@
 #ifndef R2C2_3D_VIEW_H_
 #define R2C2_3D_VIEW_H_
 
+#include <msp/gl/ambientocclusion.h>
 #include <msp/gl/camera.h>
+#include <msp/gl/colorcurve.h>
 #include <msp/gl/pipeline.h>
+#include <msp/gl/shadowmap.h>
+#include "sky.h"
 
 namespace R2C2 {
 
 class Layout3D;
 
-class View3D
+class View3D: public sigc::trackable
 {
 protected:
        Layout3D &layout;
@@ -16,9 +20,14 @@ protected:
        unsigned height;
        Msp::GL::Camera camera;
        Msp::GL::Pipeline pipeline;
+       Sky3D sky;
+       Msp::GL::ShadowMap shadow;
+       Msp::GL::ColorCurve *colorcurve;
+       Msp::GL::AmbientOcclusion *ambient_occlusion;
 
 public:
        View3D(Layout3D &, unsigned, unsigned);
+       ~View3D();
 
        Layout3D &get_layout() const { return layout; }
        Msp::GL::Camera &get_camera() { return camera; }
@@ -27,9 +36,15 @@ public:
        Ray create_ray(int, int) const;
        Ray create_ray(float, float) const;
 
+private:
+       void compute_bounds(Vector &, Vector &);
+public:
        void view_all(bool = false);
 
        void render();
+
+private:
+       void update_shadow_area();
 };
 
 } // namespace R2C2