USGS

Isis 3.0 Developer's Reference (API)

Home

Longitude.h

Go to the documentation of this file.
00001 #ifndef Longitude_h
00002 #define Longitude_h
00003 
00023 #include "Angle.h"
00024 #include <QList>
00025 #include <QPair>
00026 
00027 namespace Isis {
00028   class PvlGroup;
00029 
00052   class Longitude : public Angle {
00053     public:
00058       enum Direction {
00060         PositiveEast,
00062         PositiveWest
00063       };
00064 
00074       enum Domain {
00076         Domain360,
00078         Domain180
00079       };
00080 
00081       Longitude();
00082       Longitude(double longitude,
00083                 Angle::Units longitudeUnits,
00084                 Direction lonDir = PositiveEast,
00085                 Domain lonDomain = Domain360);
00086       Longitude(Angle longitude,
00087                 Direction lonDir = PositiveEast,
00088                 Domain lonDomain = Domain360);
00089       Longitude(double longitude,
00090                 PvlGroup mapping,
00091                 Angle::Units longitudeUnits);
00092       Longitude(const Longitude &longitudeToCopy);
00093       ~Longitude();
00094 
00095       double positiveEast(Angle::Units units = Angle::Radians) const;
00096       void setPositiveEast(double longitude,
00097                            Angle::Units units = Angle::Radians);
00098       double positiveWest(Angle::Units units = Angle::Radians) const;
00099       void setPositiveWest(double longitude,
00100                            Angle::Units units = Angle::Radians);
00101 
00102       Longitude force180Domain() const;
00103       Longitude force360Domain() const;
00104 
00105       bool inRange(Longitude min, Longitude max) const;
00106       static QList< QPair<Longitude, Longitude> > to360Range(Longitude startLon, Longitude endLon);
00107 
00117       Longitude& operator=(const Longitude & longitudeToCopy);
00118 
00119     private:
00123       Domain m_currentDomain;
00124   };
00125 }
00126 
00127 #endif