Isis Developer Reference
Isis::Latitude Class Reference

This class is designed to encapsulate the concept of a Latitude. More...

#include <Latitude.h>

Inheritance diagram for Isis::Latitude:
Inheritance graph
Collaboration diagram for Isis::Latitude:
Collaboration graph

Public Types

enum  ErrorChecking { ThrowAllErrors = 0, AllowPastPole }
 Some user-configurable error checking parameters. More...
 
enum  CoordinateType { Planetocentric, Planetographic }
 These are the latitude coordinate systems. More...
 
enum  Units { Degrees, Radians }
 The set of usable angle measurement units. More...
 

Public Member Functions

 Latitude ()
 Create a blank Latitude object without Planetographic support. More...
 
 Latitude (double latitude, Angle::Units latitudeUnits, ErrorChecking errors=AllowPastPole)
 Create and initialize a Latitude value without planetographic support. More...
 
 Latitude (Angle latitude, ErrorChecking errors=AllowPastPole)
 Create and initialize a Latitude value in the planetocentric domain within the given angle. More...
 
 Latitude (Angle latitude, PvlGroup mapping, ErrorChecking errors=ThrowAllErrors)
 Create and initialize a latitude value using the mapping group's latitude units and radii. More...
 
 Latitude (double latitude, PvlGroup mapping, Angle::Units latitudeUnits, ErrorChecking errors=ThrowAllErrors)
 Create and initialize a latitude value using the latitude units and the mapping group's radii. More...
 
 Latitude (double latitude, Distance equatorialRadius, Distance polarRadius, CoordinateType latType=Planetocentric, Angle::Units latitudeUnits=Angle::Radians, ErrorChecking errors=ThrowAllErrors)
 Create and initialize a Latitude value with planetographic support. More...
 
 Latitude (const Latitude &latitudeToCopy)
 This copies the given latitude exactly. More...
 
 ~Latitude ()
 This cleans up the Latitude class. More...
 
double planetocentric (Angle::Units units=Angle::Radians) const
 Get the latitude in the planetocentric (universal) coordinate system. More...
 
void setPlanetocentric (double latitude, Angle::Units units=Angle::Radians)
 Set the latitude given a value in the Planetocentric coordinate system. More...
 
double planetographic (Angle::Units units=Angle::Radians) const
 Get the latitude in the planetographic coordinate system. More...
 
void setPlanetographic (double latitude, Angle::Units units=Angle::Radians)
 Set the latitude given a value in the Planetographic coordinate system. More...
 
ErrorChecking errorChecking () const
 Get the error checking status. More...
 
void setErrorChecking (ErrorChecking errors)
 Set the error checking status. More...
 
bool inRange (Latitude min, Latitude max) const
 Checks if this latitude value is within the given range. More...
 
Latitudeoperator= (const Latitude &latitudeToCopy)
 This assigns another latitude to this one - making this latitude an exact duplicate of the other. More...
 
Latitude add (Angle angleToAdd, PvlGroup mapping)
 Adds an angle to this latitude. More...
 
Latitude add (Angle angleToAdd, Distance equatorialRadius, Distance polarRadius, CoordinateType latType)
 Adds another latitude to this one. More...
 
bool isValid () const
 This indicates whether we have a legitimate angle stored or are in an unset, or invalid, state. More...
 
Angle operator+ (const Angle &angle2) const
 Add angle value to another. More...
 
Angle operator- (const Angle &angle2) const
 Subtract angle value from another and return the resulting angle. More...
 
Angle operator* (double value) const
 Multiply this angle by a double and return the resulting angle. More...
 
Angle operator* (int value) const
 Multiply this angle by an integer and return the resulting angle. More...
 
Angle operator/ (double value) const
 Divide this angle by a double. More...
 
double operator/ (Angle value) const
 Divide this angle by another angle and return the ratio. More...
 
Angle operator/ (int value) const
 Divide this angle by an integer and return the resulting angle. More...
 
bool operator< (const Angle &angle2) const
 Test if the other angle is less than the current angle. More...
 
bool operator> (const Angle &angle2) const
 Test if the other angle is greater than the current angle. More...
 
