/Proj4/PJ_urmfps.c
http://github.com/route-me/route-me · C · 43 lines · 43 code · 0 blank · 0 comment · 4 complexity · b9ada8f892805fc460dc8d37a9494dd9 MD5 · raw file
- #ifndef lint
- static const char SCCSID[]="@(#)PJ_urmfps.c 4.1 94/02/15 GIE REL";
- #endif
- #define PROJ_PARMS__ \
- double n, C_y;
- #define PJ_LIB__
- #include "projects.h"
- PROJ_HEAD(urmfps, "Urmaev Flat-Polar Sinusoidal") "\n\tPCyl, Sph.\n\tn=";
- PROJ_HEAD(wag1, "Wagner I (Kavraisky VI)") "\n\tPCyl, Sph.";
- #define C_x 0.8773826753
- #define Cy 1.139753528477
- FORWARD(s_forward); /* sphere */
- lp.phi = aasin(P->n * sin(lp.phi));
- xy.x = C_x * lp.lam * cos(lp.phi);
- xy.y = P->C_y * lp.phi;
- return (xy);
- }
- INVERSE(s_inverse); /* sphere */
- xy.y /= P->C_y;
- lp.phi = aasin(sin(xy.y) / P->n);
- lp.lam = xy.x / (C_x * cos(xy.y));
- return (lp);
- }
- FREEUP; if (P) pj_dalloc(P); }
- static PJ *
- setup(PJ *P) {
- P->C_y = Cy / P->n;
- P->es = 0.;
- P->inv = s_inverse;
- P->fwd = s_forward;
- return P;
- }
- ENTRY0(urmfps)
- if (pj_param(P->params, "tn").i) {
- P->n = pj_param(P->params, "dn").f;
- if (P->n <= 0. || P->n > 1.)
- E_ERROR(-40)
- } else
- E_ERROR(-40)
- ENDENTRY(setup(P))
- ENTRY0(wag1)
- P->n = 0.8660254037844386467637231707;
- ENDENTRY(setup(P))