r5327 - developers/werner/fped
werner at docs.openmoko.org
werner at docs.openmoko.org
Tue Jul 28 18:10:51 CEST 2009
Author: werner
Date: 2009-07-28 18:10:50 +0200 (Tue, 28 Jul 2009)
New Revision: 5327
Modified:
developers/werner/fped/TODO
developers/werner/fped/gui_canvas.c
developers/werner/fped/gui_inst.c
developers/werner/fped/inst.c
developers/werner/fped/qfn.fpd
Log:
- completed arc support
- zoom now centers around pointer position
Modified: developers/werner/fped/TODO
===================================================================
--- developers/werner/fped/TODO 2009-07-28 11:38:13 UTC (rev 5326)
+++ developers/werner/fped/TODO 2009-07-28 16:10:50 UTC (rev 5327)
@@ -6,7 +6,7 @@
- stack elements (1): frames, pads, silk, vecs
- stack elements (2): all unselected below all selected
- stack elements (3): circle on top of vec
-- detect recursive evaluation
+- detect recursive evaluation (through variables)
- eliminate duplicate instances
- populate input area
- bug: center moves in qfn.fpd
@@ -20,4 +20,4 @@
- add default unit (combine with grid unit selection ?)
- consider adding auto/mm/mil selection for each dimension
- syntax seems a little cryptic. too many dots and at signs.
-- added measurements
+- add measurements
Modified: developers/werner/fped/gui_canvas.c
===================================================================
--- developers/werner/fped/gui_canvas.c 2009-07-28 11:38:13 UTC (rev 5326)
+++ developers/werner/fped/gui_canvas.c 2009-07-28 16:10:50 UTC (rev 5327)
@@ -150,6 +150,8 @@
if (ctx.scale < 2)
return;
ctx.scale /= 2;
+ ctx.center.x = (ctx.center.x+pos.x)/2;
+ ctx.center.y = (ctx.center.y+pos.y)/2;
update_zoom();
redraw();
}
@@ -167,6 +169,8 @@
bbox.min.y < ctx.widget->allocation.height)
return;
ctx.scale *= 2;
+ ctx.center.x = 2*ctx.center.x-pos.x;
+ ctx.center.y = 2*ctx.center.y-pos.y;
update_zoom();
redraw();
}
Modified: developers/werner/fped/gui_inst.c
===================================================================
--- developers/werner/fped/gui_inst.c 2009-07-28 11:38:13 UTC (rev 5326)
+++ developers/werner/fped/gui_inst.c 2009-07-28 16:10:50 UTC (rev 5327)
@@ -32,7 +32,7 @@
pos.y = -pos.y;
pos.x += ctx->widget->allocation.width/2;
pos.y += ctx->widget->allocation.height/2;
-fprintf(stderr, "%d %d\n", (int) pos.x, (int) pos.y);
+//fprintf(stderr, "%d %d\n", (int) pos.x, (int) pos.y);
return pos;
}
Modified: developers/werner/fped/inst.c
===================================================================
--- developers/werner/fped/inst.c 2009-07-28 11:38:13 UTC (rev 5326)
+++ developers/werner/fped/inst.c 2009-07-28 16:10:50 UTC (rev 5327)
@@ -189,17 +189,26 @@
static struct inst_ops arc_ops = {
.debug = arc_op_debug,
- .draw = gui_draw_pad,
+ .draw = gui_draw_arc,
};
int inst_arc(struct coord center, struct coord start, struct coord end)
{
struct inst *inst;
- unit_type r;
+ double r, a1, a2;
inst = add_inst(&arc_ops, center);
- r = hypot(start.x-center.x, start.y-center.y);
+ r =hypot(start.x-center.x, start.y-center.y);
+ a1 = atan2(start.y-center.y, start.x-center.x)/M_PI*180.0;
+ a2 = atan2(end.y-center.y, end.x-center.x)/M_PI*180.0;
+ if (a1 < 0)
+ a1 += 360.0;
+ if (a2 < 0)
+ a2 += 2*M_PI;
+ inst->u.arc.r = r;
+ inst->u.arc.a1 = a1;
+ inst->u.arc.a2 = a2;
inst->bbox.min.x = center.x-r;
inst->bbox.max.x = center.x+r;
inst->bbox.min.y = center.x-r;
Modified: developers/werner/fped/qfn.fpd
===================================================================
--- developers/werner/fped/qfn.fpd 2009-07-28 11:38:13 UTC (rev 5326)
+++ developers/werner/fped/qfn.fpd 2009-07-28 16:10:50 UTC (rev 5327)
@@ -25,3 +25,10 @@
.vec @ P*(n-N/4/2), -Ay/2
.frame pad_up .
+
+# ARC, just for testing
+
+c = .vec @ -1mm, 1mm
+r = .vec c 0mm, 0.5mm
+e = .vec c -0.5mm, 0mm
+.arc c r, e
More information about the commitlog
mailing list