LSST Applications g070148d5b3+33e5256705,g0d53e28543+25c8b88941,g0da5cf3356+2dd1178308,g1081da9e2a+62d12e78cb,g17e5ecfddb+7e422d6136,g1c76d35bf8+ede3a706f7,g295839609d+225697d880,g2e2c1a68ba+cc1f6f037e,g2ffcdf413f+853cd4dcde,g38293774b4+62d12e78cb,g3b44f30a73+d953f1ac34,g48ccf36440+885b902d19,g4b2f1765b6+7dedbde6d2,g5320a0a9f6+0c5d6105b6,g56b687f8c9+ede3a706f7,g5c4744a4d9+ef6ac23297,g5ffd174ac0+0c5d6105b6,g6075d09f38+66af417445,g667d525e37+2ced63db88,g670421136f+2ced63db88,g71f27ac40c+2ced63db88,g774830318a+463cbe8d1f,g7876bc68e5+1d137996f1,g7985c39107+62d12e78cb,g7fdac2220c+0fd8241c05,g96f01af41f+368e6903a7,g9ca82378b8+2ced63db88,g9d27549199+ef6ac23297,gabe93b2c52+e3573e3735,gb065e2a02a+3dfbe639da,gbc3249ced9+0c5d6105b6,gbec6a3398f+0c5d6105b6,gc9534b9d65+35b9f25267,gd01420fc67+0c5d6105b6,geee7ff78d7+a14128c129,gf63283c776+ede3a706f7,gfed783d017+0c5d6105b6,w.2022.47
LSST Data Management Base Package
|
A coordinate class intended to represent offsets and dimensions. More...
#include <Extent.h>
Public Types | |
typedef Super::EigenVector | EigenVector |
typedef T | Element |
Public Member Functions | |
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. More... | |
Extent (EigenVector const &vector) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) | |
Construct an Extent from an Eigen vector. More... | |
Extent (Point< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) | |
Explicit constructor from Point. More... | |
template<typename U > | |
Extent (Extent< U, N > const &other) noexcept(IS_NOTHROW_CONVERTIBLE< T, U >) | |
Explicit constructor from Extent of different type (if allowed) More... | |
template<typename U > | |
Extent (Point< U, N > const &other) noexcept(IS_NOTHROW_CONVERTIBLE< T, U >) | |
Extent (Extent const &other)=default | |
Extent (Extent &&other)=default | |
~Extent ()=default | |
Extent & | operator= (Extent const &other)=default |
Extent & | operator= (Extent &&other)=default |
T | computeSquaredNorm () const |
Return the squared L2 norm of the Extent (x^2 + y^2 + ...). More... | |
T | computeNorm () const |
Return the L2 norm of the Extent (sqrt(x^2 + y^2 + ...)). More... | |
void | swap (Extent &other) noexcept |
bool | operator== (Extent< T, N > const &other) const noexcept |
Standard equality comparison. More... | |
bool | operator!= (Extent< T, N > const &other) const noexcept |
Standard inequality comparison. More... | |
T & | operator[] (int n) |
T const & | operator[] (int n) const |
T & | coeffRef (int n) |
T const & | coeffRef (int n) const |
EigenVector const & | asEigen () const noexcept(IS_ELEMENT_NOTHROW_COPYABLE) |
Return a fixed-size Eigen representation of the coordinate object. More... | |
Named comparison functions | |
Note that these return CoordinateExpr, not bool. Unlike most arithmetic and assignment operators, scalar interoperability is provided for comparisons; expressions like if (all(extent.gt(0))) ... are both ubiquitous and easy to interpret. | |
CoordinateExpr< N > | eq (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | eq (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
CoordinateExpr< N > | ne (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | ne (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
CoordinateExpr< N > | lt (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | lt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
CoordinateExpr< N > | le (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | le (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
CoordinateExpr< N > | gt (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | gt (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
CoordinateExpr< N > | ge (Extent< T, N > const &other) const noexcept |
CoordinateExpr< N > | ge (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Additive arithmetic operators | |
No scalar interoperability is provided for Extent additive arithmetic operations. | |
Point< T, N > | operator+ (Point< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Extent< T, N > | operator+ (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Extent< T, N > | operator+ () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Extent< T, N > | operator- (Extent< T, N > const &other) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Extent< T, N > | operator- () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Extent< T, N > & | operator+= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE) |
Extent< T, N > & | operator-= (Extent< T, N > const &other) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE) |
Multiplicative arithmetic operators | |
As usual with matrices and vectors, Extent can be multiplied or divided by a scalar. | |
Extent< T, N > | operator* (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
Extent< T, N > & | operator*= (T scalar) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE) |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
Extent< T, N > | operator/ (T scalar) const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
Extent< T, N > & | operator/= (T scalar) noexcept(Super::IS_ELEMENT_NOTHROW_ASSIGNABLE) |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
Point< T, N > | asPoint () const noexcept(Super::IS_ELEMENT_NOTHROW_COPYABLE) |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
std::string | toString () const |
Cast this object to an Extent of the same numeric type and dimensionality. More... | |
Static Public Attributes | |
static int const | dimensions |
static bool constexpr | IS_ELEMENT_NOTHROW_COPYABLE |
static bool constexpr | IS_ELEMENT_NOTHROW_ASSIGNABLE |
Protected Member Functions | |
void | _swap (CoordinateBase &other) noexcept |
Protected Attributes | |
EigenVector | _vector |
Related Functions | |
(Note that these are not member functions.) | |
bool | allclose (CoordinateBase< Extent< T, N >, T, N > const &a, CoordinateBase< Extent< T, N >, T, N > const &b, T rtol=static_cast< T >(1E-5), T atol=static_cast< T >(1E-8)) noexcept(std::is_nothrow_copy_constructible< T >::value &&std::is_nothrow_copy_assignable< T >::value) |
Floating-point comparison with tolerance. More... | |
A coordinate class intended to represent offsets and dimensions.
Much of the functionality of Extent is provided by its CRTP base class, ExtentBase.
See geomOps for mathematical operators on Extent.
typedef Super::EigenVector lsst::geom::Extent< T, N >::EigenVector |
|
inherited |
Definition at line 57 of file CoordinateBase.h.
|
inlineexplicitnoexcept |
|
inlineexplicitnoexcept |
|
explicitnoexcept |
|
explicitnoexcept |
Explicit constructor from Extent of different type (if allowed)
|
explicitnoexcept |
|
default |
|
default |
|
default |
|
inlineprotectednoexceptinherited |
Definition at line 108 of file CoordinateBase.h.
|
inlinenoexceptinherited |
Return a fixed-size Eigen representation of the coordinate object.
The fact that this returns by const reference rather than by value should not be considered part of the API; this is merely an optimization enabled by the implementation.
Definition at line 89 of file CoordinateBase.h.
|
noexceptinherited |
|
inlineinherited |
Definition at line 80 of file CoordinateBase.h.
|
inlineinherited |
Definition at line 81 of file CoordinateBase.h.
|
inline |
Return the L2 norm of the Extent (sqrt(x^2 + y^2 + ...)).
Definition at line 243 of file Extent.h.
|
inline |
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 105 of file Extent.h.
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 120 of file Extent.h.
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 117 of file Extent.h.
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 114 of file Extent.h.
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 111 of file Extent.h.
|
noexceptinherited |
|
inlinenoexceptinherited |
Definition at line 108 of file Extent.h.
|
inlinenoexceptinherited |
Standard inequality comparison.
Returns true iff any(this->ne(other));
Definition at line 84 of file Extent.h.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
noexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
default |
|
default |
|
inlinenoexceptinherited |
Standard equality comparison.
Returns true iff all(this->eq(other));
Definition at line 77 of file Extent.h.
|
inlineinherited |
Definition at line 78 of file CoordinateBase.h.
|
inlineinherited |
Definition at line 79 of file CoordinateBase.h.
|
inlinenoexcept |
Definition at line 245 of file Extent.h.
|
inlineinherited |
Cast this object to an Extent of the same numeric type and dimensionality.
Definition at line 179 of file Extent.h.
|
related |
Floating-point comparison with tolerance.
Interface, naming, and default tolerances matches Numpy.
Definition at line 120 of file CoordinateBase.cc.
|
protectedinherited |
Definition at line 109 of file CoordinateBase.h.
|
staticinherited |
Definition at line 58 of file CoordinateBase.h.
|
staticconstexprinherited |
Definition at line 61 of file CoordinateBase.h.
|
staticconstexprinherited |
Definition at line 60 of file CoordinateBase.h.