00001 #ifndef vcsl_geographic_h_ 00002 #define vcsl_geographic_h_ 00003 //: 00004 // \file 00005 // \brief Represent a location relative to the earth 00006 // \author François BERTEL 00007 // 00008 // \verbatim 00009 // Modifications 00010 // 2000/06/29 François BERTEL Creation. Adapted from IUE 00011 // 2001/04/10 Ian Scott (Manchester) Converted perceps header to doxygen 00012 // 2004/09/17 Peter Vanroose made spheroid() non-virtual - it just returns a member and should not be overloaded 00013 // 2004/09/17 Peter Vanroose do not pass vcsl_spheroid objects; use vcsl_spheroid_sptr instead 00014 // \endverbatim 00015 00016 #include <vcsl/vcsl_spatial.h> 00017 #include <vcsl/vcsl_geographic_sptr.h> 00018 #include <vcsl/vcsl_spheroid_sptr.h> 00019 00020 //: Represent a location relative to the earth 00021 // 3D coordinate system that is intended to represent a location relative to 00022 // the earth, although its use is not restricted to earthbound coordinate 00023 // systems. See the book "Map Projections Used by the U.S. Geological Survey" 00024 // (Snyder, John P., "Map Projections Used by the U.S. Geological Survey," 00025 // Geological Survey Bulletin 1532, U.S. Government Printing Office, 00026 // Washington, 1982.) for further detail on most of these coordinate systems. 00027 class vcsl_geographic 00028 :public vcsl_spatial 00029 { 00030 //*************************************************************************** 00031 // Constructors/Destructor 00032 //*************************************************************************** 00033 00034 protected: 00035 // Default constructor 00036 vcsl_geographic(); 00037 00038 public: 00039 // Destructor 00040 virtual ~vcsl_geographic() {} 00041 00042 //*************************************************************************** 00043 // Status report 00044 //*************************************************************************** 00045 00046 //: Return the spheroid 00047 vcsl_spheroid_sptr spheroid() const { return spheroid_; } 00048 00049 //*************************************************************************** 00050 // Status setting 00051 //*************************************************************************** 00052 00053 //: Set the spheroid 00054 void set_spheroid(vcsl_spheroid_sptr const& s) { spheroid_=s; } 00055 00056 protected: 00057 //*************************************************************************** 00058 // Implementation 00059 //*************************************************************************** 00060 00061 //: Spheroid 00062 vcsl_spheroid_sptr spheroid_; 00063 }; 00064 00065 #endif // vcsl_geographic_h_