Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libjni-proj4 / src / PJ_urmfps.c @ 7098

History | View | Annotate | Download (1.01 KB)

1
#ifndef lint
2
static const char SCCSID[]="@(#)PJ_urmfps.c        4.1        94/02/15        GIE        REL";
3
#endif
4
#define PROJ_PARMS__ \
5
        double        n, C_y;
6
#define PJ_LIB__
7
#include        <projects.h>
8
PROJ_HEAD(urmfps, "Urmaev Flat-Polar Sinusoidal") "\n\tPCyl, Sph.\n\tn=";
9
PROJ_HEAD(wag1, "Wagner I (Kavraisky VI)") "\n\tPCyl, Sph.";
10
#define C_x 0.8773826753
11
#define Cy 1.139753528477
12
FORWARD(s_forward); /* sphere */
13
        lp.phi = aasin(P->n * sin(lp.phi));
14
        xy.x = C_x * lp.lam * cos(lp.phi);
15
        xy.y = P->C_y * lp.phi;
16
        return (xy);
17
}
18
INVERSE(s_inverse); /* sphere */
19
        xy.y /= P->C_y;
20
        lp.phi = aasin(sin(xy.y) / P->n);
21
        lp.lam = xy.x / (C_x * cos(xy.y));
22
        return (lp);
23
}
24
FREEUP; if (P) pj_dalloc(P); }
25
        static PJ *
26
setup(PJ *P) {
27
        P->C_y = Cy / P->n;
28
        P->es = 0.;
29
        P->inv = s_inverse;
30
        P->fwd = s_forward;
31
        return P;
32
}
33
ENTRY0(urmfps)
34
        if (pj_param(P->params, "tn").i) {
35
                P->n = pj_param(P->params, "dn").f;
36
                if (P->n <= 0. || P->n > 1.)
37
                        E_ERROR(-40)
38
        } else
39
                E_ERROR(-40)
40
ENDENTRY(setup(P))
41
ENTRY0(wag1)
42
        P->n = 0.8660254037844386467637231707;
43
ENDENTRY(setup(P))