LSSTApplications  11.0-22-g33de520,13.0+153,14.0+52,14.0+57,14.0-1-g013352c+36,14.0-1-g13ef843+9,14.0-1-g4b114ac+14,14.0-1-g7257b6a+12,14.0-1-g8b7e855+51,14.0-13-g7a60b79+2,14.0-14-g87d16e8+10,14.0-14-gbf7a6f8a,14.0-17-g4f4ea82+5,14.0-2-g319577b+11,14.0-2-ga5af9b6+10,14.0-22-gc48c03f+3,14.0-3-g20413be+3,14.0-46-g76222d5f+3,14.0-47-g0a51fac97,14.0-5-g744ff5f+2,14.0-5-g86eb1bd+31,14.0-6-gd5b81a9+6,14.0-6-ge2c9487+42,14.0-8-g7f6dd6b+6,14.0-8-gb81b6e9+4,14.0-9-g11010eb,14.0-9-g330837b+5
LSSTDataManagementBasePackage
DistortedTanWcs.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 /*
3  * LSST Data Management System
4  * Copyright 2008, 2009, 2010 LSST Corporation.
5  *
6  * This product includes software developed by the
7  * LSST Project (http://www.lsst.org/).
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the LSST License Statement and
20  * the GNU General Public License along with this program. If not,
21  * see <http://www.lsstcorp.org/LegalNotices/>.
22  */
23 #ifndef LSST_AFW_IMAGE_DISTORTEDTANWCS_H
24 #define LSST_AFW_IMAGE_DISTORTEDTANWCS_H
25 
26 #include "lsst/afw/image/TanWcs.h"
27 #include "lsst/afw/geom.h"
28 
29 namespace lsst {
30 namespace afw {
31 namespace image {
32 
49 class DistortedTanWcs : public TanWcs {
50 public:
52 
64  DistortedTanWcs(TanWcs const &tanWcs, Transform const &pixelsToTanPixels);
65 
68  DistortedTanWcs &operator=(DistortedTanWcs const &) = delete;
70 
71  virtual ~DistortedTanWcs() = default;
72 
74  virtual std::shared_ptr<Wcs> clone() const;
75 
77  bool operator==(Wcs const &other) const;
78 
80  virtual void flipImage(int flipLR, int flipTB, lsst::afw::geom::Extent2I dimensions) const;
81 
83  virtual void rotateImageBy90(int nQuarter, lsst::afw::geom::Extent2I dimensions) const;
84 
86  virtual void shiftReferencePixel(double dx, double dy);
87 
88  bool isPersistable() const { return false; }
89 
90  bool hasDistortion() const { return true; }
91 
94 
97  return std::make_shared<Transform>(*_pixelsToTanPixelsPtr);
98  }
99 
100 protected:
108  virtual void pixelToSkyImpl(double pixel1, double pixel2, geom::Angle skyTmp[2]) const;
109 
116  virtual geom::Point2D skyToPixelImpl(geom::Angle sky1, geom::Angle sky2) const;
117 
118 private:
119  std::shared_ptr<Transform> _pixelsToTanPixelsPtr; // Transform that converts from PIXELS to TAN_PIXELS
120  // coordinates in the forward direction
121 };
122 }
123 }
124 } // namespace lsst::afw::image
125 
126 #endif
virtual void pixelToSkyImpl(double pixel1, double pixel2, geom::Angle skyTmp[2]) const
Worker routine for skyToPixel.
std::shared_ptr< Wcs > getTanWcs() const
return the pure tan WCS component
virtual std::shared_ptr< Wcs > clone() const
Polymorphic deep-copy.
virtual void shiftReferencePixel(double dx, double dy)
Implementation of the WCS standard for a any projection.
Definition: Wcs.h:104
bool operator==(Wcs const &other) const
std::shared_ptr< Transform > getPixelToTanPixel() const
return the PIXELS to TAN_PIXELS Transform
virtual geom::Point2D skyToPixelImpl(geom::Angle sky1, geom::Angle sky2) const
Worker routine for pixelToSky.
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:44
virtual void flipImage(int flipLR, int flipTB, lsst::afw::geom::Extent2I dimensions) const
A class representing an angle.
Definition: Angle.h:102
A base class for image defects.
Definition: cameraGeom.dox:3
Implementation of the WCS standard for the special case of the Gnomonic (tangent plane) projection...
Definition: TanWcs.h:68
DistortedTanWcs & operator=(DistortedTanWcs const &)=delete
virtual void rotateImageBy90(int nQuarter, lsst::afw::geom::Extent2I dimensions) const
Combination of a TAN WCS and a distortion model.
std::shared_ptr< Transform > _pixelsToTanPixelsPtr
virtual ~DistortedTanWcs()=default
Transform LSST spatial data, such as Point2D and IcrsCoord, using an AST transform.
Definition: Transform.h:69
bool isPersistable() const
Whether the Wcs is persistable using afw::table::io archives.
std::shared_ptr< Wcs > clone() const override
Polymorphic deep-copy.
DistortedTanWcs(TanWcs const &tanWcs, Transform const &pixelsToTanPixels)
Construct a DistortedTanWcs.