|
Isis 3 Programmer Reference
|
12 #include "Projection.h"
186 virtual QString
Name()
const = 0;
247 virtual bool SetGround(
const double lat,
const double lon);
264 double Scale()
const;
267 virtual bool XYRange(
double &minX,
double &maxX,
268 double &minY,
double &maxY);
277 double eRadius,
double pRadius);
279 double eRadius,
double pRadius);
289 void XYRangeCheck(
const double latitude,
const double longitude);
294 double &minY,
double &maxY);
297 double qCompute(
const double sinPhi)
const;
299 double mCompute(
const double sinphi,
const double cosphi)
const;
300 double tCompute(
const double phi,
const double sinphi)
const;
304 void doSearch(
double minBorder,
double maxBorder,
305 double &extremeVal,
const double constBorder,
306 bool searchX,
bool searchLongitude,
bool findMin);
307 void findExtreme(
double &minBorder,
double &maxBorder,
308 double &minBorderX,
double &minBorderY,
309 double &maxBorderX,
double &maxBorderY,
310 const double constBorder,
bool searchX,
311 bool searchLongitude,
bool findMin);
313 const double constBorder,
bool variableIsLat);
double m_maximumLatitude
Contains the maximum latitude for the entire ground range.
double m_longitude
This contains the currently set longitude value.
double m_eccentricity
The eccentricity of the target body.
int m_longitudeDomain
This integer is either 180 or 360 and is read from the labels.
virtual bool operator==(const Projection &proj)
This method determines whether two map projection objects are equal by comparing the equatorial radiu...
double m_minimumLongitude
Contains the minimum longitude for the entire ground range.
double m_latitude
This contains the currently set latitude value.
static double ToPositiveWest(const double lon, const int domain)
This method converts a longitude into the positive west direction.
virtual QString Version() const =0
This method returns the Version of the map projection.
bool IsPositiveWest() const
This indicates if the longitude direction type is positive east (as opposed to postive west).
virtual double UniversalLatitude()
This returns a universal latitude (planetocentric).
QString LongitudeDirectionString() const
This method returns the longitude direction as a string.
LongitudeDirection m_longitudeDirection
An enumerated type indicating the LongitudeDirection read from the labels.
double m_minimumLatitude
Contains the minimum latitude for the entire ground range.
@ PositiveWest
Longitude values increase in the westerly direction.
double e4Compute() const
A convience method to compute.
virtual bool SetCoordinate(const double x, const double y)
This method is used to set the projection x/y.
virtual double MinimumLongitude() const
This returns the minimum longitude of the area of interest.
virtual ~TProjection()
Destroys the TProjection object.
@ Planetocentric
Latitudes are measured as the angle from the equatorial plane to the plane through the center of the ...
bool IsPlanetographic() const
This indicates if the latitude type is planetographic (as opposed to planetocentric).
virtual double Longitude() const
This returns a longitude with correct longitude direction and domain as specified in the label object...
bool xyRangeOblique(double &minX, double &maxX, double &minY, double &maxY)
This method is used to find the XY range for oblique aspect projections (non-polar projections) by "w...
double tCompute(const double phi, const double sinphi) const
A convience method to compute Snyder's t equation (15-9) for a given latitude, .
Container for cube-like labels.
double Eccentricity() const
This returns the eccentricity of the target,.
TProjection(Pvl &label)
Constructs an empty TProjection object.
@ PositiveEast
Longitude values increase in the easterly direction.
double ToPlanetocentric(const double lat) const
This method converts a planetographic latitude to a planetocentric latitude.
std::vector< double > m_specialLonCases
Constant Longitudes that intersect a discontinuity.
LatitudeType m_latitudeType
An enumerated type indicating the LatitudeType read from the labels.
virtual double MaximumLatitude() const
This returns the maximum latitude of the area of interest.
void XYRangeCheck(const double latitude, const double longitude)
This convience function is established to assist in the development of the XYRange virtual method.
double EquatorialRadius() const
This returns the equatorial radius of the target.
bool Has360Domain() const
This indicates if the longitude domain is 0 to 360 (as opposed to -180 to 180).
void doSearch(double minBorder, double maxBorder, double &extremeVal, const double constBorder, bool searchX, bool searchLongitude, bool findMin)
This method searches for extreme (min/max/discontinuity) coordinate values along the constBorder line...
QString LongitudeDomainString() const
This method returns the longitude domain as a string.
QString LatitudeTypeString() const
This method returns the latitude type as a string.
virtual bool SetUniversalGround(const double lat, const double lon)
This method is used to set the latitude/longitude which must be Planetocentric (latitude) and Positiv...
bool inLongitudeRange(double longitude)
Determine whether the given longitude is within the range of the MinimumLongitude and MaximumLongitud...
double qCompute(const double sinPhi) const
A convience method to compute Snyder's q equation (3-12) for a given latitude, .
Contains multiple PvlContainers.
bool IsPositiveEast() const
This indicates if the longitude direction type is positive west (as opposed to postive east).
@ Planetographic
Latitudes are measured as the angle from the equatorial plane to the normal to the surface of the pla...
double PolarRadius() const
This returns the polar radius of the target.
void setSearchGround(const double variableBorder, const double constBorder, bool variableIsLat)
This function sets the ground for the given border values.
virtual double Latitude() const
This returns a latitude with correct latitude type as specified in the label object.
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...
Base class for Map TProjections.
bool SetUnboundUniversalGround(const double coord1, const double coord2)
This method is used to set the latitude/longitude.
double Scale() const
This method returns the scale for mapping world coordinates into projection coordinates.
static double To180Domain(const double lon)
This method converts a longitude into the -180 to 180 domain.
bool Has180Domain() const
This indicates if the longitude domain is -180 to 180 (as opposed to 0 to 360).
virtual double MaximumLongitude() const
This returns the maximum longitude of the area of interest.
bool inLatitudeRange(double latitude)
Determine whether the given latitude is within the range of the MinimumLatitude and MaximumLatitude r...
LatitudeType
This enum defines the types of Latitude supported in this class.
virtual PvlGroup MappingLongitudes()
This function returns the longitude keywords that this projection uses.
double LocalRadius() const
This method returns the local radius in meters at the current latitude position.
virtual double TrueScaleLatitude() const
This method returns the latitude of true scale.
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,...
void findExtreme(double &minBorder, double &maxBorder, double &minBorderX, double &minBorderY, double &maxBorderX, double &maxBorderY, const double constBorder, bool searchX, bool searchLongitude, bool findMin)
Searches for extreme (min/max/discontinuity) coordinate values across latitudes/longitudes.
double m_maximumLongitude
Contains the maximum longitude for the entire ground range.
static double ToPositiveEast(const double lon, const int domain)
This method converts a longitude into the positive east direction.
virtual double UniversalLongitude()
This returns a universal longitude (positive east in 0 to 360 domain).
virtual PvlGroup MappingLatitudes()
This function returns the latitude keywords that this projection uses.
double ToPlanetographic(const double lat) const
This method converts a planetocentric latitude to a planetographic latitude.
double phi2Compute(const double t) const
A convience method to compute latitude angle phi2 given small t, from Syder's recursive equation (7-9...
LongitudeDirection
This enum defines the types of Longitude directions supported in this class.
virtual double MinimumLatitude() const
This returns the minimum latitude of the area of interest.
virtual PvlGroup Mapping()
This function returns the keywords that this projection uses.
double m_equatorialRadius
Polar radius of the target.
double m_polarRadius
Polar radius of the target.
virtual QString Name() const =0
This method returns the name of the map projection.
static double To360Domain(const double lon)
This method converts a longitude into the 0 to 360 domain.
bool IsPlanetocentric() const
This indicates if the latitude type is planetocentric (as opposed to planetographic).
virtual bool IsEquatorialCylindrical()
This method returns true if the projection is equatorial cylindrical.
Base class for Map Projections.
double mCompute(const double sinphi, const double cosphi) const
A convience method to compute Snyder's m equation (14-15) for a given latitude, .
This is free and unencumbered software released into the public domain.
std::vector< double > m_specialLatCases
Constant Latitudes that intersect a discontinuity.