Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 37884) +++ trunk/src/draw.c (revision 37885) @@ -431,8 +431,8 @@ pcb_any_obj_t *o = delayed_objs.array[n]; rnd_rtree_box_t *b = (rnd_rtree_box_t *)o; switch(o->type) { - 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_ARC: pcb_arc_draw_term_callback(info, (void *)b, b); break; + case PCB_OBJ_LINE: pcb_line_draw_term_callback(info, (void *)b, b); 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: @@ -568,8 +568,8 @@ /* draw all visible layer objects (with terminal gfx on copper) */ if (lflg & PCB_LYT_COPPER) { delayed_terms_enabled = rnd_true; - rnd_r_search(Layer->line_tree, info->drawn_area, NULL, pcb_line_draw_term_callback, info, NULL); - rnd_r_search(Layer->arc_tree, info->drawn_area, NULL, pcb_arc_draw_term_callback, info, NULL); + rnd_rtree_search_any(Layer->line_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_line_draw_term_callback, info, NULL); + rnd_rtree_search_any(Layer->arc_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_arc_draw_term_callback, info, NULL); rnd_r_search(Layer->text_tree, info->drawn_area, NULL, pcb_text_draw_term_callback, info, NULL); rnd_rtree_search_any(Layer->gfx_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_gfx_draw_above_callback, info, NULL); delayed_terms_enabled = rnd_false; @@ -576,8 +576,8 @@ may_have_delayed = 1; } else { - rnd_r_search(Layer->line_tree, info->drawn_area, NULL, pcb_line_draw_callback, info, NULL); - rnd_r_search(Layer->arc_tree, info->drawn_area, NULL, pcb_arc_draw_callback, info, NULL); + rnd_rtree_search_any(Layer->line_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_line_draw_callback, info, NULL); + rnd_rtree_search_any(Layer->arc_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_arc_draw_callback, info, NULL); rnd_r_search(Layer->text_tree, info->drawn_area, NULL, pcb_text_draw_callback, info, NULL); rnd_rtree_search_any(Layer->gfx_tree, (rnd_rtree_box_t *)info->drawn_area, NULL, pcb_gfx_draw_above_callback, info, NULL); } @@ -700,11 +700,11 @@ if (Layer->line_tree != NULL) for(o = rnd_rtree_first(&it, Layer->line_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_line_draw_term_callback((rnd_box_t *)o, &info); + pcb_line_draw_term_callback(&info, (void *)o, (rnd_rtree_box_t *)o); if (Layer->arc_tree != NULL) for(o = rnd_rtree_first(&it, Layer->arc_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_arc_draw_term_callback((rnd_box_t *)o, &info); + pcb_arc_draw_term_callback(&info, (void *)o, (rnd_rtree_box_t *)o); if (Layer->text_tree != NULL) for(o = rnd_rtree_first(&it, Layer->text_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) @@ -718,11 +718,11 @@ if (Layer->line_tree != NULL) for(o = rnd_rtree_first(&it, Layer->line_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_line_draw_callback((rnd_box_t *)o, &info); + pcb_line_draw_callback(&info, (void *)o, (rnd_rtree_box_t *)o); if (Layer->arc_tree != NULL) for(o = rnd_rtree_first(&it, Layer->arc_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) - pcb_arc_draw_callback((rnd_box_t *)o, &info); + pcb_arc_draw_callback(&info, (void *)o, (rnd_rtree_box_t *)o); if (Layer->text_tree != NULL) for(o = rnd_rtree_first(&it, Layer->text_tree, (rnd_rtree_box_t *)screen); o != NULL; o = rnd_rtree_next(&it)) if (pcb_obj_is_under(o, data)) Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 37884) +++ trunk/src/obj_arc.c (revision 37885) @@ -1240,34 +1240,34 @@ pcb_arc_draw_(info, arc, allow_term_gfx); } -rnd_r_dir_t pcb_arc_draw_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_arc_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { - pcb_arc_t *arc = (pcb_arc_t *)b; + pcb_arc_t *arc = (pcb_arc_t *)obj; pcb_draw_info_t *info = cl; - if (pcb_hidden_floater((pcb_any_obj_t*)b, info) || pcb_partial_export((pcb_any_obj_t*)b, info)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, info) || pcb_partial_export((pcb_any_obj_t*)obj, info)) + return rnd_RTREE_DIR_FOUND_CONT; if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(arc->parent_type, &arc->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_arc_draw(info, arc, 0); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } -rnd_r_dir_t pcb_arc_draw_term_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_arc_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { - pcb_arc_t *arc = (pcb_arc_t *)b; + pcb_arc_t *arc = (pcb_arc_t *)obj; pcb_draw_info_t *info = cl; - if (pcb_hidden_floater((pcb_any_obj_t*)b, info) || pcb_partial_export((pcb_any_obj_t*)b, info)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, info) || pcb_partial_export((pcb_any_obj_t*)obj, info)) + return rnd_RTREE_DIR_FOUND_CONT; if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(arc->parent_type, &arc->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_arc_draw(info, arc, 1); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } /* erases an arc on a layer */ Index: trunk/src/obj_arc_draw.h =================================================================== --- trunk/src/obj_arc_draw.h (revision 37884) +++ trunk/src/obj_arc_draw.h (revision 37885) @@ -32,8 +32,8 @@ /* Include rtree.h for this */ #ifdef RND_RTREE_H -rnd_r_dir_t pcb_arc_draw_callback(const rnd_box_t * b, void *cl); -rnd_r_dir_t pcb_arc_draw_term_callback(const rnd_box_t * b, void *cl); +rnd_rtree_dir_t pcb_arc_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box); +rnd_rtree_dir_t pcb_arc_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box); #endif void pcb_arc_draw_(pcb_draw_info_t *info, pcb_arc_t *arc, int allow_term_gfx); Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 37884) +++ trunk/src/obj_line.c (revision 37885) @@ -1511,34 +1511,34 @@ pcb_line_draw_(info, line, allow_term_gfx); } -rnd_r_dir_t pcb_line_draw_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_line_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { - pcb_line_t *line = (pcb_line_t *)b; + pcb_line_t *line = (pcb_line_t *)obj; pcb_draw_info_t *info = cl; - if (pcb_hidden_floater((pcb_any_obj_t*)b, info) || pcb_partial_export((pcb_any_obj_t*)b, info)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, info) || pcb_partial_export((pcb_any_obj_t*)obj, info)) + return rnd_RTREE_DIR_FOUND_CONT; if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(line->parent_type, &line->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_line_draw(info, line, 0); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } -rnd_r_dir_t pcb_line_draw_term_callback(const rnd_box_t * b, void *cl) +rnd_rtree_dir_t pcb_line_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box) { - pcb_line_t *line = (pcb_line_t *)b; + pcb_line_t *line = (pcb_line_t *)obj; pcb_draw_info_t *info = cl; - if (pcb_hidden_floater((pcb_any_obj_t*)b, info) || pcb_partial_export((pcb_any_obj_t*)b, info)) - return RND_R_DIR_FOUND_CONTINUE; + if (pcb_hidden_floater((pcb_any_obj_t*)obj, info) || pcb_partial_export((pcb_any_obj_t*)obj, info)) + return rnd_RTREE_DIR_FOUND_CONT; if (!PCB->SubcPartsOn && pcb_lobj_parent_subc(line->parent_type, &line->parent)) - return RND_R_DIR_NOT_FOUND; + return rnd_RTREE_DIR_NOT_FOUND_CONT; pcb_line_draw(info, line, 1); - return RND_R_DIR_FOUND_CONTINUE; + return rnd_RTREE_DIR_FOUND_CONT; } /* erases a line on a layer */ Index: trunk/src/obj_line_draw.h =================================================================== --- trunk/src/obj_line_draw.h (revision 37884) +++ trunk/src/obj_line_draw.h (revision 37885) @@ -32,8 +32,8 @@ /* Include rtree.h for this */ #ifdef RND_RTREE_H -rnd_r_dir_t pcb_line_draw_callback(const rnd_box_t * b, void *cl); -rnd_r_dir_t pcb_line_draw_term_callback(const rnd_box_t * b, void *cl); +rnd_rtree_dir_t pcb_line_draw_callback(void *cl, void *obj, const rnd_rtree_box_t *box); +rnd_rtree_dir_t pcb_line_draw_term_callback(void *cl, void *obj, const rnd_rtree_box_t *box); #endif void pcb_line_draw_(pcb_draw_info_t *info, pcb_line_t *line, int allow_term_gfx);