1#include <limits>
2
3#include <math/seadBoundBox.h>
4
5namespace sead
6{
7template <typename T>
8static BoundBox2<T> getUndefined2()
9{
10 Vector2<T> min(std::numeric_limits<T>::max(), std::numeric_limits<T>::max());
11 Vector2<T> max(std::numeric_limits<T>::min(), std::numeric_limits<T>::min());
12 return {min, max};
13}
14
15template <typename T>
16static BoundBox3<T> getUndefined3()
17{
18 Vector3<T> min(std::numeric_limits<T>::max(), std::numeric_limits<T>::max(),
19 std::numeric_limits<T>::max());
20 Vector3<T> max(std::numeric_limits<T>::min(), std::numeric_limits<T>::min(),
21 std::numeric_limits<T>::min());
22 return {min, max};
23}
24
25template <>
26const BoundBox2<s32> BoundBox2<s32>::cUndefined = getUndefined2<s32>();
27template <>
28const BoundBox2<u32> BoundBox2<u32>::cUndefined = getUndefined2<u32>();
29template <>
30const BoundBox2<s64> BoundBox2<s64>::cUndefined = getUndefined2<s64>();
31template <>
32const BoundBox2<u64> BoundBox2<u64>::cUndefined = getUndefined2<u64>();
33template <>
34const BoundBox2<f32> BoundBox2<f32>::cUndefined = getUndefined2<f32>();
35template <>
36const BoundBox2<f64> BoundBox2<f64>::cUndefined = getUndefined2<f64>();
37
38template <>
39const BoundBox3<s32> BoundBox3<s32>::cUndefined = getUndefined3<s32>();
40template <>
41const BoundBox3<u32> BoundBox3<u32>::cUndefined = getUndefined3<u32>();
42template <>
43const BoundBox3<s64> BoundBox3<s64>::cUndefined = getUndefined3<s64>();
44template <>
45const BoundBox3<u64> BoundBox3<u64>::cUndefined = getUndefined3<u64>();
46template <>
47const BoundBox3<f32> BoundBox3<f32>::cUndefined = getUndefined3<f32>();
48template <>
49const BoundBox3<f64> BoundBox3<f64>::cUndefined = getUndefined3<f64>();
50} // namespace sead
51