void operator+= (const Angle &angle2)
 Add angle value to another as double and replace original. More...
 
void operator-= (const Angle &angle2)
 Subtract angle value from another and set this instance to the resulting angle. More...
 
void operator*= (double value)
 Multiply this angle by a double and set this instance to the resulting angle. More...
 
void operator/= (double value)
 Divide this angle by a double and return the resulting angle. More...
 
bool operator== (const Angle &angle2) const
 Test if another angle is equal to this angle. More...
 
bool operator!= (const Angle &angle2) const
 Test if another angle is not equal to this angle. More...
 
bool operator<= (const Angle &angle2) const
 Test if the other angle is less than or equal to the current angle. More...
 
bool operator>= (const Angle &angle2) const
 Test if the other angle is greater than or equal to the current angle. More...
 
double radians () const
 Convert an angle to a double. More...
 
double degrees () const
 Get the angle in units of Degrees. More...
 
void setRadians (double radians)
 Set the angle in units of Radians. More...
 
void setDegrees (double degrees)
 Set the angle in units of Degrees. More...
 
virtual QString toString (bool includeUnits=true) const
 Get the angle in human-readable form. More...
 
double unitWrapValue (const Units &unit) const
 Return wrap value in desired units. More...
 
virtual double angle (const Units &unit) const
 Return angle value in desired units. More...
 

Static Public Member Functions

static Angle fullRotation ()
 Makes an angle to represent a full rotation (0-360 or 0-2pi). More...
 

Protected Member Functions

virtual void setAngle (const double &angle, const Angle::Units &units)
 Same as planetocentric. More...
 

Detailed Description

This class is designed to encapsulate the concept of a Latitude.

This is used primarily for surface points but is also a general purpose class. This class has error checking for past the poles. This adds the concept of 90/-90 and planetographic to the Angle class.

Author
2010-10-13 Steven Lambright

Member Enumeration Documentation

◆ CoordinateType

These are the latitude coordinate systems.

The universal system is Planetocentric and this class is heavily geared towards using them. If you wish to use Planetographic, planetary radii must be provided and at the moment latitudes past 90 aren't supported in Planetographic.

Enumerator
Planetocentric 

This is the universal (and default) latitude coordinate system.

Latitudes in this system are the angle from the the equatorial plane (the line at 0 degrees latitude) to the requested latitude.

Planetographic 

This is a secondary coordinate system for latitudes.

Latitudes in this system are angle between the equatorial plane and the perpendicular to the surface at the point. Conceptually you draw the perpendicular to the surface back to the equatorial plane and the angle created is the planetographic latitude. This doesn't differ from Planetocentric on a sphere. These latitudes require the planetary radii to work with them at all, since the radii affect the latitude values themselves.

◆ ErrorChecking

Some user-configurable error checking parameters.

This is meant to be used as a bit flag.

Example: Latitude(95, Angle::Degrees, Latitude::AllowPastPole) This will allow latitudes past 90 and not throw an exception.

Latitude(95, Angle::Degrees, Latitude::AllowPastPole | Latitude::ThrowAllErrors) This will allow latitudes past 90 still and not throw an exception.

Latitude(95, Angle::Degrees, Latitude::ThrowAllErrors) This will throw an exception.

Latitude(95, Angle::Degrees) This will throw an exception.

Enumerator
ThrowAllErrors 

Throw an exception if any problems are found.

AllowPastPole 

Don't throw an exception if a latitude beyond -90/90 is found.

◆ Units

enum Isis::Angle::Units
inherited

The set of usable angle measurement units.

Enumerator
Degrees 

Degrees are generally considered more human readable, 0-360 is one circle, however most math does not use this unit.

Use these for displaying to the user and accepting input from the user.

Radians 

Radians are generally used in mathematical equations, 0-2*PI is one circle, however these are more difficult for users to understand when displayed since they have PI in them.

This is the default unit and is necessary for most math library calls.

Constructor & Destructor Documentation

◆ Latitude() [1/7]

Isis::Latitude::Latitude ( )

Create a blank Latitude object without Planetographic support.

References AllowPastPole.

Referenced by add(), and planetographic().

◆ Latitude() [2/7]

