core/vcsl/vcsl_geographic.h
Go to the documentation of this file.
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_