18 |
18 |
19 #pragma once |
19 #pragma once |
20 #include "basics.h" |
20 #include "basics.h" |
21 #include "maths.h" |
21 #include "maths.h" |
22 |
22 |
23 class BoundingBox |
23 struct BoundingBox |
24 { |
24 { |
25 public: |
|
26 void consider(const glm::vec3& vertex); |
|
27 glm::vec3 minimum {math::infinity, math::infinity, math::infinity}; |
25 glm::vec3 minimum {math::infinity, math::infinity, math::infinity}; |
28 glm::vec3 maximum {-math::infinity, -math::infinity, -math::infinity}; |
26 glm::vec3 maximum {-math::infinity, -math::infinity, -math::infinity}; |
29 BoundingBox& operator<<(const glm::vec3& v); |
|
30 }; |
27 }; |
31 |
28 |
32 inline const BoundingBox emptyBoundingBox = {}; |
29 constexpr BoundingBox emptyBoundingBox = {}; |
33 glm::vec3 boxCenter(const BoundingBox& box); |
30 glm::vec3 boxCenter(const BoundingBox& box); |
34 float longestMeasure(const BoundingBox& box); |
31 float longestMeasure(const BoundingBox& box); |
35 float spaceDiagonal(const BoundingBox& box); |
32 float spaceDiagonal(const BoundingBox& box); |
36 |
33 void addPointToBox(BoundingBox& box, const glm::vec3& vertex); |
37 bool operator==(const BoundingBox& box_1, const BoundingBox& box_2); |
34 bool operator==(const BoundingBox& box_1, const BoundingBox& box_2); |
38 bool operator!=(const BoundingBox& box_1, const BoundingBox& box_2); |
35 bool operator!=(const BoundingBox& box_1, const BoundingBox& box_2); |