60 lines
1.0 KiB
C++
60 lines
1.0 KiB
C++
#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"
|
|
|
|
namespace BlueCore
|
|
{
|
|
|
|
class Camera : public Referenced
|
|
{
|
|
|
|
private:
|
|
|
|
Vector3 _LookAtPoint;
|
|
Vector3 _LookAtUp;
|
|
bool _LookAt;
|
|
Scalar _FoV, _NearPlane, _FarPlane;
|
|
//Frustum _Frustum;
|
|
|
|
Vector3 _Position;
|
|
Quaternion _Rotation;
|
|
|
|
void updateLookAtRotation();
|
|
|
|
public:
|
|
|
|
Camera();
|
|
~Camera();
|
|
|
|
void lookAt(const Vector3 &point);
|
|
void lookAt(const Vector3 &point, const Vector3 &up);
|
|
void lookStraight();
|
|
|
|
void setFoV(Scalar fov);
|
|
void setNearPlane(Scalar near);
|
|
void setFarPlane(Scalar far);
|
|
|
|
void setPosition(const Vector3& position);
|
|
const Vector3& getPosition();
|
|
|
|
void setRotation(const Quaternion& rotation);
|
|
const Quaternion& getRotation();
|
|
|
|
Scalar getNearPlane() const;
|
|
Scalar getFarPlane() const;
|
|
Scalar getFov() const;
|
|
|
|
//const Frustum &getFrustum() const;
|
|
};
|
|
|
|
} // namespace BlueCore
|
|
|
|
#endif
|
|
|