FreeCalypso > hg > ueda-linux
diff pads2gpcb/fpmanip.c @ 70:a9a20c85140e
pads2gpcb: foundation laid for mirroring and rotation
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Feb 2016 00:06:43 +0000 |
parents | |
children |
line wrap: on
line diff
--- /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 <stdio.h> +#include <stdlib.h> +#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; +}