Isis 3 Programmer Reference
Latitude.h
Go to the documentation of this file.
1 #ifndef Latitude_h
2 #define Latitude_h
3 
23 #include "Angle.h"
24 
25 namespace Isis {
26  class Distance;
27  class PvlGroup;
28 
63  class Latitude : public Angle {
64  public:
88  };
89 
116  };
117 
118  Latitude();
119  Latitude(double latitude,
120  Angle::Units latitudeUnits,
121  ErrorChecking errors = AllowPastPole);
122 
123  Latitude(Angle latitude, ErrorChecking errors = AllowPastPole);
124 
125  Latitude(Angle latitude,
126  PvlGroup mapping,
127  ErrorChecking errors = ThrowAllErrors);
128 
129  Latitude(double latitude,
130  PvlGroup mapping,
131  Angle::Units latitudeUnits,
132  ErrorChecking errors = ThrowAllErrors);
133 
134  Latitude(double latitude, Distance equatorialRadius, Distance polarRadius,
135  CoordinateType latType = Planetocentric,
136  Angle::Units latitudeUnits = Angle::Radians,
137  ErrorChecking errors = ThrowAllErrors);
138 
139  Latitude(const Latitude &latitudeToCopy);
140 
141  ~Latitude();
142 
143  double planetocentric(Angle::Units units = Angle::Radians) const;
144  void setPlanetocentric(double latitude,
145  Angle::Units units = Angle::Radians);
146 
147  double planetographic(Angle::Units units = Angle::Radians) const;
148  void setPlanetographic(double latitude,
149  Angle::Units units = Angle::Radians);
150 
152  void setErrorChecking(ErrorChecking errors);
153 
154  bool inRange(Latitude min, Latitude max) const;
155 
156  Latitude& operator=(const Latitude & latitudeToCopy);
157  Latitude add(Angle angleToAdd, PvlGroup mapping);
158  Latitude add(Angle angleToAdd, Distance equatorialRadius, Distance polarRadius,
159  CoordinateType latType);
160 
170  protected:
171  virtual void setAngle(const double &angle, const Angle::Units &units);
172 
173  private:
184 
187  };
188 }
189 
190 #endif
void setErrorChecking(ErrorChecking errors)
Set the error checking status.
Definition: Latitude.cpp:433
Units
The set of usable angle measurement units.
Definition: Angle.h:66
Distance * m_polarRadius
Used for converting to Planetographic, this is the radius of the target perpendicular to the equatori...
Definition: Latitude.h:183
Don't throw an exception if a latitude beyond -90/90 is found.
Definition: Latitude.h:87
double planetographic(Angle::Units units=Angle::Radians) const
Get the latitude in the planetographic coordinate system.
Definition: Latitude.cpp:328
Latitude()
Create a blank Latitude object without Planetographic support.
Definition: Latitude.cpp:38
double planetocentric(Angle::Units units=Angle::Radians) const
Get the latitude in the planetocentric (universal) coordinate system.
Definition: Latitude.cpp:295
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
Distance measurement, usually in meters.
Definition: Distance.h:47
Throw an exception if any problems are found.
Definition: Latitude.h:85
This is the universal (and default) latitude coordinate system.
Definition: Latitude.h:103
ErrorChecking m_errors
This contains which exceptions should not be thrown.
Definition: Latitude.h:186
bool inRange(Latitude min, Latitude max) const
Checks if this latitude value is within the given range.
Definition: Latitude.cpp:452
This is a secondary coordinate system for latitudes.
Definition: Latitude.h:115
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
void setPlanetographic(double latitude, Angle::Units units=Angle::Radians)
Set the latitude given a value in the Planetographic coordinate system.
Definition: Latitude.cpp:373
void setPlanetocentric(double latitude, Angle::Units units=Angle::Radians)
Set the latitude given a value in the Planetocentric coordinate system.
Definition: Latitude.cpp:306
ErrorChecking errorChecking() const
Get the error checking status.
Definition: Latitude.cpp:420
Distance * m_equatorialRadius
Used for converting to Planetographic, this is the radius of the target on the equatorial plane...
Definition: Latitude.h:178
virtual void setAngle(const double &angle, const Angle::Units &units)
Same as planetocentric.
Definition: Latitude.cpp:596
Defines an angle and provides unit conversions.
Definition: Angle.h:62
virtual double angle(const Units &unit) const
Return angle value in desired units.
Definition: Angle.cpp:304
~Latitude()
This cleans up the Latitude class.
Definition: Latitude.cpp:273
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
ErrorChecking
Some user-configurable error checking parameters.
Definition: Latitude.h:83
CoordinateType
These are the latitude coordinate systems.
Definition: Latitude.h:97
Radians are generally used in mathematical equations, 0-2*PI is one circle, however these are more di...
Definition: Angle.h:80
Latitude add(Angle angleToAdd, PvlGroup mapping)
Adds an angle to this latitude.
Definition: Latitude.cpp:516
Latitude & operator=(const Latitude &latitudeToCopy)
This assigns another latitude to this one - making this latitude an exact duplicate of the other...
Definition: Latitude.cpp:480