Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 5110) +++ trunk/src/buffer.c (revision 5111) @@ -300,11 +300,7 @@ /* all layer related objects */ PCB_LINE_ALL_LOOP(Buffer->Data); { - pcb_r_delete_entry(layer->line_tree, (pcb_box_t *) line); - pcb_rotate(&line->Point1.X, &line->Point1.Y, Buffer->X, Buffer->Y, cosa, sina); - pcb_rotate(&line->Point2.X, &line->Point2.Y, Buffer->X, Buffer->Y, cosa, sina); - pcb_line_bbox(line); - pcb_r_insert_entry(layer->line_tree, (pcb_box_t *) line, 0); + pcb_line_rotate(layer, line, Buffer->X, Buffer->Y, cosa, sina); } PCB_ENDALL_LOOP; PCB_ARC_ALL_LOOP(Buffer->Data); Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 5110) +++ trunk/src/obj_line.c (revision 5111) @@ -643,6 +643,14 @@ pcb_line_bbox(Line); } +void pcb_line_rotate(pcb_layer_t *layer, pcb_line_t *line, pcb_coord_t X, pcb_coord_t Y, double cosa, double sina) +{ + pcb_r_delete_entry(layer->line_tree, (pcb_box_t *) line); + pcb_rotate(&line->Point1.X, &line->Point1.Y, X, Y, cosa, sina); + pcb_rotate(&line->Point2.X, &line->Point2.Y, X, Y, cosa, sina); + pcb_line_bbox(line); + pcb_r_insert_entry(layer->line_tree, (pcb_box_t *) line, 0); +} /* rotates a line's point */ void *RotateLinePoint(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_line_t *Line, pcb_point_t *Point) Index: trunk/src/obj_line.h =================================================================== --- trunk/src/obj_line.h (revision 5110) +++ trunk/src/obj_line.h (revision 5111) @@ -59,6 +59,7 @@ void pcb_line_bbox(pcb_line_t *Line); void pcb_line_rotate90(pcb_line_t *Line, pcb_coord_t X, pcb_coord_t Y, unsigned Number); +void pcb_line_rotate(pcb_layer_t *layer, pcb_line_t *line, pcb_coord_t X, pcb_coord_t Y, double cosa, double sina); /*** DRC enforcement (obj_line_drcenf.c) ***/ void pcb_line_adjust_attached(void);