#pragma once #ifndef CAMERA #define CAMERA #include "matrix.h" #include "vector.h" #include "box.h" class Xr_Camera { public: Xr_Camera(); ~Xr_Camera(); void configModelview(Xr_MATRIX_4X4*); void computeProjection(); void setPos(float, float, float); void relPos(float, float, float); void setAngle(float, float); void relAngle(float, float); void setFov(float); void relFov(float); void setFar(float); void setNear(float); void moveForward(float); void moveBackward(float); void moveRight(float); void moveLeft(float); void moveUpDown(float); Xr_Vector3D getPos() const; float getFov() const; float* const getAngle() const; Xr_MATRIX_4X4* const getProjection() const; Xr_FrustumBox* const getFrustumBox() const; private: Xr_MATRIX_4X4 *C_projection; Xr_FrustumBox *C_box; Xr_Vector3D C_eye; Xr_Vector3D C_pos; float C_fov; float C_far; float C_near; float C_angle[2]; Xr_Vector3D C_dir; Xr_Vector3D C_right; Xr_Vector3D C_left; Xr_Vector3D C_up; Xr_Vector3D C_down; }; #endif