Simple game engine with complete export to scripting language
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.0KB

  1. #ifndef BLUECORE_CAMERA_H
  2. #define BLUECORE_CAMERA_H
  3. // project includes
  4. #include "Utilities/Referenced.h"
  5. #include "Math/Vector.h"
  6. #include "Math/Quaternion.h"
  7. #include "Math/Plane.h"
  8. //#include "geometry/frustum.h"
  9. namespace BlueCore
  10. {
  11. class Camera : public Referenced
  12. {
  13. private:
  14. Vector3 _LookAtPoint;
  15. Vector3 _LookAtUp;
  16. bool _LookAt;
  17. Scalar _NearPlane, _FarPlane, _FoV, _AspectRatio;
  18. //Frustum _Frustum;
  19. Vector3 _Position;
  20. Quaternion _Rotation;
  21. public:
  22. Camera();
  23. ~Camera();
  24. void lookAt(const Vector3 &point);
  25. void lookAt(const Vector3 &point, const Vector3 &up);
  26. void lookStraight();
  27. void setFoV(Scalar fov);
  28. void setAspectRatio(Scalar aspect);
  29. void setNearPlane(Scalar near);
  30. void setFarPlane(Scalar far);
  31. void setPosition(const Vector3& position);
  32. const Vector3& getPosition();
  33. void setRotation(const Quaternion& rotation);
  34. const Quaternion& getRotation();
  35. Scalar getNearPlane() const;
  36. Scalar getFarPlane() const;
  37. Scalar getFov() const;
  38. //const Frustum &getFrustum() const;
  39. };
  40. } // namespace BlueCore
  41. #endif