Isis::Latitude::Latitude ( double  latitude,
Angle::Units  latitudeUnits,
ErrorChecking  errors = AllowPastPole 
)

Create and initialize a Latitude value without planetographic support.

Parameters
latitudeThe latitude value this instance will represent, in the planetocentric coordinate system
latitudeUnitsThe angular units of the latitude value (degs, rads)
errorsError checking conditions
See also
ErrorChecking
CoordinateType

References setPlanetocentric().

◆ Latitude() [3/7]

Isis::Latitude::Latitude ( Angle  latitude,
ErrorChecking  errors = AllowPastPole 
)

Create and initialize a Latitude value in the planetocentric domain within the given angle.

Parameters
latitudeThe latitude value this instance will represent
errorsError checking conditions

References Isis::Angle::Radians, Isis::Angle::radians(), and setPlanetocentric().

◆ Latitude() [4/7]

Isis::Latitude::Latitude ( Angle  latitude,
PvlGroup  mapping,
ErrorChecking  errors = ThrowAllErrors 
)

Create and initialize a latitude value using the mapping group's latitude units and radii.

Parameters
latitudeThe latitude value this instance will represent, in the mapping group's units
mappingA mapping group
errorsError checking conditions
Exceptions
IException::Unknown"Unable to create Latitude object from given mapping group."
IException::Programmer"Latitude type is not recognized"
See also
ErrorChecking
CoordinateType

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::Distance::Meters, Isis::IException::Programmer, Isis::Angle::Radians, Isis::Angle::radians(), Isis::Target::radiiGroup(), setPlanetocentric(), setPlanetographic(), Isis::toDouble(), and Isis::IException::Unknown.

◆ Latitude() [5/7]

Isis::Latitude::Latitude ( double  latitude,
PvlGroup  mapping,
Angle::Units  latitudeUnits,
ErrorChecking  errors = ThrowAllErrors 
)

Create and initialize a latitude value using the latitude units and the mapping group's radii.

Parameters
latitudeThe latitude value this instance will represent, in the mapping group's units
mappingA mapping group
latitudeUnitsThe angular units of the latitude value (degs, rads)
errorsError checking conditions
Exceptions
IException::Unknown"Unable to create Latitude object from given mapping group."
IException::Programmer"Latitude type is not recognized"
See also
ErrorChecking
CoordinateType

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::Distance::Meters, Isis::IException::Programmer, Isis::Target::radiiGroup(), setPlanetocentric(), setPlanetographic(), Isis::toDouble(), and Isis::IException::Unknown.

◆ Latitude() [6/7]

Isis::Latitude::Latitude ( double  latitude,
Distance  equatorialRadius,
Distance  polarRadius,
CoordinateType  latType = Planetocentric,
Angle::Units  latitudeUnits = Angle::Radians,
ErrorChecking  errors = ThrowAllErrors 
)

Create and initialize a Latitude value with planetographic support.

Parameters
latitudeThe latitude value this instance will represent, in planetocentric
equatorialRadiusRadius of the target (planet) at the equator
polarRadiusRadius of the target (planet) at the poles
latTypeThe coordinate system of the latitude parameter
latitudeUnitsThe angular units of the latitude value (degs, rads)
errorsError checking conditions
Exceptions
IException::Programmer"Enumeration value [latType] is not a valid CoordinateType"
See also
ErrorChecking
CoordinateType

References _FILEINFO_, Planetocentric, Planetographic, Isis::IException::Programmer, setPlanetocentric(), setPlanetographic(), and Isis::Angle::toString().

◆ Latitude() [7/7]

Isis::Latitude::Latitude ( const Latitude latitudeToCopy)

This copies the given latitude exactly.

Parameters
latitudeToCopyThe latitude we're duplicating

◆ ~Latitude()

Isis::Latitude::~Latitude ( )

This cleans up the Latitude class.

Member Function Documentation

◆ add() [1/2]

Latitude Isis::Latitude::add ( Angle  angleToAdd,
Distance  equatorialRadius,
Distance  polarRadius,
CoordinateType  latType 
)

Adds another latitude to this one.

Handles planetographic latitudes.

