/src/proj/src/projections/eck1.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | |
2 | | #include <math.h> |
3 | | |
4 | | #include "proj.h" |
5 | | #include "proj_internal.h" |
6 | | |
7 | | PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph"; |
8 | 0 | #define FC 0.92131773192356127802 |
9 | 0 | #define RP 0.31830988618379067154 |
10 | | |
11 | 0 | static PJ_XY eck1_s_forward(PJ_LP lp, PJ *P) { /* Spheroidal, forward */ |
12 | 0 | PJ_XY xy = {0.0, 0.0}; |
13 | 0 | (void)P; |
14 | |
|
15 | 0 | xy.x = FC * lp.lam * (1. - RP * fabs(lp.phi)); |
16 | 0 | xy.y = FC * lp.phi; |
17 | |
|
18 | 0 | return xy; |
19 | 0 | } |
20 | | |
21 | 0 | static PJ_LP eck1_s_inverse(PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ |
22 | 0 | PJ_LP lp = {0.0, 0.0}; |
23 | 0 | (void)P; |
24 | |
|
25 | 0 | lp.phi = xy.y / FC; |
26 | 0 | lp.lam = xy.x / (FC * (1. - RP * fabs(lp.phi))); |
27 | |
|
28 | 0 | return (lp); |
29 | 0 | } |
30 | | |
31 | 1.20k | PJ *PJ_PROJECTION(eck1) { |
32 | 1.20k | P->es = 0.0; |
33 | 1.20k | P->inv = eck1_s_inverse; |
34 | 1.20k | P->fwd = eck1_s_forward; |
35 | | |
36 | 1.20k | return P; |
37 | 1.20k | } |