16static void utest_test_gcxlatc(
17 double lon_a,
double lat_a,
double lon_b,
double lat_b,
18 double lon_c,
double lat_c,
double lon_d,
double lat_d,
19 double lon_ref_p,
double lat_ref_p,
20 double lon_ref_q,
double lat_ref_q,
int ref_ret_val);
30 circles_are_identically = 16
35 utest_test_gcxlatc(-10, 10,
45 utest_test_gcxlatc(-10, 10,
51 q_between_ab + q_between_cd);
55 utest_test_gcxlatc( 0, 90,
65 utest_test_gcxlatc(-10, 10,
73 utest_test_gcxlatc(-10, 9,
83 utest_test_gcxlatc(-90, 0,
89 p_between_ab + p_between_cd +
90 q_between_ab + q_between_cd);
94 utest_test_gcxlatc(-90, 0,
104 utest_test_gcxlatc(15 , 85,
110 p_between_ab + p_between_cd);
114 utest_test_gcxlatc(30, 90,
120 p_between_ab + p_between_cd);
125 utest_test_gcxlatc(30, 70,
135 utest_test_gcxlatc( 15, 10,
141 p_between_ab + p_between_cd);
146 utest_test_gcxlatc(-5, -5,
157 utest_test_gcxlatc(-5, -5,
168 utest_test_gcxlatc( -5, -5,
174 p_between_ab + p_between_cd);
179 double a[3] = {-0.18125814883147034, -0.5578552203226167, -0.80990310324198245};
180 double b[3] = {-0.18125814875183416, -0.557855220392383, -0.80990310321175063};
181 double c[3] = {-0.18673822182292288, -0.54232717509597339, -0.8191520442889918};
182 double d[3] = {-0.1772448664054937, -0.5455036073850148, -0.8191520442889918};
191 double a[3] = {0.049067638730680319, 0.0012045429209767452, -0.99879473161693588};
192 double b[3] = {0.049067674327417689, 0, -0.99879545620517241};
193 double c[3] = {0.049067674327418126, 0, -0.99879545620517241};
194 double d[3] = {0.049052896061289972, 0.0012041810087570048, -0.99879545620517241};
202 utest_test_gcxlatc(-10, 0,
208 p_between_ab + p_between_cd +
209 q_between_ab + q_between_cd +
210 circles_are_identically);
212 utest_test_gcxlatc( 0, 0,
218 p_between_ab + p_between_cd +
219 q_between_ab + q_between_cd +
220 circles_are_identically);
222 utest_test_gcxlatc( -5, 0,
228 p_between_ab + p_between_cd +
229 q_between_ab + q_between_cd +
230 circles_are_identically);
232 utest_test_gcxlatc(-10, 0,
238 p_between_ab + p_between_cd +
239 q_between_ab + q_between_cd +
240 circles_are_identically);
244 utest_test_gcxlatc(170, 0,
250 p_between_ab + q_between_cd +
251 circles_are_identically);
256static void utest_test_gcxlatc(
double lon_a,
double lat_a,
double lon_b,
double lat_b,
257 double lon_c,
double lat_c,
double lon_d,
double lat_d,
258 double lon_ref_p,
double lat_ref_p,
259 double lon_ref_q,
double lat_ref_q,
int ref_ret_val) {
261 test_cxc(lon_a, lat_a, lon_b, lat_b, lon_c, lat_c, lon_d, lat_d,
263 lon_ref_p, lat_ref_p, lon_ref_q, lat_ref_q, ref_ret_val);
int yac_intersect_vec(enum yac_edge_type edge_type_a, double const a[3], double const b[3], enum yac_edge_type edge_type_b, double const c[3], double const d[3], double p[3], double q[3])
@ YAC_GREAT_CIRCLE_EDGE
great circle
@ YAC_LAT_CIRCLE_EDGE
latitude 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)
double(* p)(double lon, double lat)