OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimStereographicProjection.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:
8 //
9 //*******************************************************************
10 // $Id: ossimStereographicProjection.h 17815 2010-08-03 13:23:14Z dburken $
11 
12 #ifndef ossimStereographicProjection_HEADER
13 #define ossimStereographicProjection_HEADER
14 
16 
18 {
19 public:
21  const ossimGpt& origin = ossimGpt());
23  const ossimGpt& origin,
24  const double falseEasting,
25  const double falseNorthing);
27  virtual ossimObject *dup()const
28  {
29  return new ossimStereographicProjection(*this);
30  }
31 
32  virtual void update();
33  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
34  virtual ossimDpt forward(const ossimGpt &latLon)const;
35 
40  void setFalseEasting(double falseEasting);
41 
46  void setFalseNorthing(double falseNorthing);
47 
53  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
54 
55  void setDefaults();
56 
57  double getFalseEasting()const{return Stereo_False_Easting;}
58  double getFalseNorthing()const{return Stereo_False_Northing;}
59 
64  virtual bool saveState(ossimKeywordlist& kwl,
65  const char* prefix=0)const;
66 
71  virtual bool loadState(const ossimKeywordlist& kwl,
72  const char* prefix=0);
73 private:
74 
75 /************************************************************************/
76 /* GLOBAL DECLARATIONS
77  *
78  */
79 /* Ellipsoid Parameters, default to WGS 84 */
80 mutable double Stereo_a; /* Semi-major axis of ellipsoid, in meters */
81 mutable double Stereo_f; /* Flattening of ellipsoid */
82 mutable double Stereo_Ra; /* Spherical Radius */
83 mutable double Two_Stereo_Ra; /* 2 * Spherical Radius */
84 mutable long Stereo_At_Pole; /* Flag variable */
85 
86 /* Stereographic projection Parameters */
87 mutable double Stereo_Origin_Lat; /* Latitude of origin, in radians */
88 mutable double Stereo_Origin_Long; /* Longitude of origin, in radians */
89 mutable double Stereo_False_Easting; /* False easting, in meters */
90 mutable double Stereo_False_Northing; /* False northing, in meters */
91 mutable double Sin_Stereo_Origin_Lat; /* sin(Stereo_Origin_Lat) */
92 mutable double Cos_Stereo_Origin_Lat; /* cos(Stereo_Origin_Lat) */
93 
94 /* Maximum variance for easting and northing values for WGS 84. */
95 mutable double Stereo_Delta_Easting;
96 mutable double Stereo_Delta_Northing;
97 
113 long Set_Stereographic_Parameters (double a,
114  double f,
115  double Origin_Latitude,
116  double Central_Meridian,
117  double False_Easting,
118  double False_Northing);
119 
135 void Get_Stereographic_Parameters(double *a,
136  double *f,
137  double *Origin_Latitude,
138  double *Central_Meridian,
139  double *False_Easting,
140  double *False_Northing)const;
141 
154 long Convert_Geodetic_To_Stereographic (double Latitude,
155  double Longitude,
156  double *Easting,
157  double *Northing)const;
158 
171 long Convert_Stereographic_To_Geodetic(double Easting,
172  double Northing,
173  double *Latitude,
174  double *Longitude)const;
175 
176 TYPE_DATA
177 };
178 
179 #endif
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual ossimGpt inverse(const ossimDpt &projectedPoint) const =0
Will take a point in meters and convert it to ground.
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).
virtual ossimObject * dup() const