From be5f1133bff5d4c551e2702211acb155d8819fd0 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Mon, 29 Mar 2021 22:25:29 +0200 Subject: BVH simple implementation --- include/aabb.hpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'include/aabb.hpp') 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_ -- cgit v1.3