Index: trunk/src/obj_gfx.c =================================================================== --- trunk/src/obj_gfx.c (revision 31568) +++ trunk/src/obj_gfx.c (revision 31569) @@ -103,7 +103,7 @@ rnd_rnd_box_t res = {+RND_COORD_MAX, +RND_COORD_MAX, -RND_COORD_MAX, -RND_COORD_MAX}; int n; for(n = 0; n < 4; n++) - rnd_box_bump_point(&res, gfx->cox[n], gfx->coy[n]); + rnd_box_bump_point(&res, gfx->corner[n].X, gfx->corner[n].Y); return res; } @@ -121,16 +121,16 @@ rx = (double)gfx->sx / 2.0; ry = (double)gfx->sy / 2.0; - gfx->cox[0] = rnd_round((double)gfx->cx + rx); gfx->coy[0] = rnd_round((double)gfx->cy + ry); - gfx->cox[1] = rnd_round((double)gfx->cx - rx); gfx->coy[1] = rnd_round((double)gfx->cy + ry); - gfx->cox[2] = rnd_round((double)gfx->cx - rx); gfx->coy[2] = rnd_round((double)gfx->cy - ry); - gfx->cox[3] = rnd_round((double)gfx->cx + rx); gfx->coy[3] = rnd_round((double)gfx->cy - ry); + gfx->corner[0].X = rnd_round((double)gfx->cx + rx); gfx->corner[0].Y = rnd_round((double)gfx->cy + ry); + gfx->corner[1].X = rnd_round((double)gfx->cx - rx); gfx->corner[1].Y = rnd_round((double)gfx->cy + ry); + gfx->corner[2].X = rnd_round((double)gfx->cx - rx); gfx->corner[2].Y = rnd_round((double)gfx->cy - ry); + gfx->corner[3].X = rnd_round((double)gfx->cx + rx); gfx->corner[3].Y = rnd_round((double)gfx->cy - ry); if (gfx->rot != 0.0) { a = gfx->rot / RND_RAD_TO_DEG; cosa = cos(a); sina = sin(a); for(n = 0; n < 4; n++) - rnd_rotate(&gfx->cox[n], &gfx->coy[n], gfx->cx, gfx->cy, cosa, sina); + rnd_rotate(&gfx->corner[n].X, &gfx->corner[n].Y, gfx->cx, gfx->cy, cosa, sina); } pcb_gfx_bbox(gfx); } @@ -658,10 +658,10 @@ rnd_render->set_color(pcb_draw_out.fgGC, color); rnd_hid_set_line_cap(pcb_draw_out.fgGC, rnd_cap_round); rnd_hid_set_line_width(pcb_draw_out.fgGC, -2); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[0], gfx->coy[0], gfx->cox[1], gfx->coy[1]); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[1], gfx->coy[1], gfx->cox[2], gfx->coy[2]); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[2], gfx->coy[2], gfx->cox[3], gfx->coy[3]); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[3], gfx->coy[3], gfx->cox[0], gfx->coy[0]); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[0].X, gfx->corner[0].Y, gfx->corner[1].X, gfx->corner[1].Y); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[1].X, gfx->corner[1].Y, gfx->corner[2].X, gfx->corner[2].Y); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[2].X, gfx->corner[2].Y, gfx->corner[3].X, gfx->corner[3].Y); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[3].X, gfx->corner[3].Y, gfx->corner[0].X, gfx->corner[0].Y); } @@ -669,8 +669,8 @@ rnd_render->set_color(pcb_draw_out.fgGC, &conf_core.appearance.color.warn); rnd_hid_set_line_cap(pcb_draw_out.fgGC, rnd_cap_round); rnd_hid_set_line_width(pcb_draw_out.fgGC, RND_MM_TO_COORD(0.1)); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[0], gfx->coy[0], gfx->cox[2], gfx->coy[2]); - rnd_render->draw_line(pcb_draw_out.fgGC, gfx->cox[1], gfx->coy[1], gfx->cox[3], gfx->coy[3]); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[0].X, gfx->corner[0].Y, gfx->corner[2].X, gfx->corner[2].Y); + rnd_render->draw_line(pcb_draw_out.fgGC, gfx->corner[1].X, gfx->corner[1].Y, gfx->corner[3].X, gfx->corner[3].Y); } else { rnd_render->draw_pixmap(rnd_render, gfx->cx, gfx->cy, gfx->sx, gfx->sy, gfx->pxm_xformed); @@ -718,8 +718,8 @@ void pcb_gfx_draw_xor(pcb_gfx_t *gfx, rnd_coord_t dx, rnd_coord_t dy) { - rnd_render->draw_line(pcb_crosshair.GC, gfx->cox[0]+dx, gfx->coy[0]+dy, gfx->cox[1]+dx, gfx->coy[1]+dy); - rnd_render->draw_line(pcb_crosshair.GC, gfx->cox[1]+dx, gfx->coy[1]+dy, gfx->cox[2]+dx, gfx->coy[2]+dy); - rnd_render->draw_line(pcb_crosshair.GC, gfx->cox[2]+dx, gfx->coy[2]+dy, gfx->cox[3]+dx, gfx->coy[3]+dy); - rnd_render->draw_line(pcb_crosshair.GC, gfx->cox[3]+dx, gfx->coy[3]+dy, gfx->cox[0]+dx, gfx->coy[0]+dy); + rnd_render->draw_line(pcb_crosshair.GC, gfx->corner[0].X+dx, gfx->corner[0].Y+dy, gfx->corner[1].X+dx, gfx->corner[1].Y+dy); + rnd_render->draw_line(pcb_crosshair.GC, gfx->corner[1].X+dx, gfx->corner[1].Y+dy, gfx->corner[2].X+dx, gfx->corner[2].Y+dy); + rnd_render->draw_line(pcb_crosshair.GC, gfx->corner[2].X+dx, gfx->corner[2].Y+dy, gfx->corner[3].X+dx, gfx->corner[3].Y+dy); + rnd_render->draw_line(pcb_crosshair.GC, gfx->corner[3].X+dx, gfx->corner[3].Y+dy, gfx->corner[0].X+dx, gfx->corner[0].Y+dy); } Index: trunk/src/obj_gfx.h =================================================================== --- trunk/src/obj_gfx.h (revision 31568) +++ trunk/src/obj_gfx.h (revision 31569) @@ -47,7 +47,7 @@ rnd_pixmap_t *pxm_xformed; /* transformed version from the cache */ /* calculated/cached fields */ - rnd_coord_t cox[4], coy[4]; /* the 4 corners */ + rnd_point_t corner[4]; /* the 4 corners - has to be point so search.c can return it for the crosshair to edit */ gdl_elem_t link; /* an gfx is in a list on a layer */ }; Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 31568) +++ trunk/src/obj_subc.c (revision 31569) @@ -795,10 +795,10 @@ } gfxlist_foreach(&ly->Gfx, &it, gfx) { - rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->cox[0], DY+gfx->coy[0], DX+gfx->cox[1], DY+gfx->coy[1]); - rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->cox[1], DY+gfx->coy[1], DX+gfx->cox[2], DY+gfx->coy[2]); - rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->cox[2], DY+gfx->coy[2], DX+gfx->cox[3], DY+gfx->coy[3]); - rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->cox[3], DY+gfx->coy[3], DX+gfx->cox[0], DY+gfx->coy[0]); + rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->corner[0].X, DY+gfx->corner[0].Y, DX+gfx->corner[1].X, DY+gfx->corner[1].Y); + rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->corner[1].X, DY+gfx->corner[1].Y, DX+gfx->corner[2].X, DY+gfx->corner[2].Y); + rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->corner[2].X, DY+gfx->corner[2].Y, DX+gfx->corner[3].X, DY+gfx->corner[3].Y); + rnd_render->draw_line(pcb_crosshair.GC, DX+gfx->corner[3].X, DY+gfx->corner[3].Y, DX+gfx->corner[0].X, DY+gfx->corner[0].Y); } polylist_foreach(&ly->Polygon, &it, poly) Index: trunk/src/search.c =================================================================== --- trunk/src/search.c (revision 31568) +++ trunk/src/search.c (revision 31569) @@ -920,8 +920,8 @@ m = n+1; if (m == 4) m = 0; - l.Point1.X = gfx->cox[n]; l.Point1.Y = gfx->coy[n]; - l.Point2.X = gfx->cox[m]; l.Point2.Y = gfx->coy[m]; + l.Point1.X = gfx->corner[n].X; l.Point1.Y = gfx->corner[n].Y; + l.Point2.X = gfx->corner[m].X; l.Point2.Y = gfx->corner[m].Y; if (PCB_LINE_TOUCHES_BOX(&l, b)) return rnd_true; } @@ -1056,7 +1056,7 @@ int n; for(n = 0; n < 4; n++) - if (!PCB_POINT_IN_BOX(gfx->cox[n], gfx->coy[n], b)) + if (!PCB_POINT_IN_BOX(gfx->corner[n].X, gfx->corner[n].Y, b)) return rnd_false; return rnd_true; @@ -1144,14 +1144,14 @@ int n, m; pt[0] = X; pt[1] = Y; - a[0] = gfx->cox[0]; a[1] = gfx->coy[0]; - b[0] = gfx->cox[2]; b[1] = gfx->coy[2]; + a[0] = gfx->corner[0].X; a[1] = gfx->corner[0].Y; + b[0] = gfx->corner[2].X; b[1] = gfx->corner[2].Y; - c[0] = gfx->cox[1]; c[1] = gfx->coy[1]; + c[0] = gfx->corner[1].X; c[1] = gfx->corner[1].Y; if (rnd_point_in_triangle(a, b, c, pt)) return rnd_true; - c[0] = gfx->cox[3]; c[1] = gfx->coy[3]; + c[0] = gfx->corner[3].X; c[1] = gfx->corner[3].Y; if (rnd_point_in_triangle(a, b, c, pt)) return rnd_true; @@ -1160,12 +1160,12 @@ m = n+1; if (m == 4) m = 0; - if (pcb_is_point_on_thinline(X, Y, gfx->cox[n], gfx->coy[n], gfx->cox[m], gfx->coy[m])) + if (pcb_is_point_on_thinline(X, Y, gfx->corner[n].X, gfx->corner[n].Y, gfx->corner[m].X, gfx->corner[m].Y)) return rnd_true; } - if (pcb_is_point_on_thinline(X, Y, gfx->cox[0], gfx->coy[0], gfx->cox[2], gfx->coy[2])) + if (pcb_is_point_on_thinline(X, Y, gfx->corner[0].X, gfx->corner[0].Y, gfx->corner[2].X, gfx->corner[2].Y)) return rnd_true; - if (pcb_is_point_on_thinline(X, Y, gfx->cox[1], gfx->coy[1], gfx->cox[3], gfx->coy[3])) + if (pcb_is_point_on_thinline(X, Y, gfx->corner[1].X, gfx->corner[1].Y, gfx->corner[3].X, gfx->corner[3].Y)) return rnd_true; return rnd_false;