Isis 3 Programmer Reference
Longitude.h
1 #ifndef Longitude_h
2 #define Longitude_h
3 
9 /* SPDX-License-Identifier: CC0-1.0 */
10 
11 #include "Angle.h"
12 #include <QList>
13 #include <QPair>
14 
15 namespace Isis {
16  class PvlGroup;
17 
40  class Longitude : public Angle {
41  public:
46  enum Direction {
51  };
52 
62  enum Domain {
66  Domain180
67  };
68 
69  Longitude();
70  Longitude(double longitude,
71  Angle::Units longitudeUnits,
72  Direction lonDir = PositiveEast,
73  Domain lonDomain = Domain360);
74  Longitude(Angle longitude,
75  Direction lonDir = PositiveEast,
76  Domain lonDomain = Domain360);
77  Longitude(double longitude,
78  PvlGroup mapping,
79  Angle::Units longitudeUnits);
80  Longitude(const Longitude &longitudeToCopy);
81  ~Longitude();
82 
83  double positiveEast(Angle::Units units = Angle::Radians) const;
84  void setPositiveEast(double longitude,
86  double positiveWest(Angle::Units units = Angle::Radians) const;
87  void setPositiveWest(double longitude,
89 
90  Longitude force180Domain() const;
91  Longitude force360Domain() const;
92 
93  bool inRange(Longitude min, Longitude max) const;
95 
105  Longitude& operator=(const Longitude & longitudeToCopy);
106 
107  private:
112  };
113 }
114 
115 #endif
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::Longitude::positiveWest
double positiveWest(Angle::Units units=Angle::Radians) const
Get the longitude in the PositiveWest coordinate system.
Definition: Longitude.cpp:158
Isis::Longitude::positiveEast
double positiveEast(Angle::Units units=Angle::Radians) const
Get the longitude in the PositiveEast coordinate system.
Definition: Longitude.cpp:146
Isis::Longitude::operator=
Longitude & operator=(const Longitude &longitudeToCopy)
Same as positiveEast.
Definition: Longitude.cpp:252
Isis::Longitude::Domain180
@ Domain180
As the longitude increases the actual position is more west.
Definition: Longitude.h:66
Isis::Longitude::Domain360
@ Domain360
As the longitude increases the actual position is more east.
Definition: Longitude.h:64
Isis::Longitude::force180Domain
Longitude force180Domain() const
This returns a longitude that is constricted to -180 to 180 degrees.
Definition: Longitude.cpp:289
Isis::Longitude::setPositiveEast
void setPositiveEast(double longitude, Angle::Units units=Angle::Radians)
Set the longitude given a value in the PositiveEast longitude system.
Definition: Longitude.cpp:199
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::Longitude::m_currentDomain
Domain m_currentDomain
This is necessary for converting to PositiveWest and back.
Definition: Longitude.h:111
Isis::Longitude::~Longitude
~Longitude()
This cleans up the Longitude class.
Definition: Longitude.cpp:135
Isis::PvlGroup
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
Isis::Longitude::setPositiveWest
void setPositiveWest(double longitude, Angle::Units units=Angle::Radians)
Set the longitude given a value in the PositiveWest longitude system.
Definition: Longitude.cpp:210
Isis::Angle::Units
Units
The set of usable angle measurement units.
Definition: Angle.h:49
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
Isis::Longitude::Direction
Direction
Possible longitude directions: Is a positive longitude towards east or towards west?
Definition: Longitude.h:46
Isis::Longitude::to360Range
static QList< QPair< Longitude, Longitude > > to360Range(Longitude startLon, Longitude endLon)
Calculates where the longitude range is in 0-360.
Definition: Longitude.cpp:364
Isis::Longitude::PositiveWest
@ PositiveWest
As the longitude increases the actual position is more west.
Definition: Longitude.h:50
Isis::Longitude::Domain
Domain
Use LongitudeDomain360 if 0-360 is the primary range of the longitude values with 180 being the 'cent...
Definition: Longitude.h:62
Isis::Longitude::Longitude
Longitude()
Create a blank Longitude object with 0-360 domain.
Definition: Longitude.cpp:24
Isis::Longitude::force360Domain
Longitude force360Domain() const
This returns a longitude that is constricted to 0-360 degrees.
Definition: Longitude.cpp:267
Isis::Longitude::PositiveEast
@ PositiveEast
As the longitude increases the actual position is more east.
Definition: Longitude.h:48
Isis::Angle::Radians
@ Radians
Radians are generally used in mathematical equations, 0-2*PI is one circle, however these are more di...
Definition: Angle.h:63
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Longitude::inRange
bool inRange(Longitude min, Longitude max) const
Checks if this longitude value is within the given range.
Definition: Longitude.cpp:319