10 fprintf(stderr, "%s\n", s);
14 static int verbose = 0;
15 static int precision = 10;
18 main(int ac, char *av[])
22 struct isea_pt out, coord;
31 dgg.output = ISEA_PLANE;
32 dgg.radius = 0.8301572857837594396028083;
34 options(ac, av, &dgg);
37 printf("isea lat = %lf, lon = %lf, az = %lf\n",
38 dgg.o_lat * 180.0 / M_PI, dgg.o_lon * 180.0 / M_PI,
39 dgg.o_az * 180.0 / M_PI);
42 while (fgets(line, sizeof line, stdin)) {
46 if (!strncmp(line, "ENDPOLY", 7)) {
50 in.lon = strtod(line, &rest);
51 in.lat = strtod(rest, &rest);
53 nl = strchr(rest, '\n');
56 in.lon *= M_PI / 180.0;
57 in.lat *= M_PI / 180.0;
59 out = isea_forward(&dgg, &in);
61 quad = ((tri - 1) % 5) + ((tri - 1) / 10) * 5 + 1;
64 if (dgg.output == ISEA_PLANE) {
65 calctri = isea_xy_triangle(&coord,
66 dgg.output == ISEA_PLANE ? dgg.radius : 1.0);
69 "got %d (%f, %f), expected %d\n",
70 calctri, out.x, out.y, tri);
74 in.lon *= 180.0 / M_PI;
75 in.lat *= 180.0 / M_PI;
79 printf("%d %.*f %.*f%s\n", tri, precision, out.x, precision, out.y, rest);
82 printf("%d %.*f %.*f%s\n", tri-1, precision, out.x,
83 precision, out.y, rest);
86 printf("%d %d %.*f %.*f%s\n", quad, tri-1, precision,
87 out.x, precision, out.y, rest);
90 /* Same as above, we just don't print as much */
91 printf("%d %.*f %.*f%s\n", quad, precision,
92 out.x, precision, out.y, rest);
95 printf("%d %.0lf %.0lf%s\n", dgg.quad, coord.x, coord.y, rest);
98 quad = isea_ptdi(&dgg, tri, &out, &coord);
99 printf("%d%s\n", isea_disn(&dgg, quad, &coord), rest);