12static void utest_test_gcxgc(
13 double lon_a,
double lat_a,
double lon_b,
double lat_b,
14 double lon_c,
double lat_c,
double lon_d,
double lat_d,
15 double lon_ref_p,
double lat_ref_p,
16 double lon_ref_q,
double lat_ref_q,
int ref_ret_val);
25 circles_are_identically = 16
28 double lon_middle_ab, lat_middle_ab, lon_middle_cd, lat_middle_cd;
32 utest_test_gcxgc(-10, 0,
38 p_between_ab + p_between_cd);
42 utest_test_gcxgc(-10, 0,
48 p_between_ab + p_between_cd);
52 utest_test_gcxgc(-10, 0,
58 p_between_ab + p_between_cd + q_between_ab + q_between_cd +
59 circles_are_identically);
67 utest_test_gcxgc(-45, 45,
71 lon_middle_ab, lat_middle_ab,
72 lon_middle_cd, lat_middle_cd,
73 p_between_ab + q_between_cd +
74 circles_are_identically);
78 utest_test_gcxgc( 45, 3,
88 utest_test_gcxgc( 67.5, 40,
94 q_between_ab + q_between_cd);
99 utest_test_gcxgc( 67.5, 40,
105 q_between_ab + q_between_cd);
109 utest_test_gcxgc( 10, 10,
117 utest_test_gcxgc(-10, -10,
127 utest_test_gcxgc( 10, 10,
135 utest_test_gcxgc(-10, -10,
143 utest_test_gcxgc( 10, 10,
149 p_between_ab + q_between_cd);
151 utest_test_gcxgc(190, -10,
157 p_between_cd + q_between_ab);
161 utest_test_gcxgc( 10, 10,
167 p_between_ab + p_between_cd);
169 utest_test_gcxgc( 10, 10,
175 p_between_ab + p_between_cd);
179 utest_test_gcxgc( 0, 0,
185 p_between_ab + p_between_cd);
187 utest_test_gcxgc(-10, -10,
193 p_between_ab + p_between_cd);
197 utest_test_gcxgc(-10, -10,
205 utest_test_gcxgc( 10, 10,
216 utest_test_gcxgc(-10, -10,
224 utest_test_gcxgc(170, 10,
234 utest_test_gcxgc(-10, -10,
240 p_between_ab + p_between_cd);
245static void utest_test_gcxgc(
double lon_a,
double lat_a,
double lon_b,
double lat_b,
246 double lon_c,
double lat_c,
double lon_d,
double lat_d,
247 double lon_ref_p,
double lat_ref_p,
248 double lon_ref_q,
double lat_ref_q,
int ref_ret_val) {
250 test_cxc(lon_a, lat_a, lon_b, lat_b, lon_c, lat_c, lon_d, lat_d,
252 lon_ref_p, lat_ref_p, lon_ref_q, lat_ref_q, ref_ret_val);
@ YAC_GREAT_CIRCLE_EDGE
great circle
void test_cxc(double lon_a, double lat_a, double lon_b, double lat_b, double lon_c, double lat_c, double lon_d, double lat_d, enum yac_edge_type edge_type_a, enum yac_edge_type edge_type_b, double lon_ref_p, double lat_ref_p, double lon_ref_q, double lat_ref_q, int ref_ret_val)
void get_edge_middle_point(enum yac_edge_type edge_type, double lon_a, double lat_a, double lon_b, double lat_b, double *lon_middle, double *lat_middle)