LSSTApplications
18.1.0
LSSTDataManagementBasePackage
|
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. More... | |
LinearTransform (Matrix const &matrix) noexcept | |
Construct an LinearTransform from an Eigen::Matrix. More... | |
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. More... | |
void | setParameterVector (ParameterVector const &vector) noexcept |
Set the transform matrix elements from a parameter vector. More... | |
Matrix const & | getMatrix () const noexcept |
Matrix & | getMatrix () noexcept |
double & | operator[] (int i) |
double const & | operator[] (int i) const |
double | computeDeterminant () const noexcept |
Return the determinant of the 2x2 matrix. More... | |
bool | isIdentity () const noexcept |
Whether the transform is a no-op. More... | |
Point2D | operator() (Point2D const &p) const noexcept |
Transform a Point2D object. More... | |
Extent2D | operator() (Extent2D const &p) const noexcept |
Transform a Extent2D object. More... | |
TransformDerivativeMatrix | dTransform (Point2D const &input) const noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Point). More... | |
TransformDerivativeMatrix | dTransform (Extent2D const &input) const noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Extent);. More... | |
LinearTransform const | inverted () const |
Return the inverse transform. More... | |
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 |
|
noexcept |
Return the determinant of the 2x2 matrix.
Definition at line 54 of file LinearTransform.cc.
|
noexcept |
Derivative of (*this)(input) with respect to the transform elements (for Point).
Definition at line 56 of file LinearTransform.cc.
|
inlinenoexcept |
Derivative of (*this)(input) with respect to the transform elements (for Extent);.
Definition at line 198 of file LinearTransform.h.
|
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 |
Whether the transform is a no-op.
Definition at line 174 of file LinearTransform.h.
|
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 Point2D object.
This operation is equivalent to applying the LinearTransform to an lsst::geom::Extent
Definition at line 182 of file LinearTransform.h.
Transform a Extent2D object.
This operation is equivalent to applying the LinearTransform to an lsst::geom::Point
Definition at line 190 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 107 of file LinearTransform.h.
|
inlinenoexcept |
Definition at line 111 of file LinearTransform.h.
|
inline |
Definition at line 154 of file LinearTransform.h.
|
inline |
Definition at line 155 of file LinearTransform.h.
|
noexcept |
Set the transform matrix elements from a parameter vector.
The parameter vector is ordered XX, YX, XY, YY
Definition at line 38 of file LinearTransform.cc.