Parameters
angleToAddthe latitude being added to this one
equatorialRadiusRadius of the target (planet) at the equator
polarRadiusRadius of the target (planet) at the poles
latTypePlanetocentric or Planetographic
Returns
The result of adding another latitude

References Latitude(), Planetocentric, planetocentric(), Planetographic, planetographic(), Isis::Angle::Radians, and Isis::Angle::radians().

◆ add() [2/2]

Latitude Isis::Latitude::add ( Angle  angleToAdd,
PvlGroup  mapping 
)

Adds an angle to this latitude.

The adding method is determined by the latitude type.

Parameters
angleToAddthe latitude being added to this one
mappingthe mapping group from a projection
Exceptions
IException::Unknown"Unable to add angle to Latitude object from given mapping group."
IException::Programmer"Latitude type is not recognized"
Returns
The result of adding an angle to the latitude

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::Distance::Meters, Planetocentric, Planetographic, Isis::IException::Programmer, Isis::Target::radiiGroup(), Isis::toDouble(), and Isis::IException::Unknown.

Referenced by Isis::GridGraphicsItem::GridGraphicsItem().

◆ angle()

◆ degrees()

double Isis::Angle::degrees ( ) const
inlineinherited

Get the angle in units of Degrees.

Returns
A double-value representing this angle. Null if not valid.

References Isis::Angle::angle(), and Isis::Angle::Degrees.

Referenced by Isis::Angle::Angle(), Isis::Cube::attachSpiceFromIsd(), Isis::MosaicGridTool::autoGrid(), Isis::PhotometricFunction::compute(), Isis::MosaicGridTool::drawGrid(), Isis::AdjustedLatitudeFilter::evaluate(), Isis::AdjustedLongitudeFilter::evaluate(), Isis::APrioriLatitudeFilter::evaluate(), Isis::APrioriLongitudeFilter::evaluate(), Isis::Longitude::force180Domain(), Isis::Longitude::force360Domain(), Isis::BundleControlPoint::formatBundleLatitudinalOutputDetailString(), Isis::BundleTargetBody::formatBundleOutputString(), Isis::BundleControlPoint::formatBundleRectangularOutputDetailString(), Isis::AbstractPointItem::getData(), Isis::GridGraphicsItem::GridGraphicsItem(), Isis::ImageTreeWidgetItem::ImageTreeWidgetItem(), Isis::DemShape::localRadius(), Isis::MosaicControlNetTool::mouseButtonRelease(), operator<<(), Isis::ControlNetFilter::PointLatLonFilter(), Isis::MosaicGridToolConfigDialog::readSettings(), setAngle(), Isis::Angle::setDegrees(), Isis::CameraGroundMap::SetGround(), Isis::VimsGroundMap::SetGround(), Isis::UniversalGroundMap::SetGround(), Isis::Camera::SetGround(), Isis::CSMCamera::SetGround(), Isis::BundleTargetBody::setSolveSettings(), Isis::UniversalGroundMap::SetUnboundGround(), Isis::CSMCamera::subSpacecraftPoint(), TEST(), Isis::RingPlaneProjection::To180Domain(), Isis::TProjection::To180Domain(), Isis::RingPlaneProjection::To360Domain(), Isis::TProjection::To360Domain(), Isis::ControlNetVersioner::toPvl(), Isis::MosaicGridTool::toPvl(), Isis::Angle::toString(), Isis::Sensor::UniversalLatitude(), and Isis::Sensor::UniversalLongitude().

◆ errorChecking()

Latitude::ErrorChecking Isis::Latitude::errorChecking ( ) const

Get the error checking status.

This indicates if the Latitude object will throw an error when set to an angle less than -90 degrees or greater than 90 degrees.

Returns
ErrorChecking The error checking status.

◆ fullRotation()

Angle Isis::Angle::fullRotation ( )
staticinherited

Makes an angle to represent a full rotation (0-360 or 0-2pi).

Returns
the angle of 1 full rotation

References Isis::Angle::Angle(), and Isis::Angle::Degrees.

Referenced by Isis::Hillshade::shadedValue(), and Isis::Longitude::to360Range().

◆ inRange()

bool Isis::Latitude::inRange ( Latitude  min,
Latitude  max 
) const

