00001
00002 #ifndef __camera_hpp__
00003 #define __camera_hpp__
00004
00005 #include <crbn/basic/ray.hpp>
00006 #include <crbn/basic/vec2.hpp>
00007
00022 class Camera
00023 {
00024 public:
00025 Camera() {}
00026
00027 virtual ~Camera() {}
00028
00035 virtual bool initialize( vec3& position, vec3& target, vec3& vertical, float iar ) = 0;
00036
00043 virtual void eval( vec2& uv, ray& r ) = 0;
00044
00052 virtual void evaln( int n, vec2* uvs, ray* rays ) = 0;
00053 };
00054
00055 #endif // __camera_hpp__