LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
|
A 2D linear coordinate transformation. More...
#include <LinearTransform.h>
Public Types | |
enum | Parameters { XX = 0 , YX = 1 , XY = 2 , YY = 3 } |
typedef Eigen::Matrix< double, 4, 1 > | ParameterVector |
typedef Eigen::Matrix< double, 2, 4 > | TransformDerivativeMatrix |
typedef Eigen::Matrix< double, 4, 4 > | ProductDerivativeMatrix |
typedef Eigen::Matrix< double, 2, 2, Eigen::DontAlign > | Matrix |
Public Member Functions | |
LinearTransform () noexcept | |
Construct an empty (identity) LinearTransform. | |
LinearTransform (Matrix const &matrix) noexcept | |
Construct an LinearTransform from an Eigen::Matrix. | |
LinearTransform (LinearTransform const &other) noexcept | |
LinearTransform (LinearTransform &&other) noexcept | |
~LinearTransform () noexcept=default | |
LinearTransform | operator* (LinearTransform const &other) const noexcept |
LinearTransform & | operator= (LinearTransform const &other) noexcept |
LinearTransform & | operator= (LinearTransform &&other) noexcept |
LinearTransform & | operator+= (LinearTransform const &other) noexcept |
LinearTransform | operator+ (LinearTransform const &other) noexcept |
LinearTransform & | operator-= (LinearTransform const &other) noexcept |
LinearTransform | operator- (LinearTransform const &other) noexcept |
ParameterVector const | getParameterVector () const noexcept |
Return the transform matrix elements as a parameter vector. | |
void | setParameterVector (ParameterVector const &vector) noexcept |
Set the transform matrix elements from a parameter vector. | |
Matrix const & | getMatrix () const noexcept |
Matrix & | getMatrix () noexcept |
double & | operator[] (int i) |
double const & | operator[] (int i) const |
LinearTransform const | inverted () const |
Return the inverse transform. | |
double | computeDeterminant () const noexcept |
Return the determinant of the 2x2 matrix. | |
bool | isIdentity () const noexcept |
Whether the transform is a no-op. | |
Point2D | operator() (Point2D const &p) const noexcept |
Transform a Point2D object. | |
Extent2D | operator() (Extent2D const &p) const noexcept |
Transform a Extent2D object. | |
double | applyX (double x, double y) const noexcept |
Transform a point given and returned as separate double values. | |
double | applyY (double x, double y) const noexcept |
TransformDerivativeMatrix | dTransform (Point2D const &input) const noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Point). | |
TransformDerivativeMatrix | dTransform (Extent2D const &input) const noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Extent);. | |
Static Public Member Functions | |
static LinearTransform | makeScaling (double s) noexcept |
static LinearTransform | makeScaling (double s, double t) noexcept |
static LinearTransform | makeRotation (Angle t) noexcept |
A 2D linear coordinate transformation.
The transform is represented by a matrix \( \mathbf{M} \) such that
\[ \left[\begin{array}{ c } x_f \\ y_f \end{array}\right] = \mathbf{M} \left[\begin{array}{ c } x_i \\ y_i \end{array}\right] \]
where \((x_i,y_i)\) are the input coordinates and \((x_f,y_f)\) are the output coordinates.
If \( x_f(x_i,y_i) \) and \( y_f(x_i,y_i) \) are continuous differentiable functions, then
\[ \mathbf{M} = \left[\begin{array}{ c c } \displaystyle\frac{\partial x_f}{\partial x_i} & \displaystyle\frac{\partial x_f}{\partial y_i} \\ \displaystyle\frac{\partial y_f}{\partial x_i} & \displaystyle\frac{\partial y_f}{\partial y_i} \end{array}\right] \]
evaluated at \((x_i,y_i)\).
Definition at line 69 of file LinearTransform.h.
typedef Eigen::Matrix<double, 2, 2, Eigen::DontAlign> lsst::geom::LinearTransform::Matrix |
Definition at line 77 of file LinearTransform.h.
typedef Eigen::Matrix<double, 4, 1> lsst::geom::LinearTransform::ParameterVector |
Definition at line 73 of file LinearTransform.h.
typedef Eigen::Matrix<double, 4, 4> lsst::geom::LinearTransform::ProductDerivativeMatrix |
Definition at line 75 of file LinearTransform.h.
typedef Eigen::Matrix<double, 2, 4> lsst::geom::LinearTransform::TransformDerivativeMatrix |
Definition at line 74 of file LinearTransform.h.
|
inlinenoexcept |
Construct an empty (identity) LinearTransform.
Definition at line 80 of file LinearTransform.h.
|
inlineexplicitnoexcept |
Construct an LinearTransform from an Eigen::Matrix.
Definition at line 83 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 86 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 87 of file LinearTransform.h.
|
defaultnoexcept |
|
inlinenoexcept |
Transform a point given and returned as separate double values.
This interface is intended primarily for use in Python (where it is vectorized to support NumPy array arguments).
Definition at line 195 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 196 of file LinearTransform.h.
|
noexcept |
Return the determinant of the 2x2 matrix.
Definition at line 54 of file LinearTransform.cc.
|
inlinenoexcept |
Derivative of (*this)(input) with respect to the transform elements (for Extent);.
Definition at line 205 of file LinearTransform.h.
|
noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Point).
Definition at line 56 of file LinearTransform.cc.
|
inlinenoexcept |
Definition at line 151 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 152 of file LinearTransform.h.
|
noexcept |
Return the transform matrix elements as a parameter vector.
The elements will be ordered XX, YX, XY, YY
Definition at line 32 of file LinearTransform.cc.
LinearTransform const lsst::geom::LinearTransform::inverted | ( | ) | const |
Return the inverse transform.
lsst::geom::SingularTransformException | if not invertible |
Definition at line 45 of file LinearTransform.cc.
|
inlinenoexcept |
|
inlinestaticnoexcept |
Definition at line 102 of file LinearTransform.h.
|
inlinestaticnoexcept |
Definition at line 94 of file LinearTransform.h.
|
inlinestaticnoexcept |
Definition at line 98 of file LinearTransform.h.
Transform a Extent2D object.
This operation is equivalent to applying the LinearTransform to an lsst::geom::Point
Definition at line 186 of file LinearTransform.h.
Transform a Point2D object.
This operation is equivalent to applying the LinearTransform to an lsst::geom::Extent
Definition at line 178 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 90 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 121 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 116 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 132 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 127 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 111 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 107 of file LinearTransform.h.
|
inline |
Definition at line 154 of file LinearTransform.h.
|
inline |
Definition at line 155 of file LinearTransform.h.
|
noexcept |