src/Camera.h

Go to the documentation of this file.
00001 #ifndef CAMERA_H
00002 #define CAMERA_H
00003 
00004 
00005 #include "Vec3f.h"
00006 #include "Ray.h"
00007 
00008 
00012 class Camera
00013 {
00014 public:
00021     Camera( Vec3f   pos,
00022             int     resX,
00023             int     resY )
00024         : mPos(pos),
00025             mResX(resX),
00026             mResY(resY)
00027     {
00028     }
00029 
00032     virtual ~Camera()
00033     {
00034     }
00035 
00041     virtual Ray initRay(float x, float y) = 0;
00042 
00045     const Vec3f & pos() const
00046     {
00047         return mPos;
00048     }
00049 
00052     int resX() const
00053     {
00054         return mResX;
00055     }
00056 
00059     int resY() const
00060     {
00061         return mResY;
00062     }
00063 
00066     virtual void setPos(Vec3f pos) = 0;
00067 
00070     virtual void setDir(Vec3f dir) = 0;
00071 
00074     virtual void setUp(Vec3f up) = 0;
00075 
00078     virtual const Vec3f & up() const = 0;
00079 
00082     virtual const Vec3f & dir() const = 0;
00083 
00086     virtual const float focusDistance() const = 0;
00087 
00090     virtual const float aperture() const = 0;
00091 
00094     virtual int depthSamples() const = 0;
00095 
00098     virtual void setDepthSamples(unsigned int) = 0;
00099 
00102     virtual void setFocusDistance(float f) = 0;
00103 
00106     virtual void setAperture(float a) = 0;
00107 
00110     virtual void setSlowCorrect()  = 0;
00111 
00114     virtual void setFastIncorrect() = 0;
00115 
00116 protected:
00118     Vec3f   mPos;
00119 
00121     int     mResX;
00122 
00124     int     mResY;
00125 };
00126 
00127 
00128 #endif
00129 

Generated on Fri Feb 1 00:01:42 2008 for Grayfall by  doxygen 1.5.1