10#include <utility/math/aabb.hpp>
36 inline utility::math::AabbF
37 transformedBounds(
const utility::math::AabbF &localBounds,
38 const glm::mat4 &transform)
40 if (localBounds.isEmpty() || transform == glm::mat4(1.0f)) {
44 const auto min = localBounds.getMin();
45 const auto max = localBounds.getMax();
47 utility::math::AabbF worldBounds;
48 for (
unsigned int corner = 0; corner < 8; ++corner) {
49 const glm::vec4 position((corner & 1u) != 0u ? max.x : min.x,
50 (corner & 2u) != 0u ? max.y : min.y,
51 (corner & 4u) != 0u ? max.z : min.z, 1.0f);
52 worldBounds.include(utility::math::Vector<float, 3>(
53 glm::vec3(transform * position)));