Checks if this latitude value is within the given range.

Defines the range as the change from the minimum latitude to the maximum latitude (an angle), and returns whether the change from the minimum latitude to this latitude is less than or equal to the maximum change allowed (the range).

Parameters
minThe beginning of the valid latitude range
maxThe end of the valid latitude range
Exceptions
IException::User"The minimum latitude degrees is greater than the maximum latitude degrees"
Returns
Whether the latitude is in the given range

References _FILEINFO_, Isis::Angle::Degrees, Isis::Angle::toString(), and Isis::IException::User.

Referenced by Isis::QnetPointRangeFilter::filter().

◆ isValid()

◆ operator!=()

bool Isis::Angle::operator!= ( const Angle angle2) const
inlineinherited

Test if another angle is not equal to this angle.

Takes the negated result of the '==' operator.

Parameters
angle2The comparison angle (on right-hand-side of != operator)
Returns
true if the angle does not equal the comparision angle

◆ operator*() [1/2]

Angle Isis::Angle::operator* ( double  value) const
inherited

Multiply this angle by a double and return the resulting angle.

If this is an invalid angle, then the result will be an invalid angle.

Parameters
valueThe value to multiply to this angle
Returns
Multiplied angle

References Isis::Angle::Angle(), Isis::Angle::isValid(), Isis::Angle::Radians, and Isis::Angle::radians().

◆ operator*() [2/2]

Angle Isis::Angle::operator* ( int  value) const
inlineinherited

Multiply this angle by an integer and return the resulting angle.

Parameters
valueThe integer value to multiply with this angle
Returns
Product of the angles

◆ operator*=()

void Isis::Angle::operator*= ( double  value)
inlineinherited

Multiply this angle by a double and set this instance to the resulting angle.

Parameters
valueThe double value to multiply with this angle

◆ operator+()

Angle Isis::Angle::operator+ ( const Angle angle2) const
inherited

Add angle value to another.

If either of these are invalid angles, then the result will be an invalid angle.

Parameters
angle2The angle to add to this angle
Returns
sum angle

References Isis::Angle::Angle(), Isis::Angle::isValid(), Isis::Angle::Radians, and Isis::Angle::radians().

◆ operator+=()

void Isis::Angle::operator+= ( const Angle angle2)
inlineinherited

Add angle value to another as double and replace original.

Parameters
angle2The angle to add to this angle
Returns
sum angle, replaces original

◆ operator-()

Angle Isis::Angle::operator- ( const Angle angle2) const
inherited

Subtract angle value from another and return the resulting angle.

If either of these are invalid angles, then the result will be an invalid angle.

Parameters
angle2The angle to subtract from this angle
Returns
difference angle

References Isis::Angle::Angle(), Isis::Angle::isValid(), Isis::Angle::Radians, and Isis::Angle::radians().

◆ operator-=()

void Isis::Angle::operator-= ( const Angle angle2)
inlineinherited

Subtract angle value from another and set this instance to the resulting angle.

Parameters
angle2The angle to subtract from this angle

◆ operator/() [1/3]

double Isis::Angle::operator/ ( Angle  value) const
inherited

Divide this angle by another angle and return the ratio.

Parameters
valueThe ratio, Null if invalid
Returns
Quotient of the angles

References Isis::Angle::isValid(), Isis::Null, and Isis::Angle::radians().

◆ operator/() [2/3]

Angle Isis::Angle::operator/ ( double  value) const
inherited

Divide this angle by a double.

Parameters
valueThe double value to use as the divisor
Returns
Quotient of the angles

References Isis::Angle::Angle(), Isis::Angle::isValid(), Isis::Angle::Radians, and Isis::Angle::radians().

◆ operator/() [3/3]

Angle Isis::Angle::operator/ ( int  value) const
inlineinherited

Divide this angle by an integer and return the resulting angle.

Parameters
valueThe double value to use as the divisor
Returns
Quotient of the angles

◆ operator/=()

void Isis::Angle::operator/= ( double  value)
inlineinherited

Divide this angle by a double and return the resulting angle.

Parameters
valueThe double value to use as the divisor

◆ operator<()

