|
Isis 3.0 Developer's Reference (API) |
Home |
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