24 #ifndef LSST_MEAS_ASTROM_PolynomialTransform_INCLUDED
25 #define LSST_MEAS_ASTROM_PolynomialTransform_INCLUDED
27 #include "ndarray/eigen.h"
28 #include "lsst/afw/geom/AffineTransform.h"
30 namespace lsst {
namespace meas {
namespace astrom {
32 class SipForwardTransform;
33 class SipReverseTransform;
34 class ScaledPolynomialTransform;
71 ndarray::Array<double const,2,2>
const & xCoeffs,
72 ndarray::Array<double const,2,2>
const & yCoeffs
107 int getOrder()
const {
return _xCoeffs.rows() - 1; }
115 ndarray::Array<double const,2,2>
getXCoeffs()
const {
return _xCoeffs.shallow(); }
123 ndarray::Array<double const,2,2>
getYCoeffs()
const {
return _yCoeffs.shallow(); }
128 afw::geom::AffineTransform
linearize(afw::geom::Point2D
const & in)
const;
133 afw::geom::Point2D
operator()(afw::geom::Point2D
const & in)
const;
146 ndarray::EigenView<double,2,2> _xCoeffs;
147 ndarray::EigenView<double,2,2> _yCoeffs;
148 mutable Eigen::VectorXd _u;
149 mutable Eigen::VectorXd _v;
199 afw::geom::AffineTransform
const & inputScaling,
200 afw::geom::AffineTransform
const & outputScalingInverse
225 afw::geom::AffineTransform
linearize(afw::geom::Point2D
const & in)
const;
230 afw::geom::Point2D
operator()(afw::geom::Point2D
const & in)
const;
235 afw::geom::AffineTransform _inputScaling;
236 afw::geom::AffineTransform _outputScalingInverse;
257 #endif // !LSST_MEAS_ASTROM_PolynomialTransform_INCLUDED
PolynomialTransform compose(afw::geom::AffineTransform const &t1, PolynomialTransform const &t2)
Return a PolynomialTransform that is equivalent to the composition t1(t2())