bool Isis::Angle::operator< ( const Angle angle2) const
inherited

Test if the other angle is less than the current angle.

If either is invalid, then an exception will be thrown.

Parameters
angle2The comparison angle (on right-hand-side of < operator)
Returns
True if the angle is less than the comparision angle

References _FILEINFO_, Isis::Angle::angle(), Isis::Angle::isValid(), Isis::IException::Programmer, and Isis::Angle::Radians.

◆ operator<=()

bool Isis::Angle::operator<= ( const Angle angle2) const
inlineinherited

Test if the other angle is less than or equal to the current angle.

Parameters
angle2The comparison angle (on right-hand-side of < operator)
Returns
true if the angle is less than or equal to the comparision angle

◆ operator=()

Latitude & Isis::Latitude::operator= ( const Latitude latitudeToCopy)

This assigns another latitude to this one - making this latitude an exact duplicate of the other.

Parameters
latitudeToCopyThe latitude we are assigning from
Returns
A reference to the dublicate latitude

References planetocentric(), and setPlanetocentric().

◆ operator==()

bool Isis::Angle::operator== ( const Angle angle2) const
inlineinherited

Test if another angle is equal to this angle.

This does not compensate for going around a circle: Angle(360, Angle::Degrees) does not equal Angle(0, Angle::Degrees)

Invalid angles are equal to each other.

Parameters
angle2The comparison angle (on right-hand-side of == operator)
Returns
true if the angle equals the comparision angle

References Isis::Angle::angle(), and Isis::Angle::Radians.

◆ operator>()

bool Isis::Angle::operator> ( const Angle angle2) const
inherited

Test if the other angle is greater than the current angle.

If either is invalid, then an exception will be thrown.

Parameters
angle2The comparison angle (on right-hand-side of > operator)
Returns
True if the angle is greater than the comparision angle

References _FILEINFO_, Isis::Angle::angle(), Isis::Angle::isValid(), Isis::IException::Programmer, and Isis::Angle::Radians.

◆ operator>=()

bool Isis::Angle::operator>= ( const Angle angle2) const
inlineinherited

Test if the other angle is greater than or equal to the current angle.

Parameters
angle2The comparison angle (on right-hand-side of < operator)
Returns
true if the angle is greater than or equal to the comparision angle

◆ planetocentric()

double Isis::Latitude::planetocentric ( Angle::Units  units = Angle::Radians) const

Get the latitude in the planetocentric (universal) coordinate system.

Parameters
unitsThe angular units to get the latitude in
See also
CoordinateType
Returns
The Planetocentric latitude value

References Isis::Angle::angle().

Referenced by add(), operator=(), and Isis::NaifDskPlateModel::point().

◆ planetographic()

double Isis::Latitude::planetographic ( Angle::Units  units = Angle::Radians) const

Get the latitude in the planetographic coordinate system.

If this instance was not constructed with the planetary radii, then an exception will be thrown.

Parameters
unitsThe angular units to get the latitude in
Exceptions
IException::Programmer"The latitude cannot be converted to Planetographic without the planetary radii, please use the other Latitude constructor"
IException::Programmer"Latitudes outside of the -90/90 range cannot be converted between Planetographic and Planetocentric"
IException::Programmer"Invalid planetographic latitudes are not currently supported"
See also
CoordinateType
Returns
The Planetographic latitude value

References _FILEINFO_, Isis::Angle::Angle(), Isis::Angle::Degrees, Isis::Angle::isValid(), Latitude(), Isis::IException::Programmer, Isis::Angle::Radians, Isis::Angle::radians(), and Isis::Angle::toString().

Referenced by add(), Isis::MosaicGridTool::autoGrid(), Isis::GridGraphicsItem::GridGraphicsItem(), and Isis::MosaicGridToolConfigDialog::readSettings().

◆ radians()

◆ setAngle()

void Isis::Latitude::setAngle ( const double &  angle,
const Angle::Units units 
)
protectedvirtual

Same as planetocentric.

We're overriding this method in order to do -90/90 degree checking.

See also
planetocentric

operator double() const { return planetocentric(); }

