202 virtual QString
Name()
const = 0;
205 virtual double LocalRadius()
const = 0;
213 virtual QString
Version()
const = 0;
237 virtual bool SetGround(
const double lat,
const double lon) = 0;
238 virtual bool SetCoordinate(
const double x,
const double y) = 0;
251 bool SetWorld(
const double x,
const double y);
258 double ToWorldX(
const double projectionX)
const;
259 double ToWorldY(
const double projectionY)
const;
267 virtual double Scale()
const = 0;
270 virtual bool XYRange(
double &minX,
double &maxX,
271 double &minY,
double &maxY) = 0;
280 static double ToHours(
double angle);
281 static QString
ToDMS(
double angle);
282 static QString
ToHMS(
double angle);
285 virtual void XYRangeCheck(
const double latitude,
const double longitude) = 0;
288 void SetXY(
double x,
double y);
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.
ProjectionType projectionType() const
Returns an enum value for the projection type.
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.
double Rotation() const
Returns the value of the Rotation keyword from the mapping group.
double ToProjectionX(const double worldX) const
This method converts a world x value to a projection x value.
double PixelResolution() const
Returns the pixel resolution value from the PVL mapping group in meters/pixel.
virtual bool SetUnboundUniversalGround(const double coord1, const double coord2)
This method is used to set the lat/lon or radius/azimuth (i.e.
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 GetX() const
Calculates the unrotated form of current x value.
double Resolution() const
This method returns the resolution for mapping world coordinates into projection coordinates.
bool IsGood() const
This indicates if the last invocation of SetGround, SetCoordinate, SetUniversalGround, or SetWorld was with successful or not.
double XCoord() const
This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
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.
double WorldX() const
This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
double ToWorldX(const double projectionX) const
This method converts a projection x value to a world x value.
Base class for Map Projections.
double m_minimumY
See minimumX description.
These projections are used to map ring planes.
bool HasGroundRange() const
This indicates if the longitude direction type is positive west (as opposed to postive east)...
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.
bool IsSky() const
Returns true if projection is sky and false if it is land.
double ToProjectionY(const double worldY) const
This method converts a world y value to a projection y value.
double YCoord() const
This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
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 m_good
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid.
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.
Displacement is a signed length, usually in meters.
virtual bool SetUniversalGround(const double coord1, const double coord2)
This method is used to set the lat/lon or radius/azimuth (i.e.
Namespace for ISIS/Bullet specific routines.
static double ToHours(double angle)
Converts the given angle (in degrees) to hours by using the ratio 15 degrees per hour.
double ToWorldY(const double projectionY) const
This method converts a projection y value to a world y value.
double GetY() const
Calculates the unrotated form of the current y value.
void SetXY(double x, double y)
This protected method is a helper for derived classes.
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 WorldY() const
This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround, or SetWorld returned with success.
PvlGroup m_mappingGrp
Mapping group that created this projection.
These projections are used to map triaxial and irregular-shaped bodies.