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.0 KiB

14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
  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