r5368 - developers/werner/fped
werner at docs.openmoko.org
werner at docs.openmoko.org
Sun Aug 2 21:42:24 CEST 2009
Author: werner
Date: 2009-08-02 21:42:23 +0200 (Sun, 02 Aug 2009)
New Revision: 5368
Modified:
developers/werner/fped/coord.c
developers/werner/fped/fpd.y
developers/werner/fped/inst.c
developers/werner/fped/obj.c
developers/werner/fped/obj.h
Log:
- widths can now be edited
- when selecting a measurement, the offset is now shown in the name field
- fixed integer overflow in dist_line_xy
Modified: developers/werner/fped/coord.c
===================================================================
--- developers/werner/fped/coord.c 2009-08-02 16:35:09 UTC (rev 5367)
+++ developers/werner/fped/coord.c 2009-08-02 19:42:23 UTC (rev 5368)
@@ -108,7 +108,7 @@
bx = px-bx;
by = py-by;
a = hypot(ax, ay);
- f = (ax*bx+ay*by)/a/a;
+ f = ((double) ax*bx+(double) ay*by)/a/a;
if (f >= 0 && f <= 1) {
bx -= f*ax;
by -= f*ay;
Modified: developers/werner/fped/fpd.y
===================================================================
--- developers/werner/fped/fpd.y 2009-08-02 16:35:09 UTC (rev 5367)
+++ developers/werner/fped/fpd.y 2009-08-02 19:42:23 UTC (rev 5368)
@@ -388,14 +388,14 @@
$$ = new_obj(ot_rect);
$$->base = $2;
$$->u.rect.other = $3;
- $$->width = $4;
+ $$->u.rect.width = $4;
}
| TOK_LINE base base opt_expr
{
$$ = new_obj(ot_line);
$$->base = $2;
$$->u.line.other = $3;
- $$->width = $4;
+ $$->u.line.width = $4;
}
| TOK_CIRC base base opt_expr
{
@@ -403,7 +403,7 @@
$$->base = $2;
$$->u.arc.start = $3;
$$->u.arc.end = $3;
- $$->width = $4;
+ $$->u.arc.width = $4;
}
| TOK_ARC base base base opt_expr
{
@@ -411,7 +411,7 @@
$$->base = $2;
$$->u.arc.start = $3;
$$->u.arc.end = $4;
- $$->width = $5;
+ $$->u.arc.width = $5;
}
| TOK_MEAS base base expr
{
Modified: developers/werner/fped/inst.c
===================================================================
--- developers/werner/fped/inst.c 2009-08-02 16:35:09 UTC (rev 5367)
+++ developers/werner/fped/inst.c 2009-08-02 19:42:23 UTC (rev 5368)
@@ -182,7 +182,7 @@
}
-static void rect_status(struct coord a, struct coord b)
+static void rect_status(struct coord a, struct coord b, unit_type width)
{
struct coord d = sub_vec(b, a);
double angle;
@@ -197,6 +197,8 @@
status_set_angle("a = %3.1f deg", angle);
}
status_set_r("r = %5.2f mm", hypot(units_to_mm(d.x), units_to_mm(d.y)));
+ if (width != -1)
+ status_set_name("width = %5.2f mm", units_to_mm(width));
}
@@ -268,7 +270,7 @@
static void vec_op_select(struct inst *self)
{
status_set_name(self->vec->name ? self->vec->name : "");
- rect_status(self->base, self->u.rect.end);
+ rect_status(self->base, self->u.rect.end, -1);
edit_unique_null(&self->vec->name, validate_vec_name, self->vec);
}
@@ -307,7 +309,8 @@
static void line_op_select(struct inst *self)
{
- rect_status(self->bbox.min, self->bbox.max);
+ rect_status(self->bbox.min, self->bbox.max, self->u.rect.width);
+ edit_expr(&self->obj->u.line.width);
}
@@ -346,7 +349,8 @@
static void rect_op_select(struct inst *self)
{
- rect_status(self->bbox.min, self->bbox.max);
+ rect_status(self->bbox.min, self->bbox.max, self->u.rect.width);
+ edit_expr(&self->obj->u.rect.width);
}
@@ -398,7 +402,7 @@
static void pad_op_select(struct inst *self)
{
status_set_name(self->u.name);
- rect_status(self->bbox.min, self->bbox.max);
+ rect_status(self->bbox.min, self->bbox.max, -1);
edit_name(&self->obj->u.pad.name, validate_pad_name, NULL);
}
@@ -442,6 +446,8 @@
self->u.arc.a1 == self->u.arc.a2 ? 360 :
self->u.arc.a2-self->u.arc.a1);
status_set_r("r = %5.2f mm", units_to_mm(self->u.arc.r));
+ status_set_name("width = %5.2f mm", units_to_mm(self->u.arc.width));
+ edit_expr(&self->obj->u.arc.width);
}
@@ -495,7 +501,8 @@
static void meas_op_select(struct inst *self)
{
- rect_status(self->bbox.min, self->bbox.max);
+ rect_status(self->bbox.min, self->bbox.max, -1);
+ status_set_name("offset = %5.2f mm", units_to_mm(self->u.meas.offset));
edit_expr(&self->obj->u.meas.offset);
}
Modified: developers/werner/fped/obj.c
===================================================================
--- developers/werner/fped/obj.c 2009-08-02 16:35:09 UTC (rev 5367)
+++ developers/werner/fped/obj.c 2009-08-02 19:42:23 UTC (rev 5368)
@@ -96,7 +96,7 @@
return 0;
break;
case ot_line:
- width = eval_unit_default(obj->width, frame,
+ width = eval_unit_default(obj->u.line.width, frame,
DEFAULT_SILK_WIDTH);
if (is_undef(width))
return 0;
@@ -106,7 +106,7 @@
return 0;
break;
case ot_rect:
- width = eval_unit_default(obj->width, frame,
+ width = eval_unit_default(obj->u.rect.width, frame,
DEFAULT_SILK_WIDTH);
if (is_undef(width))
return 0;
@@ -127,7 +127,7 @@
return 0;
break;
case ot_arc:
- width = eval_unit_default(obj->width, frame,
+ width = eval_unit_default(obj->u.arc.width, frame,
DEFAULT_SILK_WIDTH);
if (is_undef(width))
return 0;
Modified: developers/werner/fped/obj.h
===================================================================
--- developers/werner/fped/obj.h 2009-08-02 16:35:09 UTC (rev 5367)
+++ developers/werner/fped/obj.h 2009-08-02 19:42:23 UTC (rev 5368)
@@ -117,6 +117,7 @@
struct rect {
struct vec *other; /* NULL if frame origin */
+ struct expr *width;
};
struct pad {
@@ -127,6 +128,7 @@
struct arc {
struct vec *start; /* NULL if frame origin */
struct vec *end; /* NULL if this is a circle */
+ struct expr *width;
};
struct meas {
@@ -145,7 +147,6 @@
struct meas meas;
} u;
struct vec *base;
- struct expr *width; /* may be NULL. not used in "meas" */
struct obj *next;
};
More information about the commitlog
mailing list