1 //******************************************************************* 2 // 3 // License: See top level LICENSE.txt file. 4 // 5 // DESCRIPTION: 6 // Contains declaration of class ossimGeoid. Maintains a grid of elevation 7 // offsets for the geoid (mean sea level) relative to WGS-84 ellipsoid. 8 // 9 // SOFTWARE HISTORY: 10 //> 11 // 17Apr2001 Oscar Kramer 12 // Initial coding. 13 //< 14 //***************************************************************************** 15 16 #ifndef ossimGeoid_HEADER 17 #define ossimGeoid_HEADER 18 19 #include <ossim/base/ossimObject.h> 20 #include <ossim/base/ossimErrorStatusInterface.h> 21 22 class ossimGpt; 23 class ossimFilename; 24 25 class OSSIMDLLEXPORT ossimGeoid : public ossimObject, 26 public ossimErrorStatusInterface 27 { 28 public: 29 ossimGeoid(); 30 31 virtual bool open(const ossimFilename& dir, ossimByteOrder byteOrder=OSSIM_BIG_ENDIAN) = 0; 32 33 /** 34 * @return The offset from the ellipsoid to the geoid. Returns 35 * ossim::nan() if grid does not contain the point. 36 */ 37 virtual double offsetFromEllipsoid(const ossimGpt& gpt) = 0; 38 39 protected: 40 virtual ~ossimGeoid(); 41 42 TYPE_DATA 43 }; 44 45 /** 46 * Identity geoid. 47 */ 48 class OSSIM_DLL ossimIdentityGeoid : public ossimGeoid 49 { 50 public: getShortName()51 virtual ossimString getShortName()const 52 { 53 return ossimString("identity"); 54 } open(const ossimFilename &,ossimByteOrder)55 virtual bool open(const ossimFilename& /*dir*/, ossimByteOrder) 56 { 57 return false; // can't be opened 58 } offsetFromEllipsoid(const ossimGpt &)59 virtual double offsetFromEllipsoid(const ossimGpt& /*gpt*/) 60 { 61 return 0.0; 62 } 63 64 TYPE_DATA 65 }; 66 #endif 67