aboutsummaryrefslogtreecommitdiffstats
path: root/include/aabb.hpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2025-12-24 15:35:21 +0100
committerladevieq <ladevie.quentin@gmail.com>2025-12-24 15:35:21 +0100
commitb4d24e8f2cb4838acc0b827f007e7faa609039ba (patch)
treeba6504b67923789d84b2473eb4e14f7002e34ab7 /include/aabb.hpp
parentc29105b461135f3909cca0308fb05715cee45763 (diff)
Use build.bat for building
Everything is included in main.cpp Do not rely on vcpkg anymore
Diffstat (limited to 'include/aabb.hpp')
-rw-r--r--include/aabb.hpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/include/aabb.hpp b/include/aabb.hpp
index 9862355..adeb1fb 100644
--- a/include/aabb.hpp
+++ b/include/aabb.hpp
@@ -1,9 +1,6 @@
#ifndef __AABB_HPP_
#define __AABB_HPP_
-#include <cmath>
-#include <climits>
-
#include "vec3.hpp"
#include "triangle.hpp"
@@ -33,11 +30,14 @@ class aabb {
int32_t maximum_axis() const {
vec3 diag = diagonal();
+ float v0 = diag.get<0>();
+ float v1 = diag.get<1>();
+ float v2 = diag.get<2>();
- if (diag.v[0] > diag.v[1] && diag.v[0] > diag.v[2]) {
+ if (v0 > v1 && v0 > v2) {
return 0;
}
- if (diag.v[1] > diag.v[2]) {
+ if (v1 > v2) {
return 1;
}
return 2;
@@ -53,7 +53,10 @@ class aabb {
float surface_area() const {
auto diag = diagonal();
- return 2.f * (diag.v[0] * diag.v[1] + diag.v[0] * diag.v[2] + diag.v[1] * diag.v[2]);
+ float v0 = diag.get<0>();
+ float v1 = diag.get<1>();
+ float v2 = diag.get<2>();
+ return 2.f * (v0 * v1 + v0 * v2 + v1 * v2);
}
vec3 minimum = vec3(std::numeric_limits<float>::max());