src/types/boundingbox.h

changeset 189
815fbaae9cb2
parent 33
4c41bfe2ec6e
child 196
6bcb284679d4
equal deleted inserted replaced
188:64ea7282611e 189:815fbaae9cb2
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);

mercurial