LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
|
An affine coordinate transformation consisting of a linear transformation and an offset. More...
#include <AffineTransform.h>
Public Types | |
enum | Parameters { XX =0, YX =1, XY =2, YY =3, X =4, Y =5 } |
typedef boost::shared_ptr < AffineTransform > | Ptr |
typedef boost::shared_ptr < AffineTransform const > | ConstPtr |
typedef Eigen::Matrix3d | Matrix |
typedef Eigen::Matrix< double, 6, 1 > | ParameterVector |
typedef Eigen::Matrix< double, 2, 6 > | TransformDerivativeMatrix |
Static Public Member Functions | |
static AffineTransform | makeScaling (double s) |
Construct a new AffineTransform that represents a uniform scaling. More... | |
static AffineTransform | makeScaling (double s, double t) |
Construct a new AffineTransform that represents a non-uniform scaling. More... | |
static AffineTransform | makeRotation (Angle t) |
Construct a new AffineTransform that represents a CCW rotation in radians. More... | |
static AffineTransform | makeTranslation (Extent2D translation) |
Construct a new AffineTransform that represents a pure translation. More... | |
Private Attributes | |
LinearTransform | _linear |
Extent2D | _translation |
An affine coordinate transformation consisting of a linear transformation and an offset.
The transform is represented by a matrix \( \mathbf{M} \) such that
\[ \left[\begin{array}{ c } x_f \\ y_f \\ 1 \end{array}\right] = \mathbf{M} \left[\begin{array}{ c } x_i \\ y_i \\ 1 \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 c } \displaystyle\frac{\partial x_f}{\partial x_i} & \displaystyle\frac{\partial x_f}{\partial y_i} & x_f \\ \displaystyle\frac{\partial y_f}{\partial x_i} & \displaystyle\frac{\partial y_f}{\partial y_i} & y_f \\ \displaystyle 0 & \displaystyle 0 & \displaystyle 1 \end{array}\right] \]
evaluated at \((x_i,y_i)\).
The 2x2 upper left corner of \( \mathbf{M} \) is the linear part of the transform is simply the Jacobian of the mapping between \((x_i,y_i)\) and \((x_f,y_f)\).
Definition at line 77 of file AffineTransform.h.
typedef boost::shared_ptr<AffineTransform const> lsst::afw::geom::AffineTransform::ConstPtr |
Definition at line 80 of file AffineTransform.h.
typedef Eigen::Matrix3d lsst::afw::geom::AffineTransform::Matrix |
Definition at line 84 of file AffineTransform.h.
typedef Eigen::Matrix<double,6,1> lsst::afw::geom::AffineTransform::ParameterVector |
Definition at line 85 of file AffineTransform.h.
typedef boost::shared_ptr<AffineTransform> lsst::afw::geom::AffineTransform::Ptr |
Definition at line 79 of file AffineTransform.h.
typedef Eigen::Matrix<double,2,6> lsst::afw::geom::AffineTransform::TransformDerivativeMatrix |
Definition at line 86 of file AffineTransform.h.
|
inline |
Construct an empty (identity) AffineTransform.
Definition at line 90 of file AffineTransform.h.
|
inlineexplicit |
Construct an AffineTransform from a 3x3 matrix.
Definition at line 93 of file AffineTransform.h.
|
inlineexplicit |
Construct an AffineTransform with no translation from a 2x2 matrix.
Definition at line 99 of file AffineTransform.h.
|
inlineexplicit |
Construct a translation-only AffineTransform from a vector.
Definition at line 103 of file AffineTransform.h.
|
inlineexplicit |
Construct an AffineTransform from a 2x2 matrix and vector.
Definition at line 107 of file AffineTransform.h.
|
inlineexplicit |
Construct an AffineTransform from a LinearTransform.
Definition at line 112 of file AffineTransform.h.
|
inlineexplicit |
Construct a translation-only AffineTransform from an Extent2D.
Definition at line 116 of file AffineTransform.h.
|
inlineexplicit |
Construct an AffineTransform from a LinearTransform and Extent2D.
Definition at line 120 of file AffineTransform.h.
TransformDerivativeMatrix lsst::afw::geom::AffineTransform::dTransform | ( | Point2D const & | input | ) | const |
TransformDerivativeMatrix lsst::afw::geom::AffineTransform::dTransform | ( | Extent2D const & | input | ) | const |
|
inline |
Definition at line 152 of file AffineTransform.h.
|
inline |
Definition at line 153 of file AffineTransform.h.
Matrix const lsst::afw::geom::AffineTransform::getMatrix | ( | ) | const |
ParameterVector const lsst::afw::geom::AffineTransform::getParameterVector | ( | ) | const |
|
inline |
Definition at line 149 of file AffineTransform.h.
|
inline |
Definition at line 150 of file AffineTransform.h.
AffineTransform const lsst::afw::geom::AffineTransform::invert | ( | ) | const |
|
inline |
Whether the transform is a no-op.
Definition at line 128 of file AffineTransform.h.
|
inlinestatic |
Construct a new AffineTransform that represents a CCW rotation in radians.
Definition at line 227 of file AffineTransform.h.
|
inlinestatic |
Construct a new AffineTransform that represents a uniform scaling.
Definition at line 195 of file AffineTransform.h.
|
inlinestatic |
Construct a new AffineTransform that represents a non-uniform scaling.
Definition at line 212 of file AffineTransform.h.
|
inlinestatic |
Construct a new AffineTransform that represents a pure translation.
Definition at line 243 of file AffineTransform.h.
Transform a Point object.
The result is affected by the translation parameters of the transform
Definition at line 136 of file AffineTransform.h.
Transform an Extent object.
The result is unaffected by the translation parameters of the transform
Definition at line 145 of file AffineTransform.h.
|
inline |
Construct a new AffineTransform from two others: (B * A)(p) = B(A(p))
Definition at line 170 of file AffineTransform.h.
|
inline |
Definition at line 177 of file AffineTransform.h.
|
inline |
Definition at line 160 of file AffineTransform.h.
|
inline |
Definition at line 163 of file AffineTransform.h.
void lsst::afw::geom::AffineTransform::setParameterVector | ( | ParameterVector const & | vector | ) |
|
private |
Definition at line 252 of file AffineTransform.h.
|
private |
Definition at line 253 of file AffineTransform.h.