23 #ifndef LSST_AFW_GEOM_LINEAR_TRANSFORM_H
24 #define LSST_AFW_GEOM_LINEAR_TRANSFORM_H
27 #include "Eigen/Geometry"
37 LSST_EXCEPTION_TYPE(SingularTransformException, lsst::pex::exceptions::RuntimeError, lsst::afw::geom::SingularTransformException)
78 typedef Eigen::Matrix<double,2,2,Eigen::DontAlign>
Matrix;
86 LinearTransform
operator*(LinearTransform
const & other)
const {
87 return LinearTransform(getMatrix() * other.
getMatrix());
92 return LinearTransform((Matrix() << s, 0.0, 0.0, s).finished());
96 return LinearTransform((Matrix() << s, 0.0, 0.0, t).finished());
100 return LinearTransform(Matrix(Eigen::Rotation2D<double>(t.
asRadians())));
103 LinearTransform &
operator=(LinearTransform
const & other) {
108 ParameterVector
const getParameterVector()
const;
109 void setParameterVector(ParameterVector
const & vector);
116 return const_cast<Matrix&
>(_matrix)(i % 2, i / 2);
120 LinearTransform
const invert()
const;
122 double computeDeterminant()
const;
143 TransformDerivativeMatrix dTransform(
Point2D const & input)
const;
147 return dTransform(
Point2D(input));
158 #endif // !LSST_AFW_GEOM_LINEAR_TRANSFORM_H
A coordinate class intended to represent absolute positions.
std::ostream & operator<<(std::ostream &os, lsst::afw::geom::AffineTransform const &transform)
Extent< double, 2 > Extent2D
EigenVector const & asEigen() const
Return a fixed-size Eigen representation of the coordinate object.
Point< double, 2 > Point2D
#define LSST_EXCEPTION_TYPE(t, b, c)