62 lines
1.3 KiB
C++
62 lines
1.3 KiB
C++
#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
|