30template <
typename T,
int N>
46template <
typename T,
int N>
49 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] == other[n];
53template <
typename T,
int N>
56 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] != other[n];
60template <
typename T,
int N>
63 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] < other[n];
67template <
typename T,
int N>
70 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] <= other[n];
74template <
typename T,
int N>
77 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] > other[n];
81template <
typename T,
int N>
84 for (
int n = 0; n < N; ++n) r[n] = this->_vector[n] >= other[n];
88template <
typename T,
int N>
93template <
typename T,
int N>
95 noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) {
96 return Point<T, N>(this->_vector + other.asEigen());
102 for (
int i = 0; i < N; ++i) {
103 result[i] =
static_cast<int>(input[i]);
111 for (
int i = 0; i < N; ++i) {
120 for (
int i = 0; i < N; ++i) {
126template <
typename T,
int N>
129 for (
int n = 0; n < N; ++n) result = utils::hashCombine(result, extent[n]);
CoordinateExpr< N > eq(Extent< T, N > const &other) const noexcept
CoordinateExpr< N > le(Extent< T, N > const &other) const noexcept
CoordinateExpr< N > lt(Extent< T, N > const &other) const noexcept
CoordinateExpr< N > ne(Extent< T, N > const &other) const noexcept
Point< T, N > asPoint() const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
Cast this object to an Extent of the same numeric type and dimensionality.
CoordinateExpr< N > gt(Extent< T, N > const &other) const noexcept
Extent< T, N > operator+() const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
CoordinateExpr< N > ge(Extent< T, N > const &other) const noexcept
A coordinate class intended to represent offsets and dimensions.
Extent(T val=static_cast< T >(0)) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE)
Construct an Extent with all elements set to the same scalar value.
A coordinate class intended to represent absolute positions.
Extent< int, N > floor(Extent< double, N > const &input) noexcept
Return the component-wise floor (round towards more negative).
Eigen::Vector3d asEigen(sphgeom::Vector3d const &vector) noexcept
std::size_t hash_value(Extent< T, N > const &extent) noexcept
Extent< int, N > truncate(Extent< double, N > const &input) noexcept
Return the component-wise truncation (round towards zero).
Extent< int, N > ceil(Extent< double, N > const &input) noexcept
Return the component-wise ceil (round towards more positive).