#ifndef _CAMERABASE_H #define _CAMERABASE_H #include "Engine.h" namespace Engine { class Module; /** \brief Controls from where the View is looking to */ class CameraBase : public Module { public: /** updates the projection and modelview matrices for the camera */ void Update (); float GetFOVY () { return mFOVY; } /** sets the point where the camera is looking to */ void SetPointOfIntrest (float poi_x, float poi_y, float poi_z) { mPointOfIntrest[0] = poi_x; mPointOfIntrest[1] = poi_y; mPointOfIntrest[2] = poi_z; } /** sets the position where the camera is located */ void SetEye (float eye_x, float eye_y, float eye_z) { mEye[0] = eye_x; mEye[1] = eye_y; mEye[2] = eye_z; } /** returns the position of the eye */ void GetEye (float *eye_out) { eye_out[0] = mEye[0]; eye_out[1] = mEye[1]; eye_out[2] = mEye[2]; } /** sets the up direction of the camera */ void SetUp (float up_x, float up_y, float up_z) { mUp[0] = up_x; mUp[1] = up_y; mUp[2] = up_z; } protected: /** \brief Initializes the system */ int OnInit (int argc, char* argv[]); /** \brief Destroys the system (must be called!) */ void OnDestroy (); float mPointOfIntrest[3]; float mEye[3]; float mUp[3]; float mFOVY; }; } #endif // _CAMERABASE_H