src/rcrt/cameras/PerspectiveCamera.h

Go to the documentation of this file.
00001 #ifndef PERSPECTIVECAMERA_H_
00002 #define PERSPECTIVECAMERA_H_
00003 
00004 #include "Camera.h"
00005 
00006 namespace rcrt
00007 {
00008 
00012 class PerspectiveCamera : public rcrt::Camera
00013 {
00014 private:
00015         float vangle;
00016         Point3D pos;
00017         Vec3D dir, up;
00018         bool init;
00019         
00020         float focus;
00021         Vec3D xAxis, yAxis, zAxis;
00022         float aspect;
00023         
00024 public:
00025         PerspectiveCamera();
00026         PerspectiveCamera(float angle, const Point3D& p, const Vec3D& d, const Vec3D& u, const int& resX, const int& resY);
00027         virtual ~PerspectiveCamera();
00028         
00029         void initialise(float angle, const Point3D& p, const Vec3D& d, const Vec3D& u, const int& resX, const int& resY);
00030         void update(const Point3D& p, const Vec3D& d, const Vec3D& u);
00031         virtual Ray getRay(const Point2D& px) const;
00032         virtual void setResolution(const int& resX, const int& resY);
00033         virtual void setAngle(const float& angle);
00034         virtual const Vec3D& getDirection();
00035         virtual const Vec3D& getXAxis();
00036         virtual const Vec3D& getUp();
00037         virtual const Point3D& getPosition();
00038         virtual const float getAngle();
00039         virtual const float& getFocus();
00040 };
00041 
00042 }
00043 
00044 #endif /*PERSPECTIVECAMERA_H_*/

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3