Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 25995) +++ trunk/src/obj_arc.c (revision 25996) @@ -176,18 +176,24 @@ } -void pcb_arc_get_end(pcb_arc_t *Arc, int which, pcb_coord_t *x, pcb_coord_t *y) +void pcb_arc_get_endpt(pcb_coord_t cx, pcb_coord_t cy, pcb_coord_t width, pcb_coord_t height, pcb_angle_t astart, pcb_angle_t adelta, int which, pcb_coord_t *x, pcb_coord_t *y) { if (which == 0) { - *x = pcb_round((double)Arc->X - (double)Arc->Width * cos(Arc->StartAngle * PCB_M180)); - *y = pcb_round((double)Arc->Y + (double)Arc->Height * sin(Arc->StartAngle * PCB_M180)); + *x = pcb_round((double)cx - (double)width * cos(astart * PCB_M180)); + *y = pcb_round((double)cy + (double)height * sin(astart * PCB_M180)); } else { - *x = pcb_round((double)Arc->X - (double)Arc->Width * cos((Arc->StartAngle + Arc->Delta) * PCB_M180)); - *y = pcb_round((double)Arc->Y + (double)Arc->Height * sin((Arc->StartAngle + Arc->Delta) * PCB_M180)); + *x = pcb_round((double)cx - (double)width * cos((astart + adelta) * PCB_M180)); + *y = pcb_round((double)cy + (double)height * sin((astart + adelta) * PCB_M180)); } } +void pcb_arc_get_end(pcb_arc_t *arc, int which, pcb_coord_t *x, pcb_coord_t *y) +{ + pcb_arc_get_endpt(arc->X, arc->Y, arc->Width, arc->Height, arc->StartAngle, arc->Delta, which, x, y); +} + + void pcb_arc_set_angles(pcb_layer_t *Layer, pcb_arc_t *a, pcb_angle_t new_sa, pcb_angle_t new_da) { if (new_da >= 360) {