OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimProjection.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts (gpotts@imagelinks.com)
6 //
7 // Description: Base class for all projections (2D-to-3D transform)
8 //
9 //*******************************************************************
10 // $Id: ossimProjection.h 23297 2015-05-05 20:32:16Z dburken $
11 #ifndef ossimProjection_HEADER
12 #define ossimProjection_HEADER 1
13 
14 #include <ossim/base/ossimObject.h>
16 #include <ossim/base/ossimString.h>
18 #include <ossim/base/ossimGpt.h>
19 #include <ossim/base/ossimDpt.h>
22 #include <ossim/base/ossimRefPtr.h>
23 #include <iosfwd>
24 
26 {
27 public:
32  virtual ~ossimProjection() {}
33 
34  virtual ossimObject *dup()const=0;
35 
41  virtual ossimGpt origin()const=0;
42 
47  virtual ossimDpt forward(const ossimGpt &wp) const; //inline below
48  virtual ossimGpt inverse(const ossimDpt &pp) const; //inline below
49 
54  virtual void worldToLineSample(const ossimGpt& worldPoint,
55  ossimDpt& lineSampPt) const = 0;
56 
61  virtual void lineSampleToWorld(const ossimDpt& lineSampPt,
62  ossimGpt& worldPt) const = 0;
63 
70  virtual void lineSampleHeightToWorld(const ossimDpt& lineSampPt,
71  const double& heightAboveEllipsoid,
72  ossimGpt& worldPt) const = 0;
73 
74  virtual void getRoundTripError(const ossimDpt& imagePoint,
75  ossimDpt& errorResult)const;
76 
77  virtual void getRoundTripError(const ossimGpt& groundPoint,
78  ossimDpt& errorResult)const;
79 
80  virtual std::ostream& print(std::ostream& out) const;
81 
82  virtual void getGroundClipPoints(ossimGeoPolygon& gpts)const;
87  virtual bool saveState(ossimKeywordlist& kwl,
88  const char* prefix=0)const;
89 
90  virtual bool loadState(const ossimKeywordlist& kwl,
91  const char* prefix=0);
92 
93  virtual bool isEqualTo(const ossimObject& obj, ossimCompareType compareType = OSSIM_COMPARE_FULL)const
94  {
95  return ossimObject::isEqualTo(obj, compareType);
96  }
97 
102  virtual bool operator==(const ossimProjection& projection) const=0;
103  virtual bool operator!=(const ossimProjection& projection) const {return !(*this == projection);}
104 
108  virtual ossimDpt getMetersPerPixel() const=0;
109 
115  virtual bool isAffectedByElevation() const=0;
116 
117 protected:
118 
119 
120  TYPE_DATA
121 };
122 
123 //====================== BEGIN INLINE DEFINITIONS ===========================
124 
125 //*****************************************************************************
126 // INLINE METHOD: ossimProjection::forward()
127 // Projects ground point to 2D plane.
128 //*****************************************************************************
130 {
131  ossimDpt p;
132  worldToLineSample(wp, p);
133  return p;
134 }
135 
136 //*****************************************************************************
137 // INLINE METHOD: ossimProjection::inverse()
138 // Inverse projection from 2D plane to ground point.
139 //*****************************************************************************
141 {
142  ossimGpt g;
143  lineSampleToWorld(pp, g);
144  return g;
145 }
146 
147 #endif
virtual bool isEqualTo(const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimObject.cpp:95
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
virtual ossimGpt inverse(const ossimDpt &pp) const
ossimCompareType
virtual bool isEqualTo(const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
#define TYPE_DATA
Definition: ossimRtti.h:339
bool operator==(const ossimRefPtr< _Tp1 > &__a, const ossimRefPtr< _Tp2 > &__b) noexcept
Definition: ossimRefPtr.h:101
virtual bool operator!=(const ossimProjection &projection) const
virtual ossimDpt forward(const ossimGpt &wp) const
virtual ossimObject * dup() const
Definition: ossimObject.cpp:29
virtual void lineSampleToWorld(const ossimDpt &lineSampPt, ossimGpt &worldPt) const =0
virtual void worldToLineSample(const ossimGpt &worldPoint, ossimDpt &lineSampPt) const =0
virtual ~ossimProjection()
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23