# HG changeset patch # User Mychaela Falconia # Date 1454285203 0 # Node ID a9a20c85140ee4221d19bcce1282ae5a63f3730d # Parent a7f0e9bb3fb7fa0291d88b8b3cb27c047f684e50 pads2gpcb: foundation laid for mirroring and rotation diff -r a7f0e9bb3fb7 -r a9a20c85140e pads2gpcb/Makefile --- a/pads2gpcb/Makefile Sun Jan 31 23:41:00 2016 +0000 +++ b/pads2gpcb/Makefile Mon Feb 01 00:06:43 2016 +0000 @@ -1,7 +1,7 @@ CC= gcc CFLAGS= -O2 -OBJS= decals.o globals.o gpcbout.o main.o partinst.o parttype.o rdunits.o \ - readpads.o silkselect.o util.o writeelem.o +OBJS= decals.o fpmanip.o globals.o gpcbout.o main.o partinst.o parttype.o \ + rdunits.o readpads.o silkselect.o util.o writeelem.o HDRS= globals.h gpcbout.h struct.h PROG= pads2gpcb BINDIR= /usr/local/bin diff -r a7f0e9bb3fb7 -r a9a20c85140e pads2gpcb/fpmanip.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pads2gpcb/fpmanip.c Mon Feb 01 00:06:43 2016 +0000 @@ -0,0 +1,78 @@ +#include +#include +#include "struct.h" + +static void +do_footprint_pad(obj, func) + struct footprint_pad *obj; + void (*func)(); +{ + func(&obj->end1); + func(&obj->end2); +} + +static void +do_element_line(obj, func) + struct element_line *obj; + void (*func)(); +{ + func(&obj->end1); + func(&obj->end2); +} + +static void +do_element_arc(obj, func) + struct element_arc *obj; + void (*func)(); +{ + func(&obj->centre); +} + +manipulate_footprint_coord_pairs(fpbody, func) + struct footprint_body *fpbody; + void (*func)(); +{ + int i; + + for (i = 0; i < fpbody->npins; i++) + do_footprint_pad(fpbody->pins + i, func); + for (i = 0; i < fpbody->num_silk_lines; i++) + do_element_line(fpbody->silk_lines + i, func); + for (i = 0; i < fpbody->num_silk_arcs; i++) + do_element_arc(fpbody->silk_arcs + i, func); +} + +coordpair_mirror_x(cp) + struct coord_pair *cp; +{ + cp->x = -cp->x; +} + +coordpair_rot_90(cp) + struct coord_pair *cp; +{ + long newx, newy; + + newx = -cp->y; + newy = cp->x; + cp->x = newx; + cp->y = newy; +} + +coordpair_rot_180(cp) + struct coord_pair *cp; +{ + cp->x = -cp->x; + cp->y = -cp->y; +} + +coordpair_rot_270(cp) + struct coord_pair *cp; +{ + long newx, newy; + + newx = cp->y; + newy = -cp->x; + cp->x = newx; + cp->y = newy; +}