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__