15 #include <vsg/maths/vec3.h>
28 vec_type min =
vec_type(std::numeric_limits<value_type>::max(), std::numeric_limits<value_type>::max(), std::numeric_limits<value_type>::max());
29 vec_type max =
vec_type(std::numeric_limits<value_type>::lowest(), std::numeric_limits<value_type>::lowest(), std::numeric_limits<value_type>::lowest());
31 constexpr
t_box() =
default;
43 constexpr
t_box& operator=(
const t_box&) =
default;
45 constexpr std::size_t size()
const {
return 6; }
47 value_type& operator[](std::size_t i) {
return data()[i]; }
48 value_type operator[](std::size_t i)
const {
return data()[i]; }
50 bool valid()
const {
return min.x <= max.x; }
52 T* data() {
return min.data(); }
53 const T* data()
const {
return min.data(); }
61 void add(value_type x, value_type y, value_type z)
63 if (x < min.x) min.x = x;
64 if (y < min.y) min.y = y;
65 if (z < min.z) min.z = z;
66 if (x > max.x) max.x = x;
67 if (y > max.y) max.y = y;
68 if (z > max.z) max.z = z;
74 if (bb.min.x < min.x) min.x = bb.min.x;
75 if (bb.min.y < min.y) min.y = bb.min.y;
76 if (bb.min.z < min.z) min.z = bb.min.z;
77 if (bb.max.x > max.x) max.x = bb.max.x;
78 if (bb.max.y > max.y) max.y = bb.max.y;
79 if (bb.max.z > max.z) max.z = bb.max.z;
t_box template class that represent a axis aligned bounding box
Definition: box.h:24
t_vec3 template class that a represents a 3D vector
Definition: vec3.h:34