fysxasteroids/engine/CameraBase.h

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