Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 37883) +++ trunk/src/draw.c (revision 37884) @@ -429,12 +429,12 @@ for(n = 0; n < delayed_objs.used; n++) { pcb_any_obj_t *o = delayed_objs.array[n]; - rnd_box_t *b = (rnd_box_t *)o; + rnd_rtree_box_t *b = (rnd_rtree_box_t *)o; switch(o->type) { - case PCB_OBJ_ARC: pcb_arc_draw_term_callback(b, info); break; - case PCB_OBJ_LINE: pcb_line_draw_term_callback(b, info); break; - case PCB_OBJ_TEXT: pcb_text_draw_term_callback(b, info); break; - case PCB_OBJ_POLY: pcb_poly_draw_term_callback(b, info); break; + case PCB_OBJ_ARC: pcb_arc_draw_term_callback((rnd_box_t *)b, info); break; + case PCB_OBJ_LINE: pcb_line_draw_term_callback((rnd_box_t *)b, info); break; + case PCB_OBJ_TEXT: pcb_text_draw_term_callback((rnd_box_t *)b, info); break; + case PCB_OBJ_POLY: pcb_poly_draw_term_callback(info, (void *)b, b); break; default: assert(!"Don't know how to draw delayed object"); } @@ -554,12 +554,12 @@ delayed_terms_enabled = rnd_true; rnd_hid_set_line_width(pcb_draw_out.fgGC, 1); rnd_hid_set_line_cap(pcb_draw_out.fgGC, rnd_cap_square); - rnd_r_search(Layer->polygon_tree, info->drawn_area, NULL, pcb_poly_draw_term_callback, info, NULL); + rnd_rtree_search_any(Layer->polygon_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_poly_draw_term_callback, info, NULL); delayed_terms_enabled = rnd_false; may_have_delayed = 1; } else { - rnd_r_search(Layer->polygon_tree, info->drawn_area, NULL, pcb_poly_draw_callback, info, NULL); + rnd_rtree_search_any(Layer->polygon_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_poly_draw_callback, info, NULL); } if (info->xform->check_planes) @@ -683,12 +683,12 @@ if (lflg & PCB_LYT_COPPER) { for(o = rnd_rtree_first(&it, Layer->polygon_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_poly_draw_term_callback((rnd_box_t *)o, &info); + pcb_poly_draw_term_callback(&info, (void *)o, (rnd_rtree_box_t *)o); } else { for(o = rnd_rtree_first(&it, Layer->polygon_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_poly_draw_callback((rnd_box_t *)o, &info); + pcb_poly_draw_callback(&info, (void *)o, (rnd_rtree_box_t *)o); } } Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 37883) +++ trunk/src/obj_poly.c (revision 37884) @@ -1594,32 +1594,32 @@ pcb_poly_draw_(info, polygon, allow_term_gfx); } -rnd_r_dir_t pcb_poly_draw_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_poly_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { pcb_draw_info_t *i = cl; - pcb_poly_t *polygon = (pcb_poly_t *) b; + pcb_poly_t *polygon = (pcb_poly_t *)obj; - if (pcb_hidden_floater((pcb_any_obj_t*)b, i) || pcb_partial_export((pcb_any_obj_t*)b, i)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, i) || pcb_partial_export((pcb_any_obj_t*)obj, i)) + return rnd_RTREE_DIR_FOUND_CONT; if (!polygon->Clipped) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(polygon->parent_type, &polygon->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_poly_draw(i, polygon, 0); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } -rnd_r_dir_t pcb_poly_draw_term_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_poly_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { pcb_draw_info_t *i = cl; - pcb_poly_t *polygon = (pcb_poly_t *) b; + pcb_poly_t *polygon = (pcb_poly_t *)obj; - if (pcb_hidden_floater((pcb_any_obj_t*)b, i) || pcb_partial_export((pcb_any_obj_t*)b, i)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, i) || pcb_partial_export((pcb_any_obj_t*)obj, i)) + return rnd_RTREE_DIR_FOUND_CONT; if (polygon->Clipped == NULL) { /* if poly is cleared out of existence, it may still have some annotations @@ -1627,15 +1627,15 @@ only thing affected is the as-drawn contour */ if (conf_core.editor.as_drawn_poly) pcb_draw_annotation_add((pcb_any_obj_t *)polygon); - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; } if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(polygon->parent_type, &polygon->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_poly_draw(i, polygon, 1); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } /* erases a polygon on a layer */ Index: trunk/src/obj_poly_draw.h =================================================================== --- trunk/src/obj_poly_draw.h (revision 37883) +++ trunk/src/obj_poly_draw.h (revision 37884) @@ -32,8 +32,8 @@ /* Include rtree.h for these */ #ifdef RND_RTREE_H -rnd_r_dir_t pcb_poly_draw_callback(const rnd_box_t * b, void *cl); -rnd_r_dir_t pcb_poly_draw_term_callback(const rnd_box_t * b, void *cl); +rnd_rtree_dir_t pcb_poly_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box); +rnd_rtree_dir_t pcb_poly_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box); #endif void pcb_poly_invalidate_erase(pcb_poly_t *Polygon);