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.

Camera.h 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 _FoV, _NearPlane, _FarPlane;
  18. //Frustum _Frustum;
  19. Vector3 _Position;
  20. Quaternion _Rotation;
  21. void updateLookAtRotation();
  22. public:
  23. Camera();
  24. ~Camera();
  25. void lookAt(const Vector3 &point);
  26. void lookAt(const Vector3 &point, const Vector3 &up);
  27. void lookStraight();
  28. void setFoV(Scalar fov);
  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