200 virtual QString
Name()
const = 0;
203 virtual double LocalRadius()
const = 0;
211 virtual QString
Version()
const = 0;
235 virtual bool SetGround(
const double lat,
const double lon) = 0;
236 virtual bool SetCoordinate(
const double x,
const double y) = 0;
248 bool SetWorld(
const double x,
const double y);
255 double ToWorldX(
const double projectionX)
const;
256 double ToWorldY(
const double projectionY)
const;
264 virtual double Scale()
const = 0;
267 virtual bool XYRange(
double &minX,
double &maxX,
268 double &minY,
double &maxY) = 0;
277 static double ToHours(
double angle);
278 static QString
ToDMS(
double angle);
279 static QString
ToHMS(
double angle);
282 virtual void XYRangeCheck(
const double latitude,
const double longitude) = 0;
285 void SetXY(
double x,
double y);
double WorldX() const
This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
double GetX() const
Calculates the unrotated form of current x value.
double Rotation() const
Returns the value of the Rotation keyword from the mapping group.
bool IsSky() const
Returns true if projection is sky and false if it is land.
double m_y
This contains the rotated Y coordinate for a specific projection at the position indicated by m_latit...
WorldMapper * m_mapper
This points to a mapper passed into the SetWorldMapper method.
virtual QString Version() const =0
This method returns the Version of the map projection.
bool m_sky
Indicates whether projection is sky or land.
double m_x
This contains the rotated X coordinate for a specific projection at theposition indicated by m_latitu...
bool operator!=(const Projection &proj)
This method determines whether two map projection objects are not equal.
bool HasGroundRange() const
This indicates if the longitude direction type is positive west (as opposed to postive east)...
double XCoord() const
This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
Projection(Pvl &label)
Constructs an empty Projection object.
void SetWorldMapper(WorldMapper *mapper)
If desired the programmer can use this method to set a world mapper to be used in the SetWorld...
double m_minimumX
The data elements m_minimumX, m_minimumY, m_maximumX, and m_maximumY are convience data elements when...
static QString ToHMS(double angle)
Converts the given angle (in degrees) to hours, minutes, seconds.
void SetComputedXY(double x, double y)
This protected method is a helper for derived classes.
double m_rotation
Rotation of map (usually zero)
double m_maximumY
See minimumX description.
virtual ~Projection()
Destroys the Projection object.
Base class for Map Projections.
double m_minimumY
See minimumX description.
These projections are used to map ring planes.
double Resolution() const
This method returns the resolution for mapping world coordinates into projection coordinates.
Contains multiple PvlContainers.
void setProjectionType(const ProjectionType ptype)
Sets the projection subclass type.
bool m_groundRangeGood
Indicates if the ground range (min/max lat/lons) were read from the labels.
double ToProjectionY(const double worldY) const
This method converts a world y value to a projection y value.
double ToWorldY(const double projectionY) const
This method converts a projection y value to a world y value.
Container for cube-like labels.
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 "w...
bool IsGood() const
This indicates if the last invocation of SetGround, SetCoordinate, SetUniversalGround, or SetWorld was with successful or not.
bool m_good
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid.
double YCoord() const
This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
bool SetWorld(const double x, const double y)
This method is used to set a world coordinate.
Create a mapping between a projection and other coordinate system.
double m_pixelResolution
Pixel resolution value from the PVL mapping group, in meters/pixel.
virtual bool operator==(const Projection &proj)
This method determines whether two map projection objects are equal by comparing the resolution...
static QString ToDMS(double angle)
Converts the given angle (in degrees) to degrees, minutes, seconds.
double ToWorldX(const double projectionX) const
This method converts a projection x value to a world x value.
Displacement is a signed length, usually in meters.
double ToProjectionX(const double worldX) const
This method converts a world x value to a projection x value.
virtual bool SetUniversalGround(const double coord1, const double coord2)
This method is used to set the lat/lon or radius/azimuth (i.e.
double GetY() const
Calculates the unrotated form of the current y value.
static double ToHours(double angle)
Converts the given angle (in degrees) to hours by using the ratio 15 degrees per hour.
void SetXY(double x, double y)
This protected method is a helper for derived classes.
ProjectionType projectionType() const
Returns an enum value for the projection type.
virtual bool IsEquatorialCylindrical()
This method returns true if the projection is equatorial cylindrical.
ProjectionType
This enum defines the subclasses of Projection supported in Isis.
virtual QString Name() const =0
This method returns the name of the map projection.
double m_maximumX
See minimumX description.
double PixelResolution() const
Returns the pixel resolution value from the PVL mapping group in meters/pixel.
PvlGroup m_mappingGrp
Mapping group that created this projection.
double WorldY() const
This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
These projections are used to map triaxial and irregular-shaped bodies.