-/* $Id$
-
-This file is part of R²C²
-Copyright © 2011 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#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 {
{
protected:
Layout3D &layout;
+ unsigned width;
+ 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);
Msp::GL::Camera &get_camera() { return camera; }
Msp::GL::Pipeline &get_pipeline() { return pipeline; }
+ 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