Merging r50049 through r50076 from trunk into soc-2011-tomato
[blender.git] / intern / cycles / render / camera.h
index 43537ce8c3c7a3fc0b67c54373c41019c244194e..a539510029f7d26ffbcbb1fc8e940b575ea54261 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef __CAMERA_H__
 #define __CAMERA_H__
 
+#include "kernel_types.h"
+
 #include "util_transform.h"
 #include "util_types.h"
 
@@ -26,6 +28,7 @@ CCL_NAMESPACE_BEGIN
 
 class Device;
 class DeviceScene;
+class Scene;
 
 /* Camera
  *
@@ -35,8 +38,7 @@ class DeviceScene;
 class Camera {
 public:
        /* motion blur */
-       float shutteropen;
-       float shutterclose;
+       float shuttertime;
 
        /* depth of field */
        float focaldistance;
@@ -44,10 +46,19 @@ public:
        uint blades;
        float bladesrotation;
 
-       /* orthographic/perspective */
-       bool ortho;
+       /* type */
+       CameraType type;
        float fov;
 
+       /* panorama */
+       PanoramaType panorama_type;
+       float fisheye_fov;
+       float fisheye_lens;
+
+       /* sensor */
+       float sensorwidth;
+       float sensorheight;
+
        /* clipping */
        float nearclip;
        float farclip;
@@ -56,11 +67,18 @@ public:
        int width, height;
        float left, right, bottom, top;
 
+       /* border */
+       float border_left, border_right, border_bottom, border_top;
+
        /* transformation */
        Transform matrix;
 
+       /* motion */
+       MotionTransform motion;
+       bool use_motion;
+
        /* computed camera parameters */
-    Transform screentoworld;
+       Transform screentoworld;
        Transform rastertoworld;
        Transform ndctoworld;
        Transform rastertocamera;
@@ -73,6 +91,7 @@ public:
        /* update */
        bool need_update;
        bool need_device_update;
+       int previous_motion;
 
        /* functions */
        Camera();
@@ -80,7 +99,7 @@ public:
 
        void update();
 
-       void device_update(Device *device, DeviceScene *dscene);
+       void device_update(Device *device, DeviceScene *dscene, Scene *scene);
        void device_free(Device *device, DeviceScene *dscene);
 
        bool modified(const Camera& cam);