bluecore/engine/Camera.h

59 lines
1.0 KiB
C
Raw Normal View History

2008-01-16 12:45:17 +01:00
#ifndef BLUECORE_CAMERA_H
#define BLUECORE_CAMERA_H
// project includes
#include "Utilities/Referenced.h"
#include "Math/Vector.h"
#include "Math/Quaternion.h"
#include "Math/Plane.h"
//#include "geometry/frustum.h"
2008-01-17 17:42:24 +01:00
namespace BlueCore
{
2008-01-16 12:45:17 +01:00
class Camera : public Referenced
{
private:
Vector3 _LookAtPoint;
Vector3 _LookAtUp;
bool _LookAt;
Scalar _NearPlane, _FarPlane, _FoV, _AspectRatio;
//Frustum _Frustum;
Vector3 _Position;
Quaternion _Rotation;
2008-01-17 17:42:24 +01:00
2008-01-16 12:45:17 +01:00
public:
Camera();
~Camera();
2008-01-17 17:42:24 +01:00
void lookAt(const Vector3 &point);
void lookAt(const Vector3 &point, const Vector3 &up);
2008-01-16 12:45:17 +01:00
void lookStraight();
2008-01-17 17:42:24 +01:00
void setFoV(Scalar fov);
void setAspectRatio(Scalar aspect);
void setNearPlane(Scalar near);
void setFarPlane(Scalar far);
2008-01-16 12:45:17 +01:00
2008-01-17 17:42:24 +01:00
void setPosition(const Vector3& position);
const Vector3& getPosition();
2008-01-16 12:45:17 +01:00
2008-01-17 17:42:24 +01:00
void setRotation(const Quaternion& rotation);
const Quaternion& getRotation();
2008-01-16 12:45:17 +01:00
2008-01-17 17:42:24 +01:00
Scalar getNearPlane() const;
Scalar getFarPlane() const;
Scalar getFov() const;
2008-01-16 12:45:17 +01:00
//const Frustum &getFrustum() const;
};
} // namespace BlueCore
#endif