Isis 3 Programmer Reference
|
Planar Map Projection. More...
#include <Planar.h>
Public Types | |
enum | RingLongitudeDirection { Clockwise, CounterClockwise } |
This enum defines the types of ring longitude directions supported in this class. More... | |
enum | ProjectionType { Triaxial, RingPlane } |
This enum defines the subclasses of Projection supported in Isis. More... | |
Public Member Functions | |
Planar (Pvl &label, bool allowDefaults=false) | |
TODO: correct documentation in this file. More... | |
~Planar () | |
Destroys the Planar object. More... | |
bool | operator== (const Projection &proj) |
Compares two Projection objects to see if they are equal. More... | |
QString | Name () const |
Returns the name of the map projection, "Planar". More... | |
QString | Version () const |
Returns the version of the map projection. More... | |
double | TrueScaleRingRadius () const |
Returns the center radius, in meters. More... | |
double | CenterRingLongitude () const |
Returns the center longitude, in degrees. More... | |
double | CenterRingRadius () const |
Returns the center radius, in meters. More... | |
bool | SetGround (const double ringRadius, const double ringLongitude) |
This method is used to set the radius/azimuth (assumed to be of the correct RingLongitudeDirection, a nd RingLongitudeDomain. More... | |
bool | SetCoordinate (const double x, const double y) |
This method is used to set the projection x/y. More... | |
bool | XYRange (double &minX, double &maxX, double &minY, double &maxY) |
This method is used to determine the x/y range which completely covers the area of interest specified by the radius/longitude range. More... | |
PvlGroup | Mapping () |
This function returns the keywords that this projection uses. More... | |
PvlGroup | MappingRingRadii () |
This function returns the radius keywords that this projection uses. More... | |
PvlGroup | MappingRingLongitudes () |
This function returns the azimuth keywords that this projection uses. More... | |
double | LocalRadius () const |
This returns a local radius. More... | |
bool | IsClockwise () const |
This indicates if the longitude direction type is positive west (as opposed to postive east). More... | |
bool | IsCounterClockwise () const |
This indicates if the longitude direction type is positive east (as opposed to postive west). More... | |
std::string | RingLongitudeDirectionString () const |
This method returns the ring longitude direction as a string. More... | |
bool | Has180Domain () const |
This indicates if the longitude domain is -180 to 180 (as opposed to 0 to 360). More... | |
bool | Has360Domain () const |
This indicates if the ring longitude domain is 0 to 360 (as opposed to -180 to 180). More... | |
std::string | RingLongitudeDomainString () const |
This method returns the ring longitude domain as a string. More... | |
double | MinimumRingRadius () const |
This returns the minimum radius of the area of interest. More... | |
double | MaximumRingRadius () const |
This returns the maximum radius of the area of interest. More... | |
double | MinimumRingLongitude () const |
This returns the minimum ring longitude of the area of interest. More... | |
double | MaximumRingLongitude () const |
This returns the maximum ring longitude of the area of interest. More... | |
double | RingRadius () const |
This returns a radius. More... | |
double | RingLongitude () const |
This returns a ring longitude with correct ring longitude direction and domain as specified in the label object. More... | |
bool | SetUniversalGround (const double ringRadius, const double ringLongitude) |
This method is used to set the ring radius/longitude which must be PositiveEast/Domain360 (ring longitude). More... | |
double | UniversalRingRadius () |
This returns a universal radius, which is just the radius in meters. More... | |
double | UniversalRingLongitude () |
This returns a universal ring longitude (clockwise in 0 to 360 domain). More... | |
double | Scale () const |
This method returns the scale for mapping world coordinates into projection coordinates. More... | |
bool | operator!= (const Projection &proj) |
This method determines whether two map projection objects are not equal. More... | |
void | setProjectionType (const ProjectionType ptype) |
Sets the projection subclass type. More... | |
ProjectionType | projectionType () const |
Returns an enum value for the projection type. More... | |
bool | IsSky () const |
Returns true if projection is sky and false if it is land. More... | |
virtual bool | IsEquatorialCylindrical () |
This method returns true if the projection is equatorial cylindrical. More... | |
bool | HasGroundRange () const |
This indicates if the longitude direction type is positive west (as opposed to postive east). More... | |
double | Rotation () const |
Returns the value of the Rotation keyword from the mapping group. More... | |
void | SetWorldMapper (WorldMapper *mapper) |
If desired the programmer can use this method to set a world mapper to be used in the SetWorld, WorldX, and WorldY methods. More... | |
bool | IsGood () const |
This indicates if the last invocation of SetGround, SetCoordinate, SetUniversalGround, or SetWorld was with successful or not. More... | |
double | XCoord () const |
This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. More... | |
double | YCoord () const |
This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. More... | |
virtual bool | SetUnboundUniversalGround (const double coord1, const double coord2) |
This method is used to set the lat/lon or radius/azimuth (i.e. More... | |
bool | SetWorld (const double x, const double y) |
This method is used to set a world coordinate. More... | |
double | WorldX () const |
This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. More... | |
double | WorldY () const |
This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. More... | |
double | ToWorldX (const double projectionX) const |
This method converts a projection x value to a world x value. More... | |
double | ToWorldY (const double projectionY) const |
This method converts a projection y value to a world y value. More... | |
double | ToProjectionX (const double worldX) const |
This method converts a world x value to a projection x value. More... | |
double | ToProjectionY (const double worldY) const |
This method converts a world y value to a projection y value. More... | |
double | Resolution () const |
This method returns the resolution for mapping world coordinates into projection coordinates. More... | |
void | SetUpperLeftCorner (const Displacement &x, const Displacement &y) |
This method is used to find the XY range for oblique aspect projections (non-polar projections) by "walking" around each of the min/max lat/lon. More... | |
Static Public Member Functions | |
static double | ToClockwise (const double ringLongitude, const int domain) |
This method converts an ring longitude into the clockwise direction. More... | |
static double | ToCounterClockwise (const double ringLongitude, const int domain) |
This method converts an ring longitude into the counterclockwise direction. More... | |
static double | To180Domain (const double lon) |
This method converts a ring longitude into the -180 to 180 domain. More... | |
static double | To360Domain (const double lon) |
This method converts an ring longitude into the 0 to 360 domain. More... | |
static double | ToHours (double angle) |
Converts the given angle (in degrees) to hours by using the ratio 15 degrees per hour. More... | |
static QString | ToDMS (double angle) |
Converts the given angle (in degrees) to degrees, minutes, seconds. More... | |
static QString | ToHMS (double angle) |
Converts the given angle (in degrees) to hours, minutes, seconds. More... | |
Protected Member Functions | |
void | XYRangeCheck (const double ringRadius, const double ringLongitude) |
This convience function is established to assist in the development of the XYRange virtual method. More... | |
void | SetXY (double x, double y) |
This protected method is a helper for derived classes. More... | |
void | SetComputedXY (double x, double y) |
This protected method is a helper for derived classes. More... | |
double | GetX () const |
Calculates the unrotated form of current x value. More... | |
double | GetY () const |
Calculates the unrotated form of the current y value. More... | |
double | PixelResolution () const |
Returns the pixel resolution value from the PVL mapping group in meters/pixel. More... | |
Protected Attributes | |
double | m_ringRadius |
This contain a ring radius value in m. More... | |
double | m_ringLongitude |
This contain a ring longitude value. More... | |
RingLongitudeDirection | m_ringLongitudeDirection |
An enumerated type indicating the LongitudeDirection read from the labels. More... | |
int | m_ringLongitudeDomain |
This integer is either 180 or 360 and is read from the labels. More... | |
double | m_minimumRingRadius |
Contains the minimum ring radius for the entire ground range. More... | |
double | m_maximumRingRadius |
Contains the maximum ring radius for the entire ground range. More... | |
double | m_minimumRingLongitude |
Contains the minimum longitude for the entire ground range. More... | |
double | m_maximumRingLongitude |
Contains the maximum longitude for the entire ground range. More... | |
WorldMapper * | m_mapper |
This points to a mapper passed into the SetWorldMapper method. More... | |
bool | m_good |
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid. More... | |
bool | m_sky |
Indicates whether projection is sky or land. More... | |
bool | m_groundRangeGood |
Indicates if the ground range (min/max lat/lons) were read from the labels. More... | |
double | m_minimumX |
The data elements m_minimumX, m_minimumY, m_maximumX, and m_maximumY are convience data elements when you write the XYRange virtual function. More... | |
double | m_maximumX |
See minimumX description. More... | |
double | m_minimumY |
See minimumX description. More... | |
double | m_maximumY |
See minimumX description. More... | |
PvlGroup | m_mappingGrp |
Mapping group that created this projection. More... | |
Private Attributes | |
double | m_centerRingLongitude |
The center longitude for the map projection. More... | |
double | m_centerRingRadius |
The center radius for the map projection. More... | |
Planar Map Projection.
This class provides methods for the forward and inverse equations of an Planar map projection.
The Orthographic projection is an azimuthal projection. Latitudes and longitudes are ellipses, circles, or straight lines. Only one hemisphere can be projected. Scale is true at the point (center latitude, center longitude).
See the Projection class for a full accounting of all the methods available.
2012-08-09 Ken Edmundson - initial version
2012-01-20 Debbie A. Cook - Changed to use RingPlaneProjection instead of Projection. References #775.
2016-08-28 Kelvin Rodriguez - Removed several redundant var=var lines causing warnings in clang. Part of porting to OS X 10.11.
|
inherited |
This enum defines the subclasses of Projection supported in Isis.
Enumerator | |
---|---|
Triaxial | These projections are used to map triaxial and irregular-shaped bodies. |
RingPlane | These projections are used to map ring planes. |
Definition at line 182 of file Projection.h.
|
inherited |
This enum defines the types of ring longitude directions supported in this class.
Enumerator | |
---|---|
Clockwise | Ring longitude values increase in the clockwise direction. |
CounterClockwise | Ring longitude values increase in the counterclockwise direction. |
Definition at line 194 of file RingPlaneProjection.h.
Isis::Planar::Planar | ( | Pvl & | label, |
bool | allowDefaults = false |
||
) |
TODO: correct documentation in this file.
Constructs an Planar object
label | This argument must be a Label containing the proper mapping information as indicated in the Projection class. Additionally, the orthographic projection requires the center longitude to be defined in the keyword CenterRingLongitude. |
allowDefaults | If set to false the constructor expects that a keyword of CenterRingLongitude will be in the label. Otherwise it will attempt to compute the center longitude using the middle of the azimuth range specified in the labels. Defaults to false. |
IException |
Definition at line 55 of file Planar.cpp.
References _FILEINFO_, Isis::RingPlaneProjection::Clockwise, Isis::DEG2RAD, Isis::PvlObject::findGroup(), Isis::PvlContainer::hasKeyword(), Isis::IException::Io, m_centerRingLongitude, m_centerRingRadius, Isis::RingPlaneProjection::m_maximumRingLongitude, Isis::RingPlaneProjection::m_maximumRingRadius, Isis::RingPlaneProjection::m_minimumRingLongitude, Isis::RingPlaneProjection::m_minimumRingRadius, Isis::RingPlaneProjection::m_ringLongitudeDirection, Isis::RingPlaneProjection::m_ringRadius, Isis::toString(), and Isis::PvlObject::Traverse.
Isis::Planar::~Planar | ( | ) |
Destroys the Planar object.
Definition at line 94 of file Planar.cpp.
double Isis::Planar::CenterRingLongitude | ( | ) | const |
Returns the center longitude, in degrees.
Definition at line 148 of file Planar.cpp.
References Isis::RingPlaneProjection::Clockwise, m_centerRingLongitude, Isis::RingPlaneProjection::m_ringLongitudeDirection, and Isis::RAD2DEG.
double Isis::Planar::CenterRingRadius | ( | ) | const |
Returns the center radius, in meters.
Definition at line 160 of file Planar.cpp.
References m_centerRingRadius.
|
protectedinherited |
Calculates the unrotated form of current x value.
Definition at line 833 of file Projection.cpp.
References Isis::Projection::m_rotation, Isis::Projection::m_x, Isis::Projection::m_y, and Isis::PI.
Referenced by Isis::RingCylindrical::SetCoordinate(), Isis::Mollweide::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::TransverseMercator::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), and Isis::Orthographic::SetCoordinate().
|
protectedinherited |
Calculates the unrotated form of the current y value.
Definition at line 844 of file Projection.cpp.
References Isis::Projection::m_rotation, Isis::Projection::m_x, Isis::Projection::m_y, and Isis::PI.
Referenced by Isis::RingCylindrical::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::TransverseMercator::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), and Isis::Orthographic::SetCoordinate().
|
inherited |
This indicates if the longitude domain is -180 to 180 (as opposed to 0 to 360).
The ring longitude domain was obtained from the label during object construction.
Definition at line 341 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringLongitudeDomain.
Referenced by Isis::RingPlaneProjection::operator==().
|
inherited |
This indicates if the ring longitude domain is 0 to 360 (as opposed to -180 to 180).
The ring longitude domain was obtained from the label during object construction.
Definition at line 352 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringLongitudeDomain.
|
inherited |
This indicates if the longitude direction type is positive west (as opposed to postive east).
The longitude type was obtained from the label during object construction.
lon | Longitude to convert into the -180 to 180 domain. |
IException::Unknown | - "The given longitude is invalid." |
lon | Longitude to convert into the 0 to 360 domain. |
Definition at line 364 of file Projection.cpp.
References Isis::Projection::m_groundRangeGood.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::RingPlaneProjection::Mapping(), Isis::TProjection::MappingLatitudes(), Isis::TProjection::MappingLongitudes(), Isis::RingCylindrical::MappingRingLongitudes(), MappingRingLongitudes(), Isis::RingPlaneProjection::MappingRingLongitudes(), Isis::RingCylindrical::MappingRingRadii(), MappingRingRadii(), Isis::RingPlaneProjection::MappingRingRadii(), Isis::ProjectionFactory::RingsCreateForCube(), and Isis::TProjection::xyRangeOblique().
|
inherited |
This indicates if the longitude direction type is positive west (as opposed to postive east).
The longitude type was obtained from the label during object construction.
Definition at line 226 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::Clockwise, and Isis::RingPlaneProjection::m_ringLongitudeDirection.
Referenced by Isis::RingPlaneProjection::operator==().
|
inherited |
This indicates if the longitude direction type is positive east (as opposed to postive west).
The longitude type was obtained from the label during object construction.
Definition at line 237 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::CounterClockwise, and Isis::RingPlaneProjection::m_ringLongitudeDirection.
|
virtualinherited |
This method returns true if the projection is equatorial cylindrical.
In other words, if the projection is cylindrical and an image projected at 0 is the same as an image projected at 360.
Reimplemented in Isis::TProjection, Isis::Equirectangular, Isis::SimpleCylindrical, Isis::Mercator, and Isis::RingCylindrical.
Definition at line 237 of file Projection.cpp.
Referenced by Isis::ShapeModelFactory::create(), and Isis::ProcessMapMosaic::StartProcess().
|
inherited |
This indicates if the last invocation of SetGround, SetCoordinate, SetUniversalGround, or SetWorld was with successful or not.
If there was success then the Latitude, Longitude, XCoord, YCoord, UniversalLatitude, UniversalLongitude, WorldX, and WorldY methods can be utilized.
Definition at line 389 of file Projection.cpp.
References Isis::Projection::m_good.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::Chip::Load(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::SubArea::UpdateLabel(), Isis::RingPlaneProjection::XYRangeCheck(), and Isis::TProjection::XYRangeCheck().
|
inherited |
Returns true if projection is sky and false if it is land.
Definition at line 223 of file Projection.cpp.
References Isis::Projection::m_sky.
Referenced by Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetImage(), Isis::Camera::SetRightAscensionDeclination(), and Isis::AdvancedTrackTool::updateRow().
|
virtualinherited |
This returns a local radius.
The method can only be used if SetGround, SetCoordinate, SetUniversalGround, or SetWorld return with success. Success can also be checked using the IsGood method.
Implements Isis::Projection.
Definition at line 533 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringRadius.
|
virtual |
This function returns the keywords that this projection uses.
Reimplemented from Isis::RingPlaneProjection.
Definition at line 450 of file Planar.cpp.
References Isis::RingPlaneProjection::Clockwise, m_centerRingLongitude, m_centerRingRadius, Isis::RingPlaneProjection::m_ringLongitudeDirection, Isis::RingPlaneProjection::Mapping(), Isis::RAD2DEG, and Isis::toString().
|
virtual |
This function returns the azimuth keywords that this projection uses.
Reimplemented from Isis::RingPlaneProjection.
Definition at line 482 of file Planar.cpp.
References Isis::Projection::HasGroundRange(), Isis::Projection::m_mappingGrp, and Isis::RingPlaneProjection::MappingRingLongitudes().
|
virtual |
This function returns the radius keywords that this projection uses.
Reimplemented from Isis::RingPlaneProjection.
Definition at line 467 of file Planar.cpp.
References Isis::Projection::HasGroundRange(), Isis::Projection::m_mappingGrp, and Isis::RingPlaneProjection::MappingRingRadii().
|
inherited |
This returns the maximum ring longitude of the area of interest.
The value was obtained from the labels during object construction. This method can only be used if HasGroundRange returns a true.
Definition at line 453 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_maximumRingLongitude.
|
inherited |
This returns the maximum radius of the area of interest.
The value was obtained from the labels during object construction. This method can only be used if HasGroundRange returns a true.
Definition at line 431 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_maximumRingRadius.
|
inherited |
This returns the minimum ring longitude of the area of interest.
The value was obtained from the labels during object construction. This method can only be used if HasGroundRange returns a true.
Definition at line 442 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_minimumRingLongitude.
|
inherited |
This returns the minimum radius of the area of interest.
The value was obtained from the labels during object construction. This method can only be used if HasGroundRange returns a true.
Definition at line 420 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_minimumRingRadius.
|
virtual |
Returns the name of the map projection, "Planar".
Implements Isis::RingPlaneProjection.
Definition at line 120 of file Planar.cpp.
|
inherited |
This method determines whether two map projection objects are not equal.
True is returned if they have at least some differences in the radii, latitude type, longitude direction, resolution, or projection name.
proj | A reference to a Projection object to which this Projection will be compared. |
Definition at line 193 of file Projection.cpp.
|
virtual |
Compares two Projection objects to see if they are equal.
proj | Projection object to do comparison on |
Reimplemented from Isis::RingPlaneProjection.
Definition at line 105 of file Planar.cpp.
References m_centerRingLongitude, and m_centerRingRadius.
|
protectedinherited |
Returns the pixel resolution value from the PVL mapping group in meters/pixel.
Definition at line 855 of file Projection.cpp.
References Isis::Projection::m_pixelResolution.
Referenced by Isis::TProjection::doSearch(), Isis::RingCylindrical::XYRange(), and XYRange().
|
inherited |
Returns an enum value for the projection type.
Definition at line 213 of file Projection.cpp.
Referenced by Isis::MosaicGridTool::autoGrid(), Isis::MosaicGridTool::fromPvl(), Isis::UniversalGroundMap::GroundRange(), Isis::Camera::RawFocalPlanetoImage(), Isis::MosaicGridTool::setLatExtents(), Isis::MosaicGridTool::setLonExtents(), Isis::Projection::SetUnboundUniversalGround(), Isis::Projection::SetUniversalGround(), Isis::UniversalGroundMap::UniversalLatitude(), Isis::UniversalGroundMap::UniversalLongitude(), Isis::MosaicTrackTool::updateLabels(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
This method returns the resolution for mapping world coordinates into projection coordinates.
For example, if the world coordinate system is an image then this routine returns the number of meters per pixel. Likewise, if the world coordinate system is a piece of paper, it might return the number of meters per inch of paper. If the SetWorldMapper method is not invoked then this method returns 1.0
Definition at line 690 of file Projection.cpp.
References Isis::Projection::m_mapper, and Isis::WorldMapper::Resolution().
Referenced by Isis::ProcessExport::CreateWorldFile(), Isis::Projection::operator==(), Isis::UniversalGroundMap::Resolution(), and Isis::MeasureTool::updateDist().
|
inherited |
This returns a ring longitude with correct ring longitude direction and domain as specified in the label object.
The method can only be used if SetGround, SetCoordinate, SetUniversalGround, or SetWorld return with success. Success can also be checked using the IsGood method.
Definition at line 545 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringLongitude.
Referenced by Isis::UniversalGroundMap::UniversalLongitude(), and Isis::TrackTool::updateLabels().
|
inherited |
This method returns the ring longitude direction as a string.
It will return either Clockwise or CounterClockwise.
Definition at line 329 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::Clockwise, and Isis::RingPlaneProjection::m_ringLongitudeDirection.
|
inherited |
This method returns the ring longitude domain as a string.
It will return either 180 or 360.
Definition at line 408 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringLongitudeDomain.
|
inherited |
This returns a radius.
The method can only be used if SetGround, SetCoordinate, SetUniversalGround, or SetWorld return with success. Success can also be checked using the IsGood method.
Definition at line 521 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringRadius.
Referenced by Isis::UniversalGroundMap::UniversalLatitude(), and Isis::TrackTool::updateLabels().
|
inherited |
Returns the value of the Rotation keyword from the mapping group.
Definition at line 374 of file Projection.cpp.
References Isis::Projection::m_rotation.
|
virtualinherited |
This method returns the scale for mapping world coordinates into projection coordinates.
For example, if the world coordinate system is an image then this routine returns the number of pixels per degree. Likewise, if the world coordinate system is a piece of paper, it might return the number of inches of paper per degree. If the SetWorldMapper method is not invoked then this method returns 1.0
Implements Isis::Projection.
Definition at line 622 of file RingPlaneProjection.cpp.
References Isis::DEG2RAD, Isis::Projection::m_mapper, Isis::WorldMapper::Resolution(), and Isis::RingPlaneProjection::TrueScaleRingRadius().
|
protectedinherited |
This protected method is a helper for derived classes.
It takes unrotated x and y values, rotates them using the rotation angle data member, and stores the results in the current x and y data members.
x | The unrotated x coordinate. |
y | The unrotated y coordinate. |
Definition at line 795 of file Projection.cpp.
References Isis::Projection::m_good, Isis::Projection::m_rotation, Isis::Projection::m_x, Isis::Projection::m_y, Isis::Null, and Isis::PI.
Referenced by Isis::RingCylindrical::SetGround(), SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::Mollweide::SetGround(), Isis::PointPerspective::SetGround(), Isis::TransverseMercator::SetGround(), Isis::Mercator::SetGround(), Isis::LambertConformal::SetGround(), Isis::PolarStereographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::SimpleCylindrical::SetGround(), Isis::Equirectangular::SetGround(), Isis::Sinusoidal::SetGround(), Isis::Orthographic::SetGround(), Isis::RingPlaneProjection::SetGround(), and Isis::TProjection::SetGround().
|
virtual |
This method is used to set the projection x/y.
The Set forces an attempted calculation of the corresponding radius/azimuth position. This may or may not be successful and a status is returned as such.
x | X coordinate of the projection in units that are the same as the radii in the label |
y | Y coordinate of the projection in units that are the same as the radii in the label |
Reimplemented from Isis::RingPlaneProjection.
Definition at line 242 of file Planar.cpp.
References Isis::RingPlaneProjection::Clockwise, m_centerRingLongitude, Isis::Projection::m_good, Isis::RingPlaneProjection::m_ringLongitude, Isis::RingPlaneProjection::m_ringLongitudeDirection, Isis::RingPlaneProjection::m_ringLongitudeDomain, Isis::RingPlaneProjection::m_ringRadius, Isis::RAD2DEG, Isis::Projection::SetXY(), Isis::RingPlaneProjection::To180Domain(), and Isis::RingPlaneProjection::To360Domain().
|
virtual |
This method is used to set the radius/azimuth (assumed to be of the correct RingLongitudeDirection, a nd RingLongitudeDomain.
The Set forces an attempted calculation of the projection X/Y values. This may or may not be successful and a status is returned as such.
ringRadius | Radius value to project in meters |
ringLongitude | Ring longitude (azimuth) value to project in degrees |
Reimplemented from Isis::RingPlaneProjection.
Definition at line 188 of file Planar.cpp.
References Isis::RingPlaneProjection::Clockwise, Isis::DEG2RAD, m_centerRingLongitude, Isis::Projection::m_good, Isis::RingPlaneProjection::m_ringLongitude, Isis::RingPlaneProjection::m_ringLongitudeDirection, Isis::RingPlaneProjection::m_ringRadius, and Isis::Projection::SetComputedXY().
|
inherited |
Sets the projection subclass type.
ptype | The projection subclass type |
Definition at line 203 of file Projection.cpp.
Referenced by Isis::RingPlaneProjection::RingPlaneProjection(), and Isis::TProjection::TProjection().
|
virtualinherited |
This method is used to set the lat/lon or radius/azimuth (i.e.
ring longitude) coordinate, depending on the projection type. The Set forces an attempted calculation of the projection X/Y values. This may or may not be successful and a status is returned as such. This method will not adjust the longitude coordinate based on the longitude domain.
coord1 | Latitude (planetocentric) or ring radius to project |
coord2 | Longitude or ring longitude to project. The value passed in should be PositiveEast, Domain360. |
Reimplemented in Isis::TProjection.
Definition at line 461 of file Projection.cpp.
References Isis::Projection::m_good, Isis::Null, Isis::Projection::projectionType(), Isis::TProjection::SetUnboundUniversalGround(), Isis::RingPlaneProjection::SetUniversalGround(), and Isis::Projection::Triaxial.
Referenced by Isis::UniversalGroundMap::SetUnboundGround().
|
virtualinherited |
This method is used to set the ring radius/longitude which must be PositiveEast/Domain360 (ring longitude).
The Set forces an attempted calculation of the projection X/Y values. This may or may not be successful and a status is returned as such.
ringRadius | The ring radius value to project |
ringLongitude | PositiveEast, Domain360 ring longitude value to project |
Reimplemented from Isis::Projection.
Definition at line 561 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::Clockwise, Isis::Projection::m_good, Isis::RingPlaneProjection::m_ringLongitude, Isis::RingPlaneProjection::m_ringLongitudeDirection, Isis::RingPlaneProjection::m_ringLongitudeDomain, Isis::RingPlaneProjection::m_ringRadius, Isis::Null, Isis::RingPlaneProjection::SetGround(), Isis::RingPlaneProjection::To180Domain(), and Isis::RingPlaneProjection::To360Domain().
Referenced by Isis::Projection::SetUnboundUniversalGround(), and Isis::Projection::SetUniversalGround().
|
inherited |
This method is used to find the XY range for oblique aspect projections (non-polar projections) by "walking" around each of the min/max lat/lon.
minX | Minimum x projection coordinate which covers the latitude longitude range specified in the labels. |
maxX | Maximum x projection coordinate which covers the latitude longitude range specified in the labels. |
minY | Minimum y projection coordinate which covers the latitude longitude range specified in the labels. |
maxY | Maximum y projection coordinate which covers the latitude longitude range specified in the labels. |
This method searches for extreme (min/max/discontinuity) coordinate values along the constBorder line between minBorder and maxBorder (that is, across latitudes/longitudes). This method locates the extrema by utilizing the findExtreme() method until the coordinate values converge. Then, extremeVal parameter is updated with this value before returning.
Discontinuities are stored in m_specialLatCases and m_specialLonCases so they may be checked again later, which creates significantly more accuracy in some cases.
minBorder | Minimum latitude or longitude to search between. |
maxBorder | Maximum latitude or longitude to search between. |
extremeVal | The resulting global coordinate value (min or max value for x or y, depending on findMin and searchX) on the constBorder. |
constBorder | The latitude or longitude that remains constant. The method will step along this border. |
searchX | Indicates whether the method is searching for a min or max x-coordinate. If false the method searches for min or max y-coordinate. |
searchLongitude | Indicates whether the method will search along a longitude. If true, constBorder is longitude and all other borders are latitudes. If false, the method searches a latitude (constBorder is a lat, other borders lons). |
findMin | Indicates whether the method is looking for a minimum coordinate value. If false, the method is looking for a maximum value. |
Searches for extreme (min/max/discontinuity) coordinate values across latitudes/longitudes.
This method looks for these extrema along the constBorder between minBorder and maxBorder by stepping along constBorder (10 times) from the minBorder and maxBorder. Then, the range of this extreme value is recorded in minBorder and maxBorder and the coordinate values corresponding to these new borders are stored in minBorderX, minBorderY, maxBorderX and maxBorderY.
This function should be used by calling it repeatedly until minBorderX and minBorderY do not equal maxBorderX and maxBorderY, respectively. Discontinuities will cause the minBorderX, minBorderY, maxBorderX and maxBorderY to never converge. If minBorderX never comes close to maxBorderX or minBorderY never comes close to maxBorderY, then between minBorder and maxBorder is the value of the most extreme value. In this case, either the smaller or larger of the x or y values found will be correct, depending on the values of findMin and searchX.
minBorder | Minimum latitude or longitude to search between. This value gets updated to a more precise range. |
maxBorder | Maximum latitude or longitude to search between. This value gets updated to a more precise range. |
minBorderX | The x-value corresponding to the lower resultant minBorder and the constBorder, which is more accurate when nearly equal to maxBorderX. |
minBorderY | The y-value corresponding to the lower resultant minBorder and the constBorder, which is more accurate when nearly equal to maxBorderY. |
maxBorderX | The x-value corresponding to the higher resultant maxBorder and the constBorder, which is more accurate when nearly equal to minBorderX. |
maxBorderY | The y-value corresponding to the higher resultant maxBorder and the constBorder, which is more accurate when nearly equal to minBorderY. |
constBorder | The latitude or longitude that remains constant. The method will step along this border. |
searchX | Indicates whether the method is searching for a min or max x-coordinate. If false the method searches for min or max y-coordinate. |
searchLongitude | Indicates whether the method will search along a longitude. If true, constBorder is longitude and all other borders are latitudes. If false, the method searches a latitude (constBorder is a lat, other borders lons). |
findMin | Indicates whether the method is looking for a minimum coordinate value. If false, the method is looking for a maximum value. |
This function sets the ground for the given border values. It calls the SetGround(lat, lon) method with the appropriate lat/lon values, depending on whether variableIsLat is true.
This method is used by doSearch and findExtreme in order to set the ground correctly each time.
variableBorder | The latitude or longitude that is variable in the search methods. |
constBorder | The latitude or longitude that is constant in the search methods. |
variableIsLat | Indicates whether variableBorder is the latittude value and constBorder is the longitude value. If false, variableBorder is the longitude value and constBorder is the latitude value. |
This method sets the UpperLeftCornerX and UpperLeftCornerY keywords in the projection mapping group, in meters.
x | the upper left corner x value |
y | the upper left corner y value |
Definition at line 1388 of file Projection.cpp.
References Isis::PvlContainer::addKeyword(), Isis::Projection::m_mappingGrp, Isis::Displacement::meters(), and Isis::toString().
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::ProjectionFactory::CreateFromCube(), Isis::ProjectionFactory::RingsCreateForCube(), and Isis::ProjectionFactory::RingsCreateFromCube().
|
inherited |
This method is used to set a world coordinate.
A world coordinate is a different coordinate type that has a one-to-one mapping to the projection coordinate system. For example, mapping pixel samples and lines to projection x's and y's. The Set forces an attempted calculation of the corresponding latitude/longitude position. This may or may not be successful and a status is returned as such. Note that is only applies if the Projection object was given an WorldMapper object during construction. If an WorldMapper was not supplied then SetWorld operates exactly the same as SetCoordinate (impling that world coordinate and projection coordinate are identical).
worldX | World X coordinate in units that are specified by the WorldMapper object (e.g., pixels, millimeters, etc) |
worldY | World Y coordinate in units that are specified by the WorldMapper object (e.g., pixels, millimeters, etc) |
Definition at line 512 of file Projection.cpp.
References Isis::Projection::m_mapper, Isis::WorldMapper::ProjectionX(), and Isis::WorldMapper::ProjectionY().
Referenced by Isis::ProcessExport::CreateWorldFile(), Isis::UniversalGroundMap::GroundRange(), Isis::Cube::latLonRange(), Isis::Chip::Load(), Isis::UniversalGroundMap::SetImage(), Isis::Camera::SetImageMapProjection(), Isis::Camera::SetImageSkyMapProjection(), Isis::MeasureTool::updateDist(), Isis::SubArea::UpdateLabel(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
If desired the programmer can use this method to set a world mapper to be used in the SetWorld, WorldX, and WorldY methods.
Mappers typically transform a projection coordinate (x/y) into the desired working coordinate system, for example, cube pixels or inches on a piece of paper. They transform in both directions (world to projection and projection to world). This allows for conversions from line/sample to latitude/longitude and vice versa. This projection will take ownership of the WorldMapper pointer.
mapper | Pointer to the mapper |
Definition at line 489 of file Projection.cpp.
References Isis::Projection::m_mapper.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::ProjectionFactory::CreateFromCube(), Isis::ProjectionFactory::RingsCreateForCube(), and Isis::ProjectionFactory::RingsCreateFromCube().
|
protectedinherited |
This protected method is a helper for derived classes.
It takes a rotated x,y and stores them in the current x and y data members.
x | The rotated x coordinate. |
y | The rotated y coordinate. |
Definition at line 819 of file Projection.cpp.
References Isis::Projection::m_good, Isis::Projection::m_x, Isis::Projection::m_y, and Isis::Null.
Referenced by Isis::RingCylindrical::SetCoordinate(), SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::Mollweide::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Robinson::SetCoordinate(), Isis::TransverseMercator::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::RingPlaneProjection::SetCoordinate(), and Isis::TProjection::SetCoordinate().
|
staticinherited |
This method converts a ring longitude into the -180 to 180 domain.
It will leave the ring longitude unchanged if it is already in the domain.
ringLongitude | A ring longitude to convert into the -180 to 180 domain. |
IException::Unknown | - "The given longitude is invalid." |
Definition at line 367 of file RingPlaneProjection.cpp.
References _FILEINFO_, Isis::Angle::Degrees, Isis::Angle::degrees(), Isis::Longitude::force180Domain(), Isis::Null, and Isis::IException::Unknown.
Referenced by SetCoordinate(), Isis::RingPlaneProjection::SetUniversalGround(), Isis::RingPlaneProjection::ToClockwise(), Isis::RingPlaneProjection::ToCounterClockwise(), and Isis::AdvancedTrackTool::updateRow().
|
staticinherited |
This method converts an ring longitude into the 0 to 360 domain.
It will leave the ring longitude unchanged if it is already in the domain.
ringLongitude | The ring longitude to convert into the 0 to 360 domain. |
Definition at line 385 of file RingPlaneProjection.cpp.
References _FILEINFO_, Isis::Angle::Degrees, Isis::Angle::degrees(), Isis::Longitude::force360Domain(), Isis::Null, and Isis::IException::Unknown.
Referenced by SetCoordinate(), Isis::RingPlaneProjection::SetUniversalGround(), Isis::RingPlaneProjection::ToClockwise(), Isis::RingPlaneProjection::ToCounterClockwise(), and Isis::RingPlaneProjection::UniversalRingLongitude().
|
staticinherited |
This method converts an ring longitude into the clockwise direction.
ringLongitude | The ring longitude to convert into the clockwise direction. |
domain | Must be an integer value of 180 (for -180 to 180) or 360 (for 0 to 360). |
IException::Unknown | - "The given ring longitude is invalid." |
IException::Unknown | - "Unable to convert ring longitude. Domain is not 180 or 360." |
Definition at line 255 of file RingPlaneProjection.cpp.
References _FILEINFO_, Isis::Null, Isis::RingPlaneProjection::To180Domain(), Isis::RingPlaneProjection::To360Domain(), Isis::toString(), and Isis::IException::Unknown.
|
staticinherited |
This method converts an ring longitude into the counterclockwise direction.
ringLongitude | The ring Longitude to convert into the counterclockwise direction. |
domain | Must be an integer value of 180 (for -180 to 180) or 360 (for 0 to 360). |
IException::Unknown | - "The given ring longitude is invalid." |
IException::Unknown | - "Unable to convert ring longitude. Domain is not 180 or 360." |
Definition at line 295 of file RingPlaneProjection.cpp.
References _FILEINFO_, Isis::Null, Isis::RingPlaneProjection::To180Domain(), Isis::RingPlaneProjection::To360Domain(), and Isis::IException::Unknown.
|
staticinherited |
Converts the given angle (in degrees) to degrees, minutes, seconds.
Outputs in the form xxx yym zz.zzzs, for example, 206.291 degrees is 206 17m 27.6s
angle | Angle in degrees to be converted to degrees, minutes, seconds |
Definition at line 721 of file Projection.cpp.
|
staticinherited |
Converts the given angle (in degrees) to hours, minutes, seconds.
Outputs in the form xxh yym zz.zzzs For example, 206.291 will be 13h 45m 09.84s
angle | Angle in degrees to be converted to hours, minutes, seconds |
Definition at line 756 of file Projection.cpp.
References Isis::Projection::ToHours().
|
staticinherited |
Converts the given angle (in degrees) to hours by using the ratio 15 degrees per hour.
angle | Angle in degrees to be converted to hours |
Definition at line 708 of file Projection.cpp.
Referenced by Isis::Projection::ToHMS().
|
inherited |
This method converts a world x value to a projection x value.
For example, if the world coordinate system is an image then this method converts a sample position to a projection x value. Note that if SetWorldMapper is not used then this routine simply returns the value of the argument. That is, no mapping occurs.
worldX | World x coordinate |
IException::Unknown | - "The given x-value is invalid." |
Definition at line 637 of file Projection.cpp.
References _FILEINFO_, Isis::Projection::m_mapper, Isis::Null, Isis::WorldMapper::ProjectionX(), and Isis::IException::Unknown.
Referenced by Isis::OverlapStatistics::OverlapStatistics(), and Isis::ProcessMapMosaic::StartProcess().
|
inherited |
This method converts a world y value to a projection y value.
For example, if the world coordinate system is an image then this method converts a line position to a projection y value. Note that if SetWorldMapper is not used then this routine simply returns the value of the argument. That is, no mapping occurs.
worldY | World y coordinate |
IException::Unknown | - "The given y-value is invalid." |
Definition at line 665 of file Projection.cpp.
References _FILEINFO_, Isis::Projection::m_mapper, Isis::Null, Isis::WorldMapper::ProjectionY(), and Isis::IException::Unknown.
Referenced by Isis::OverlapStatistics::OverlapStatistics(), and Isis::ProcessMapMosaic::StartProcess().
|
inherited |
This method converts a projection x value to a world x value.
For example, if the world coordinate system is an image then this method converts a projection x to a sample position. Note that if SetWorldMapper is not used then this routine simply returns the value of the argument. That is, no mapping occurs.
projectionX | Projection x value in meters |
IException::Unknown | - "The given x-value is invalid." |
Definition at line 581 of file Projection.cpp.
References _FILEINFO_, Isis::Projection::m_mapper, Isis::Null, Isis::IException::Unknown, and Isis::WorldMapper::WorldX().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), Isis::ProcessMapMosaic::RingsSetOutputCube(), Isis::ProcessMapMosaic::SetOutputCube(), and Isis::ProcessMapMosaic::StartProcess().
|
inherited |
This method converts a projection y value to a world y value.
For example, if the world coordinate system is an image then this method converts a projection y to a line position. Note that if SetWorldMapper is not used then this routine simply returns the value of the argument. That is, no mapping occurs.
projectionY | Projection y value in meters |
IException::Unknown | - "The given y-value is invalid." |
Definition at line 609 of file Projection.cpp.
References _FILEINFO_, Isis::Projection::m_mapper, Isis::Null, Isis::IException::Unknown, and Isis::WorldMapper::WorldY().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), Isis::ProcessMapMosaic::RingsSetOutputCube(), Isis::ProcessMapMosaic::SetOutputCube(), and Isis::ProcessMapMosaic::StartProcess().
|
virtual |
Returns the center radius, in meters.
TODO: Correct this comment for planar projection, assuming right now scale at center of projection. (believe scale is uniform across planar projection)
NOTE In the case of Planar projections, there is NO radius that is entirely true to scale. The only true scale for this projection is at the single point, (center radius, center azimuth).
Reimplemented from Isis::RingPlaneProjection.
Definition at line 137 of file Planar.cpp.
References m_centerRingRadius.
|
inherited |
This returns a universal ring longitude (clockwise in 0 to 360 domain).
The method can only be used if SetGround, SetCoordinate, SetUniversalGround, or SetWorld return with success. Success can also be checked using the IsGood method.
Definition at line 604 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::Clockwise, Isis::RingPlaneProjection::m_ringLongitude, Isis::RingPlaneProjection::m_ringLongitudeDirection, and Isis::RingPlaneProjection::To360Domain().
Referenced by Isis::Camera::SetImageMapProjection(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
This returns a universal radius, which is just the radius in meters.
Definition at line 590 of file RingPlaneProjection.cpp.
References Isis::RingPlaneProjection::m_ringRadius.
Referenced by Isis::Camera::SetImageMapProjection(), and Isis::AdvancedTrackTool::updateRow().
|
virtual |
Returns the version of the map projection.
Implements Isis::RingPlaneProjection.
Definition at line 171 of file Planar.cpp.
|
inherited |
This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
Success can also be checked using the IsGood method. The units of X will be in the units as specified by the WorldMapper object which was given to the SetWorldMapper method. If a mapper object was not given then world coordinates are the same as the projection coordinates (i.e., WorldX and XCoord will return the same value).
Definition at line 539 of file Projection.cpp.
References Isis::Projection::m_mapper, Isis::Projection::m_x, and Isis::WorldMapper::WorldX().
Referenced by Isis::MosaicSceneItem::drawImage(), Isis::ImagePolygon::FixPolePoly(), Isis::Chip::Load(), Isis::DemShape::localRadius(), Isis::Camera::RawFocalPlanetoImage(), Isis::UniversalGroundMap::Sample(), Isis::Camera::SetRightAscensionDeclination(), and Isis::ProcessMapMosaic::StartProcess().
|
inherited |
This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
Success can also be checked using the IsGood method. The units of Y will be in the units as specified by the WorldMapper object which was given to the SetWorldMapper. If a mapper object was not given then world coordinates are the same as the projection coordinates (i.e., WorldY and YCoord will return the same value).
Definition at line 559 of file Projection.cpp.
References Isis::Projection::m_mapper, Isis::Projection::m_y, and Isis::WorldMapper::WorldY().
Referenced by Isis::MosaicSceneItem::drawImage(), Isis::ImagePolygon::FixPolePoly(), Isis::UniversalGroundMap::Line(), Isis::Chip::Load(), Isis::DemShape::localRadius(), Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().
|
inherited |
This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
Success can also be checked using the IsGood method. The units of X will be in the same . units as the radii obtained from the label.
Definition at line 402 of file Projection.cpp.
References Isis::Projection::m_x.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::ProcessExport::CreateWorldFile(), Isis::TProjection::findExtreme(), Isis::MosaicSceneItem::reproject(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::RingPlaneProjection::SetCoordinate(), Isis::TProjection::SetCoordinate(), Isis::MosaicGridTool::setLatExtents(), Isis::SubArea::UpdateLabel(), Isis::AdvancedTrackTool::updateRow(), Isis::PointPerspective::XYRange(), Isis::LambertConformal::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), and Isis::TProjection::XYRangeCheck().
|
virtual |
This method is used to determine the x/y range which completely covers the area of interest specified by the radius/longitude range.
This range may be obtained from the labels. The purpose of this method is to return the x/y range so it can be used to compute how large a map may need to be. For example, how big a piece of paper is needed or how large of an image needs to be created. The method may fail as indicated by its return value.
minX | Minimum x projection coordinate which covers the radius/ longitude range specified in the labels. |
maxX | Maximum x projection coordinate which covers the radius/ longitude range specified in the labels. |
minY | Minimum y projection coordinate which covers the radius/ longitude range specified in the labels. |
maxY | Maximum y projection coordinate which covers the radius/ longitude range specified in the labels. |
minX | Minimum x projection coordinate which covers the radius/ longitude range specified in the labels. |
maxX | Maximum x projection coordinate which covers the radius/ longitude range specified in the labels. |
minY | Minimum y projection coordinate which covers the radius/ longitude range specified in the labels. |
maxY | Maximum y projection coordinate which covers the radius/ longitude range specified in the labels. |
Reimplemented from Isis::RingPlaneProjection.
Definition at line 395 of file Planar.cpp.
References Isis::RingPlaneProjection::m_maximumRingLongitude, Isis::RingPlaneProjection::m_maximumRingRadius, Isis::Projection::m_maximumX, Isis::Projection::m_maximumY, Isis::RingPlaneProjection::m_minimumRingLongitude, Isis::RingPlaneProjection::m_minimumRingRadius, Isis::Projection::m_minimumX, Isis::Projection::m_minimumY, Isis::Projection::PixelResolution(), and Isis::RingPlaneProjection::XYRangeCheck().
|
protectedvirtualinherited |
This convience function is established to assist in the development of the XYRange virtual method.
It allows the developer to test ground points (ring radius/longitude) to see if they produce a minimum/maximum projection coordinate. For example in Planar,
ringRadius | Test for min/max projection coordinates at this radius |
ringLongitude | Test for min/max projection coordinates at this ring longitude |
Implements Isis::Projection.
Definition at line 724 of file RingPlaneProjection.cpp.
References Isis::Projection::IsGood(), Isis::Projection::m_good, Isis::Projection::m_maximumX, Isis::Projection::m_maximumY, Isis::Projection::m_minimumX, Isis::Projection::m_minimumY, Isis::Null, Isis::RingPlaneProjection::SetGround(), Isis::Projection::XCoord(), and Isis::Projection::YCoord().
Referenced by Isis::RingCylindrical::XYRange(), and XYRange().
|
inherited |
This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
Success can also be checked using the IsGood method. The units of Y will be in the same units as the radii obtained from the label.
Definition at line 415 of file Projection.cpp.
References Isis::Projection::m_y.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::ProcessExport::CreateWorldFile(), Isis::TProjection::findExtreme(), Isis::MosaicSceneItem::reproject(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::RingPlaneProjection::SetCoordinate(), Isis::TProjection::SetCoordinate(), Isis::MosaicGridTool::setLatExtents(), Isis::SubArea::UpdateLabel(), Isis::AdvancedTrackTool::updateRow(), Isis::PointPerspective::XYRange(), Isis::LambertConformal::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), and Isis::TProjection::XYRangeCheck().
|
private |
The center longitude for the map projection.
Definition at line 80 of file Planar.h.
Referenced by CenterRingLongitude(), Mapping(), operator==(), Planar(), SetCoordinate(), and SetGround().
|
private |
The center radius for the map projection.
Definition at line 81 of file Planar.h.
Referenced by CenterRingRadius(), Mapping(), operator==(), Planar(), and TrueScaleRingRadius().
|
protectedinherited |
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid.
Definition at line 316 of file Projection.h.
Referenced by Isis::TProjection::findExtreme(), Isis::Projection::IsGood(), Isis::Projection::Projection(), Isis::Projection::SetComputedXY(), Isis::RingCylindrical::SetCoordinate(), SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Mollweide::SetCoordinate(), Isis::TransverseMercator::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::RingPlaneProjection::SetCoordinate(), Isis::TProjection::SetCoordinate(), Isis::RingCylindrical::SetGround(), SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::PointPerspective::SetGround(), Isis::Mollweide::SetGround(), Isis::TransverseMercator::SetGround(), Isis::Mercator::SetGround(), Isis::LambertConformal::SetGround(), Isis::PolarStereographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::SimpleCylindrical::SetGround(), Isis::Equirectangular::SetGround(), Isis::Sinusoidal::SetGround(), Isis::Orthographic::SetGround(), Isis::RingPlaneProjection::SetGround(), Isis::TProjection::SetGround(), Isis::Projection::SetUnboundUniversalGround(), Isis::TProjection::SetUnboundUniversalGround(), Isis::RingPlaneProjection::SetUniversalGround(), Isis::Projection::SetUniversalGround(), Isis::TProjection::SetUniversalGround(), Isis::Projection::SetXY(), Isis::LambertConformal::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), and Isis::TProjection::XYRangeCheck().
|
protectedinherited |
Indicates if the ground range (min/max lat/lons) were read from the labels.
Definition at line 329 of file Projection.h.
Referenced by Isis::Projection::HasGroundRange(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::TProjection::TProjection(), Isis::RingPlaneProjection::XYRange(), and Isis::TProjection::XYRange().
|
protectedinherited |
This points to a mapper passed into the SetWorldMapper method.
This mapper allows the programmer to specify a different world coordinate system. Thus the programmer could pass in line/sample positions in order to obtain a latitude/longitude or set a lat/lon and get a line/sample.
Definition at line 308 of file Projection.h.
Referenced by Isis::Projection::Projection(), Isis::Projection::Resolution(), Isis::RingPlaneProjection::Scale(), Isis::TProjection::Scale(), Isis::Projection::SetWorld(), Isis::Projection::SetWorldMapper(), Isis::Projection::ToProjectionX(), Isis::Projection::ToProjectionY(), Isis::Projection::ToWorldX(), Isis::Projection::ToWorldY(), Isis::Projection::WorldX(), Isis::Projection::WorldY(), and Isis::Projection::~Projection().
|
protectedinherited |
Mapping group that created this projection.
Definition at line 345 of file Projection.h.
Referenced by Isis::LunarAzimuthalEqualArea::Mapping(), Isis::Mollweide::Mapping(), Isis::PointPerspective::Mapping(), Isis::Robinson::Mapping(), Isis::TransverseMercator::Mapping(), Isis::Mercator::Mapping(), Isis::LambertConformal::Mapping(), Isis::PolarStereographic::Mapping(), Isis::ObliqueCylindrical::Mapping(), Isis::SimpleCylindrical::Mapping(), Isis::Equirectangular::Mapping(), Isis::Sinusoidal::Mapping(), Isis::Orthographic::Mapping(), Isis::RingPlaneProjection::Mapping(), Isis::TProjection::Mapping(), Isis::PointPerspective::MappingLatitudes(), Isis::TransverseMercator::MappingLatitudes(), Isis::Mercator::MappingLatitudes(), Isis::LambertConformal::MappingLatitudes(), Isis::PolarStereographic::MappingLatitudes(), Isis::Equirectangular::MappingLatitudes(), Isis::Orthographic::MappingLatitudes(), Isis::TProjection::MappingLatitudes(), Isis::PointPerspective::MappingLongitudes(), Isis::Mollweide::MappingLongitudes(), Isis::Robinson::MappingLongitudes(), Isis::TransverseMercator::MappingLongitudes(), Isis::Mercator::MappingLongitudes(), Isis::LambertConformal::MappingLongitudes(), Isis::PolarStereographic::MappingLongitudes(), Isis::SimpleCylindrical::MappingLongitudes(), Isis::Equirectangular::MappingLongitudes(), Isis::Sinusoidal::MappingLongitudes(), Isis::Orthographic::MappingLongitudes(), Isis::TProjection::MappingLongitudes(), Isis::RingCylindrical::MappingRingLongitudes(), MappingRingLongitudes(), Isis::RingPlaneProjection::MappingRingLongitudes(), Isis::RingCylindrical::MappingRingRadii(), MappingRingRadii(), Isis::RingPlaneProjection::MappingRingRadii(), Isis::Projection::Projection(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::Projection::SetUpperLeftCorner(), and Isis::TProjection::TProjection().
|
protectedinherited |
Contains the maximum longitude for the entire ground range.
Only usable if m_groundRangeGood is true.
Definition at line 306 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::MaximumRingLongitude(), Planar(), Isis::RingCylindrical::RingCylindrical(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::XYRange(), XYRange(), and Isis::RingPlaneProjection::XYRange().
|
protectedinherited |
Contains the maximum ring radius for the entire ground range.
Only usable if m_groundRangeGood is true.
Definition at line 300 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::MaximumRingRadius(), Planar(), Isis::RingCylindrical::RingCylindrical(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::SetCoordinate(), Isis::RingCylindrical::XYRange(), XYRange(), and Isis::RingPlaneProjection::XYRange().
|
protectedinherited |
See minimumX description.
Definition at line 342 of file Projection.h.
Referenced by Isis::Projection::Projection(), Isis::RingCylindrical::XYRange(), XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::Mollweide::XYRange(), Isis::Robinson::XYRange(), Isis::TransverseMercator::XYRange(), Isis::Mercator::XYRange(), Isis::LambertConformal::XYRange(), Isis::PolarStereographic::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::Equirectangular::XYRange(), Isis::Sinusoidal::XYRange(), Isis::Orthographic::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), Isis::TProjection::XYRangeCheck(), and Isis::TProjection::xyRangeOblique().
|
protectedinherited |
See minimumX description.
Definition at line 344 of file Projection.h.
Referenced by Isis::Projection::Projection(), Isis::RingCylindrical::XYRange(), XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::Mollweide::XYRange(), Isis::Robinson::XYRange(), Isis::TransverseMercator::XYRange(), Isis::Mercator::XYRange(), Isis::LambertConformal::XYRange(), Isis::PolarStereographic::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::Equirectangular::XYRange(), Isis::Sinusoidal::XYRange(), Isis::Orthographic::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), Isis::TProjection::XYRangeCheck(), and Isis::TProjection::xyRangeOblique().
|
protectedinherited |
Contains the minimum longitude for the entire ground range.
Only usable if m_groundRangeGood is true.
Definition at line 303 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::MinimumRingLongitude(), Planar(), Isis::RingCylindrical::RingCylindrical(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::XYRange(), XYRange(), and Isis::RingPlaneProjection::XYRange().
|
protectedinherited |
Contains the minimum ring radius for the entire ground range.
Only usable if m_groundRangeGood is true.
Definition at line 297 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::MinimumRingRadius(), Planar(), Isis::RingCylindrical::RingCylindrical(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::XYRange(), XYRange(), and Isis::RingPlaneProjection::XYRange().
|
protectedinherited |
The data elements m_minimumX, m_minimumY, m_maximumX, and m_maximumY are convience data elements when you write the XYRange virtual function.
They are used in conjuction with the XYRangeCheck convience method. After utilizing XYRangeCheck to test boundary conditions in the XYRange method these values will contain the projection x/y coverage for the ground range specified by min/max lat/lon.
Definition at line 333 of file Projection.h.
Referenced by Isis::Projection::Projection(), Isis::RingCylindrical::XYRange(), XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::Mollweide::XYRange(), Isis::Robinson::XYRange(), Isis::TransverseMercator::XYRange(), Isis::Mercator::XYRange(), Isis::LambertConformal::XYRange(), Isis::PolarStereographic::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::Equirectangular::XYRange(), Isis::Sinusoidal::XYRange(), Isis::Orthographic::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), Isis::TProjection::XYRangeCheck(), and Isis::TProjection::xyRangeOblique().
|
protectedinherited |
See minimumX description.
Definition at line 343 of file Projection.h.
Referenced by Isis::Projection::Projection(), Isis::RingCylindrical::XYRange(), XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::Mollweide::XYRange(), Isis::Robinson::XYRange(), Isis::TransverseMercator::XYRange(), Isis::Mercator::XYRange(), Isis::LambertConformal::XYRange(), Isis::PolarStereographic::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::Equirectangular::XYRange(), Isis::Sinusoidal::XYRange(), Isis::Orthographic::XYRange(), Isis::RingPlaneProjection::XYRangeCheck(), Isis::TProjection::XYRangeCheck(), and Isis::TProjection::xyRangeOblique().
|
protectedinherited |
This contain a ring longitude value.
The value is only usable if m_good is true.
Definition at line 279 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::RingLongitude(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::SetCoordinate(), SetCoordinate(), Isis::RingPlaneProjection::SetCoordinate(), Isis::RingCylindrical::SetGround(), SetGround(), Isis::RingPlaneProjection::SetGround(), Isis::RingPlaneProjection::SetUniversalGround(), and Isis::RingPlaneProjection::UniversalRingLongitude().
|
protectedinherited |
An enumerated type indicating the LongitudeDirection read from the labels.
It can be either PositiveEast or PositiveWest. Indicating which direction the positive axis for longitude is.
Definition at line 283 of file RingPlaneProjection.h.
Referenced by Isis::RingCylindrical::CenterRingLongitude(), CenterRingLongitude(), Isis::RingPlaneProjection::IsClockwise(), Isis::RingPlaneProjection::IsCounterClockwise(), Isis::RingCylindrical::Mapping(), Mapping(), Planar(), Isis::RingCylindrical::RingCylindrical(), Isis::RingPlaneProjection::RingLongitudeDirectionString(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingCylindrical::SetCoordinate(), SetCoordinate(), Isis::RingCylindrical::SetGround(), SetGround(), Isis::RingPlaneProjection::SetUniversalGround(), and Isis::RingPlaneProjection::UniversalRingLongitude().
|
protectedinherited |
This integer is either 180 or 360 and is read from the labels.
It represents the ring longitude domain when returning values through RingLongitude() method. The domain is either -180 to 180 or 0 to 360.
Definition at line 291 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::Has180Domain(), Isis::RingPlaneProjection::Has360Domain(), Isis::RingPlaneProjection::RingLongitudeDomainString(), Isis::RingPlaneProjection::RingPlaneProjection(), SetCoordinate(), and Isis::RingPlaneProjection::SetUniversalGround().
|
protectedinherited |
This contain a ring radius value in m.
The value is only usable if m_good is true.
Definition at line 277 of file RingPlaneProjection.h.
Referenced by Isis::RingPlaneProjection::LocalRadius(), Planar(), Isis::RingPlaneProjection::RingPlaneProjection(), Isis::RingPlaneProjection::RingRadius(), Isis::RingCylindrical::SetCoordinate(), SetCoordinate(), Isis::RingPlaneProjection::SetCoordinate(), Isis::RingCylindrical::SetGround(), SetGround(), Isis::RingPlaneProjection::SetGround(), Isis::RingPlaneProjection::SetUniversalGround(), and Isis::RingPlaneProjection::UniversalRingRadius().
|
protectedinherited |
Indicates whether projection is sky or land.
Definition at line 326 of file Projection.h.
Referenced by Isis::Projection::IsSky(), and Isis::Projection::Projection().