1
0
Fork 0
bluecore/engine/Camera.h

60 Zeilen
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