nuclear@1: #ifndef CAMERA_H_ nuclear@1: #define CAMERA_H_ nuclear@1: nuclear@1: #include "vmath.h" nuclear@13: #include "snode.h" nuclear@1: nuclear@12: class Camera : public SceneNode { nuclear@1: private: nuclear@12: SceneNode target; nuclear@1: float fov; nuclear@1: nuclear@12: void calc_matrix() const; nuclear@12: nuclear@1: public: nuclear@1: Camera(); nuclear@1: nuclear@1: void set_target(const Vector3 &target); nuclear@13: Vector3 get_target() const; nuclear@1: nuclear@1: void set_fov(float fov); nuclear@1: float get_fov() const; nuclear@1: nuclear@18: void draw(bool emph = false) const; nuclear@12: nuclear@17: bool intersect(const Ray &ray, RayHit *hit = 0) const; nuclear@15: nuclear@15: Ray get_primary_ray(int x, int y) const; nuclear@1: }; nuclear@1: nuclear@1: #endif // CAMERA_H_