Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 13022) +++ trunk/src/data.c (revision 13023) @@ -557,6 +557,15 @@ } PCB_ENDALL_LOOP; } +void pcb_data_clip_polys(pcb_data_t *data) +{ + PCB_POLY_ALL_LOOP(data); + { + pcb_poly_init_clip(data, layer, polygon); + } + PCB_ENDALL_LOOP; +} + #define rsearch(tree) \ do { \ pcb_r_dir_t tmp = pcb_r_search(tree, starting_region, region_in_search, rectangle_in_region, closure, num_found); \ Index: trunk/src/data.h =================================================================== --- trunk/src/data.h (revision 13022) +++ trunk/src/data.h (revision 13023) @@ -157,6 +157,10 @@ void pcb_data_move(pcb_data_t *data, pcb_coord_t dx, pcb_coord_t dy); +/* run pcb_poly_init_clip() on all polygons in data */ +void pcb_data_clip_polys(pcb_data_t *data); + + /* rsearch on all trees matching types of data */ pcb_r_dir_t pcb_data_r_search(pcb_data_t *data, pcb_objtype_t types, const pcb_box_t *starting_region, pcb_r_dir_t (*region_in_search) (const pcb_box_t *region, void *cl),