|
Isis 3.0 Object Programmers' Reference |
Home |
#include <Projection.h>
Inheritance diagram for Isis::Projection:


This is a virtual base class for map projections. It must be used to create specific map projection classes such as Sinusoidal, Mercator, etc. The foundation of this class is the ability to convert ground coordinates (latitude and longitude) into projection coordinates (x and y) and vice versa. Options exist to allow conversion to and from programmer specified world coordinates. The world coordinates can be cube pixels, paper units in millimeters, or any other unit the program may need. Generally, you should never directly instantiate this class.
Here is an example of how to use Projection
Pvl lab; lab.Read("projection.map"); Projection *p = ProjectionFactory::Create(lab);
For internal use only.
Definition at line 110 of file Projection.h.
Public Types | |
| Planetographic | |
| Planetocentric | |
| PositiveEast | |
| PositiveWest | |
| enum | LatitudeType { Planetographic, Planetocentric } |
| enum | LongitudeDirection { PositiveEast, PositiveWest } |
Public Member Functions | |
| Projection (Isis::Pvl &label) | |
| Constructs an empty Projection object. | |
| virtual | ~Projection () |
| Destroys the Projection object. | |
| void | SetWorldMapper (Isis::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. | |
| bool | SetWorld (const double x, const double y) |
| This method is used to set a world coordinate. | |
| virtual bool | SetGround (const double lat, const double lon) |
| This method is used to set the latitude/longitude (assumed to be of the correct LatitudeType, LongitudeDirection, and LongitudeDomain. | |
| virtual bool | SetCoordinate (const double x, const double y) |
| This method is used to set the projection x/y. | |
| bool | IsGood () const |
| This indicates if the last invocation of SetGround, SetCoordinate, or SetUniversalGround was with successful or not. | |
| double | WorldX () const |
| This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. | |
| double | WorldY () const |
| This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. | |
| double | Longitude () const |
| This returns a longitude with correct longitude direction and domain as specified in the label object. | |
| double | Latitude () const |
| This returns a latitude with correct latitude type as specified in the label object. | |
| double | XCoord () const |
| This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. | |
| double | YCoord () const |
| This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success. | |
| double | EquatorialRadius () const |
| This returns the equatorial radius of the target. | |
| double | PolarRadius () const |
| This returns the polar radius of the target. | |
| double | Eccentricity () const |
| This returns the eccentricity of the target. | |
| bool | IsPlanetographic () const |
| This indicates if the latitude type is planetographic (as opposed to planetocentric). | |
| bool | IsPlanetocentric () const |
| This indicates if the latitude type is planetocentric (as opposed to planetographic). | |
| std::string | LatitudeTypeString () const |
| This method returns the latitude type as a string. | |
| std::string | LongitudeDirectionString () const |
| This method returns the longitude direction as a string. | |
| std::string | LongitudeDomainString () const |
| This method returns the longitude domain as a string. | |
| bool | IsPositiveWest () const |
| This indicates if the longitude direction type is positive east (as opposed to postive west). | |
| bool | IsPositiveEast () const |
| This indicates if the longitude direction type is positive west (as opposed to postive east). | |
| bool | Has360Domain () const |
| This indicates if the longitude domain is 0 to 360 (as opposed to -180 to 180). | |
| bool | Has180Domain () const |
| This indicates if the longitude domain is -180 to 180 (as opposed to 0 to 360). | |
| bool | HasGroundRange () const |
| This indicates that the labels contained minimum and maximum latitudes and longitudes (e.g., a ground range coverage). | |
| double | MinimumLatitude () const |
| This returns the minimum latitude of the area of interest. | |
| double | MaximumLatitude () const |
| This returns the maximum latitude of the area of interest. | |
| double | MinimumLongitude () const |
| This returns the minimum longitude of the area of interest. | |
| double | MaximumLongitude () const |
| This returns the maximum longitude of the area of interest. | |
| virtual 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 lat/lon range. | |
| double | Rotation () const |
| Return the rotation of the map. | |
| double | UniversalLatitude () |
| This returns a universal latitude (planetocentric). | |
| double | UniversalLongitude () |
| This returns a universal longitude (positive east in 0 to 360 domain). | |
| bool | SetUniversalGround (const double lat, const double lon) |
| This method is used to set the latitude/longitude which must be Planetocentric (latitude) and PositiveEast/Domain360 (longitude). | |
| double | ToPlanetocentric (const double lat) const |
| This method converts a planetographic latitude to a planetocentric latitude. | |
| double | ToPlanetographic (const double lat) const |
| This method converts a planetocentric latitude to a planetographic latitude. | |
| double | ToWorldX (const double projectionX) const |
| This method converts a projection x value to a world x value. | |
| double | ToWorldY (const double projectionY) const |
| This method converts a projection y value to a world y value. | |
| double | ToProjectionX (const double worldX) const |
| This method converts a world x value to a projection x value. | |
| double | ToProjectionY (const double worldY) const |
| This method converts a world y value to a projection y value. | |
| double | Resolution () const |
| This method returns the resolution for mapping world coordinates into projection coordinates. | |
| double | Scale () const |
| This method returns the scale for mapping world coordinates into projection coordinates. | |
| virtual double | TrueScaleLatitude () const |
| This method returns the latitude of true scale. | |
| virtual PvlGroup | Mapping () |
| This function returns the keywords that this projection uses. | |
| virtual PvlGroup | MappingLatitudes () |
| This function returns the latitude keywords that this projection uses. | |
| virtual PvlGroup | MappingLongitudes () |
| This function returns the longitude keywords that this projection uses. | |
| virtual bool | operator== (const Projection &proj) |
| This method returns if two map projection objects are equal. | |
| bool | operator!= (const Projection &proj) |
| This method returns if two map projection objects are not equal. | |
| virtual bool | IsEquatorialCylindrical () |
| This method returns true if the projection is equatorial cylindrical. | |
| virtual std::string | Name () const =0 |
| This method returns the name of the map projection. | |
| virtual std::string | Version () const =0 |
| double | LocalRadius () const |
| This method returns the local radius in meters at the current latitude position. | |
| double | LocalRadius (double lat) const |
| This method returns the local radius in meters at the specified latitude position. | |
| bool | IsSky () const |
| Returns true if projection is sky and false if it is land. | |
Static Public Member Functions | |
| static double | To360Domain (const double lon) |
| This method converts a longitude into the 0 to 360 domain. | |
| static double | To180Domain (const double lon) |
| This method converts a longitude into the -180 to 180 domain. | |
| static double | ToPositiveEast (const double lon, const int domain) |
| This method converts a longitude into the positive east direction. | |
| static double | ToPositiveWest (const double lon, const int domain) |
| This method converts a longitude into the positive west direction. | |
| static double | ToHours (double angle) |
| Converts angle(in degrees) to hours. | |
| static std::string | ToDMS (double angle) |
| Converts angle(in degrees) to degrees, minutes, seconds. | |
| static std::string | ToHMS (double angle) |
| Converts angle(in degrees) to hours, minutes, seconds. | |
| static double | ToPlanetographic (double lat, double eRadius, double pRadius) |
| This method converts a planetocentric latitude to a planetographic latitude. | |
| static double | ToPlanetocentric (double lat, double eRadius, double pRadius) |
| This method converts a planetographic latitude to a planetocentric latitude. | |
| static PvlGroup | TargetRadii (std::string target) |
| Creates a Pvl Group with keywords TargetName, EquitorialRadius, and PolarRadius. | |
| static PvlGroup | TargetRadii (Pvl &cubeLab, PvlGroup &mapGroup) |
| Convenience method See method above for more details. | |
Protected Member Functions | |
| void | XYRangeCheck (const double latitude, const double longitude) |
| This convience function is established to assist in the development of the XYRange virtual method. | |
| double | mCompute (const double sinphi, const double cosphi) const |
| A convience method to compute m = cosphi/sqrt(1-(ecc*sinphi)**2). | |
| double | e4Compute () const |
| A convience method to compute e4 = sqrt(1+ecc)**(1+ecc)*(1-ecc)**(1-ecc)). | |
| double | tCompute (const double phi, const double sinphi) const |
| A convience method to compute: t = tan(.5*(.5PI-phi)/((1-ecc*sinphi)/(1+ecc*sinphi))**(.5*ecc). | |
| double | phi2Compute (const double t) const |
| A convience method to compute latitude angle phi2 given small t. | |
| void | SetXY (double x, double y) |
| This protected method is a helper for derived classes. | |
| void | SetComputedXY (double x, double y) |
| This protected method is a helper for derived classes. | |
| double | GetX () const |
| Return the unrotated form of p_x. | |
| double | GetY () const |
| Returh the unrotated form of p_y. | |
Protected Attributes | |
| Isis::WorldMapper * | p_mapper |
| This points to a mapper passed into the SetWorldMapper method. | |
| double | p_latitude |
| This contain a latitude value. | |
| double | p_longitude |
| This contain a longitude value. | |
| bool | p_good |
| Indicates if the contents of p_x, p_y, p_latitude, and p_longitude are valid. | |
| LatitudeType | p_latitudeType |
| An enumerated type indicating the LatitudeType read from the labels. | |
| LongitudeDirection | p_longitudeDirection |
| An enumerated type indicating the LatitudeDirection read from the labels. | |
| int | p_longitudeDomain |
| This integer is either 180 or 360 and is read from the labels. | |
| double | p_equatorialRadius |
| Polar radius of the target. | |
| double | p_polarRadius |
| Polar radius of the target. | |
| double | p_eccentricity |
| Planet Eccentricity. | |
| bool | p_sky |
| Indicates whether projection is sky or land. | |
| bool | p_groundRangeGood |
| Indicates if the ground range (min/max lat/lons) were read from the labels. | |
| double | p_minimumLatitude |
| Contains the minimum latitude for the entire ground range. | |
| double | p_maximumLatitude |
| Contains the maximum latitude for the entire ground range. | |
| double | p_minimumLongitude |
| Contains the minimum longitude for the entire ground range. | |
| double | p_maximumLongitude |
| Contains the maximum longitude for the entire ground range. | |
| double | p_minimumX |
| The data elements p_minimumX, p_minimumY, p_maximumX, and p_maximumY are convience data elements when you write the XYRange virtual function. | |
| double | p_maximumX |
| See minimumX description. | |
| double | p_minimumY |
| See minimumX description. | |
| double | p_maximumY |
| See minimumX description. | |
| PvlGroup | p_mappingGrp |
| Mapping group that created this projection. | |
Private Attributes | |
| double | p_rotation |
| double | p_x |
| Rotation of map (usually zero) This contains the rotated X coordinate for a specific projection at theposition indicated by p_latitude/p_longitude. | |
| double | p_y |
| This contains the rotated Y coordinate for a specific projection at the position indicated by p_latitude/p_longitude. | |
| Isis::Projection::Projection | ( | Isis::Pvl & | label | ) |
Constructs an empty Projection object.
| label | A PVL object containing map projection labels. These labels are fully described in the Isis Map Projection Users Guide. A brief example follows: Group = Mapping EquatorialRadius = 3396190.0 PolarRadius = 3376200.0 LongitudeDirection = PositiveEast LongitudeDomain = 360 LatitudeType = Planetographic MinimumLatitude = 10.8920539924144 MaximumLatitude = 34.7603960060206 MinimumLongitude = 219.72432466275 MaximumLongitude = 236.186050244411 PixelResolution = 1387.31209461362 ProjectionName = SimpleCylindrical CenterLongitude = 220.0 EndGroup End |
| Isis::iException::Projection |
Definition at line 62 of file Projection.cpp.
References _FILEINFO_, e, Isis::PvlObject::FindGroup(), Isis::PvlContainer::HasKeyword(), Isis::iException::Message(), p_eccentricity, p_equatorialRadius, p_good, p_groundRangeGood, p_latitudeType, p_longitudeDirection, p_longitudeDomain, p_mapper, p_mappingGrp, p_maximumLatitude, p_maximumLongitude, p_maximumX, p_maximumY, p_minimumLatitude, p_minimumLongitude, p_minimumX, p_minimumY, p_polarRadius, p_rotation, p_sky, str, TargetRadii(), and Isis::PvlObject::Traverse.
| virtual Isis::Projection::~Projection | ( | ) | [inline, virtual] |
| double Isis::Projection::e4Compute | ( | ) | const [protected] |
A convience method to compute e4 = sqrt(1+ecc)**(1+ecc)*(1-ecc)**(1-ecc)).
Definition at line 953 of file Projection.cpp.
References Eccentricity().
Referenced by Isis::PolarStereographic::PolarStereographic().
| double Isis::Projection::Eccentricity | ( | ) | const [inline] |
This returns the eccentricity of the target.
Definition at line 218 of file Projection.h.
References p_eccentricity.
Referenced by e4Compute(), mCompute(), Isis::Mercator::Mercator(), phi2Compute(), tCompute(), and Isis::TransverseMercator::TransverseMercator().
| double Isis::Projection::EquatorialRadius | ( | ) | const [inline] |
This returns the equatorial radius of the target.
The radius was obtained from the label during object construction.
Definition at line 202 of file Projection.h.
References p_equatorialRadius.
Referenced by Qisis::MosaicItem::displayControlPoints(), Qisis::MosaicFindTool::getUserGroundPoint(), and operator==().
| double Isis::Projection::GetX | ( | ) | const [protected] |
Return the unrotated form of p_x.
Definition at line 1213 of file Projection.cpp.
References p_rotation, p_x, p_y, and Isis::PI().
Referenced by Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), and Isis::Equirectangular::SetCoordinate().
| double Isis::Projection::GetY | ( | ) | const [protected] |
Returh the unrotated form of p_y.
Definition at line 1224 of file Projection.cpp.
References p_rotation, p_x, p_y, and Isis::PI().
Referenced by Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), and Isis::Equirectangular::SetCoordinate().
| bool Isis::Projection::Has180Domain | ( | ) | const [inline] |
This indicates if the longitude domain is -180 to 180 (as opposed to 0 to 360).
The longitude domain was obtained from the label during object construction.
Definition at line 289 of file Projection.h.
References p_longitudeDomain.
Referenced by Qisis::MosaicItem::displayControlPoints(), Qisis::MosaicFindTool::getUserGroundPoint(), and Qisis::MosaicItem::reproject().
| bool Isis::Projection::Has360Domain | ( | ) | const [inline] |
This indicates if the longitude domain is 0 to 360 (as opposed to -180 to 180).
The longitude domain was obtained from the label during object construction.
Definition at line 279 of file Projection.h.
References p_longitudeDomain.
| bool Isis::Projection::HasGroundRange | ( | ) | const [inline] |
This indicates that the labels contained minimum and maximum latitudes and longitudes (e.g., a ground range coverage).
If the projection has ground range coverage then the MinimumLatitude, MaximumLatitude, MinimumLongitude, and MaximumLongitude methods can be used. The ground range coverage essentially defines the area of user interest.
Definition at line 300 of file Projection.h.
References p_groundRangeGood.
Referenced by Isis::ProjectionFactory::CreateForCube(), Mapping(), MappingLatitudes(), MappingLongitudes(), and Isis::ObliqueCylindrical::XYRange().
| virtual bool Isis::Projection::IsEquatorialCylindrical | ( | ) | [inline, virtual] |
This method returns true if the projection is equatorial cylindrical.
In other words, if an image projected at 0 is the same as an image projected at 360.
Reimplemented in Isis::Equirectangular, Isis::Mercator, and Isis::SimpleCylindrical.
Definition at line 390 of file Projection.h.
Referenced by Isis::ProcessMapMosaic::StartProcess().
| bool Isis::Projection::IsGood | ( | ) | const [inline] |
This indicates if the last invocation of SetGround, SetCoordinate, or SetUniversalGround 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 149 of file Projection.h.
References p_good.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::Sensor::DemRadius(), Isis::Chip::Load(), and XYRangeCheck().
| bool Isis::Projection::IsPlanetocentric | ( | ) | const [inline] |
This indicates if the latitude type is planetocentric (as opposed to planetographic).
The latitude type was obtained from the label during object construction.
Definition at line 240 of file Projection.h.
References p_latitudeType.
Referenced by operator==(), Isis::TransverseMercator::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), and Isis::LambertConformal::SetGround().
| bool Isis::Projection::IsPlanetographic | ( | ) | const [inline] |
This indicates if the latitude type is planetographic (as opposed to planetocentric).
The latitude type was obtained from the label during object construction.
Definition at line 230 of file Projection.h.
References p_latitudeType.
Referenced by Qisis::MosaicItem::displayControlPoints(), and Qisis::MosaicFindTool::getUserGroundPoint().
| bool Isis::Projection::IsPositiveEast | ( | ) | const [inline] |
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 270 of file Projection.h.
References p_longitudeDirection.
| bool Isis::Projection::IsPositiveWest | ( | ) | const [inline] |
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 261 of file Projection.h.
References p_longitudeDirection.
Referenced by Qisis::MosaicItem::displayControlPoints(), Qisis::MosaicFindTool::getUserGroundPoint(), and operator==().
| bool Isis::Projection::IsSky | ( | ) | const [inline] |
Returns true if projection is sky and false if it is land.
Definition at line 404 of file Projection.h.
References p_sky.
Referenced by Isis::Camera::RaDecRange(), Isis::Camera::RaDecResolution(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetImage(), Isis::Camera::SetRightAscensionDeclination(), Qisis::MeasureTool::updateDist(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::Latitude | ( | ) | const [inline] |
This returns a latitude with correct latitude type 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 173 of file Projection.h.
References p_latitude.
Referenced by Qisis::MosaicItem::screenToGround(), Qisis::TrackTool::updateLabels(), and Isis::PolygonTools::XYToLatLon().
| string Isis::Projection::LatitudeTypeString | ( | ) | const |
This method returns the latitude type as a string.
It will return either Planetocentric or Planetographic.
Definition at line 570 of file Projection.cpp.
References p_latitudeType.
| double Isis::Projection::LocalRadius | ( | double | latitude | ) | const |
This method returns the local radius in meters at the specified latitude position.
| latitude | A latitude in degrees (assumed to be of the correct LatitudeType). |
Definition at line 926 of file Projection.cpp.
References a, c, p_equatorialRadius, p_polarRadius, and Isis::PI().
| double Isis::Projection::LocalRadius | ( | ) | const |
This method returns the local radius in meters at the current latitude position.
This is only usable if the use of SetGround or SetCoordinate was successful.
Definition at line 913 of file Projection.cpp.
References p_latitude.
Referenced by Isis::ProjectionFactory::CreateForCube(), Isis::Equirectangular::Equirectangular(), Qisis::MeasureTool::updateDist(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::Longitude | ( | ) | const [inline] |
This returns a longitude with correct 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 163 of file Projection.h.
References p_longitude.
Referenced by Qisis::MosaicItem::screenToGround(), Isis::Camera::SetImage(), Qisis::TrackTool::updateLabels(), Qisis::AdvancedTrackTool::updateRow(), and Isis::PolygonTools::XYToLatLon().
| string Isis::Projection::LongitudeDirectionString | ( | ) | const |
This method returns the longitude direction as a string.
It will return either PositiveEast or PositiveWest.
Definition at line 581 of file Projection.cpp.
References p_longitudeDirection.
| string Isis::Projection::LongitudeDomainString | ( | ) | const |
This method returns the longitude domain as a string.
It will return either 180 or 360.
Definition at line 592 of file Projection.cpp.
References p_longitudeDomain.
| PvlGroup Isis::Projection::Mapping | ( | ) | [virtual] |
This function returns the keywords that this projection uses.
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 767 of file Projection.cpp.
References HasGroundRange(), Isis::PvlContainer::HasKeyword(), and p_mappingGrp.
Referenced by Isis::TransverseMercator::Mapping(), Isis::Sinusoidal::Mapping(), Isis::SimpleCylindrical::Mapping(), Isis::PolarStereographic::Mapping(), Isis::PointPerspective::Mapping(), Isis::Orthographic::Mapping(), Isis::ObliqueCylindrical::Mapping(), Isis::Mercator::Mapping(), Isis::LunarAzimuthalEqualArea::Mapping(), Isis::LambertConformal::Mapping(), and Isis::Equirectangular::Mapping().
| PvlGroup Isis::Projection::MappingLatitudes | ( | ) | [virtual] |
This function returns the latitude keywords that this projection uses.
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 800 of file Projection.cpp.
References HasGroundRange(), and p_mappingGrp.
Referenced by Isis::TransverseMercator::MappingLatitudes(), Isis::Sinusoidal::MappingLatitudes(), Isis::SimpleCylindrical::MappingLatitudes(), Isis::PolarStereographic::MappingLatitudes(), Isis::PointPerspective::MappingLatitudes(), Isis::Orthographic::MappingLatitudes(), Isis::ObliqueCylindrical::MappingLatitudes(), Isis::Mercator::MappingLatitudes(), Isis::LambertConformal::MappingLatitudes(), and Isis::Equirectangular::MappingLatitudes().
| PvlGroup Isis::Projection::MappingLongitudes | ( | ) | [virtual] |
This function returns the longitude keywords that this projection uses.
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 816 of file Projection.cpp.
References HasGroundRange(), and p_mappingGrp.
Referenced by Isis::TransverseMercator::MappingLongitudes(), Isis::Sinusoidal::MappingLongitudes(), Isis::SimpleCylindrical::MappingLongitudes(), Isis::PolarStereographic::MappingLongitudes(), Isis::PointPerspective::MappingLongitudes(), Isis::Orthographic::MappingLongitudes(), Isis::ObliqueCylindrical::MappingLongitudes(), Isis::Mercator::MappingLongitudes(), Isis::LambertConformal::MappingLongitudes(), and Isis::Equirectangular::MappingLongitudes().
| double Isis::Projection::MaximumLatitude | ( | ) | const [inline] |
This returns the maximum latitude 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 318 of file Projection.h.
References p_maximumLatitude.
Referenced by Isis::ObliqueCylindrical::XYRange().
| double Isis::Projection::MaximumLongitude | ( | ) | const [inline] |
This returns the maximum 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 336 of file Projection.h.
References p_maximumLongitude.
Referenced by Isis::ObliqueCylindrical::XYRange().
| double Isis::Projection::mCompute | ( | const double | sinphi, | |
| const double | cosphi | |||
| ) | const [protected] |
A convience method to compute m = cosphi/sqrt(1-(ecc*sinphi)**2).
| sinphi | sine of phi | |
| cosphi | cosine of phi |
Definition at line 942 of file Projection.cpp.
References Eccentricity().
Referenced by Isis::LambertConformal::LambertConformal(), and Isis::PolarStereographic::PolarStereographic().
| double Isis::Projection::MinimumLatitude | ( | ) | const [inline] |
This returns the minimum latitude 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 309 of file Projection.h.
References p_minimumLatitude.
Referenced by Isis::ObliqueCylindrical::XYRange().
| double Isis::Projection::MinimumLongitude | ( | ) | const [inline] |
This returns the minimum 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 327 of file Projection.h.
References p_minimumLongitude.
Referenced by Isis::ObliqueCylindrical::XYRange().
| virtual std::string Isis::Projection::Name | ( | ) | const [pure virtual] |
This method returns the name of the map projection.
Implemented in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Referenced by operator==(), and Isis::ProcessExportPds::ProjectionName().
| bool Isis::Projection::operator!= | ( | const Projection & | proj | ) |
This method returns if two map projection objects are not equal.
That is, they have at least some differences in the radii, latitude type, longitude direction, projection name, and projection specific parameters.
Definition at line 720 of file Projection.cpp.
References proj.
| bool Isis::Projection::operator== | ( | const Projection & | proj | ) | [virtual] |
This method returns if two map projection objects are equal.
That is, they have the same radii, latitude type, longitude direction, projection name, and projection specific parameters.
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 703 of file Projection.cpp.
References EquatorialRadius(), IsPlanetocentric(), IsPositiveWest(), Name(), PolarRadius(), proj, and Resolution().
| double Isis::Projection::phi2Compute | ( | const double | t | ) | const [protected] |
A convience method to compute latitude angle phi2 given small t.
| t | small t |
Definition at line 988 of file Projection.cpp.
References _FILEINFO_, difference(), Eccentricity(), Isis::HALFPI(), and Isis::iException::Message().
Referenced by Isis::PolarStereographic::SetCoordinate(), Isis::Mercator::SetCoordinate(), and Isis::LambertConformal::SetCoordinate().
| double Isis::Projection::PolarRadius | ( | ) | const [inline] |
This returns the polar radius of the target.
The radius was obtained from the label during object construction.
Definition at line 210 of file Projection.h.
References p_polarRadius.
Referenced by Qisis::MosaicItem::displayControlPoints(), Qisis::MosaicFindTool::getUserGroundPoint(), and operator==().
| double Isis::Projection::Resolution | ( | ) | const |
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 687 of file Projection.cpp.
References p_mapper, and Isis::WorldMapper::Resolution().
Referenced by Isis::ProcessExport::CreateWorldFile(), operator==(), Isis::UniversalGroundMap::Resolution(), and Qisis::MeasureTool::updateDist().
| double Isis::Projection::Rotation | ( | ) | const [inline] |
Return the rotation of the map.
Definition at line 347 of file Projection.h.
References p_rotation.
| double Isis::Projection::Scale | ( | ) | const |
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
Definition at line 734 of file Projection.cpp.
References a, b, p_equatorialRadius, p_mapper, p_polarRadius, Isis::PI(), Isis::WorldMapper::Resolution(), and TrueScaleLatitude().
| void Isis::Projection::SetComputedXY | ( | double | x, | |
| double | y | |||
| ) | [protected] |
This protected method is a helper for derived classes.
It takes an unrotated x,y and rotates using p_rotation storing the results in p_x and p_y.
| x | unrotated x coordinate | |
| y | unrotated y coordinate |
Definition at line 1184 of file Projection.cpp.
References p_rotation, p_x, p_y, and Isis::PI().
Referenced by Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), and Isis::Equirectangular::SetGround().
| bool Isis::Projection::SetCoordinate | ( | const double | x, | |
| const double | y | |||
| ) | [virtual] |
This method is used to set the projection x/y.
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. Usually this method is overridden in a dervied class, for example, Sinusoidal. If not the default method simply copies x/y to lat/lon to x/y which is no projection.
| 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 in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 863 of file Projection.cpp.
References p_latitude, p_longitude, p_x, p_y, and SetXY().
Referenced by Isis::StripPolygonSeeder::Seed(), Isis::LimitPolygonSeeder::Seed(), Isis::GridPolygonSeeder::SeedGrid(), Isis::GridPolygonSeeder::SeedSubGrid(), and SetWorld().
| bool Isis::Projection::SetGround | ( | const double | lat, | |
| const double | lon | |||
| ) | [virtual] |
This method is used to set the latitude/longitude (assumed to be of the correct LatitudeType, LongitudeDirection, and LongitudeDomain.
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. Usually this method is overridden in a dervied class, for example, Sinusoidal. If not the default method simply copies lat/lon to x/y which is no projection.
| lat | Latitude value to project | |
| lon | Longitude value to project |
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 841 of file Projection.cpp.
References p_latitude, p_longitude, and SetComputedXY().
Referenced by Qisis::MosaicItem::displayControlPoints(), Qisis::MosaicFindTool::getUserGroundPoint(), Isis::PolygonTools::LatLonToXY(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetRightAscensionDeclination(), SetUniversalGround(), and XYRangeCheck().
| bool Isis::Projection::SetUniversalGround | ( | const double | lat, | |
| const double | lon | |||
| ) |
This method is used to set the latitude/longitude which must be Planetocentric (latitude) and PositiveEast/Domain360 (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.
| lat | Planetocentric Latitude value to project | |
| lon | PositiveEast, Domain360 Longitude value to project |
Definition at line 325 of file Projection.cpp.
References p_latitude, p_latitudeType, p_longitude, p_longitudeDirection, p_longitudeDomain, SetGround(), To180Domain(), To360Domain(), and ToPlanetographic().
Referenced by Isis::ProjectionFactory::CreateForCube(), Qisis::MosaicWidget::createReferenceFootprint(), Isis::Sensor::DemRadius(), Isis::Chip::Load(), Isis::Camera::RawFocalPlanetoImage(), Qisis::MosaicItem::reproject(), Isis::Camera::SetRightAscensionDeclination(), Isis::UniversalGroundMap::SetUniversalGround(), and Isis::ProcessMapMosaic::StartProcess().
| bool Isis::Projection::SetWorld | ( | const double | worldX, | |
| const double | worldY | |||
| ) |
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 230 of file Projection.cpp.
References p_mapper, Isis::WorldMapper::ProjectionX(), Isis::WorldMapper::ProjectionY(), and SetCoordinate().
Referenced by Isis::ProcessExport::CreateWorldFile(), Isis::Chip::Load(), Qisis::MosaicItem::screenToCam(), Qisis::MosaicItem::screenToGround(), Isis::UniversalGroundMap::SetImage(), Isis::Camera::SetImage(), Qisis::MeasureTool::updateDist(), Qisis::TrackTool::updateLabels(), Qisis::AdvancedTrackTool::updateRow(), and Isis::PolygonTools::XYToLatLon().
| void Isis::Projection::SetWorldMapper | ( | Isis::WorldMapper * | mapper | ) | [inline] |
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 130 of file Projection.h.
References p_mapper.
Referenced by Isis::ProjectionFactory::CreateForCube(), and Isis::ProjectionFactory::CreateFromCube().
| void Isis::Projection::SetXY | ( | double | x, | |
| double | y | |||
| ) | [protected] |
This protected method is a helper for derived classes.
It takes a rotated x,y and stores them in p_x and p_y.
| x | rotated x coordinate | |
| y | rotated y coordinate |
Definition at line 1203 of file Projection.cpp.
Referenced by Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), and Isis::Equirectangular::SetCoordinate().
Convenience method See method above for more details.
| cubeLab | ||
| mapGroup |
Definition at line 1151 of file Projection.cpp.
References Isis::PvlContainer::DeleteKeyword(), Isis::PvlObject::FindGroup(), Isis::PvlContainer::FindKeyword(), Isis::PvlContainer::HasKeyword(), TargetRadii(), and Isis::PvlObject::Traverse.
| PvlGroup Isis::Projection::TargetRadii | ( | std::string | target | ) | [static] |
Creates a Pvl Group with keywords TargetName, EquitorialRadius, and PolarRadius.
The values for the radii will be retrieved from the most recent Target Attitude and Shape Naif kernel available in the Isis data area.
| target | The name of the body for which the radii will be retrieved. |
Definition at line 1110 of file Projection.cpp.
References _FILEINFO_, code, Isis::Filename::Expanded(), Isis::Filename::HighestVersion(), and Isis::iException::Message().
Referenced by Projection(), and TargetRadii().
| double Isis::Projection::tCompute | ( | const double | phi, | |
| const double | sinphi | |||
| ) | const [protected] |
A convience method to compute: t = tan(.5*(.5PI-phi)/((1-ecc*sinphi)/(1+ecc*sinphi))**(.5*ecc).
| phi | phi | |
| sinphi | sin of phi |
Definition at line 971 of file Projection.cpp.
References Eccentricity(), and Isis::HALFPI().
Referenced by Isis::LambertConformal::LambertConformal(), Isis::PolarStereographic::PolarStereographic(), Isis::PolarStereographic::SetGround(), Isis::Mercator::SetGround(), and Isis::LambertConformal::SetGround().
| double Isis::Projection::To180Domain | ( | const double | lon | ) | [static] |
This method converts a longitude into the -180 to 180 domain.
It will leave the longitude unchanged if it is already in the domain.
| lon | Longitude to convert into the -180 to 180 domain. |
Definition at line 453 of file Projection.cpp.
Referenced by Qisis::MosaicItem::displayControlPoints(), Isis::ProcessImportPds::ExtractPdsProjection(), Qisis::MosaicFindTool::getUserGroundPoint(), Isis::TransverseMercator::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), SetUniversalGround(), ToPositiveEast(), ToPositiveWest(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::To360Domain | ( | const double | lon | ) | [static] |
This method converts a longitude into the 0 to 360 domain.
It will leave the longitude unchanged if it is already in the domain.
| lon | Longitude to convert into the 0 to 360 domain. |
Definition at line 438 of file Projection.cpp.
Referenced by Isis::TransverseMercator::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), SetUniversalGround(), ToPositiveEast(), ToPositiveWest(), and UniversalLongitude().
| string Isis::Projection::ToDMS | ( | double | angle | ) | [static] |
Converts 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 1032 of file Projection.cpp.
| string Isis::Projection::ToHMS | ( | double | angle | ) | [static] |
Converts 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 1067 of file Projection.cpp.
References ToHours().
| double Isis::Projection::ToHours | ( | double | angle | ) | [static] |
Converts angle(in degrees) to hours.
| angle | Angle in degrees to be converted to hours |
Definition at line 1019 of file Projection.cpp.
Referenced by ToHMS().
| double Isis::Projection::ToPlanetocentric | ( | double | lat, | |
| double | eRadius, | |||
| double | pRadius | |||
| ) | [static] |
This method converts a planetographic latitude to a planetocentric latitude.
| lat | Planetographic latitude to convert. |
Definition at line 418 of file Projection.cpp.
References Isis::PI().
| double Isis::Projection::ToPlanetocentric | ( | const double | lat | ) | const |
This method converts a planetographic latitude to a planetocentric latitude.
It utilizes the equatorial and polar radii to perform the computation.
| lat | Planetographic latitude to convert. |
Definition at line 400 of file Projection.cpp.
References p_equatorialRadius, p_polarRadius, and Isis::PI().
Referenced by Isis::TransverseMercator::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), and UniversalLatitude().
| double Isis::Projection::ToPlanetographic | ( | double | lat, | |
| double | eRadius, | |||
| double | pRadius | |||
| ) | [static] |
This method converts a planetocentric latitude to a planetographic latitude.
It is static so that a projection object does not need to exist.
| lat | Planetocentric latitude to convert. | |
| eRadius | Equatorial radius. | |
| pRadius | Polar radius |
Definition at line 380 of file Projection.cpp.
References Isis::PI().
| double Isis::Projection::ToPlanetographic | ( | const double | lat | ) | const |
This method converts a planetocentric latitude to a planetographic latitude.
It utilizes the equatorial and polar radii to perform the computation.
| lat | Planetocentric latitude to convert. |
Definition at line 358 of file Projection.cpp.
References p_equatorialRadius, p_polarRadius, and Isis::PI().
Referenced by Qisis::MosaicItem::displayControlPoints(), Isis::CameraPointInfo::GetPointInfo(), Qisis::MosaicFindTool::getUserGroundPoint(), Isis::TransverseMercator::SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), SetUniversalGround(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::ToPositiveEast | ( | const double | lon, | |
| const int | domain | |||
| ) | [static] |
This method converts a longitude into the positive east direction.
| lon | Longitude to convert into the positive east direction. |
Definition at line 467 of file Projection.cpp.
References _FILEINFO_, Isis::iException::Message(), To180Domain(), and To360Domain().
| double Isis::Projection::ToPositiveWest | ( | const double | lon, | |
| const int | domain | |||
| ) | [static] |
This method converts a longitude into the positive west direction.
| lon | Longitude to convert into the positive west direction. |
Definition at line 495 of file Projection.cpp.
References _FILEINFO_, Isis::iException::Message(), To180Domain(), and To360Domain().
Referenced by Qisis::MosaicItem::displayControlPoints(), and Qisis::MosaicFindTool::getUserGroundPoint().
| double Isis::Projection::ToProjectionX | ( | const double | worldX | ) | const |
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 |
Definition at line 648 of file Projection.cpp.
References p_mapper, and Isis::WorldMapper::ProjectionX().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), and Isis::ProcessMapMosaic::StartProcess().
| double Isis::Projection::ToProjectionY | ( | const double | worldY | ) | const |
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 |
Definition at line 668 of file Projection.cpp.
References p_mapper, and Isis::WorldMapper::ProjectionY().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), and Isis::ProcessMapMosaic::StartProcess().
| double Isis::Projection::ToWorldX | ( | const double | projectionX | ) | const |
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 |
Definition at line 608 of file Projection.cpp.
References p_mapper, and Isis::WorldMapper::WorldX().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), Isis::ProcessMapMosaic::SetOutputCube(), and Isis::ProcessMapMosaic::StartProcess().
| double Isis::Projection::ToWorldY | ( | const double | projectionY | ) | const |
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 |
Definition at line 628 of file Projection.cpp.
References p_mapper, and Isis::WorldMapper::WorldY().
Referenced by Isis::OverlapStatistics::OverlapStatistics(), Isis::ProcessMapMosaic::SetOutputCube(), and Isis::ProcessMapMosaic::StartProcess().
| double Isis::Projection::TrueScaleLatitude | ( | ) | const [virtual] |
This method returns the latitude of true scale.
It is a virtual function and if it is not overriden the latitude of true scale is 0. Otherwise it is projection specific.For example, the center latitude for Mercator, Equidistant, or a parallel for conic projections. This method is used by the Scale routine to ensure the local radius is used in the computation.
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::Mercator, Isis::Orthographic, Isis::PointPerspective, and Isis::PolarStereographic.
Definition at line 758 of file Projection.cpp.
Referenced by Isis::ProjectionFactory::CreateForCube(), and Scale().
| double Isis::Projection::UniversalLatitude | ( | ) |
This returns a universal latitude (planetocentric).
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 307 of file Projection.cpp.
References p_latitude, p_latitudeType, and ToPlanetocentric().
Referenced by Isis::Chip::Load(), Qisis::MosaicItem::screenToCam(), Isis::StripPolygonSeeder::Seed(), Isis::LimitPolygonSeeder::Seed(), Isis::GridPolygonSeeder::SeedGrid(), Isis::GridPolygonSeeder::SeedSubGrid(), Isis::Camera::SetImage(), Isis::UniversalGroundMap::UniversalLatitude(), Qisis::MeasureTool::updateDist(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::UniversalLongitude | ( | ) |
This returns a universal longitude (positive east 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 293 of file Projection.cpp.
References p_longitude, p_longitudeDirection, and To360Domain().
Referenced by Isis::Chip::Load(), Qisis::MosaicItem::screenToCam(), Isis::StripPolygonSeeder::Seed(), Isis::LimitPolygonSeeder::Seed(), Isis::GridPolygonSeeder::SeedGrid(), Isis::GridPolygonSeeder::SeedSubGrid(), Isis::Camera::SetImage(), Isis::UniversalGroundMap::UniversalLongitude(), Qisis::MeasureTool::updateDist(), and Qisis::AdvancedTrackTool::updateRow().
| double Isis::Projection::WorldX | ( | ) | const |
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 257 of file Projection.cpp.
References p_mapper, p_x, and Isis::WorldMapper::WorldX().
Referenced by Isis::Sensor::DemRadius(), Isis::Chip::Load(), Isis::Camera::RawFocalPlanetoImage(), Isis::UniversalGroundMap::Sample(), Isis::Camera::SetRightAscensionDeclination(), and Isis::ProcessMapMosaic::StartProcess().
| double Isis::Projection::WorldY | ( | ) | const |
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 276 of file Projection.cpp.
References p_mapper, p_y, and Isis::WorldMapper::WorldY().
Referenced by Isis::Sensor::DemRadius(), Isis::UniversalGroundMap::Line(), Isis::Chip::Load(), Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().
| double Isis::Projection::XCoord | ( | ) | const [inline] |
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 183 of file Projection.h.
References p_x.
Referenced by Isis::ProjectionFactory::CreateForCube(), Qisis::MosaicWidget::createReferenceFootprint(), Isis::ProcessExport::CreateWorldFile(), Qisis::MosaicItem::displayControlPoints(), Isis::ObliqueCylindrical::findExtreme(), Qisis::MosaicFindTool::getUserGroundPoint(), Isis::PolygonTools::LatLonToXY(), Qisis::MosaicItem::reproject(), Qisis::AdvancedTrackTool::updateRow(), and Isis::LambertConformal::XYRange().
| bool Isis::Projection::XYRange | ( | double & | minX, | |
| double & | maxX, | |||
| double & | minY, | |||
| double & | maxY | |||
| ) | [virtual] |
This method is used to determine the x/y range which completely covers the area of interest specified by the lat/lon range.
The latitude/longitude range may be obtained from the labels. This method should not be used if HasGroundRange is false. 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. This is method and therefore must be written by the derived class (e.g., Sinusoidal). The method may fail as indicated by its return value.
| 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. |
Reimplemented in Isis::Equirectangular, Isis::LambertConformal, Isis::LunarAzimuthalEqualArea, Isis::Mercator, Isis::ObliqueCylindrical, Isis::Orthographic, Isis::PointPerspective, Isis::PolarStereographic, Isis::SimpleCylindrical, Isis::Sinusoidal, and Isis::TransverseMercator.
Definition at line 895 of file Projection.cpp.
References p_groundRangeGood, p_maximumLatitude, p_maximumLongitude, p_minimumLatitude, and p_minimumLongitude.
Referenced by Isis::ProjectionFactory::CreateForCube(), and Isis::ProcessMapMosaic::SetOutputCube().
| void Isis::Projection::XYRangeCheck | ( | const double | latitude, | |
| const double | longitude | |||
| ) | [protected] |
This convience function is established to assist in the development of the XYRange virtual method.
It allows the developer to test ground points (lat/lon) to see if they produce a minimum/maximum projection coordinate. For example in Sinusoidal,
bool Sinusoidal::XYRange(double &minX, double &maxX, double &minY, double &maxY) { // Check the corners of the lat/lon range XYRangeCheck (p_minimumLatitude,p_minimumLongitude); XYRangeCheck (p_maximumLatitude,p_minimumLongitude); XYRangeCheck (p_minimumLatitude,p_maximumLongitude); XYRangeCheck (p_maximumLatitude,p_maximumLongitude); // If the latitude crosses the equator check there if ((p_minimumLatitude < 0.0) && (p_maximumLatitude > 0.0)) { XYRangeCheck (0.0,p_minimumLongitude); XYRangeCheck (0.0,p_maximumLongitude); } // Make sure everything is ordered if (p_minimumX >= p_maximumX) return false; if (p_minimumY >= p_maximumY) return false; // Return X/Y min/maxs minX = p_minimumX; maxX = p_maximumX; minY = p_minimumY; maxY = p_maximumY; return true; }
| latitude | Test for min/max projection coordinates at this latitude | |
| longitude | Test for min/max projection coordinates at this longitude |
Definition at line 554 of file Projection.cpp.
References IsGood(), p_maximumX, p_maximumY, p_minimumX, p_minimumY, p_x, p_y, and SetGround().
Referenced by Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), and Isis::Equirectangular::XYRange().
| double Isis::Projection::YCoord | ( | ) | const [inline] |
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 194 of file Projection.h.
References p_y.
Referenced by Isis::ProjectionFactory::CreateForCube(), Qisis::MosaicWidget::createReferenceFootprint(), Isis::ProcessExport::CreateWorldFile(), Qisis::MosaicItem::displayControlPoints(), Isis::ObliqueCylindrical::findExtreme(), Qisis::MosaicFindTool::getUserGroundPoint(), Isis::PolygonTools::LatLonToXY(), Qisis::MosaicItem::reproject(), Qisis::AdvancedTrackTool::updateRow(), and Isis::LambertConformal::XYRange().
double Isis::Projection::p_eccentricity [protected] |
Planet Eccentricity.
Definition at line 466 of file Projection.h.
Referenced by Eccentricity(), and Projection().
double Isis::Projection::p_equatorialRadius [protected] |
Polar radius of the target.
This is a unitless value so that if the radius are in inches then the p_x and p_y will be in inches. The value is read from the labels.
Definition at line 455 of file Projection.h.
Referenced by EquatorialRadius(), Isis::ObliqueCylindrical::init(), Isis::LambertConformal::LambertConformal(), LocalRadius(), Isis::PointPerspective::PointPerspective(), Projection(), Scale(), Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), ToPlanetocentric(), ToPlanetographic(), Isis::TransverseMercator::TransverseMercator(), Isis::PointPerspective::XYRange(), and Isis::Orthographic::XYRange().
bool Isis::Projection::p_good [protected] |
Indicates if the contents of p_x, p_y, p_latitude, and p_longitude are valid.
Definition at line 431 of file Projection.h.
Referenced by IsGood(), Projection(), Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), Isis::Equirectangular::SetGround(), and Isis::LambertConformal::XYRange().
bool Isis::Projection::p_groundRangeGood [protected] |
Indicates if the ground range (min/max lat/lons) were read from the labels.
Definition at line 469 of file Projection.h.
Referenced by HasGroundRange(), Projection(), and XYRange().
double Isis::Projection::p_latitude [protected] |
This contain a latitude value.
The value is only usable if p_good is true.
Definition at line 427 of file Projection.h.
Referenced by Latitude(), LocalRadius(), Isis::ObliqueCylindrical::operator==(), Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), Isis::Equirectangular::SetGround(), SetUniversalGround(), UniversalLatitude(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), and Isis::LambertConformal::XYRange().
LatitudeType Isis::Projection::p_latitudeType [protected] |
An enumerated type indicating the LatitudeType read from the labels.
It can be either Planetographic or Planetocentric.
Definition at line 434 of file Projection.h.
Referenced by IsPlanetocentric(), IsPlanetographic(), LatitudeTypeString(), Projection(), SetUniversalGround(), and UniversalLatitude().
double Isis::Projection::p_longitude [protected] |
This contain a longitude value.
The value is only usable if p_good is true.
Definition at line 429 of file Projection.h.
Referenced by Isis::ObliqueCylindrical::init(), Longitude(), Isis::ObliqueCylindrical::operator==(), Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LunarAzimuthalEqualArea::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), Isis::Equirectangular::SetGround(), SetUniversalGround(), UniversalLongitude(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), and Isis::LambertConformal::XYRange().
An enumerated type indicating the LatitudeDirection read from the labels.
It can be either PositiveEast or PositiveWest.Indicating which direction the positive axis for longitude is.
Definition at line 439 of file Projection.h.
Referenced by Isis::Equirectangular::Equirectangular(), Isis::ObliqueCylindrical::init(), IsPositiveEast(), IsPositiveWest(), Isis::LambertConformal::LambertConformal(), LongitudeDirectionString(), Isis::Mercator::Mercator(), Isis::Orthographic::Orthographic(), Isis::PointPerspective::PointPerspective(), Isis::PolarStereographic::PolarStereographic(), Projection(), Isis::TransverseMercator::SetCoordinate(), Isis::Sinusoidal::SetCoordinate(), Isis::SimpleCylindrical::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), Isis::ObliqueCylindrical::SetCoordinate(), Isis::Mercator::SetCoordinate(), Isis::LambertConformal::SetCoordinate(), Isis::Equirectangular::SetCoordinate(), Isis::TransverseMercator::SetGround(), Isis::Sinusoidal::SetGround(), Isis::SimpleCylindrical::SetGround(), Isis::PolarStereographic::SetGround(), Isis::PointPerspective::SetGround(), Isis::Orthographic::SetGround(), Isis::ObliqueCylindrical::SetGround(), Isis::Mercator::SetGround(), Isis::LunarAzimuthalEqualArea::SetGround(), Isis::LambertConformal::SetGround(), Isis::Equirectangular::SetGround(), SetUniversalGround(), Isis::SimpleCylindrical::SimpleCylindrical(), Isis::Sinusoidal::Sinusoidal(), Isis::TransverseMercator::TransverseMercator(), UniversalLongitude(), Isis::PolarStereographic::XYRange(), and Isis::LambertConformal::XYRange().
int Isis::Projection::p_longitudeDomain [protected] |
This integer is either 180 or 360 and is read from the labels.
It represents the longitude domain when returning values through Longitude method. The domain is either -180 to 180 or 0 to 360.
Definition at line 446 of file Projection.h.
Referenced by Has180Domain(), Has360Domain(), LongitudeDomainString(), Projection(), Isis::TransverseMercator::SetCoordinate(), Isis::PolarStereographic::SetCoordinate(), Isis::PointPerspective::SetCoordinate(), Isis::Orthographic::SetCoordinate(), and SetUniversalGround().
Isis::WorldMapper* Isis::Projection::p_mapper [protected] |
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 418 of file Projection.h.
Referenced by Projection(), Resolution(), Scale(), SetWorld(), SetWorldMapper(), ToProjectionX(), ToProjectionY(), ToWorldX(), ToWorldY(), WorldX(), WorldY(), and ~Projection().
PvlGroup Isis::Projection::p_mappingGrp [protected] |
Mapping group that created this projection.
Definition at line 497 of file Projection.h.
Referenced by Isis::TransverseMercator::Mapping(), Isis::Sinusoidal::Mapping(), Isis::SimpleCylindrical::Mapping(), Mapping(), Isis::PolarStereographic::Mapping(), Isis::PointPerspective::Mapping(), Isis::Orthographic::Mapping(), Isis::ObliqueCylindrical::Mapping(), Isis::Mercator::Mapping(), Isis::LunarAzimuthalEqualArea::Mapping(), Isis::LambertConformal::Mapping(), Isis::Equirectangular::Mapping(), Isis::TransverseMercator::MappingLatitudes(), MappingLatitudes(), Isis::PolarStereographic::MappingLatitudes(), Isis::PointPerspective::MappingLatitudes(), Isis::Orthographic::MappingLatitudes(), Isis::Mercator::MappingLatitudes(), Isis::LambertConformal::MappingLatitudes(), Isis::Equirectangular::MappingLatitudes(), Isis::TransverseMercator::MappingLongitudes(), Isis::Sinusoidal::MappingLongitudes(), Isis::SimpleCylindrical::MappingLongitudes(), MappingLongitudes(), Isis::PolarStereographic::MappingLongitudes(), Isis::PointPerspective::MappingLongitudes(), Isis::Orthographic::MappingLongitudes(), Isis::Mercator::MappingLongitudes(), Isis::LambertConformal::MappingLongitudes(), Isis::Equirectangular::MappingLongitudes(), and Projection().
double Isis::Projection::p_maximumLatitude [protected] |
Contains the maximum latitude for the entire ground range.
Only usable if p_groundRangeGood is true.
Definition at line 474 of file Projection.h.
Referenced by Isis::Equirectangular::Equirectangular(), Isis::LambertConformal::LambertConformal(), MaximumLatitude(), Isis::Mercator::Mercator(), Isis::Orthographic::Orthographic(), Isis::PointPerspective::PointPerspective(), Isis::PolarStereographic::PolarStereographic(), Projection(), Isis::TransverseMercator::TransverseMercator(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), and Isis::Equirectangular::XYRange().
double Isis::Projection::p_maximumLongitude [protected] |
Contains the maximum longitude for the entire ground range.
Only usable if p_groundRangeGood is true.
Definition at line 480 of file Projection.h.
Referenced by Isis::LambertConformal::LambertConformal(), MaximumLongitude(), Isis::Mercator::Mercator(), Isis::Orthographic::Orthographic(), Isis::PointPerspective::PointPerspective(), Isis::PolarStereographic::PolarStereographic(), Projection(), Isis::SimpleCylindrical::SimpleCylindrical(), Isis::Sinusoidal::Sinusoidal(), Isis::TransverseMercator::TransverseMercator(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), and Isis::Equirectangular::XYRange().
double Isis::Projection::p_maximumX [protected] |
See minimumX description.
Definition at line 494 of file Projection.h.
Referenced by Projection(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::ObliqueCylindrical::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), Isis::Equirectangular::XYRange(), and XYRangeCheck().
double Isis::Projection::p_maximumY [protected] |
See minimumX description.
Definition at line 496 of file Projection.h.
Referenced by Projection(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::ObliqueCylindrical::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), Isis::Equirectangular::XYRange(), and XYRangeCheck().
double Isis::Projection::p_minimumLatitude [protected] |
Contains the minimum latitude for the entire ground range.
Only usable if p_groundRangeGood is true.
Definition at line 471 of file Projection.h.
Referenced by Isis::Equirectangular::Equirectangular(), Isis::LambertConformal::LambertConformal(), Isis::Mercator::Mercator(), MinimumLatitude(), Isis::Orthographic::Orthographic(), Isis::PointPerspective::PointPerspective(), Isis::PolarStereographic::PolarStereographic(), Projection(), Isis::TransverseMercator::TransverseMercator(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), and Isis::Equirectangular::XYRange().
double Isis::Projection::p_minimumLongitude [protected] |
Contains the minimum longitude for the entire ground range.
Only usable if p_groundRangeGood is true.
Definition at line 477 of file Projection.h.
Referenced by Isis::LambertConformal::LambertConformal(), Isis::Mercator::Mercator(), MinimumLongitude(), Isis::Orthographic::Orthographic(), Isis::PointPerspective::PointPerspective(), Isis::PolarStereographic::PolarStereographic(), Projection(), Isis::SimpleCylindrical::SimpleCylindrical(), Isis::Sinusoidal::Sinusoidal(), Isis::TransverseMercator::TransverseMercator(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), and Isis::Equirectangular::XYRange().
double Isis::Projection::p_minimumX [protected] |
The data elements p_minimumX, p_minimumY, p_maximumX, and p_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 485 of file Projection.h.
Referenced by Projection(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::ObliqueCylindrical::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), Isis::Equirectangular::XYRange(), and XYRangeCheck().
double Isis::Projection::p_minimumY [protected] |
See minimumX description.
Definition at line 495 of file Projection.h.
Referenced by Projection(), Isis::TransverseMercator::XYRange(), Isis::Sinusoidal::XYRange(), Isis::SimpleCylindrical::XYRange(), Isis::PolarStereographic::XYRange(), Isis::PointPerspective::XYRange(), Isis::Orthographic::XYRange(), Isis::ObliqueCylindrical::XYRange(), Isis::Mercator::XYRange(), Isis::LunarAzimuthalEqualArea::XYRange(), Isis::LambertConformal::XYRange(), Isis::Equirectangular::XYRange(), and XYRangeCheck().
double Isis::Projection::p_polarRadius [protected] |
Polar radius of the target.
This is a unitless value so that if the radius are in inches then the p_x and p_y will be in inches. Of course the units must be the same as the equatorial radius. The value is read from the labels.
Definition at line 459 of file Projection.h.
Referenced by LocalRadius(), PolarRadius(), Projection(), Scale(), ToPlanetocentric(), and ToPlanetographic().
bool Isis::Projection::p_sky [protected] |
Indicates whether projection is sky or land.
Definition at line 467 of file Projection.h.
Referenced by IsSky(), and Projection().
double Isis::Projection::p_x [private] |
Rotation of map (usually zero) This contains the rotated X coordinate for a specific projection at theposition indicated by p_latitude/p_longitude.
The value is only usable if p_good is true.
Definition at line 514 of file Projection.h.
Referenced by GetX(), GetY(), SetComputedXY(), SetCoordinate(), SetXY(), WorldX(), XCoord(), and XYRangeCheck().
double Isis::Projection::p_y [private] |
This contains the rotated Y coordinate for a specific projection at the position indicated by p_latitude/p_longitude.
The value is only usable if p_good is true.
Definition at line 518 of file Projection.h.
Referenced by GetX(), GetY(), SetComputedXY(), SetCoordinate(), SetXY(), WorldY(), XYRangeCheck(), and YCoord().