OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimEckert6Projection.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //
7 // Description:
8 //
9 // Calls Geotrans Eckert6 projection code.
10 //*******************************************************************
11 // $Id: ossimEckert6Projection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimEckert6Projection_HEADER
14 #define ossimEckert6Projection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
23  ossimEckert6Projection(const ossimEllipsoid& ellipsoid,
24  const ossimGpt& origin,
25  double falseEasting,
26  double falseNorthing);
28  virtual ossimObject *dup()const{return new ossimEckert6Projection(*this);}
29 
30  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
31  virtual ossimDpt forward(const ossimGpt &latLon)const;
32  virtual void update();
33 
38  void setFalseEasting(double falseEasting);
39 
44  void setFalseNorthing(double falseNorthing);
45 
51  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
52 
53  double getFalseEasting()const{return Eck6_False_Easting;}
54  double getFalseNorthing()const{return Eck6_False_Northing;}
55 
60  void setDefaults();
61 
62  void setCentralMeridian(double centralMeridian);
63 
68  virtual bool saveState(ossimKeywordlist& kwl,
69  const char* prefix=0)const;
70 
75  virtual bool loadState(const ossimKeywordlist& kwl,
76  const char* prefix=0);
77 
78 private:
79 
80  //__________________GEOTRANS STUFF____________________
81 
82  mutable double Eck6_a; /* Semi-major axis of ellipsoid in meters */
83  mutable double Eck6_f; /* Flattening of ellipsoid */
84  mutable double es2; /* Eccentricity (0.08181919084262188000) squared */
85  mutable double es4; /* es2 * es2 */
86  mutable double es6; /* es4 * es2 */
87  mutable double Ra_Over_Sqrt_Two_Plus_PI; /* Ra(6371007.1810824)/Sqrt(2.0 + PI) */
88  mutable double Inv_Ra_Over_Sqrt_Two_Plus_PI; /* Sqrt(2.0 + PI)/Ra(6371007.1810824) */
89 
90 
91 /* Eckert6 projection Parameters */
92  mutable double Eck6_Origin_Long; /* Longitude of origin in radians */
93  mutable double Eck6_False_Easting;
94  mutable double Eck6_False_Northing;
95  mutable double Eck6_Delta_Northing;
96  mutable double Eck6_Max_Easting;
97  mutable double Eck6_Min_Easting;
98 
99 
115  long Set_Eckert6_Parameters(double a,
116  double f,
117  double Central_Meridian,
118  double False_Easting,
119  double False_Northing);
120 
121 
135  void Get_Eckert6_Parameters(double *a,
136  double *f,
137  double *Central_Meridian,
138  double *False_Easting,
139  double *False_Northing)const;
140 
141 
154  long Convert_Geodetic_To_Eckert6 (double Latitude,
155  double Longitude,
156  double *Easting,
157  double *Northing)const;
158 
159 
172  long Convert_Eckert6_To_Geodetic(double Easting,
173  double Northing,
174  double *Latitude,
175  double *Longitude)const;
176 
177 
178 TYPE_DATA
179 };
180 
181 #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