uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { register u8g_uint_t tmp; tmp = y; tmp += h; tmp--; if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) return 0; tmp = x; tmp += w; tmp--; return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); }
void check(uint8_t b1, uint8_t b2) { int intersection, p; clear(); line(a1, a2, 1); line(b1, b2, 2); // show(); intersection = is_array_intersection(); p = conditionpattern(b1, b2); pla[p] |= intersection+1; /* if ( p == 0 || p == 7) printf("%02x: [%d %d] [%d %d] array_intersection:%d\n", p, a1, a2, b1, b2, intersection); */ if ( is_math_intersection(b1, b2) != intersection) { printf("%02x: [%d %d] [%d %d] array_intersection:%d != %d failed\n", p, a1, a2, b1, b2, intersection, is_math_intersection(b1, b2)); exit(0); } if ( u8g_is_intersection_decision_tree(a1,a2,b1,b2) != intersection ) { printf("%02x: [%d %d] [%d %d] array_intersection:%d != %d failed\n", p, a1, a2, b1, b2, intersection, u8g_is_intersection_decision_tree(a1,a2,b1,b2)); exit(0); } if ( u8g_is_intersection_math(a1,a2,b1,b2) != intersection ) { printf("%02x: [%d %d] [%d %d] array_intersection:%d != %d failed\n", p, a1, a2, b1, b2, intersection, u8g_is_intersection_math(a1,a2,b1,b2)); exit(0); } }