LSSTApplications  16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
LSSTDataManagementBasePackage
GridTransform.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008, 2009, 2010 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
25 #ifndef LSST_AFW_GEOM_ELLIPSES_GridTransform_h_INCLUDED
26 #define LSST_AFW_GEOM_ELLIPSES_GridTransform_h_INCLUDED
27 
28 /*
29  * Definitions for Ellipse::GridTransform and BaseCore::GridTransform.
30  *
31  * Note: do not include directly; use the main ellipse header file.
32  */
33 
34 #include "Eigen/Eigenvalues"
35 
38 
39 namespace lsst {
40 namespace afw {
41 namespace geom {
42 namespace ellipses {
43 
49 public:
51  typedef Eigen::Matrix<double, 4, 3> DerivativeMatrix;
52 
54  explicit GridTransform(BaseCore const& input);
55 
57  operator lsst::geom::LinearTransform() const;
58 
61 
63  DerivativeMatrix d() const;
64 
66  double getDeterminant() const;
67 
69 
77 
78 private:
79  BaseCore const& _input;
80  Eigen::SelfAdjointEigenSolver<Eigen::Matrix2d> _eig;
81 };
82 
88 public:
90  typedef Eigen::Matrix<double, 6, 5> DerivativeMatrix;
91 
93  explicit GridTransform(Ellipse const& input);
94 
97 
99  DerivativeMatrix d() const;
100 
102  double getDeterminant() const;
103 
105  operator lsst::geom::AffineTransform() const;
106 
110 
111 private:
112  Ellipse const& _input;
113  BaseCore::GridTransform _coreGt;
114 };
115 
117  return BaseCore::GridTransform(*this);
118 }
119 
121  return Ellipse::GridTransform(*this);
122 }
123 } // namespace ellipses
124 } // namespace geom
125 } // namespace afw
126 } // namespace lsst
127 
128 #endif // !LSST_AFW_GEOM_ELLIPSES_GridTransform_h_INCLUDED
A temporary-only expression object representing an lsst::geom::LinearTransform that maps the ellipse ...
Definition: GridTransform.h:48
An affine coordinate transformation consisting of a linear transformation and an offset.
Eigen::Matrix< double, 2, 2, Eigen::DontAlign > Matrix
GridTransform const getGridTransform() const
Return the transform that maps the ellipse to the unit circle.
DerivativeMatrix d() const
Return the derivative of the transform with respect to input core.
double getDeterminant() const
Return the determinant of the lsst::geom::LinearTransform.
Eigen::Matrix< double, 4, 3 > DerivativeMatrix
Matrix type for derivative with respect to ellipse parameters.
Definition: GridTransform.h:51
A base class for image defects.
An ellipse defined by an arbitrary BaseCore and a center point.
Definition: Ellipse.h:51
lsst::geom::LinearTransform invert() const
Return the inverse of the lsst::geom::LinearTransform;.
Definition: GridTransform.h:75
GridTransform(BaseCore const &input)
Standard constructor.
GridTransform const getGridTransform() const
Return the transform that maps the ellipse to the unit circle.
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size...
Definition: BaseCore.h:55
lsst::geom::LinearTransform inverted() const
Return the inverse of the lsst::geom::LinearTransform;.
A temporary-only expression object representing an lsst::geom::AffineTransform that maps the Ellipse ...
Definition: GridTransform.h:87
lsst::geom::AffineTransform invert() const
Eigen::Matrix< double, 6, 5 > DerivativeMatrix
Matrix type for derivative with respect to input ellipse parameters.
Definition: GridTransform.h:90
lsst::geom::LinearTransform::Matrix getMatrix() const
Return the transform matrix as an Eigen object.
A 2D linear coordinate transformation.