Parameters
angleThe numeric value of the angle
unitsThe units the angle is in (radians or degrees typically)
Exceptions
IException::Programmer"Latitudes past 90 degrees are not valid. The latitude is not allowed"

Reimplemented from Isis::Angle.

References _FILEINFO_, AllowPastPole, Isis::Angle::Angle(), Isis::Angle::angle(), Isis::Angle::Degrees, Isis::Angle::degrees(), Isis::IsSpecial(), Isis::IException::Programmer, Isis::Angle::setAngle(), and Isis::toString().

Referenced by setPlanetocentric(), and setPlanetographic().

◆ setDegrees()

void Isis::Angle::setDegrees ( double  degrees)
inlineinherited

Set the angle in units of Degrees.

Parameters
degreesThe new angle value, Null for invalid angle

References Isis::Angle::Degrees, Isis::Angle::degrees(), and Isis::Angle::setAngle().

◆ setErrorChecking()

void Isis::Latitude::setErrorChecking ( ErrorChecking  errors)

Set the error checking status.

If set to ThrowAllErrors, then an exception will be thrown if the Latitude object is set to an angle less than -90 degrees or greater than 90 degrees. If set to AllowPastPole, then no exception will be thrown.

Parameters
errorThe new error checking status.

Referenced by Isis::GroundGrid::CreateGrid(), and Isis::GroundGrid::WalkBoundary().

◆ setPlanetocentric()

void Isis::Latitude::setPlanetocentric ( double  latitude,
Angle::Units  units = Angle::Radians 
)

Set the latitude given a value in the Planetocentric coordinate system.

Parameters
latitudeThe planetographic latitude to set ourselves to
unitsThe angular units latitude is in

References setAngle().

Referenced by Latitude(), and operator=().

◆ setPlanetographic()

void Isis::Latitude::setPlanetographic ( double  latitude,
Angle::Units  units = Angle::Radians 
)

Set the latitude given a value in the Planetographic coordinate system.

Parameters
latitudeThe planetographic latitude to set ourselves to
unitsThe angular units latitude is in
Exceptions
IException::Programmer"The latitude cannot be converted to Planetographic without the planetary radii, please use the other Latitude constructor"
IException::Programmer"Latitudes outside of the -90/90 range cannot be converted between Planetographic and Planetocentric"
IException::Programmer"Invalid planetographic latitudes are not currently supported"

References _FILEINFO_, Isis::Angle::Angle(), Isis::Angle::Degrees, Isis::IsSpecial(), Isis::IException::Programmer, Isis::Angle::Radians, Isis::Angle::radians(), setAngle(), and Isis::toString().

Referenced by Latitude().

◆ setRadians()

void Isis::Angle::setRadians ( double  radians)
inlineinherited

Set the angle in units of Radians.

Parameters
radiansThe new angle value, Null for invalid angle

References Isis::Angle::Radians, Isis::Angle::radians(), and Isis::Angle::setAngle().

Referenced by Isis::LinearAlgebra::toAxisAngle(), and Isis::LinearAlgebra::toEulerAngles().

◆ toString()

QString Isis::Angle::toString ( bool  includeUnits = true) const
virtualinherited

Get the angle in human-readable form.

Parameters
includeUnitsInclude the angle's units in the text.
Returns
A user-displayable angle string.

References Isis::Angle::degrees(), Isis::Angle::isValid(), and Isis::toString().

Referenced by inRange(), Latitude(), Isis::operator<<(), planetographic(), and Isis::Hillshade::shadedValue().

◆ unitWrapValue()

double Isis::Angle::unitWrapValue ( const Units unit) const
inherited

Return wrap value in desired units.

The 'wrap' value is the value where one circle occurs - angles greater than this are conceptually 'wrapping' back to zero. For example, this is 2*PI in radians because 2*PI == 0 on a circle. Please keep in mind we still differentiate those two angles.

Parameters
unitDesired units of the Angle wrap constant (see Angle::Units)
Returns
Wrap value in specified units

References _FILEINFO_, Isis::Angle::Degrees, Isis::PI, Isis::IException::Programmer, and Isis::Angle::Radians.

Referenced by Isis::Longitude::positiveWest(), and Isis::Longitude::setPositiveWest().


The documentation for this class was generated from the following files: