comparison pads2gpcb/partinst.c @ 71:a3d47129ebdc

pads2gpcb: implemented mirroring and rotation of instantiated parts
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 01 Feb 2016 00:13:20 +0000
parents b7f49f029bc3
children
comparison
equal deleted inserted replaced
70:a9a20c85140e 71:a3d47129ebdc
7 #include "struct.h" 7 #include "struct.h"
8 8
9 extern struct part_type *find_parttype_by_name(); 9 extern struct part_type *find_parttype_by_name();
10 extern struct part_decal *find_decal_by_name(); 10 extern struct part_decal *find_decal_by_name();
11 extern long convert_input_dim(); 11 extern long convert_input_dim();
12
13 extern void coordpair_mirror_x();
14 extern void coordpair_rot_90();
15 extern void coordpair_rot_180();
16 extern void coordpair_rot_270();
12 17
13 static struct part_instance *our_part; 18 static struct part_instance *our_part;
14 19
15 static void 20 static void
16 enter_part_inst() 21 enter_part_inst()
209 /* subsetting and renaming logic will go here */ 214 /* subsetting and renaming logic will go here */
210 our_part->newname = our_part->name; 215 our_part->newname = our_part->name;
211 copy_footprint_body(); 216 copy_footprint_body();
212 our_part->body->mark_x = our_part->mark_x; 217 our_part->body->mark_x = our_part->mark_x;
213 our_part->body->mark_y = our_part->mark_y; 218 our_part->body->mark_y = our_part->mark_y;
214 /* rotation and mirroring to be implemented */ 219 switch (our_part->ori) {
220 case 0:
221 break;
222 case 90:
223 manipulate_footprint_coord_pairs(our_part->body,
224 coordpair_rot_90);
225 break;
226 case 180:
227 manipulate_footprint_coord_pairs(our_part->body,
228 coordpair_rot_180);
229 break;
230 case 270:
231 manipulate_footprint_coord_pairs(our_part->body,
232 coordpair_rot_270);
233 }
234 if (our_part->onbottom)
235 manipulate_footprint_coord_pairs(our_part->body,
236 coordpair_mirror_x);
215 } 237 }
216 238
217 process_part_section() 239 process_part_section()
218 { 240 {
219 input_units_current = input_units_global; 241 input_units_current = input_units_global;