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: void calc_inv_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@12: void draw() const; nuclear@12: nuclear@12: bool intersect(const Ray &ray, float *dist = 0) const; nuclear@1: }; nuclear@1: nuclear@1: #endif // CAMERA_H_