OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimMollweidProjection.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 // Calls Geotrans Mollweid projection code.
10 //*******************************************************************
11 // $Id: ossimMollweidProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimMollweidProojection_HEADER
14 #define ossimMollweidProojection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
23  ossimMollweidProjection(const ossimEllipsoid& ellipsoid,
24  const ossimGpt& origin,
25  const double falseEasting,
26  const double falseNorthing);
27 
29 
30  virtual ossimObject *dup()const{return new ossimMollweidProjection(*this);}
31 
32  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
33  virtual ossimDpt forward(const ossimGpt &latLon)const;
34  virtual void update();
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  void setCentralMeridian(double centralMeridian);
58 
59  double getFalseEasting()const{return Moll_False_Easting;}
60  double getFalseNorthing()const{return Moll_False_Northing;}
61 
66  virtual bool saveState(ossimKeywordlist& kwl,
67  const char* prefix=0)const;
68 
73  virtual bool loadState(const ossimKeywordlist& kwl,
74  const char* prefix=0);
75 
77  virtual bool operator==(const ossimProjection& projection) const;
78 
79 private:
80 
81  //__________________GEOTRANS______________________
82  mutable double Moll_a; /* Semi-major axis of ellipsoid in meters */
83  mutable double Moll_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 Sqrt2_Ra; /* sqrt(2.0) * Spherical Radius(6371007.1810824) */
88  mutable double Sqrt8_Ra; /* sqrt(8.0) * Spherical Radius(6371007.1810824) */
89 
90 /* Mollweide projection Parameters */
91  mutable double Moll_Origin_Long; /* Longitude of origin in radians */
92  mutable double Moll_False_Easting;
93  mutable double Moll_False_Northing;
94  mutable double Moll_Delta_Northing;
95  mutable double Moll_Max_Easting;
96  mutable double Moll_Min_Easting;
97 
113  long Set_Mollweide_Parameters(double a,
114  double f,
115  double Central_Meridian,
116  double False_Easting,
117  double False_Northing);
118 
119 
133  void Get_Mollweide_Parameters(double *a,
134  double *f,
135  double *Central_Meridian,
136  double *False_Easting,
137  double *False_Northing)const;
138 
139 
152  long Convert_Geodetic_To_Mollweide (double Latitude,
153  double Longitude,
154  double *Easting,
155  double *Northing)const;
156 
157 
170  long Convert_Mollweide_To_Geodetic(double Easting,
171  double Northing,
172  double *Latitude,
173  double *Longitude)const;
174 
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 ossimObject * dup() const
virtual ossimGpt inverse(const ossimDpt &projectedPoint) const =0
Will take a point in meters and convert it to ground.
virtual bool operator==(const ossimProjection &projection) const
Compares this to arg projection and returns TRUE if the same.
#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).