23 template <
int N,
typename Real>
42 std::array<Vector<N, Real>, N>
axis;
56 template <
typename Real>
59 template <
typename Real>
63 template <
int N,
typename Real>
67 for (
int i = 0; i < N; ++i)
74 template <
int N,
typename Real>
85 template <
int N,
typename Real>
89 unsigned int const dsup =
static_cast<unsigned int>(N);
90 std::array<Vector<N, Real>, N> product;
91 for (
unsigned int d = 0; d < dsup; ++d)
96 int const imax = (1 << N);
97 for (
int i = 0; i < imax; ++i)
100 for (
unsigned int d = 0,
mask = 1; d < dsup; ++d,
mask <<= 1)
102 Real sign = (i & mask ? (Real)1 : (Real)-1);
103 vertex[i] += sign * product[d];
108 template <
int N,
typename Real>
114 template <
int N,
typename Real>
120 template <
int N,
typename Real>
146 template <
int N,
typename Real>
152 template <
int N,
typename Real>
158 template <
int N,
typename Real>
bool operator>(OrientedBox const &box) const
std::array< Vector< N, Real >, N > axis
bool operator==(OrientedBox const &box) const
bool operator<=(OrientedBox const &box) const
bool operator!=(OrientedBox const &box) const
bool operator>=(OrientedBox const &box) const
bool operator<(OrientedBox const &box) const
void GetVertices(std::array< Vector< N, Real >,(1<< N)> &vertex) const