Camera3D.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef CAMERA3D_H
  2. #define CAMERA3D_H
  3. #include "Vector3D.h"
  4. #include "Matrix3D.h"
  5. #include "Plane3D.h"
  6. class Camera3D
  7. {
  8. public:
  9. Camera3D();
  10. virtual ~Camera3D();
  11. bool isInFrustum(float x, float y, float z, float x2, float y2, float z2) const;
  12. void storePosition();
  13. void setPosition(float x, float y, float z, float length, float width);
  14. const Vector3D& getFlatFront() const;
  15. const Vector3D& getFlatBack() const;
  16. const Vector3D& getFlatRight() const;
  17. const Vector3D& getFlatLeft() const;
  18. const Vector3D& getFlatUp() const;
  19. const Vector3D& getFlatDown() const;
  20. void update(float lag);
  21. const float* getViewMatrix();
  22. private:
  23. Vector3D oldCamera;
  24. Vector3D camera;
  25. float oldLengthAngle;
  26. float lengthAngle;
  27. float oldWidthAngle;
  28. float widthAngle;
  29. Vector3D front;
  30. Vector3D back;
  31. Vector3D right;
  32. Vector3D left;
  33. Vector3D up;
  34. Vector3D down;
  35. Vector3D flatFront;
  36. Vector3D flatBack;
  37. Vector3D flatRight;
  38. Vector3D flatLeft;
  39. Vector3D flatUp;
  40. Vector3D flatDown;
  41. Matrix3D view;
  42. Plane3D frustumPlanes[6];
  43. };
  44. #endif