FreeCalypso > hg > ueda-linux
view pads2gpcb/fpmanip.c @ 145:5e91200bf609
netdiff: donl-pinreport utility written, compiles
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Nov 2020 01:17:10 +0000 |
parents | a9a20c85140e |
children |
line wrap: on
line source
#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; }