aboutsummaryrefslogtreecommitdiffstats
path: root/include/aabb.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/aabb.hpp')
-rw-r--r--include/aabb.hpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/include/aabb.hpp b/include/aabb.hpp
index 9ec1f3f..18f6d09 100644
--- a/include/aabb.hpp
+++ b/include/aabb.hpp
@@ -3,11 +3,26 @@
#include "vec3.hpp"
-class AABB {
- AABB(vec3 min_point, vec3 max_point): minimum(min_point), maximum(max_point) {}
+class aabb {
+ public:
+ aabb() = default;
+ aabb(vec3 min_point, vec3 max_point): minimum(min_point), maximum(max_point) {}
+ aabb(vec3 position, float radius): minimum(position - vec3(radius)), maximum(position + vec3(radius)) {}
- vec3 minimum;
- vec3 maximum;
+ static aabb surrounding_box(aabb box0, aabb box1) {
+ point3 min_point(fmin(box0.minimum.x, box1.minimum.x),
+ fmin(box0.minimum.y, box1.minimum.y),
+ fmin(box0.minimum.z, box1.minimum.z));
+
+ point3 max_point(fmax(box0.maximum.x, box1.maximum.x),
+ fmax(box0.maximum.y, box1.maximum.y),
+ fmax(box0.maximum.z, box1.maximum.z));
+
+ return aabb(min_point, max_point);
+ }
+
+ vec3 minimum;
+ vec3 maximum;
};
#endif // !__AABB_HPP_