home *** CD-ROM | disk | FTP | other *** search
- /*=========================== MiscWorldCoord.m ==============================*/
- /* MiscWorldCoord class contains and supports values representing locations
- in a World coordinate system. Angles are stored internally as radians
- at all times, but may be stored or retrieved as degrees.
-
- It uses the instance of MiscPlanetCoordConverter for converting to other
- coordinate systems.
-
- DMA Release 0.8, Copyright @1993 by Genesis Project, Ltd. All Rights
- Reserved. For further information on terms and conditions see:
- Documentation/GISKit/Agreements-Legal-README
-
- HISTORY
- 25-Feb-93 Dale Amon at GPL
- Created.
- */
-
- #import <misckit/miscgiskit.h>
-
- @implementation MiscWorldCoord
-
- /*===========================================================================*/
- /* Initialization methods */
- /*===========================================================================*/
- /* DESIGNATED INITIALIZER */
-
- -initDescription: (char *) txt constants: anObject
- {
- [super initDescription: txt
- converter: [MiscPlanetCoordConverter new]
- constants: anObject];
- return self;
- }
-
- /*---------------------------------------------------------------------------*/
- /* Block the designated initializer of our parent class */
-
- -initDescription: (char *) txt
- converter: (id <MiscCoordConverterServer>) aConverter
- constants: anObject
- { [self error:" %s class should not be sent '%s' messages\n",
- [[self class] name], sel_getName(_cmd)];
- return self;
- }
-
-
- /*===========================================================================*/
- /* Coordinate handling methods */
- /*===========================================================================*/
- /* set World Coord value from radians */
-
- -setCoordLatitudeRadians: (double) lat
- longitudeRadians: (double) lon
- altitude: (double) alt
- { [self setCoord: lat : lon : alt];
- return self;
- }
-
- /*---------------------------------------------------------------------------*/
- /* set World Coord value from degrees */
-
- -setCoordLatitudeDegrees: (double) lat
- longitudeDegrees: (double) lon
- altitude: (double) alt
- { [self setCoord: [MiscCoord degreesToRadians: lat]
- : [MiscCoord degreesToRadians: lon]
- : alt];
-
- return self;
- }
-
- /*---------------------------------------------------------------------------*/
- //* Get World Coord value in radians */
-
- -coordLatitudeRadians: (double *) lat
- longitudeRadians: (double *) lon
- altitude: (double *) alt
- { [self coord: lat : lon : alt];
- return self;
- }
-
- /*---------------------------------------------------------------------------*/
- /* Get World Coord value in degrees */
-
- -coordLatitudeDegrees: (double *) lat
- longitudeDegrees: (double *) lon
- altitude: (double *) alt
- { [self coord: lat : lon : alt];
-
- *lat = [MiscCoord degreesToRadians: *lat];
- *lon = [MiscCoord degreesToRadians: *lon];
- return self;
- }
-
- /*---------------------------------------------------------------------------*/
- /* World coordinates are: latitude, longitude and altitude */
-
- -(double) latitudeRadians {return [self coord1];}
- -(double) latitudeDegrees {return [MiscCoord radiansToDegrees: [self coord1]];}
- -(double) longitudeRadians {return [self coord2];}
- -(double) longitudeDegrees {return [MiscCoord radiansToDegrees: [self coord2]];}
- -(double) altitude {return [self coord3];}
-
- @end
-