Frustum.cppm 697 B

12345678910111213141516171819202122232425262728
  1. module;
  2. export module Core.Frustum;
  3. export import Core.Matrix;
  4. import Core.Array;
  5. import Core.Plane;
  6. export namespace Core {
  7. class Frustum final {
  8. Matrix projection;
  9. Array<Plane, 6> planes;
  10. float tan;
  11. float near;
  12. float far;
  13. public:
  14. Frustum(float fieldOfView, float nearClip, float farClip);
  15. const Matrix& updateProjection(const IntVector2& size);
  16. void updatePlanes(
  17. const Vector3& pos, const Vector3& right, const Vector3& up,
  18. const Vector3& front, const IntVector2& size);
  19. bool isInside(const Vector3& pos) const;
  20. bool isInside(const Vector3& pos, float radius) const;
  21. };
  22. }