22 #ifndef LSST_GEOM_LINEAR_TRANSFORM_H 23 #define LSST_GEOM_LINEAR_TRANSFORM_H 26 #include "Eigen/Geometry" 77 typedef Eigen::Matrix<double, 2, 2, Eigen::DontAlign>
Matrix;
108 _matrix =
other._matrix;
117 _matrix +=
other._matrix;
128 _matrix -=
other._matrix;
143 ParameterVector
const getParameterVector()
const noexcept;
149 void setParameterVector(ParameterVector
const& vector) noexcept;
151 Matrix
const&
getMatrix() const noexcept {
return _matrix; }
155 double const&
operator[](
int i)
const {
return const_cast<Matrix&
>(_matrix)(i % 2, i / 2); }
171 double computeDeterminant()
const noexcept;
174 bool isIdentity() const noexcept {
return getMatrix().isIdentity(); }
195 TransformDerivativeMatrix dTransform(
Point2D const& input)
const noexcept;
199 return dTransform(
Point2D(input));
211 #endif // !LSST_GEOM_LINEAR_TRANSFORM_H
A class representing an angle.
Point< double, 2 > Point2D
A base class for image defects.
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Typedefs to be used for probability and parameter values.
std::ostream & operator<<(std::ostream &os, lsst::geom::AffineTransform const &transform)
ItemVariant const * other
Extent< double, 2 > Extent2D
#define LSST_EXCEPTION_TYPE(t, b, c)
Macro used to define new types of exceptions without additional data.
Reports errors that are due to events beyond the control of the program.