xref: /plan9/sys/src/cmd/map/libmap/orthographic.c (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
1*59cc4ca5SDavid du Colombier #include <u.h>
2*59cc4ca5SDavid du Colombier #include <libc.h>
33e12c5d1SDavid du Colombier #include "map.h"
43e12c5d1SDavid du Colombier 
5219b2ee8SDavid du Colombier 
63e12c5d1SDavid du Colombier int
Xorthographic(struct place * place,double * x,double * y)7219b2ee8SDavid du Colombier Xorthographic(struct place *place, double *x, double *y)
83e12c5d1SDavid du Colombier {
93e12c5d1SDavid du Colombier 	*x = - place->nlat.c * place->wlon.s;
103e12c5d1SDavid du Colombier 	*y = - place->nlat.c * place->wlon.c;
113e12c5d1SDavid du Colombier 	return(place->nlat.l<0.? 0 : 1);
123e12c5d1SDavid du Colombier }
133e12c5d1SDavid du Colombier 
143e12c5d1SDavid du Colombier proj
orthographic(void)153e12c5d1SDavid du Colombier orthographic(void)
163e12c5d1SDavid du Colombier {
173e12c5d1SDavid du Colombier 	return(Xorthographic);
183e12c5d1SDavid du Colombier }
19219b2ee8SDavid du Colombier 
20219b2ee8SDavid du Colombier int
olimb(double * lat,double * lon,double res)21219b2ee8SDavid du Colombier olimb(double *lat, double *lon, double res)
22219b2ee8SDavid du Colombier {
23219b2ee8SDavid du Colombier 	static first  = 1;
24219b2ee8SDavid du Colombier 	if(first) {
25219b2ee8SDavid du Colombier 		*lat = 0;
26219b2ee8SDavid du Colombier 		*lon = -180;
27219b2ee8SDavid du Colombier 		first = 0;
28219b2ee8SDavid du Colombier 		return 0;
29219b2ee8SDavid du Colombier 	}
30219b2ee8SDavid du Colombier 	*lon += res;
31219b2ee8SDavid du Colombier 	if(*lon <= 180)
32219b2ee8SDavid du Colombier 		return 1;
33219b2ee8SDavid du Colombier 	first = 1;
34219b2ee8SDavid du Colombier 	return -1;
35219b2ee8SDavid du Colombier }
36