KiCad PCB EDA Suite
Loading...
Searching...
No Matches
api_pcb_enums.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2024 Jon Evans <[email protected]>
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#include <import_export.h>
22#include <api/api_enums.h>
23#include <api/board/board.pb.h>
24#include <api/board/board_types.pb.h>
25#include <api/board/board_commands.pb.h>
26#include <api/board/board_jobs.pb.h>
27#include <api/common/types/enums.pb.h>
28#include <wx/wx.h>
30
32#include <drc/drc_item.h>
33#include <padstack.h>
34#include <pcb_dimension.h>
35#include <pcb_track.h>
46#include <jobs/job_pcb_render.h>
47#include <drc/drc_rule.h>
48#include <plotprint_opts.h>
49#include <zones.h>
50#include <zone_settings.h>
52
53// Adding something new here? Add it to test_api_enums.cpp!
54
55using namespace kiapi::board;
56using namespace kiapi::board::commands;
57using namespace kiapi::board::jobs;
58
59template<>
60types::PadType ToProtoEnum( PAD_ATTRIB aValue )
61{
62 switch( aValue )
63 {
64 case PAD_ATTRIB::PTH: return types::PadType::PT_PTH;
65 case PAD_ATTRIB::SMD: return types::PadType::PT_SMD;
66 case PAD_ATTRIB::CONN: return types::PadType::PT_EDGE_CONNECTOR;
67 case PAD_ATTRIB::NPTH: return types::PadType::PT_NPTH;
68
69 default:
70 wxCHECK_MSG( false, types::PadType::PT_UNKNOWN,
71 "Unhandled case in ToProtoEnum<PAD_ATTRIB>");
72 }
73}
74
75
76template<>
77PAD_ATTRIB FromProtoEnum( types::PadType aValue )
78{
79 switch( aValue )
80 {
81 case types::PadType::PT_UNKNOWN:
82 case types::PadType::PT_PTH: return PAD_ATTRIB::PTH;
83 case types::PadType::PT_SMD: return PAD_ATTRIB::SMD;
84 case types::PadType::PT_EDGE_CONNECTOR: return PAD_ATTRIB::CONN;
85 case types::PadType::PT_NPTH: return PAD_ATTRIB::NPTH;
86
87 default:
88 wxCHECK_MSG( false, PAD_ATTRIB::PTH,
89 "Unhandled case in FromProtoEnum<types::PadType>" );
90 }
91}
92
93template<>
94types::DrillShape ToProtoEnum( PAD_DRILL_SHAPE aValue )
95{
96 switch( aValue )
97 {
98 case PAD_DRILL_SHAPE::CIRCLE: return types::DrillShape::DS_CIRCLE;
99 case PAD_DRILL_SHAPE::OBLONG: return types::DrillShape::DS_OBLONG;
100 case PAD_DRILL_SHAPE::UNDEFINED: return types::DrillShape::DS_UNDEFINED;
101 default:
102 wxCHECK_MSG( false, types::DrillShape::DS_UNKNOWN,
103 "Unhandled case in ToProtoEnum<PAD_DRILL_SHAPE>");
104 }
105}
106
107template<>
108PAD_DRILL_SHAPE FromProtoEnum( types::DrillShape aValue )
109{
110 switch( aValue )
111 {
112 case types::DrillShape::DS_CIRCLE: return PAD_DRILL_SHAPE::CIRCLE;
113 case types::DrillShape::DS_OBLONG: return PAD_DRILL_SHAPE::OBLONG;
114 case types::DrillShape::DS_UNKNOWN:
115 case types::DrillShape::DS_UNDEFINED: return PAD_DRILL_SHAPE::UNDEFINED;
116 default:
117 wxCHECK_MSG( false, PAD_DRILL_SHAPE::UNDEFINED,
118 "Unhandled case in FromProtoEnum<types::DrillShape>" );
119 }
120}
121
122template<>
123types::PadStackShape ToProtoEnum( PAD_SHAPE aValue )
124{
125 switch( aValue )
126 {
127 case PAD_SHAPE::CIRCLE: return types::PadStackShape::PSS_CIRCLE;
128 case PAD_SHAPE::RECTANGLE: return types::PadStackShape::PSS_RECTANGLE;
129 case PAD_SHAPE::OVAL: return types::PadStackShape::PSS_OVAL;
130 case PAD_SHAPE::TRAPEZOID: return types::PadStackShape::PSS_TRAPEZOID;
131 case PAD_SHAPE::ROUNDRECT: return types::PadStackShape::PSS_ROUNDRECT;
132 case PAD_SHAPE::CHAMFERED_RECT: return types::PadStackShape::PSS_CHAMFEREDRECT;
133 case PAD_SHAPE::CUSTOM: return types::PadStackShape::PSS_CUSTOM;
134
135 default:
136 wxCHECK_MSG( false, types::PadStackShape::PSS_UNKNOWN,
137 "Unhandled case in ToProtoEnum<PAD_SHAPE>");
138 }
139}
140
141
142template<>
143PAD_SHAPE FromProtoEnum( types::PadStackShape aValue )
144{
145 switch( aValue )
146 {
147 case types::PadStackShape::PSS_UNKNOWN:
148 case types::PadStackShape::PSS_CIRCLE: return PAD_SHAPE::CIRCLE;
149 case types::PadStackShape::PSS_RECTANGLE: return PAD_SHAPE::RECTANGLE;
150 case types::PadStackShape::PSS_OVAL: return PAD_SHAPE::OVAL;
151 case types::PadStackShape::PSS_TRAPEZOID: return PAD_SHAPE::TRAPEZOID;
152 case types::PadStackShape::PSS_ROUNDRECT: return PAD_SHAPE::ROUNDRECT;
153 case types::PadStackShape::PSS_CHAMFEREDRECT: return PAD_SHAPE::CHAMFERED_RECT;
154 case types::PadStackShape::PSS_CUSTOM: return PAD_SHAPE::CUSTOM;
155
156 default:
157 wxCHECK_MSG( false, PAD_SHAPE::CIRCLE,
158 "Unhandled case in FromProtoEnum<types::PadStackShape>" );
159 }
160}
161
162
163template<>
164types::PadStackType ToProtoEnum( PADSTACK::MODE aValue )
165{
166 switch( aValue )
167 {
168 case PADSTACK::MODE::NORMAL: return types::PadStackType::PST_NORMAL;
169 case PADSTACK::MODE::FRONT_INNER_BACK: return types::PadStackType::PST_FRONT_INNER_BACK;
170 case PADSTACK::MODE::CUSTOM: return types::PadStackType::PST_CUSTOM;
171
172 default:
173 wxCHECK_MSG( false, types::PadStackType::PST_UNKNOWN,
174 "Unhandled case in ToProtoEnum<PADSTACK::MODE>");
175 }
176}
177
178
179template<>
180PADSTACK::MODE FromProtoEnum( types::PadStackType aValue )
181{
182 switch( aValue )
183 {
184 case types::PadStackType::PST_UNKNOWN:
185 case types::PadStackType::PST_NORMAL: return PADSTACK::MODE::NORMAL;
186 case types::PadStackType::PST_FRONT_INNER_BACK: return PADSTACK::MODE::FRONT_INNER_BACK;
187 case types::PadStackType::PST_CUSTOM: return PADSTACK::MODE::CUSTOM;
188
189 default:
190 wxCHECK_MSG( false, PADSTACK::MODE::NORMAL,
191 "Unhandled case in FromProtoEnum<types::PadStackType>" );
192 }
193}
194
195
196template<>
197types::ViaType ToProtoEnum( VIATYPE aValue )
198{
199 switch( aValue )
200 {
201 case VIATYPE::THROUGH: return types::ViaType::VT_THROUGH;
202 case VIATYPE::BLIND: return types::ViaType::VT_BLIND; // Since V10
203 case VIATYPE::BURIED: return types::ViaType::VT_BURIED;
204 case VIATYPE::MICROVIA: return types::ViaType::VT_MICRO;
205
206 default:
207 wxCHECK_MSG( false, types::ViaType::VT_UNKNOWN,
208 "Unhandled case in ToProtoEnum<VIATYPE>");
209 }
210}
211
212
213template<>
214VIATYPE FromProtoEnum( types::ViaType aValue )
215{
216 switch( aValue )
217 {
218 case types::ViaType::VT_UNKNOWN:
219 case types::ViaType::VT_THROUGH: return VIATYPE::THROUGH;
220 case types::ViaType::VT_BLIND_BURIED: return VIATYPE::BLIND;
221 case types::ViaType::VT_BLIND: return VIATYPE::BLIND; // Since V10
222 case types::ViaType::VT_BURIED: return VIATYPE::BURIED;
223 case types::ViaType::VT_MICRO: return VIATYPE::MICROVIA;
224
225 default:
226 wxCHECK_MSG( false, VIATYPE::THROUGH,
227 "Unhandled case in FromProtoEnum<types::ViaType>" );
228 }
229}
230
231
232template<>
233types::ZoneConnectionStyle ToProtoEnum( ZONE_CONNECTION aValue )
234{
235 switch( aValue )
236 {
237 case ZONE_CONNECTION::INHERITED: return types::ZoneConnectionStyle::ZCS_INHERITED;
238 case ZONE_CONNECTION::NONE: return types::ZoneConnectionStyle::ZCS_NONE;
239 case ZONE_CONNECTION::THERMAL: return types::ZoneConnectionStyle::ZCS_THERMAL;
240 case ZONE_CONNECTION::FULL: return types::ZoneConnectionStyle::ZCS_FULL;
241 case ZONE_CONNECTION::THT_THERMAL: return types::ZoneConnectionStyle::ZCS_PTH_THERMAL;
242
243 default:
244 wxCHECK_MSG( false, types::ZoneConnectionStyle::ZCS_UNKNOWN,
245 "Unhandled case in ToProtoEnum<ZONE_CONNECTION>");
246 }
247}
248
249
250template<>
251ZONE_CONNECTION FromProtoEnum( types::ZoneConnectionStyle aValue )
252{
253 switch( aValue )
254 {
255 case types::ZoneConnectionStyle::ZCS_UNKNOWN: return ZONE_CONNECTION::INHERITED;
256 case types::ZoneConnectionStyle::ZCS_INHERITED: return ZONE_CONNECTION::INHERITED;
257 case types::ZoneConnectionStyle::ZCS_NONE: return ZONE_CONNECTION::NONE;
258 case types::ZoneConnectionStyle::ZCS_THERMAL: return ZONE_CONNECTION::THERMAL;
259 case types::ZoneConnectionStyle::ZCS_FULL: return ZONE_CONNECTION::FULL;
260 case types::ZoneConnectionStyle::ZCS_PTH_THERMAL: return ZONE_CONNECTION::THT_THERMAL;
261
262 default:
263 wxCHECK_MSG( false, ZONE_CONNECTION::INHERITED,
264 "Unhandled case in FromProtoEnum<types::ZoneConnectionStyle>" );
265 }
266}
267
268
269template<>
270CustomRuleConstraintType ToProtoEnum( DRC_CONSTRAINT_T aValue )
271{
272 switch( aValue )
273 {
274 case NULL_CONSTRAINT: return CustomRuleConstraintType::CRCT_UNKNOWN;
275 case CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CLEARANCE;
276 case CREEPAGE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CREEPAGE;
277 case HOLE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_CLEARANCE;
278 case HOLE_TO_HOLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_TO_HOLE;
279 case EDGE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_EDGE_CLEARANCE;
280 case HOLE_SIZE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_SIZE;
281 case COURTYARD_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE;
282 case SILK_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_SILK_CLEARANCE;
283 case TEXT_HEIGHT_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_HEIGHT;
284 case TEXT_THICKNESS_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_THICKNESS;
285 case TRACK_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_WIDTH;
286 case TRACK_SEGMENT_LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH;
287 case ANNULAR_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_ANNULAR_WIDTH;
288 case ZONE_CONNECTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ZONE_CONNECTION;
289 case THERMAL_RELIEF_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP;
290 case THERMAL_SPOKE_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH;
291 case MIN_RESOLVED_SPOKES_CONSTRAINT: return CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES;
292 case SOLDER_MASK_EXPANSION_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION;
293 case SOLDER_PASTE_ABS_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN;
294 case SOLDER_PASTE_REL_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN;
295 case DISALLOW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DISALLOW;
296 case VIA_DIAMETER_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DIAMETER;
297 case LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_LENGTH;
298 case SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_SKEW;
299 case DIFF_PAIR_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP;
300 case MAX_UNCOUPLED_CONSTRAINT: return CustomRuleConstraintType::CRCT_MAX_UNCOUPLED;
301 case DIFF_PAIR_INTRA_SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW;
302 case VIA_COUNT_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_COUNT;
303 case PHYSICAL_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE;
304 case PHYSICAL_HOLE_CLEARANCE_CONSTRAINT:return CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE;
305 case ASSERTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ASSERTION;
306 case CONNECTION_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_CONNECTION_WIDTH;
307 case TRACK_ANGLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_ANGLE;
308 case VIA_DANGLING_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DANGLING;
309 case BRIDGED_MASK_CONSTRAINT: return CustomRuleConstraintType::CRCT_BRIDGED_MASK;
310 case SOLDER_MASK_SLIVER_CONSTRAINT: return CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER;
311
312 default:
313 wxCHECK_MSG( false, CustomRuleConstraintType::CRCT_UNKNOWN,
314 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT_T>" );
315 }
316}
317
318
319template<>
320DRC_CONSTRAINT_T FromProtoEnum( CustomRuleConstraintType aValue )
321{
322 switch( aValue )
323 {
324 case CustomRuleConstraintType::CRCT_UNKNOWN: return NULL_CONSTRAINT;
325 case CustomRuleConstraintType::CRCT_CLEARANCE: return CLEARANCE_CONSTRAINT;
326 case CustomRuleConstraintType::CRCT_CREEPAGE: return CREEPAGE_CONSTRAINT;
327 case CustomRuleConstraintType::CRCT_HOLE_CLEARANCE: return HOLE_CLEARANCE_CONSTRAINT;
328 case CustomRuleConstraintType::CRCT_HOLE_TO_HOLE: return HOLE_TO_HOLE_CONSTRAINT;
329 case CustomRuleConstraintType::CRCT_EDGE_CLEARANCE: return EDGE_CLEARANCE_CONSTRAINT;
330 case CustomRuleConstraintType::CRCT_HOLE_SIZE: return HOLE_SIZE_CONSTRAINT;
331 case CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE: return COURTYARD_CLEARANCE_CONSTRAINT;
332 case CustomRuleConstraintType::CRCT_SILK_CLEARANCE: return SILK_CLEARANCE_CONSTRAINT;
333 case CustomRuleConstraintType::CRCT_TEXT_HEIGHT: return TEXT_HEIGHT_CONSTRAINT;
334 case CustomRuleConstraintType::CRCT_TEXT_THICKNESS: return TEXT_THICKNESS_CONSTRAINT;
335 case CustomRuleConstraintType::CRCT_TRACK_WIDTH: return TRACK_WIDTH_CONSTRAINT;
336 case CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH: return TRACK_SEGMENT_LENGTH_CONSTRAINT;
337 case CustomRuleConstraintType::CRCT_ANNULAR_WIDTH: return ANNULAR_WIDTH_CONSTRAINT;
338 case CustomRuleConstraintType::CRCT_ZONE_CONNECTION: return ZONE_CONNECTION_CONSTRAINT;
339 case CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP: return THERMAL_RELIEF_GAP_CONSTRAINT;
340 case CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH: return THERMAL_SPOKE_WIDTH_CONSTRAINT;
341 case CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES: return MIN_RESOLVED_SPOKES_CONSTRAINT;
342 case CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION: return SOLDER_MASK_EXPANSION_CONSTRAINT;
343 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN:return SOLDER_PASTE_ABS_MARGIN_CONSTRAINT;
344 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN:return SOLDER_PASTE_REL_MARGIN_CONSTRAINT;
345 case CustomRuleConstraintType::CRCT_DISALLOW: return DISALLOW_CONSTRAINT;
346 case CustomRuleConstraintType::CRCT_VIA_DIAMETER: return VIA_DIAMETER_CONSTRAINT;
347 case CustomRuleConstraintType::CRCT_LENGTH: return LENGTH_CONSTRAINT;
348 case CustomRuleConstraintType::CRCT_SKEW: return SKEW_CONSTRAINT;
349 case CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP: return DIFF_PAIR_GAP_CONSTRAINT;
350 case CustomRuleConstraintType::CRCT_MAX_UNCOUPLED: return MAX_UNCOUPLED_CONSTRAINT;
351 case CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW: return DIFF_PAIR_INTRA_SKEW_CONSTRAINT;
352 case CustomRuleConstraintType::CRCT_VIA_COUNT: return VIA_COUNT_CONSTRAINT;
353 case CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE: return PHYSICAL_CLEARANCE_CONSTRAINT;
354 case CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE:return PHYSICAL_HOLE_CLEARANCE_CONSTRAINT;
355 case CustomRuleConstraintType::CRCT_ASSERTION: return ASSERTION_CONSTRAINT;
356 case CustomRuleConstraintType::CRCT_CONNECTION_WIDTH: return CONNECTION_WIDTH_CONSTRAINT;
357 case CustomRuleConstraintType::CRCT_TRACK_ANGLE: return TRACK_ANGLE_CONSTRAINT;
358 case CustomRuleConstraintType::CRCT_VIA_DANGLING: return VIA_DANGLING_CONSTRAINT;
359 case CustomRuleConstraintType::CRCT_BRIDGED_MASK: return BRIDGED_MASK_CONSTRAINT;
360 case CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER: return SOLDER_MASK_SLIVER_CONSTRAINT;
361
362 default:
363 wxCHECK_MSG( false, NULL_CONSTRAINT,
364 "Unhandled case in FromProtoEnum<CustomRuleConstraintType>" );
365 }
366}
367
368
369template<>
370CustomRuleConstraintOption ToProtoEnum( DRC_CONSTRAINT::OPTIONS aValue )
371{
372 switch( aValue )
373 {
374 case DRC_CONSTRAINT::OPTIONS::SKEW_WITHIN_DIFF_PAIRS: return CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS;
375 case DRC_CONSTRAINT::OPTIONS::SPACE_DOMAIN: return CustomRuleConstraintOption::CRCO_SPACE_DOMAIN;
376 case DRC_CONSTRAINT::OPTIONS::TIME_DOMAIN: return CustomRuleConstraintOption::CRCO_TIME_DOMAIN;
377
378 default:
379 wxCHECK_MSG( false, CustomRuleConstraintOption::CRCO_UNKNOWN,
380 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT::OPTIONS>" );
381 }
382}
383
384
385template<>
386DRC_CONSTRAINT::OPTIONS FromProtoEnum( CustomRuleConstraintOption aValue )
387{
388 switch( aValue )
389 {
390 case CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS:
392
393 case CustomRuleConstraintOption::CRCO_SPACE_DOMAIN:
395
396 case CustomRuleConstraintOption::CRCO_TIME_DOMAIN:
398
399 case CustomRuleConstraintOption::CRCO_UNKNOWN:
400 default:
402 "Unhandled case in FromProtoEnum<CustomRuleConstraintOption>" );
403 }
404}
405
406
407template<>
408CustomRuleDisallowType ToProtoEnum( DRC_DISALLOW_T aValue )
409{
410 switch( aValue )
411 {
412 case DRC_DISALLOW_THROUGH_VIAS: return CustomRuleDisallowType::CRDT_THROUGH_VIAS;
413 case DRC_DISALLOW_MICRO_VIAS: return CustomRuleDisallowType::CRDT_MICRO_VIAS;
414 case DRC_DISALLOW_BLIND_VIAS: return CustomRuleDisallowType::CRDT_BLIND_VIAS;
415 case DRC_DISALLOW_BURIED_VIAS: return CustomRuleDisallowType::CRDT_BURIED_VIAS;
416 case DRC_DISALLOW_TRACKS: return CustomRuleDisallowType::CRDT_TRACKS;
417 case DRC_DISALLOW_PADS: return CustomRuleDisallowType::CRDT_PADS;
418 case DRC_DISALLOW_ZONES: return CustomRuleDisallowType::CRDT_ZONES;
419 case DRC_DISALLOW_TEXTS: return CustomRuleDisallowType::CRDT_TEXTS;
420 case DRC_DISALLOW_GRAPHICS: return CustomRuleDisallowType::CRDT_GRAPHICS;
421 case DRC_DISALLOW_HOLES: return CustomRuleDisallowType::CRDT_HOLES;
422 case DRC_DISALLOW_FOOTPRINTS: return CustomRuleDisallowType::CRDT_FOOTPRINTS;
423
424 default:
425 wxCHECK_MSG( false, CustomRuleDisallowType::CRDT_UNKNOWN,
426 "Unhandled case in ToProtoEnum<DRC_DISALLOW_T>" );
427 }
428}
429
430
431template<>
432DRC_DISALLOW_T FromProtoEnum( CustomRuleDisallowType aValue )
433{
434 switch( aValue )
435 {
436 case CustomRuleDisallowType::CRDT_THROUGH_VIAS: return DRC_DISALLOW_THROUGH_VIAS;
437 case CustomRuleDisallowType::CRDT_MICRO_VIAS: return DRC_DISALLOW_MICRO_VIAS;
438 case CustomRuleDisallowType::CRDT_BLIND_VIAS: return DRC_DISALLOW_BLIND_VIAS;
439 case CustomRuleDisallowType::CRDT_BURIED_VIAS: return DRC_DISALLOW_BURIED_VIAS;
440 case CustomRuleDisallowType::CRDT_TRACKS: return DRC_DISALLOW_TRACKS;
441 case CustomRuleDisallowType::CRDT_PADS: return DRC_DISALLOW_PADS;
442 case CustomRuleDisallowType::CRDT_ZONES: return DRC_DISALLOW_ZONES;
443 case CustomRuleDisallowType::CRDT_TEXTS: return DRC_DISALLOW_TEXTS;
444 case CustomRuleDisallowType::CRDT_GRAPHICS: return DRC_DISALLOW_GRAPHICS;
445 case CustomRuleDisallowType::CRDT_HOLES: return DRC_DISALLOW_HOLES;
446 case CustomRuleDisallowType::CRDT_FOOTPRINTS: return DRC_DISALLOW_FOOTPRINTS;
447
448 case CustomRuleDisallowType::CRDT_UNKNOWN:
449 default:
450 wxCHECK_MSG( false, DRC_DISALLOW_THROUGH_VIAS,
451 "Unhandled case in FromProtoEnum<CustomRuleDisallowType>" );
452 }
453}
454
455
456template<>
457types::UnconnectedLayerRemoval ToProtoEnum( UNCONNECTED_LAYER_MODE aValue )
458{
459 switch( aValue )
460 {
462 return types::UnconnectedLayerRemoval::ULR_KEEP;
463
465 return types::UnconnectedLayerRemoval::ULR_REMOVE;
466
468 return types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END;
469
471 return types::UnconnectedLayerRemoval::ULR_START_END_ONLY;
472
473 default:
474 wxCHECK_MSG( false, types::UnconnectedLayerRemoval::ULR_UNKNOWN,
475 "Unhandled case in ToProtoEnum<PADSTACK::UNCONNECTED_LAYER_MODE>");
476 }
477}
478
479
480template<>
481UNCONNECTED_LAYER_MODE FromProtoEnum( types::UnconnectedLayerRemoval aValue )
482{
483 switch( aValue )
484 {
485 case types::UnconnectedLayerRemoval::ULR_UNKNOWN:
486 case types::UnconnectedLayerRemoval::ULR_KEEP:
488
489 case types::UnconnectedLayerRemoval::ULR_REMOVE:
491
492 case types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END:
494
495 case types::UnconnectedLayerRemoval::ULR_START_END_ONLY:
497
498 default:
499 wxCHECK_MSG( false, UNCONNECTED_LAYER_MODE::KEEP_ALL,
500 "Unhandled case in FromProtoEnum<types::UnconnectedLayerRemoval>");
501 }
502}
503
504
505template<>
506types::IslandRemovalMode ToProtoEnum( ISLAND_REMOVAL_MODE aValue )
507{
508 switch( aValue )
509 {
510 case ISLAND_REMOVAL_MODE::ALWAYS: return types::IslandRemovalMode::IRM_ALWAYS;
511 case ISLAND_REMOVAL_MODE::NEVER: return types::IslandRemovalMode::IRM_NEVER;
512 case ISLAND_REMOVAL_MODE::AREA: return types::IslandRemovalMode::IRM_AREA;
513
514 default:
515 wxCHECK_MSG( false, types::IslandRemovalMode::IRM_UNKNOWN,
516 "Unhandled case in ToProtoEnum<ISLAND_REMOVAL_MODE>");
517 }
518}
519
520
521template<>
522ISLAND_REMOVAL_MODE FromProtoEnum( types::IslandRemovalMode aValue )
523{
524 switch( aValue )
525 {
526 case types::IslandRemovalMode::IRM_UNKNOWN:
527 case types::IslandRemovalMode::IRM_ALWAYS: return ISLAND_REMOVAL_MODE::ALWAYS;
528 case types::IslandRemovalMode::IRM_NEVER: return ISLAND_REMOVAL_MODE::NEVER;
529 case types::IslandRemovalMode::IRM_AREA: return ISLAND_REMOVAL_MODE::AREA;
530
531 default:
532 wxCHECK_MSG( false, ISLAND_REMOVAL_MODE::ALWAYS,
533 "Unhandled case in FromProtoEnum<types::IslandRemovalMode>" );
534 }
535}
536
537
538template<>
539types::ZoneFillMode ToProtoEnum( ZONE_FILL_MODE aValue )
540{
541 switch( aValue )
542 {
543 case ZONE_FILL_MODE::POLYGONS: return types::ZoneFillMode::ZFM_SOLID;
544 case ZONE_FILL_MODE::HATCH_PATTERN: return types::ZoneFillMode::ZFM_HATCHED;
545
546 default:
547 wxCHECK_MSG( false, types::ZoneFillMode::ZFM_UNKNOWN,
548 "Unhandled case in ToProtoEnum<ZONE_FILL_MODE>");
549 }
550}
551
552
553template<>
554ZONE_FILL_MODE FromProtoEnum( types::ZoneFillMode aValue )
555{
556 switch( aValue )
557 {
558 case types::ZoneFillMode::ZFM_UNKNOWN:
559 case types::ZoneFillMode::ZFM_SOLID: return ZONE_FILL_MODE::POLYGONS;
560 case types::ZoneFillMode::ZFM_HATCHED: return ZONE_FILL_MODE::HATCH_PATTERN;
561
562 default:
563 wxCHECK_MSG( false, ZONE_FILL_MODE::POLYGONS,
564 "Unhandled case in FromProtoEnum<types::ZoneFillMode>" );
565 }
566}
567
568
569template<>
570types::ZoneBorderStyle ToProtoEnum( ZONE_BORDER_DISPLAY_STYLE aValue )
571{
572 switch( aValue )
573 {
574 case ZONE_BORDER_DISPLAY_STYLE::NO_HATCH: return types::ZoneBorderStyle::ZBS_SOLID;
575 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL: return types::ZoneBorderStyle::ZBS_DIAGONAL_FULL;
576 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE: return types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE;
577 case ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER: return types::ZoneBorderStyle::ZBS_INVISIBLE;
578
579 default:
580 wxCHECK_MSG( false, types::ZoneBorderStyle::ZBS_UNKNOWN,
581 "Unhandled case in ToProtoEnum<ZONE_BORDER_DISPLAY_STYLE>");
582 }
583}
584
585
586template<>
587ZONE_BORDER_DISPLAY_STYLE FromProtoEnum( types::ZoneBorderStyle aValue )
588{
589 switch( aValue )
590 {
591 case types::ZoneBorderStyle::ZBS_SOLID: return ZONE_BORDER_DISPLAY_STYLE::NO_HATCH;
592 case types::ZoneBorderStyle::ZBS_DIAGONAL_FULL: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL;
593 case types::ZoneBorderStyle::ZBS_UNKNOWN:
594 case types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE;
595 case types::ZoneBorderStyle::ZBS_INVISIBLE: return ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER;
596
597 default:
599 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
600 }
601}
602
603
604template<>
605types::PlacementRuleSourceType ToProtoEnum( PLACEMENT_SOURCE_T aValue )
606{
607 switch( aValue )
608 {
610 return types::PlacementRuleSourceType::PRST_SHEET_NAME;
611
613 return types::PlacementRuleSourceType::PRST_COMPONENT_CLASS;
614
616 return types::PlacementRuleSourceType::PRST_GROUP;
617
619 return types::PlacementRuleSourceType::PRST_DESIGN_BLOCK;
620
621 default:
622 wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN,
623 "Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>");
624 }
625}
626
627
628template<>
629PLACEMENT_SOURCE_T FromProtoEnum( types::PlacementRuleSourceType aValue )
630{
631 switch( aValue )
632 {
633 case types::PlacementRuleSourceType::PRST_UNKNOWN:
634 case types::PlacementRuleSourceType::PRST_SHEET_NAME:
636
637 case types::PlacementRuleSourceType::PRST_COMPONENT_CLASS:
639
640 case types::PlacementRuleSourceType::PRST_GROUP:
642
643 case types::PlacementRuleSourceType::PRST_DESIGN_BLOCK:
645
646 default:
647 wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME,
648 "Unhandled case in FromProtoEnum<types::PlacementRuleSourceType>" );
649 }
650}
651
652
653template<>
654types::TeardropType ToProtoEnum( TEARDROP_TYPE aValue )
655{
656 switch( aValue )
657 {
658 case TEARDROP_TYPE::TD_NONE: return types::TeardropType::TDT_NONE;
659 case TEARDROP_TYPE::TD_UNSPECIFIED: return types::TeardropType::TDT_UNSPECIFIED;
660 case TEARDROP_TYPE::TD_VIAPAD: return types::TeardropType::TDT_VIA_PAD;
661 case TEARDROP_TYPE::TD_TRACKEND: return types::TeardropType::TDT_TRACK_END;
662
663 default:
664 wxCHECK_MSG( false, types::TeardropType::TDT_UNKNOWN,
665 "Unhandled case in ToProtoEnum<TEARDROP_TYPE>");
666 }
667}
668
669
670template<>
671TEARDROP_TYPE FromProtoEnum( types::TeardropType aValue )
672{
673 switch( aValue )
674 {
675 case types::TeardropType::TDT_UNKNOWN:
676 case types::TeardropType::TDT_NONE: return TEARDROP_TYPE::TD_NONE;
677 case types::TeardropType::TDT_UNSPECIFIED: return TEARDROP_TYPE::TD_UNSPECIFIED;
678 case types::TeardropType::TDT_VIA_PAD: return TEARDROP_TYPE::TD_VIAPAD;
679 case types::TeardropType::TDT_TRACK_END: return TEARDROP_TYPE::TD_TRACKEND;
680
681 default:
682 wxCHECK_MSG( false, TEARDROP_TYPE::TD_NONE,
683 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
684 }
685}
686
687
688template<>
689kiapi::board::TeardropTarget ToProtoEnum( TARGET_TD aValue )
690{
691 switch( aValue )
692 {
693 case TARGET_ROUND: return kiapi::board::TeardropTarget::TDT_ROUND;
694 case TARGET_RECT: return kiapi::board::TeardropTarget::TDT_RECT;
695 case TARGET_TRACK: return kiapi::board::TeardropTarget::TDT_TRACK;
696
697 default:
698 wxCHECK_MSG( false, kiapi::board::TeardropTarget::TDT_UNKNOWN,
699 "Unhandled case in ToProtoEnum<TARGET_TD>" );
700 }
701}
702
703
704template<>
705TARGET_TD FromProtoEnum( kiapi::board::TeardropTarget aValue )
706{
707 switch( aValue )
708 {
709 case kiapi::board::TeardropTarget::TDT_ROUND: return TARGET_ROUND;
710 case kiapi::board::TeardropTarget::TDT_RECT: return TARGET_RECT;
711 case kiapi::board::TeardropTarget::TDT_TRACK: return TARGET_TRACK;
712
713 case kiapi::board::TeardropTarget::TDT_UNKNOWN:
714 default:
715 return TARGET_UNKNOWN;
716 }
717}
718
719
720template<>
721types::DimensionTextBorderStyle ToProtoEnum( DIM_TEXT_BORDER aValue )
722{
723 switch( aValue )
724 {
725 case DIM_TEXT_BORDER::NONE: return types::DimensionTextBorderStyle::DTBS_NONE;
726 case DIM_TEXT_BORDER::RECTANGLE: return types::DimensionTextBorderStyle::DTBS_RECTANGLE;
727 case DIM_TEXT_BORDER::CIRCLE: return types::DimensionTextBorderStyle::DTBS_CIRCLE;
728 case DIM_TEXT_BORDER::ROUNDRECT: return types::DimensionTextBorderStyle::DTBS_ROUNDRECT;
729
730 default:
731 wxCHECK_MSG( false, types::DimensionTextBorderStyle::DTBS_UNKNOWN,
732 "Unhandled case in ToProtoEnum<DIM_TEXT_BORDER>");
733 }
734}
735
736
737template<>
738DIM_TEXT_BORDER FromProtoEnum( types::DimensionTextBorderStyle aValue )
739{
740 switch( aValue )
741 {
742 case types::DimensionTextBorderStyle::DTBS_UNKNOWN:
743 case types::DimensionTextBorderStyle::DTBS_NONE: return DIM_TEXT_BORDER::NONE;
744 case types::DimensionTextBorderStyle::DTBS_RECTANGLE: return DIM_TEXT_BORDER::RECTANGLE;
745 case types::DimensionTextBorderStyle::DTBS_CIRCLE: return DIM_TEXT_BORDER::CIRCLE;
746 case types::DimensionTextBorderStyle::DTBS_ROUNDRECT: return DIM_TEXT_BORDER::ROUNDRECT;
747
748 default:
749 wxCHECK_MSG( false, DIM_TEXT_BORDER::NONE,
750 "Unhandled case in FromProtoEnum<types::DimensionTextBorderStyle>" );
751 }
752}
753
754
755template<>
756types::DimensionUnitFormat ToProtoEnum( DIM_UNITS_FORMAT aValue )
757{
758 switch( aValue )
759 {
760 case DIM_UNITS_FORMAT::NO_SUFFIX: return types::DimensionUnitFormat::DUF_NO_SUFFIX;
761 case DIM_UNITS_FORMAT::BARE_SUFFIX: return types::DimensionUnitFormat::DUF_BARE_SUFFIX;
762 case DIM_UNITS_FORMAT::PAREN_SUFFIX: return types::DimensionUnitFormat::DUF_PAREN_SUFFIX;
763
764 default:
765 wxCHECK_MSG( false, types::DimensionUnitFormat::DUF_UNKNOWN,
766 "Unhandled case in ToProtoEnum<DIM_UNITS_FORMAT>");
767 }
768}
769
770
771template<>
772DIM_UNITS_FORMAT FromProtoEnum( types::DimensionUnitFormat aValue )
773{
774 switch( aValue )
775 {
776 case types::DimensionUnitFormat::DUF_UNKNOWN:
777 case types::DimensionUnitFormat::DUF_NO_SUFFIX: return DIM_UNITS_FORMAT::NO_SUFFIX;
778 case types::DimensionUnitFormat::DUF_BARE_SUFFIX: return DIM_UNITS_FORMAT::BARE_SUFFIX;
779 case types::DimensionUnitFormat::DUF_PAREN_SUFFIX: return DIM_UNITS_FORMAT::PAREN_SUFFIX;
780
781 default:
782 wxCHECK_MSG( false, DIM_UNITS_FORMAT::NO_SUFFIX,
783 "Unhandled case in FromProtoEnum<types::DimensionUnitFormat>" );
784 }
785}
786
787
788template<>
789types::DimensionArrowDirection ToProtoEnum( DIM_ARROW_DIRECTION aValue )
790{
791 switch( aValue )
792 {
793 case DIM_ARROW_DIRECTION::INWARD: return types::DimensionArrowDirection::DAD_INWARD;
794 case DIM_ARROW_DIRECTION::OUTWARD: return types::DimensionArrowDirection::DAD_OUTWARD;
795
796 default:
797 wxCHECK_MSG( false, types::DimensionArrowDirection::DAD_UNKNOWN,
798 "Unhandled case in ToProtoEnum<DIM_ARROW_DIRECTION>");
799 }
800}
801
802
803template<>
804DIM_ARROW_DIRECTION FromProtoEnum( types::DimensionArrowDirection aValue )
805{
806 switch( aValue )
807 {
808 case types::DimensionArrowDirection::DAD_INWARD: return DIM_ARROW_DIRECTION::INWARD;
809 case types::DimensionArrowDirection::DAD_UNKNOWN:
810 case types::DimensionArrowDirection::DAD_OUTWARD: return DIM_ARROW_DIRECTION::OUTWARD;
811
812 default:
813 wxCHECK_MSG( false, DIM_ARROW_DIRECTION::OUTWARD,
814 "Unhandled case in FromProtoEnum<types::DimensionArrowDirection>" );
815 }
816}
817
818
819template<>
820types::DimensionPrecision ToProtoEnum( DIM_PRECISION aValue )
821{
822 switch( aValue )
823 {
824 case DIM_PRECISION::X: return types::DimensionPrecision::DP_FIXED_0;
825 case DIM_PRECISION::X_X: return types::DimensionPrecision::DP_FIXED_1;
826 case DIM_PRECISION::X_XX: return types::DimensionPrecision::DP_FIXED_2;
827 case DIM_PRECISION::X_XXX: return types::DimensionPrecision::DP_FIXED_3;
828 case DIM_PRECISION::X_XXXX: return types::DimensionPrecision::DP_FIXED_4;
829 case DIM_PRECISION::X_XXXXX: return types::DimensionPrecision::DP_FIXED_5;
830 case DIM_PRECISION::V_VV: return types::DimensionPrecision::DP_SCALED_IN_2;
831 case DIM_PRECISION::V_VVV: return types::DimensionPrecision::DP_SCALED_IN_3;
832 case DIM_PRECISION::V_VVVV: return types::DimensionPrecision::DP_SCALED_IN_4;
833 case DIM_PRECISION::V_VVVVV: return types::DimensionPrecision::DP_SCALED_IN_5;
834
835 default:
836 wxCHECK_MSG( false, types::DimensionPrecision::DP_UNKNOWN,
837 "Unhandled case in ToProtoEnum<DIM_PRECISION>");
838 }
839}
840
841
842template<>
843DIM_PRECISION FromProtoEnum( types::DimensionPrecision aValue )
844{
845 switch( aValue )
846 {
847 case types::DimensionPrecision::DP_FIXED_0: return DIM_PRECISION::X;
848 case types::DimensionPrecision::DP_FIXED_1: return DIM_PRECISION::X_X;
849 case types::DimensionPrecision::DP_FIXED_2: return DIM_PRECISION::X_XX;
850 case types::DimensionPrecision::DP_FIXED_3: return DIM_PRECISION::X_XXX;
851 case types::DimensionPrecision::DP_FIXED_4: return DIM_PRECISION::X_XXXX;
852 case types::DimensionPrecision::DP_FIXED_5: return DIM_PRECISION::X_XXXXX;
853 case types::DimensionPrecision::DP_UNKNOWN:
854 case types::DimensionPrecision::DP_SCALED_IN_2: return DIM_PRECISION::V_VV;
855 case types::DimensionPrecision::DP_SCALED_IN_3: return DIM_PRECISION::V_VVV;
856 case types::DimensionPrecision::DP_SCALED_IN_4: return DIM_PRECISION::V_VVVV;
857 case types::DimensionPrecision::DP_SCALED_IN_5: return DIM_PRECISION::V_VVVVV;
858
859 default:
860 wxCHECK_MSG( false, DIM_PRECISION::V_VV,
861 "Unhandled case in FromProtoEnum<types::DimensionPrecision>" );
862 }
863}
864
865
866template<>
867types::DimensionTextPosition ToProtoEnum( DIM_TEXT_POSITION aValue )
868{
869 switch( aValue )
870 {
871 case DIM_TEXT_POSITION::OUTSIDE: return types::DimensionTextPosition::DTP_OUTSIDE;
872 case DIM_TEXT_POSITION::INLINE: return types::DimensionTextPosition::DTP_INLINE;
873 case DIM_TEXT_POSITION::MANUAL: return types::DimensionTextPosition::DTP_MANUAL;
874
875 default:
876 wxCHECK_MSG( false, types::DimensionTextPosition::DTP_UNKNOWN,
877 "Unhandled case in ToProtoEnum<DIM_TEXT_POSITION>");
878 }
879}
880
881
882template<>
883DIM_TEXT_POSITION FromProtoEnum( types::DimensionTextPosition aValue )
884{
885 switch( aValue )
886 {
887 case types::DimensionTextPosition::DTP_UNKNOWN:
888 case types::DimensionTextPosition::DTP_OUTSIDE: return DIM_TEXT_POSITION::OUTSIDE;
889 case types::DimensionTextPosition::DTP_INLINE: return DIM_TEXT_POSITION::INLINE;
890 case types::DimensionTextPosition::DTP_MANUAL: return DIM_TEXT_POSITION::MANUAL;
891
892 default:
893 wxCHECK_MSG( false, DIM_TEXT_POSITION::OUTSIDE,
894 "Unhandled case in FromProtoEnum<types::DimensionTextPosition>" );
895 }
896}
897
898
899template<>
900types::DimensionUnit ToProtoEnum( DIM_UNITS_MODE aValue )
901{
902 switch( aValue )
903 {
904 case DIM_UNITS_MODE::INCH: return types::DimensionUnit::DU_INCHES;
905 case DIM_UNITS_MODE::MILS: return types::DimensionUnit::DU_MILS;
906 case DIM_UNITS_MODE::MM: return types::DimensionUnit::DU_MILLIMETERS;
907 case DIM_UNITS_MODE::AUTOMATIC: return types::DimensionUnit::DU_AUTOMATIC;
908
909 default:
910 wxCHECK_MSG( false, types::DimensionUnit::DU_UNKNOWN,
911 "Unhandled case in ToProtoEnum<DIM_UNITS_MODE>");
912 }
913}
914
915
916template<>
917DIM_UNITS_MODE FromProtoEnum( types::DimensionUnit aValue )
918{
919 switch( aValue )
920 {
921 case types::DimensionUnit::DU_INCHES: return DIM_UNITS_MODE::INCH;
922 case types::DimensionUnit::DU_MILS: return DIM_UNITS_MODE::MILS;
923 case types::DimensionUnit::DU_MILLIMETERS: return DIM_UNITS_MODE::MM;
924 case types::DimensionUnit::DU_UNKNOWN:
925 case types::DimensionUnit::DU_AUTOMATIC: return DIM_UNITS_MODE::AUTOMATIC;
926
927 default:
928 wxCHECK_MSG( false, DIM_UNITS_MODE::AUTOMATIC,
929 "Unhandled case in FromProtoEnum<types::DimensionUnit>" );
930 }
931}
932
933
934template<>
935commands::InactiveLayerDisplayMode ToProtoEnum( HIGH_CONTRAST_MODE aValue )
936{
937 switch( aValue )
938 {
939 case HIGH_CONTRAST_MODE::NORMAL: return commands::InactiveLayerDisplayMode::ILDM_NORMAL;
940 case HIGH_CONTRAST_MODE::DIMMED: return commands::InactiveLayerDisplayMode::ILDM_DIMMED;
941 case HIGH_CONTRAST_MODE::HIDDEN: return commands::InactiveLayerDisplayMode::ILDM_HIDDEN;
942
943 default:
944 wxCHECK_MSG( false, commands::InactiveLayerDisplayMode::ILDM_NORMAL,
945 "Unhandled case in ToProtoEnum<HIGH_CONTRAST_MODE>");
946 }
947}
948
949
950template<>
951HIGH_CONTRAST_MODE FromProtoEnum( commands::InactiveLayerDisplayMode aValue )
952{
953 switch( aValue )
954 {
955 case commands::InactiveLayerDisplayMode::ILDM_DIMMED: return HIGH_CONTRAST_MODE::DIMMED;
956 case commands::InactiveLayerDisplayMode::ILDM_HIDDEN: return HIGH_CONTRAST_MODE::HIDDEN;
957 case commands::InactiveLayerDisplayMode::ILDM_UNKNOWN:
958 case commands::InactiveLayerDisplayMode::ILDM_NORMAL: return HIGH_CONTRAST_MODE::NORMAL;
959
960 default:
961 wxCHECK_MSG( false, HIGH_CONTRAST_MODE::NORMAL,
962 "Unhandled case in FromProtoEnum<commands::InactiveLayerDisplayMode>" );
963 }
964}
965
966
967template<>
968commands::NetColorDisplayMode ToProtoEnum( NET_COLOR_MODE aValue )
969{
970 switch( aValue )
971 {
972 case NET_COLOR_MODE::ALL: return commands::NetColorDisplayMode::NCDM_ALL;
973 case NET_COLOR_MODE::RATSNEST: return commands::NetColorDisplayMode::NCDM_RATSNEST;
974 case NET_COLOR_MODE::OFF: return commands::NetColorDisplayMode::NCDM_OFF;
975
976 default:
977 wxCHECK_MSG( false, commands::NetColorDisplayMode::NCDM_UNKNOWN,
978 "Unhandled case in ToProtoEnum<NET_COLOR_MODE>");
979 }
980}
981
982
983template<>
984NET_COLOR_MODE FromProtoEnum( commands::NetColorDisplayMode aValue )
985{
986 switch( aValue )
987 {
988 case commands::NetColorDisplayMode::NCDM_ALL: return NET_COLOR_MODE::ALL;
989 case commands::NetColorDisplayMode::NCDM_OFF: return NET_COLOR_MODE::OFF;
990 case commands::NetColorDisplayMode::NCDM_UNKNOWN:
991 case commands::NetColorDisplayMode::NCDM_RATSNEST: return NET_COLOR_MODE::RATSNEST;
992
993 default:
994 wxCHECK_MSG( false, NET_COLOR_MODE::RATSNEST,
995 "Unhandled case in FromProtoEnum<commands::NetColorDisplayMode>" );
996 }
997}
998
999
1000template<>
1001commands::RatsnestDisplayMode ToProtoEnum( RATSNEST_MODE aValue )
1002{
1003 switch( aValue )
1004 {
1005 case RATSNEST_MODE::ALL: return commands::RatsnestDisplayMode::RDM_ALL_LAYERS;
1006 case RATSNEST_MODE::VISIBLE: return commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS;
1007
1008 default:
1009 wxCHECK_MSG( false, commands::RatsnestDisplayMode::RDM_UNKNOWN,
1010 "Unhandled case in ToProtoEnum<RATSNEST_MODE>");
1011 }
1012}
1013
1014
1015template<>
1016RATSNEST_MODE FromProtoEnum( commands::RatsnestDisplayMode aValue )
1017{
1018 switch( aValue )
1019 {
1020 case commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS: return RATSNEST_MODE::VISIBLE;
1021 case commands::RatsnestDisplayMode::RDM_UNKNOWN:
1022 case commands::RatsnestDisplayMode::RDM_ALL_LAYERS: return RATSNEST_MODE::ALL;
1023
1024 default:
1025 wxCHECK_MSG( false, RATSNEST_MODE::ALL,
1026 "Unhandled case in FromProtoEnum<commands::RatsnestDisplayMode>" );
1027 }
1028}
1029
1030
1031template<>
1032BoardStackupLayerType ToProtoEnum( BOARD_STACKUP_ITEM_TYPE aValue )
1033{
1034 switch( aValue )
1035 {
1036 case BS_ITEM_TYPE_UNDEFINED: return BoardStackupLayerType::BSLT_UNDEFINED;
1037 case BS_ITEM_TYPE_COPPER: return BoardStackupLayerType::BSLT_COPPER;
1038 case BS_ITEM_TYPE_DIELECTRIC: return BoardStackupLayerType::BSLT_DIELECTRIC;
1039 case BS_ITEM_TYPE_SOLDERPASTE: return BoardStackupLayerType::BSLT_SOLDERPASTE;
1040 case BS_ITEM_TYPE_SOLDERMASK: return BoardStackupLayerType::BSLT_SOLDERMASK;
1041 case BS_ITEM_TYPE_SILKSCREEN: return BoardStackupLayerType::BSLT_SILKSCREEN;
1042
1043 default:
1044 wxCHECK_MSG( false, BoardStackupLayerType::BSLT_UNKNOWN,
1045 "Unhandled case in ToProtoEnum<BOARD_STACKUP_ITEM_TYPE>");
1046 }
1047}
1048
1049
1050template<>
1051BOARD_STACKUP_ITEM_TYPE FromProtoEnum( BoardStackupLayerType aValue )
1052{
1053 switch( aValue )
1054 {
1055 case BoardStackupLayerType::BSLT_UNDEFINED: return BS_ITEM_TYPE_UNDEFINED;
1056 case BoardStackupLayerType::BSLT_COPPER: return BS_ITEM_TYPE_COPPER;
1057 case BoardStackupLayerType::BSLT_DIELECTRIC: return BS_ITEM_TYPE_DIELECTRIC;
1058 case BoardStackupLayerType::BSLT_SOLDERPASTE: return BS_ITEM_TYPE_SOLDERPASTE;
1059 case BoardStackupLayerType::BSLT_SOLDERMASK: return BS_ITEM_TYPE_SOLDERMASK;
1060 case BoardStackupLayerType::BSLT_SILKSCREEN: return BS_ITEM_TYPE_SILKSCREEN;
1061
1062 default:
1063 wxCHECK_MSG( false, BS_ITEM_TYPE_UNDEFINED,
1064 "Unhandled case in FromProtoEnum<BoardStackupLayerType>" );
1065 }
1066}
1067
1068
1069template<>
1070DrcSeverity ToProtoEnum( SEVERITY aValue )
1071{
1072 switch( aValue )
1073 {
1074 case RPT_SEVERITY_WARNING: return DrcSeverity::DRS_WARNING;
1075 case RPT_SEVERITY_ERROR: return DrcSeverity::DRS_ERROR;
1076 case RPT_SEVERITY_EXCLUSION: return DrcSeverity::DRS_EXCLUSION;
1077 case RPT_SEVERITY_IGNORE: return DrcSeverity::DRS_IGNORE;
1078 case RPT_SEVERITY_INFO: return DrcSeverity::DRS_INFO;
1079 case RPT_SEVERITY_ACTION: return DrcSeverity::DRS_ACTION;
1080 case RPT_SEVERITY_DEBUG: return DrcSeverity::DRS_DEBUG;
1081 case RPT_SEVERITY_UNDEFINED: return DrcSeverity::DRS_UNDEFINED;
1082 default:
1083 wxCHECK_MSG( false, DrcSeverity::DRS_UNDEFINED,
1084 "Unhandled case in ToProtoEnum<SEVERITY>");
1085 }
1086}
1087
1088
1089template<>
1090SEVERITY FromProtoEnum( DrcSeverity aValue )
1091{
1092 switch( aValue )
1093 {
1094 case DrcSeverity::DRS_WARNING: return RPT_SEVERITY_WARNING;
1095 case DrcSeverity::DRS_ERROR: return RPT_SEVERITY_ERROR;
1096 case DrcSeverity::DRS_EXCLUSION: return RPT_SEVERITY_EXCLUSION;
1097 case DrcSeverity::DRS_IGNORE: return RPT_SEVERITY_IGNORE;
1098 case DrcSeverity::DRS_INFO: return RPT_SEVERITY_INFO;
1099 case DrcSeverity::DRS_ACTION: return RPT_SEVERITY_ACTION;
1100 case DrcSeverity::DRS_DEBUG: return RPT_SEVERITY_DEBUG;
1101 case DrcSeverity::DRS_UNKNOWN:
1102 default:
1104 }
1105}
1106
1107
1108template<>
1109PlotDrillMarks ToProtoEnum( DRILL_MARKS aValue )
1110{
1111 switch( aValue )
1112 {
1113 case DRILL_MARKS::NO_DRILL_SHAPE: return PlotDrillMarks::PDM_NONE;
1114 case DRILL_MARKS::SMALL_DRILL_SHAPE: return PlotDrillMarks::PDM_SMALL;
1115 case DRILL_MARKS::FULL_DRILL_SHAPE: return PlotDrillMarks::PDM_FULL;
1116 default:
1117 wxCHECK_MSG( false, PlotDrillMarks::PDM_UNKNOWN,
1118 "Unhandled case in ToProtoEnum<DRILL_MARKS>" );
1119 }
1120}
1121
1122
1123template<>
1124DRILL_MARKS FromProtoEnum( PlotDrillMarks aValue )
1125{
1126 switch( aValue )
1127 {
1128 case PlotDrillMarks::PDM_NONE: return DRILL_MARKS::NO_DRILL_SHAPE;
1129 case PlotDrillMarks::PDM_SMALL: return DRILL_MARKS::SMALL_DRILL_SHAPE;
1130 case PlotDrillMarks::PDM_FULL: return DRILL_MARKS::FULL_DRILL_SHAPE;
1131 case PlotDrillMarks::PDM_UNKNOWN:
1132 default:
1134 }
1135}
1136
1137
1138template<>
1140{
1141 switch( aValue )
1142 {
1143 case JOB_EXPORT_PCB_3D::FORMAT::STEP: return Board3DFormat::B3D_STEP;
1144 case JOB_EXPORT_PCB_3D::FORMAT::STEPZ: return Board3DFormat::B3D_STEPZ;
1145 case JOB_EXPORT_PCB_3D::FORMAT::BREP: return Board3DFormat::B3D_BREP;
1146 case JOB_EXPORT_PCB_3D::FORMAT::XAO: return Board3DFormat::B3D_XAO;
1147 case JOB_EXPORT_PCB_3D::FORMAT::GLB: return Board3DFormat::B3D_GLB;
1148 case JOB_EXPORT_PCB_3D::FORMAT::VRML: return Board3DFormat::B3D_VRML;
1149 case JOB_EXPORT_PCB_3D::FORMAT::PLY: return Board3DFormat::B3D_PLY;
1150 case JOB_EXPORT_PCB_3D::FORMAT::STL: return Board3DFormat::B3D_STL;
1151 case JOB_EXPORT_PCB_3D::FORMAT::U3D: return Board3DFormat::B3D_U3D;
1152 case JOB_EXPORT_PCB_3D::FORMAT::PDF: return Board3DFormat::B3D_PDF;
1153 default:
1154 wxCHECK_MSG( false, Board3DFormat::B3D_UNKNOWN,
1155 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::FORMAT>" );
1156 }
1157}
1158
1159
1160template<>
1162{
1163 switch( aValue )
1164 {
1165 case Board3DFormat::B3D_STEP: return JOB_EXPORT_PCB_3D::FORMAT::STEP;
1166 case Board3DFormat::B3D_STEPZ: return JOB_EXPORT_PCB_3D::FORMAT::STEPZ;
1167 case Board3DFormat::B3D_BREP: return JOB_EXPORT_PCB_3D::FORMAT::BREP;
1168 case Board3DFormat::B3D_XAO: return JOB_EXPORT_PCB_3D::FORMAT::XAO;
1169 case Board3DFormat::B3D_GLB: return JOB_EXPORT_PCB_3D::FORMAT::GLB;
1170 case Board3DFormat::B3D_VRML: return JOB_EXPORT_PCB_3D::FORMAT::VRML;
1171 case Board3DFormat::B3D_PLY: return JOB_EXPORT_PCB_3D::FORMAT::PLY;
1172 case Board3DFormat::B3D_STL: return JOB_EXPORT_PCB_3D::FORMAT::STL;
1173 case Board3DFormat::B3D_U3D: return JOB_EXPORT_PCB_3D::FORMAT::U3D;
1174 case Board3DFormat::B3D_PDF: return JOB_EXPORT_PCB_3D::FORMAT::PDF;
1175 case Board3DFormat::B3D_UNKNOWN:
1176 default:
1178 }
1179}
1180
1181
1182template<>
1183kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_3D::VRML_UNITS aValue )
1184{
1185 switch( aValue )
1186 {
1187 case JOB_EXPORT_PCB_3D::VRML_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1188 case JOB_EXPORT_PCB_3D::VRML_UNITS::MM: return kiapi::common::types::Units::U_MM;
1189 case JOB_EXPORT_PCB_3D::VRML_UNITS::METERS: return kiapi::common::types::Units::U_METERS;
1190 case JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS: return kiapi::common::types::Units::U_TENTHS;
1191 default:
1192 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1193 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::VRML_UNITS>" );
1194 }
1195}
1196
1197
1198template<>
1199JOB_EXPORT_PCB_3D::VRML_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1200{
1201 switch( aValue )
1202 {
1203 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_3D::VRML_UNITS::INCH;
1204 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_3D::VRML_UNITS::MM;
1205 case kiapi::common::types::Units::U_METERS: return JOB_EXPORT_PCB_3D::VRML_UNITS::METERS;
1206 case kiapi::common::types::Units::U_TENTHS: return JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS;
1207 case kiapi::common::types::Units::U_UNKNOWN:
1208 default:
1210 }
1211}
1212
1213
1214template<>
1216{
1217 switch( aValue )
1218 {
1219 case JOB_PCB_RENDER::FORMAT::PNG: return RenderFormat::RF_PNG;
1220 case JOB_PCB_RENDER::FORMAT::JPEG: return RenderFormat::RF_JPEG;
1221 default:
1222 wxCHECK_MSG( false, RenderFormat::RF_UNKNOWN,
1223 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::FORMAT>" );
1224 }
1225}
1226
1227
1228template<>
1230{
1231 switch( aValue )
1232 {
1233 case RenderFormat::RF_PNG: return JOB_PCB_RENDER::FORMAT::PNG;
1234 case RenderFormat::RF_JPEG:return JOB_PCB_RENDER::FORMAT::JPEG;
1235 case RenderFormat::RF_UNKNOWN:
1236 default:
1238 }
1239}
1240
1241
1242template<>
1244{
1245 switch( aValue )
1246 {
1247 case JOB_PCB_RENDER::QUALITY::BASIC: return RenderQuality::RQ_BASIC;
1248 case JOB_PCB_RENDER::QUALITY::HIGH: return RenderQuality::RQ_HIGH;
1249 case JOB_PCB_RENDER::QUALITY::USER: return RenderQuality::RQ_USER;
1250 case JOB_PCB_RENDER::QUALITY::JOB_SETTINGS: return RenderQuality::RQ_JOB_SETTINGS;
1251 default:
1252 wxCHECK_MSG( false, RenderQuality::RQ_UNKNOWN,
1253 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::QUALITY>" );
1254 }
1255}
1256
1257
1258template<>
1260{
1261 switch( aValue )
1262 {
1263 case RenderQuality::RQ_BASIC: return JOB_PCB_RENDER::QUALITY::BASIC;
1264 case RenderQuality::RQ_HIGH: return JOB_PCB_RENDER::QUALITY::HIGH;
1265 case RenderQuality::RQ_USER: return JOB_PCB_RENDER::QUALITY::USER;
1266 case RenderQuality::RQ_JOB_SETTINGS: return JOB_PCB_RENDER::QUALITY::JOB_SETTINGS;
1267 case RenderQuality::RQ_UNKNOWN:
1268 default:
1270 }
1271}
1272
1273
1274template<>
1275RenderBackgroundStyle ToProtoEnum( JOB_PCB_RENDER::BG_STYLE aValue )
1276{
1277 switch( aValue )
1278 {
1279 case JOB_PCB_RENDER::BG_STYLE::DEFAULT: return RenderBackgroundStyle::RBS_DEFAULT;
1280 case JOB_PCB_RENDER::BG_STYLE::TRANSPARENT: return RenderBackgroundStyle::RBS_TRANSPARENT;
1281 case JOB_PCB_RENDER::BG_STYLE::OPAQUE: return RenderBackgroundStyle::RBS_OPAQUE;
1282 default:
1283 wxCHECK_MSG( false, RenderBackgroundStyle::RBS_UNKNOWN,
1284 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::BG_STYLE>" );
1285 }
1286}
1287
1288
1289template<>
1290JOB_PCB_RENDER::BG_STYLE FromProtoEnum( RenderBackgroundStyle aValue )
1291{
1292 switch( aValue )
1293 {
1294 case RenderBackgroundStyle::RBS_DEFAULT: return JOB_PCB_RENDER::BG_STYLE::DEFAULT;
1295 case RenderBackgroundStyle::RBS_TRANSPARENT: return JOB_PCB_RENDER::BG_STYLE::TRANSPARENT;
1296 case RenderBackgroundStyle::RBS_OPAQUE: return JOB_PCB_RENDER::BG_STYLE::OPAQUE;
1297 case RenderBackgroundStyle::RBS_UNKNOWN:
1298 default:
1300 }
1301}
1302
1303
1304template<>
1306{
1307 switch( aValue )
1308 {
1309 case JOB_PCB_RENDER::SIDE::TOP: return RenderSide::RS_TOP;
1310 case JOB_PCB_RENDER::SIDE::BOTTOM: return RenderSide::RS_BOTTOM;
1311 case JOB_PCB_RENDER::SIDE::LEFT: return RenderSide::RS_LEFT;
1312 case JOB_PCB_RENDER::SIDE::RIGHT: return RenderSide::RS_RIGHT;
1313 case JOB_PCB_RENDER::SIDE::FRONT: return RenderSide::RS_FRONT;
1314 case JOB_PCB_RENDER::SIDE::BACK: return RenderSide::RS_BACK;
1315 default:
1316 wxCHECK_MSG( false, RenderSide::RS_UNKNOWN,
1317 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::SIDE>" );
1318 }
1319}
1320
1321
1322template<>
1324{
1325 switch( aValue )
1326 {
1327 case RenderSide::RS_TOP: return JOB_PCB_RENDER::SIDE::TOP;
1328 case RenderSide::RS_BOTTOM: return JOB_PCB_RENDER::SIDE::BOTTOM;
1329 case RenderSide::RS_LEFT: return JOB_PCB_RENDER::SIDE::LEFT;
1330 case RenderSide::RS_RIGHT: return JOB_PCB_RENDER::SIDE::RIGHT;
1331 case RenderSide::RS_FRONT: return JOB_PCB_RENDER::SIDE::FRONT;
1332 case RenderSide::RS_BACK: return JOB_PCB_RENDER::SIDE::BACK;
1333 case RenderSide::RS_UNKNOWN:
1334 default:
1336 }
1337}
1338
1339
1340template<>
1341BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_SVG::GEN_MODE aValue )
1342{
1343 switch( aValue )
1344 {
1345 case JOB_EXPORT_PCB_SVG::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1346 case JOB_EXPORT_PCB_SVG::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1347 default:
1348 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1349 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_SVG::GEN_MODE>" );
1350 }
1351}
1352
1353
1354template<>
1355JOB_EXPORT_PCB_SVG::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1356{
1357 switch( aValue )
1358 {
1359 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1361 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1363 case BoardJobPaginationMode::BJPM_UNKNOWN:
1364 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1365 default:
1367 }
1368}
1369
1370
1371template<>
1372BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_DXF::GEN_MODE aValue )
1373{
1374 switch( aValue )
1375 {
1376 case JOB_EXPORT_PCB_DXF::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1377 case JOB_EXPORT_PCB_DXF::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1378 default:
1379 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1380 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::GEN_MODE>" );
1381 }
1382}
1383
1384
1385template<>
1386JOB_EXPORT_PCB_DXF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1387{
1388 switch( aValue )
1389 {
1390 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1392 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1394 case BoardJobPaginationMode::BJPM_UNKNOWN:
1395 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1396 default:
1398 }
1399}
1400
1401
1402template<>
1403BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PDF::GEN_MODE aValue )
1404{
1405 switch( aValue )
1406 {
1408 return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1410 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE;
1412 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1413 default:
1414 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1415 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PDF::GEN_MODE>" );
1416 }
1417}
1418
1419
1420template<>
1421JOB_EXPORT_PCB_PDF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1422{
1423 switch( aValue )
1424 {
1425 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1427 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1429 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1431 case BoardJobPaginationMode::BJPM_UNKNOWN:
1432 default:
1434 }
1435}
1436
1437
1438template<>
1439BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PS::GEN_MODE aValue )
1440{
1441 switch( aValue )
1442 {
1443 case JOB_EXPORT_PCB_PS::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1444 case JOB_EXPORT_PCB_PS::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1445 default:
1446 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1447 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PS::GEN_MODE>" );
1448 }
1449}
1450
1451
1452template<>
1453JOB_EXPORT_PCB_PS::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1454{
1455 switch( aValue )
1456 {
1457 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1459 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1461 case BoardJobPaginationMode::BJPM_UNKNOWN:
1462 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1463 default:
1465 }
1466}
1467
1468
1469template<>
1471{
1472 switch( aValue )
1473 {
1474 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON: return DrillFormat::DF_EXCELLON;
1475 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER: return DrillFormat::DF_GERBER;
1476 default:
1477 wxCHECK_MSG( false, DrillFormat::DF_UNKNOWN,
1478 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_FORMAT>" );
1479 }
1480}
1481
1482
1483template<>
1485{
1486 switch( aValue )
1487 {
1488 case DrillFormat::DF_EXCELLON: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON;
1489 case DrillFormat::DF_GERBER: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER;
1490 case DrillFormat::DF_UNKNOWN:
1491 default:
1493 }
1494}
1495
1496
1497template<>
1499{
1500 switch( aValue )
1501 {
1502 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS: return DrillOrigin::DO_ABSOLUTE;
1503 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT: return DrillOrigin::DO_PLOT;
1504 default:
1505 wxCHECK_MSG( false, DrillOrigin::DO_UNKNOWN,
1506 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN>" );
1507 }
1508}
1509
1510
1511template<>
1513{
1514 switch( aValue )
1515 {
1516 case DrillOrigin::DO_ABSOLUTE: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS;
1517 case DrillOrigin::DO_PLOT: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT;
1518 case DrillOrigin::DO_UNKNOWN:
1519 default:
1521 }
1522}
1523
1524
1525template<>
1527{
1528 switch( aValue )
1529 {
1531 return DrillZerosFormat::DZF_DECIMAL;
1533 return DrillZerosFormat::DZF_SUPPRESS_LEADING;
1535 return DrillZerosFormat::DZF_SUPPRESS_TRAILING;
1537 return DrillZerosFormat::DZF_KEEP_ZEROS;
1538 default:
1539 wxCHECK_MSG( false, DrillZerosFormat::DZF_UNKNOWN,
1540 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::ZEROS_FORMAT>" );
1541 }
1542}
1543
1544
1545template<>
1547{
1548 switch( aValue )
1549 {
1550 case DrillZerosFormat::DZF_DECIMAL:
1552 case DrillZerosFormat::DZF_SUPPRESS_LEADING:
1554 case DrillZerosFormat::DZF_SUPPRESS_TRAILING:
1556 case DrillZerosFormat::DZF_KEEP_ZEROS:
1558 case DrillZerosFormat::DZF_UNKNOWN:
1559 default:
1561 }
1562}
1563
1564
1565template<>
1567{
1568 switch( aValue )
1569 {
1571 return DrillMapFormat::DMF_POSTSCRIPT;
1573 return DrillMapFormat::DMF_GERBER_X2;
1575 return DrillMapFormat::DMF_DXF;
1577 return DrillMapFormat::DMF_SVG;
1579 return DrillMapFormat::DMF_PDF;
1580 default:
1581 wxCHECK_MSG( false, DrillMapFormat::DMF_UNKNOWN,
1582 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::MAP_FORMAT>" );
1583 }
1584}
1585
1586
1587template<>
1589{
1590 switch( aValue )
1591 {
1592 case DrillMapFormat::DMF_POSTSCRIPT:
1594 case DrillMapFormat::DMF_GERBER_X2:
1596 case DrillMapFormat::DMF_DXF:
1598 case DrillMapFormat::DMF_SVG:
1600 case DrillMapFormat::DMF_PDF:
1602 case DrillMapFormat::DMF_UNKNOWN:
1603 default:
1605 }
1606}
1607
1608
1609template<>
1610kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DRILL::DRILL_UNITS aValue )
1611{
1612 switch( aValue )
1613 {
1614 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1615 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM: return kiapi::common::types::Units::U_MM;
1616 default:
1617 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1618 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_UNITS>" );
1619 }
1620}
1621
1622
1623template<>
1624JOB_EXPORT_PCB_DRILL::DRILL_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1625{
1626 switch( aValue )
1627 {
1628 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH;
1629 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM;
1630 case kiapi::common::types::Units::U_UNKNOWN:
1631 case kiapi::common::types::Units::U_METERS:
1632 case kiapi::common::types::Units::U_TENTHS:
1633 default:
1635 }
1636}
1637
1638
1639template<>
1641{
1642 switch( aValue )
1643 {
1644 case JOB_EXPORT_PCB_POS::SIDE::FRONT: return PositionSide::PS_FRONT;
1645 case JOB_EXPORT_PCB_POS::SIDE::BACK: return PositionSide::PS_BACK;
1646 case JOB_EXPORT_PCB_POS::SIDE::BOTH: return PositionSide::PS_BOTH;
1647 default:
1648 wxCHECK_MSG( false, PositionSide::PS_UNKNOWN,
1649 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::SIDE>" );
1650 }
1651}
1652
1653
1654template<>
1656{
1657 switch( aValue )
1658 {
1659 case PositionSide::PS_FRONT: return JOB_EXPORT_PCB_POS::SIDE::FRONT;
1660 case PositionSide::PS_BACK: return JOB_EXPORT_PCB_POS::SIDE::BACK;
1661 case PositionSide::PS_BOTH: return JOB_EXPORT_PCB_POS::SIDE::BOTH;
1662 case PositionSide::PS_UNKNOWN:
1663 default:
1665 }
1666}
1667
1668
1669template<>
1671{
1672 switch( aValue )
1673 {
1674 case JOB_EXPORT_PCB_POS::FORMAT::ASCII: return PositionFormat::PF_ASCII;
1675 case JOB_EXPORT_PCB_POS::FORMAT::CSV: return PositionFormat::PF_CSV;
1676 case JOB_EXPORT_PCB_POS::FORMAT::GERBER: return PositionFormat::PF_GERBER;
1677 default:
1678 wxCHECK_MSG( false, PositionFormat::PF_UNKNOWN,
1679 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::FORMAT>" );
1680 }
1681}
1682
1683
1684template<>
1686{
1687 switch( aValue )
1688 {
1689 case PositionFormat::PF_ASCII: return JOB_EXPORT_PCB_POS::FORMAT::ASCII;
1690 case PositionFormat::PF_CSV: return JOB_EXPORT_PCB_POS::FORMAT::CSV;
1691 case PositionFormat::PF_GERBER: return JOB_EXPORT_PCB_POS::FORMAT::GERBER;
1692 case PositionFormat::PF_UNKNOWN:
1693 default:
1695 }
1696}
1697
1698
1699template<>
1701{
1702 switch( aValue )
1703 {
1704 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B: return Ipc2581Version::IPC2581V_B;
1705 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C: return Ipc2581Version::IPC2581V_C;
1706 default:
1707 wxCHECK_MSG( false, Ipc2581Version::IPC2581V_UNKNOWN,
1708 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION>" );
1709 }
1710}
1711
1712
1713template<>
1715{
1716 switch( aValue )
1717 {
1718 case Ipc2581Version::IPC2581V_B: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B;
1719 case Ipc2581Version::IPC2581V_C: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C;
1720 case Ipc2581Version::IPC2581V_UNKNOWN:
1721 default:
1723 }
1724}
1725
1726
1727template<>
1729{
1730 switch( aValue )
1731 {
1732 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE: return OdbCompression::ODBC_NONE;
1733 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP: return OdbCompression::ODBC_ZIP;
1734 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ: return OdbCompression::ODBC_TGZ;
1735 default:
1736 wxCHECK_MSG( false, OdbCompression::ODBC_UNKNOWN,
1737 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_COMPRESSION>" );
1738 }
1739}
1740
1741
1742template<>
1744{
1745 switch( aValue )
1746 {
1747 case OdbCompression::ODBC_NONE: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE;
1748 case OdbCompression::ODBC_ZIP: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP;
1749 case OdbCompression::ODBC_TGZ: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ;
1750 case OdbCompression::ODBC_UNKNOWN:
1751 default:
1753 }
1754}
1755
1756
1757template<>
1759{
1760 switch( aValue )
1761 {
1762 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT: return StatsOutputFormat::SOF_REPORT;
1763 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON: return StatsOutputFormat::SOF_JSON;
1764 default:
1765 wxCHECK_MSG( false, StatsOutputFormat::SOF_UNKNOWN,
1766 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT>" );
1767 }
1768}
1769
1770
1771template<>
1773{
1774 switch( aValue )
1775 {
1776 case StatsOutputFormat::SOF_REPORT: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT;
1777 case StatsOutputFormat::SOF_JSON: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON;
1778 case StatsOutputFormat::SOF_UNKNOWN:
1779 default:
1781 }
1782}
1783
1784
1785template<>
1786kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DXF::DXF_UNITS aValue )
1787{
1788 switch( aValue )
1789 {
1790 case JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1791 case JOB_EXPORT_PCB_DXF::DXF_UNITS::MM: return kiapi::common::types::Units::U_MM;
1792 default:
1793 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1794 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::DXF_UNITS>" );
1795 }
1796}
1797
1798
1799template<>
1800JOB_EXPORT_PCB_DXF::DXF_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1801{
1802 switch( aValue )
1803 {
1804 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH;
1805 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DXF::DXF_UNITS::MM;
1806 case kiapi::common::types::Units::U_UNKNOWN:
1807 case kiapi::common::types::Units::U_METERS:
1808 case kiapi::common::types::Units::U_TENTHS:
1809 default:
1811 }
1812}
1813
1814
1815template<>
1816kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_POS::UNITS aValue )
1817{
1818 switch( aValue )
1819 {
1820 case JOB_EXPORT_PCB_POS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1821 case JOB_EXPORT_PCB_POS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1822 default:
1823 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1824 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::UNITS>" );
1825 }
1826}
1827
1828
1829template<>
1830JOB_EXPORT_PCB_POS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1831{
1832 switch( aValue )
1833 {
1834 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_POS::UNITS::INCH;
1835 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_POS::UNITS::MM;
1836 case kiapi::common::types::Units::U_UNKNOWN:
1837 case kiapi::common::types::Units::U_METERS:
1838 case kiapi::common::types::Units::U_TENTHS:
1839 default:
1841 }
1842}
1843
1844
1845template<>
1846kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS aValue )
1847{
1848 switch( aValue )
1849 {
1850 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1851 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM: return kiapi::common::types::Units::U_MM;
1852 default:
1853 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1854 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS>" );
1855 }
1856}
1857
1858
1859template<>
1860JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1861{
1862 switch( aValue )
1863 {
1864 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH;
1865 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM;
1866 case kiapi::common::types::Units::U_UNKNOWN:
1867 case kiapi::common::types::Units::U_METERS:
1868 case kiapi::common::types::Units::U_TENTHS:
1869 default:
1871 }
1872}
1873
1874
1875template<>
1876kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_ODB::ODB_UNITS aValue )
1877{
1878 switch( aValue )
1879 {
1880 case JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1881 case JOB_EXPORT_PCB_ODB::ODB_UNITS::MM: return kiapi::common::types::Units::U_MM;
1882 default:
1883 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1884 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_UNITS>" );
1885 }
1886}
1887
1888
1889template<>
1890JOB_EXPORT_PCB_ODB::ODB_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1891{
1892 switch( aValue )
1893 {
1894 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH;
1895 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_ODB::ODB_UNITS::MM;
1896 case kiapi::common::types::Units::U_UNKNOWN:
1897 case kiapi::common::types::Units::U_METERS:
1898 case kiapi::common::types::Units::U_TENTHS:
1899 default:
1901 }
1902}
1903
1904
1905template<>
1906kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_STATS::UNITS aValue )
1907{
1908 switch( aValue )
1909 {
1910 case JOB_EXPORT_PCB_STATS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1911 case JOB_EXPORT_PCB_STATS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1912 default:
1913 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1914 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::UNITS>" );
1915 }
1916}
1917
1918
1919template<>
1920JOB_EXPORT_PCB_STATS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1921{
1922 switch( aValue )
1923 {
1924 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_STATS::UNITS::INCH;
1925 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_STATS::UNITS::MM;
1926 case kiapi::common::types::Units::U_UNKNOWN:
1927 case kiapi::common::types::Units::U_METERS:
1928 case kiapi::common::types::Units::U_TENTHS:
1929 default:
1931 }
1932}
1933
1934
1935template<>
1936DrcErrorType ToProtoEnum( PCB_DRC_CODE aValue )
1937{
1938 switch( aValue )
1939 {
1940 case DRCE_UNCONNECTED_ITEMS: return DrcErrorType::DRCET_UNCONNECTED_ITEMS;
1941 case DRCE_SHORTING_ITEMS: return DrcErrorType::DRCET_SHORTING_ITEMS;
1942 case DRCE_ALLOWED_ITEMS: return DrcErrorType::DRCET_ALLOWED_ITEMS;
1943 case DRCE_TEXT_ON_EDGECUTS: return DrcErrorType::DRCET_TEXT_ON_EDGECUTS;
1944 case DRCE_CLEARANCE: return DrcErrorType::DRCET_CLEARANCE;
1945 case DRCE_CREEPAGE: return DrcErrorType::DRCET_CREEPAGE;
1946 case DRCE_TRACKS_CROSSING: return DrcErrorType::DRCET_TRACKS_CROSSING;
1947 case DRCE_EDGE_CLEARANCE: return DrcErrorType::DRCET_EDGE_CLEARANCE;
1948 case DRCE_ZONES_INTERSECT: return DrcErrorType::DRCET_ZONES_INTERSECT;
1949 case DRCE_ISOLATED_COPPER: return DrcErrorType::DRCET_ISOLATED_COPPER;
1950 case DRCE_STARVED_THERMAL: return DrcErrorType::DRCET_STARVED_THERMAL;
1951 case DRCE_DANGLING_VIA: return DrcErrorType::DRCET_DANGLING_VIA;
1952 case DRCE_DANGLING_TRACK: return DrcErrorType::DRCET_DANGLING_TRACK;
1953 case DRCE_DRILLED_HOLES_TOO_CLOSE: return DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE;
1954 case DRCE_DRILLED_HOLES_COLOCATED: return DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED;
1955 case DRCE_HOLE_CLEARANCE: return DrcErrorType::DRCET_HOLE_CLEARANCE;
1956 case DRCE_CONNECTION_WIDTH: return DrcErrorType::DRCET_CONNECTION_WIDTH;
1957 case DRCE_TRACK_WIDTH: return DrcErrorType::DRCET_TRACK_WIDTH;
1958 case DRCE_TRACK_ANGLE: return DrcErrorType::DRCET_TRACK_ANGLE;
1959 case DRCE_TRACK_SEGMENT_LENGTH: return DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH;
1960 case DRCE_ANNULAR_WIDTH: return DrcErrorType::DRCET_ANNULAR_WIDTH;
1961 case DRCE_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_DRILL_OUT_OF_RANGE;
1962 case DRCE_VIA_DIAMETER: return DrcErrorType::DRCET_VIA_DIAMETER;
1963 case DRCE_PADSTACK: return DrcErrorType::DRCET_PADSTACK;
1964 case DRCE_PADSTACK_INVALID: return DrcErrorType::DRCET_PADSTACK_INVALID;
1965 case DRCE_MICROVIA_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE;
1966 case DRCE_OVERLAPPING_FOOTPRINTS: return DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS;
1967 case DRCE_MISSING_COURTYARD: return DrcErrorType::DRCET_MISSING_COURTYARD;
1968 case DRCE_MALFORMED_COURTYARD: return DrcErrorType::DRCET_MALFORMED_COURTYARD;
1969 case DRCE_PTH_IN_COURTYARD: return DrcErrorType::DRCET_PTH_IN_COURTYARD;
1970 case DRCE_NPTH_IN_COURTYARD: return DrcErrorType::DRCET_NPTH_IN_COURTYARD;
1971 case DRCE_DISABLED_LAYER_ITEM: return DrcErrorType::DRCET_DISABLED_LAYER_ITEM;
1972 case DRCE_INVALID_OUTLINE: return DrcErrorType::DRCET_INVALID_OUTLINE;
1973 case DRCE_MISSING_FOOTPRINT: return DrcErrorType::DRCET_MISSING_FOOTPRINT;
1974 case DRCE_DUPLICATE_FOOTPRINT: return DrcErrorType::DRCET_DUPLICATE_FOOTPRINT;
1975 case DRCE_NET_CONFLICT: return DrcErrorType::DRCET_NET_CONFLICT;
1976 case DRCE_EXTRA_FOOTPRINT: return DrcErrorType::DRCET_EXTRA_FOOTPRINT;
1977 case DRCE_SCHEMATIC_PARITY: return DrcErrorType::DRCET_SCHEMATIC_PARITY;
1978 case DRCE_SCHEMATIC_FIELDS_PARITY: return DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY;
1979 case DRCE_FOOTPRINT_FILTERS: return DrcErrorType::DRCET_FOOTPRINT_FILTERS;
1980 case DRCE_LIB_FOOTPRINT_ISSUES: return DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES;
1981 case DRCE_LIB_FOOTPRINT_MISMATCH: return DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH;
1982 case DRCE_UNRESOLVED_VARIABLE: return DrcErrorType::DRCET_UNRESOLVED_VARIABLE;
1983 case DRCE_ASSERTION_FAILURE: return DrcErrorType::DRCET_ASSERTION_FAILURE;
1984 case DRCE_GENERIC_WARNING: return DrcErrorType::DRCET_GENERIC_WARNING;
1985 case DRCE_GENERIC_ERROR: return DrcErrorType::DRCET_GENERIC_ERROR;
1986 case DRCE_COPPER_SLIVER: return DrcErrorType::DRCET_COPPER_SLIVER;
1987 case DRCE_SILK_CLEARANCE: return DrcErrorType::DRCET_SILK_CLEARANCE;
1988 case DRCE_SILK_MASK_CLEARANCE: return DrcErrorType::DRCET_SILK_MASK_CLEARANCE;
1989 case DRCE_SILK_EDGE_CLEARANCE: return DrcErrorType::DRCET_SILK_EDGE_CLEARANCE;
1990 case DRCE_SOLDERMASK_BRIDGE: return DrcErrorType::DRCET_SOLDERMASK_BRIDGE;
1991 case DRCE_TEXT_HEIGHT: return DrcErrorType::DRCET_TEXT_HEIGHT;
1992 case DRCE_TEXT_THICKNESS: return DrcErrorType::DRCET_TEXT_THICKNESS;
1993 case DRCE_LENGTH_OUT_OF_RANGE: return DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE;
1994 case DRCE_SKEW_OUT_OF_RANGE: return DrcErrorType::DRCET_SKEW_OUT_OF_RANGE;
1995 case DRCE_VIA_COUNT_OUT_OF_RANGE: return DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE;
1996 case DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE: return DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE;
1997 case DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG: return DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG;
1998 case DRCE_FOOTPRINT: return DrcErrorType::DRCET_FOOTPRINT;
1999 case DRCE_FOOTPRINT_TYPE_MISMATCH: return DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH;
2000 case DRCE_PAD_TH_WITH_NO_HOLE: return DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE;
2001 case DRCE_MIRRORED_TEXT_ON_FRONT_LAYER: return DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER;
2002 case DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER: return DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER;
2003 case DRCE_MISSING_TUNING_PROFILE: return DrcErrorType::DRCET_MISSING_TUNING_PROFILE;
2004 case DRCE_TUNING_PROFILE_IMPLICIT_RULES: return DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES;
2005 case DRCE_TRACK_ON_POST_MACHINED_LAYER: return DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER;
2006 case DRCE_TRACK_NOT_CENTERED_ON_VIA: return DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA;
2007 default:
2008 wxCHECK_MSG( false, DrcErrorType::DRCET_UNKNOWN,
2009 "Unhandled case in ToProtoEnum<PCB_DRC_CODE>" );
2010 }
2011}
2012
2013
2014template<>
2015PCB_DRC_CODE FromProtoEnum( DrcErrorType aValue )
2016{
2017 switch( aValue )
2018 {
2019 case DrcErrorType::DRCET_UNCONNECTED_ITEMS: return DRCE_UNCONNECTED_ITEMS;
2020 case DrcErrorType::DRCET_SHORTING_ITEMS: return DRCE_SHORTING_ITEMS;
2021 case DrcErrorType::DRCET_ALLOWED_ITEMS: return DRCE_ALLOWED_ITEMS;
2022 case DrcErrorType::DRCET_TEXT_ON_EDGECUTS: return DRCE_TEXT_ON_EDGECUTS;
2023 case DrcErrorType::DRCET_CLEARANCE: return DRCE_CLEARANCE;
2024 case DrcErrorType::DRCET_CREEPAGE: return DRCE_CREEPAGE;
2025 case DrcErrorType::DRCET_TRACKS_CROSSING: return DRCE_TRACKS_CROSSING;
2026 case DrcErrorType::DRCET_EDGE_CLEARANCE: return DRCE_EDGE_CLEARANCE;
2027 case DrcErrorType::DRCET_ZONES_INTERSECT: return DRCE_ZONES_INTERSECT;
2028 case DrcErrorType::DRCET_ISOLATED_COPPER: return DRCE_ISOLATED_COPPER;
2029 case DrcErrorType::DRCET_STARVED_THERMAL: return DRCE_STARVED_THERMAL;
2030 case DrcErrorType::DRCET_DANGLING_VIA: return DRCE_DANGLING_VIA;
2031 case DrcErrorType::DRCET_DANGLING_TRACK: return DRCE_DANGLING_TRACK;
2032 case DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE: return DRCE_DRILLED_HOLES_TOO_CLOSE;
2033 case DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED: return DRCE_DRILLED_HOLES_COLOCATED;
2034 case DrcErrorType::DRCET_HOLE_CLEARANCE: return DRCE_HOLE_CLEARANCE;
2035 case DrcErrorType::DRCET_CONNECTION_WIDTH: return DRCE_CONNECTION_WIDTH;
2036 case DrcErrorType::DRCET_TRACK_WIDTH: return DRCE_TRACK_WIDTH;
2037 case DrcErrorType::DRCET_TRACK_ANGLE: return DRCE_TRACK_ANGLE;
2038 case DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH: return DRCE_TRACK_SEGMENT_LENGTH;
2039 case DrcErrorType::DRCET_ANNULAR_WIDTH: return DRCE_ANNULAR_WIDTH;
2040 case DrcErrorType::DRCET_DRILL_OUT_OF_RANGE: return DRCE_DRILL_OUT_OF_RANGE;
2041 case DrcErrorType::DRCET_VIA_DIAMETER: return DRCE_VIA_DIAMETER;
2042 case DrcErrorType::DRCET_PADSTACK: return DRCE_PADSTACK;
2043 case DrcErrorType::DRCET_PADSTACK_INVALID: return DRCE_PADSTACK_INVALID;
2044 case DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE: return DRCE_MICROVIA_DRILL_OUT_OF_RANGE;
2045 case DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS: return DRCE_OVERLAPPING_FOOTPRINTS;
2046 case DrcErrorType::DRCET_MISSING_COURTYARD: return DRCE_MISSING_COURTYARD;
2047 case DrcErrorType::DRCET_MALFORMED_COURTYARD: return DRCE_MALFORMED_COURTYARD;
2048 case DrcErrorType::DRCET_PTH_IN_COURTYARD: return DRCE_PTH_IN_COURTYARD;
2049 case DrcErrorType::DRCET_NPTH_IN_COURTYARD: return DRCE_NPTH_IN_COURTYARD;
2050 case DrcErrorType::DRCET_DISABLED_LAYER_ITEM: return DRCE_DISABLED_LAYER_ITEM;
2051 case DrcErrorType::DRCET_INVALID_OUTLINE: return DRCE_INVALID_OUTLINE;
2052 case DrcErrorType::DRCET_MISSING_FOOTPRINT: return DRCE_MISSING_FOOTPRINT;
2053 case DrcErrorType::DRCET_DUPLICATE_FOOTPRINT: return DRCE_DUPLICATE_FOOTPRINT;
2054 case DrcErrorType::DRCET_NET_CONFLICT: return DRCE_NET_CONFLICT;
2055 case DrcErrorType::DRCET_EXTRA_FOOTPRINT: return DRCE_EXTRA_FOOTPRINT;
2056 case DrcErrorType::DRCET_SCHEMATIC_PARITY: return DRCE_SCHEMATIC_PARITY;
2057 case DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY: return DRCE_SCHEMATIC_FIELDS_PARITY;
2058 case DrcErrorType::DRCET_FOOTPRINT_FILTERS: return DRCE_FOOTPRINT_FILTERS;
2059 case DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES: return DRCE_LIB_FOOTPRINT_ISSUES;
2060 case DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH: return DRCE_LIB_FOOTPRINT_MISMATCH;
2061 case DrcErrorType::DRCET_UNRESOLVED_VARIABLE: return DRCE_UNRESOLVED_VARIABLE;
2062 case DrcErrorType::DRCET_ASSERTION_FAILURE: return DRCE_ASSERTION_FAILURE;
2063 case DrcErrorType::DRCET_GENERIC_WARNING: return DRCE_GENERIC_WARNING;
2064 case DrcErrorType::DRCET_GENERIC_ERROR: return DRCE_GENERIC_ERROR;
2065 case DrcErrorType::DRCET_COPPER_SLIVER: return DRCE_COPPER_SLIVER;
2066 case DrcErrorType::DRCET_SILK_CLEARANCE: return DRCE_SILK_CLEARANCE;
2067 case DrcErrorType::DRCET_SILK_MASK_CLEARANCE: return DRCE_SILK_MASK_CLEARANCE;
2068 case DrcErrorType::DRCET_SILK_EDGE_CLEARANCE: return DRCE_SILK_EDGE_CLEARANCE;
2069 case DrcErrorType::DRCET_SOLDERMASK_BRIDGE: return DRCE_SOLDERMASK_BRIDGE;
2070 case DrcErrorType::DRCET_TEXT_HEIGHT: return DRCE_TEXT_HEIGHT;
2071 case DrcErrorType::DRCET_TEXT_THICKNESS: return DRCE_TEXT_THICKNESS;
2072 case DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE: return DRCE_LENGTH_OUT_OF_RANGE;
2073 case DrcErrorType::DRCET_SKEW_OUT_OF_RANGE: return DRCE_SKEW_OUT_OF_RANGE;
2074 case DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE: return DRCE_VIA_COUNT_OUT_OF_RANGE;
2075 case DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE: return DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE;
2076 case DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG: return DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG;
2077 case DrcErrorType::DRCET_FOOTPRINT: return DRCE_FOOTPRINT;
2078 case DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH: return DRCE_FOOTPRINT_TYPE_MISMATCH;
2079 case DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE: return DRCE_PAD_TH_WITH_NO_HOLE;
2080 case DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER: return DRCE_MIRRORED_TEXT_ON_FRONT_LAYER;
2081 case DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER: return DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER;
2082 case DrcErrorType::DRCET_MISSING_TUNING_PROFILE: return DRCE_MISSING_TUNING_PROFILE;
2083 case DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES: return DRCE_TUNING_PROFILE_IMPLICIT_RULES;
2084 case DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER: return DRCE_TRACK_ON_POST_MACHINED_LAYER;
2085 case DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA: return DRCE_TRACK_NOT_CENTERED_ON_VIA;
2086
2087 case DrcErrorType::DRCET_UNKNOWN:
2088 default:
2089 return static_cast<PCB_DRC_CODE>( 0 );
2090 }
2091}
2092
2093
2094// Adding something new here? Add it to test_api_enums.cpp!
types::PadType ToProtoEnum(PAD_ATTRIB aValue)
PAD_ATTRIB FromProtoEnum(types::PadType aValue)
HIGH_CONTRAST_MODE
Determine how inactive layers should be displayed.
@ NORMAL
Inactive layers are shown normally (no high-contrast mode)
@ HIDDEN
Inactive layers are hidden.
@ DIMMED
Inactive layers are dimmed (old high-contrast mode)
@ RATSNEST
Net/netclass colors are shown on ratsnest lines only.
@ ALL
Net/netclass colors are shown on all net copper.
@ OFF
Net (and netclass) colors are not shown.
@ VISIBLE
Ratsnest lines are drawn to items on visible layers only.
@ ALL
Ratsnest lines are drawn to items on all layers (default)
BOARD_STACKUP_ITEM_TYPE
@ BS_ITEM_TYPE_UNDEFINED
@ BS_ITEM_TYPE_COPPER
@ BS_ITEM_TYPE_SILKSCREEN
@ BS_ITEM_TYPE_DIELECTRIC
@ BS_ITEM_TYPE_SOLDERPASTE
@ BS_ITEM_TYPE_SOLDERMASK
@ ALL_LAYERS_ONE_FILE
DEPRECATED MODE.
@ ONE_PAGE_PER_LAYER_ONE_FILE
The most traditional output mode KiCad has had.
MODE
! Copper geometry mode: controls how many unique copper layer shapes this padstack has
Definition padstack.h:170
@ NORMAL
Shape is the same on all layers.
Definition padstack.h:171
@ CUSTOM
Shapes can be defined on arbitrary layers.
Definition padstack.h:173
@ FRONT_INNER_BACK
Up to three shapes can be defined (F_Cu, inner copper layers, B_Cu)
Definition padstack.h:172
PCB_DRC_CODE
Definition drc_item.h:38
@ DRCE_DISABLED_LAYER_ITEM
Definition drc_item.h:72
@ DRCE_SKEW_OUT_OF_RANGE
Definition drc_item.h:105
@ DRCE_DIFF_PAIR_GAP_OUT_OF_RANGE
Definition drc_item.h:107
@ DRCE_CREEPAGE
Definition drc_item.h:45
@ DRCE_TUNING_PROFILE_IMPLICIT_RULES
Definition drc_item.h:114
@ DRCE_HOLE_CLEARANCE
Definition drc_item.h:55
@ DRCE_SILK_EDGE_CLEARANCE
Definition drc_item.h:99
@ DRCE_ZONES_INTERSECT
Definition drc_item.h:48
@ DRCE_FOOTPRINT_FILTERS
Definition drc_item.h:80
@ DRCE_SILK_MASK_CLEARANCE
Definition drc_item.h:97
@ DRCE_VIA_DIAMETER
Definition drc_item.h:62
@ DRCE_UNCONNECTED_ITEMS
Definition drc_item.h:40
@ DRCE_TRACK_WIDTH
Definition drc_item.h:56
@ DRCE_PADSTACK
Definition drc_item.h:63
@ DRCE_MIRRORED_TEXT_ON_FRONT_LAYER
Definition drc_item.h:110
@ DRCE_LIB_FOOTPRINT_ISSUES
Definition drc_item.h:83
@ DRCE_OVERLAPPING_FOOTPRINTS
Definition drc_item.h:66
@ DRCE_INVALID_OUTLINE
Definition drc_item.h:73
@ DRCE_TRACK_ON_POST_MACHINED_LAYER
Definition drc_item.h:116
@ DRCE_TEXT_ON_EDGECUTS
Definition drc_item.h:43
@ DRCE_DRILL_OUT_OF_RANGE
Definition drc_item.h:61
@ DRCE_EDGE_CLEARANCE
Definition drc_item.h:47
@ DRCE_STARVED_THERMAL
Definition drc_item.h:50
@ DRCE_TRACK_SEGMENT_LENGTH
Definition drc_item.h:58
@ DRCE_SCHEMATIC_FIELDS_PARITY
Definition drc_item.h:120
@ DRCE_MISSING_COURTYARD
Definition drc_item.h:67
@ DRCE_TRACK_ANGLE
Definition drc_item.h:57
@ DRCE_TRACK_NOT_CENTERED_ON_VIA
Definition drc_item.h:118
@ DRCE_CLEARANCE
Definition drc_item.h:44
@ DRCE_ISOLATED_COPPER
Definition drc_item.h:49
@ DRCE_GENERIC_ERROR
Definition drc_item.h:91
@ DRCE_MISSING_TUNING_PROFILE
Definition drc_item.h:113
@ DRCE_DRILLED_HOLES_TOO_CLOSE
Definition drc_item.h:53
@ DRCE_ALLOWED_ITEMS
Definition drc_item.h:42
@ DRCE_COPPER_SLIVER
Definition drc_item.h:93
@ DRCE_PTH_IN_COURTYARD
Definition drc_item.h:70
@ DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG
Definition drc_item.h:108
@ DRCE_MICROVIA_DRILL_OUT_OF_RANGE
Definition drc_item.h:65
@ DRCE_SHORTING_ITEMS
Definition drc_item.h:41
@ DRCE_MALFORMED_COURTYARD
Definition drc_item.h:68
@ DRCE_DANGLING_VIA
Definition drc_item.h:51
@ DRCE_PADSTACK_INVALID
Definition drc_item.h:64
@ DRCE_UNRESOLVED_VARIABLE
Definition drc_item.h:88
@ DRCE_FOOTPRINT_TYPE_MISMATCH
Definition drc_item.h:82
@ DRCE_NONMIRRORED_TEXT_ON_BACK_LAYER
Definition drc_item.h:111
@ DRCE_DUPLICATE_FOOTPRINT
Definition drc_item.h:76
@ DRCE_DANGLING_TRACK
Definition drc_item.h:52
@ DRCE_TEXT_HEIGHT
Definition drc_item.h:101
@ DRCE_ASSERTION_FAILURE
Definition drc_item.h:89
@ DRCE_SOLDERMASK_BRIDGE
Definition drc_item.h:94
@ DRCE_DRILLED_HOLES_COLOCATED
Definition drc_item.h:54
@ DRCE_EXTRA_FOOTPRINT
Definition drc_item.h:77
@ DRCE_SILK_CLEARANCE
Definition drc_item.h:100
@ DRCE_LENGTH_OUT_OF_RANGE
Definition drc_item.h:104
@ DRCE_LIB_FOOTPRINT_MISMATCH
Definition drc_item.h:84
@ DRCE_NET_CONFLICT
Definition drc_item.h:78
@ DRCE_MISSING_FOOTPRINT
Definition drc_item.h:75
@ DRCE_PAD_TH_WITH_NO_HOLE
Definition drc_item.h:85
@ DRCE_FOOTPRINT
Definition drc_item.h:86
@ DRCE_GENERIC_WARNING
Definition drc_item.h:90
@ DRCE_TEXT_THICKNESS
Definition drc_item.h:102
@ DRCE_NPTH_IN_COURTYARD
Definition drc_item.h:71
@ DRCE_CONNECTION_WIDTH
Definition drc_item.h:60
@ DRCE_SCHEMATIC_PARITY
Definition drc_item.h:79
@ DRCE_TRACKS_CROSSING
Definition drc_item.h:46
@ DRCE_VIA_COUNT_OUT_OF_RANGE
Definition drc_item.h:106
@ DRCE_ANNULAR_WIDTH
Definition drc_item.h:59
DRC_DISALLOW_T
Definition drc_rule.h:95
@ DRC_DISALLOW_PADS
Definition drc_rule.h:101
@ DRC_DISALLOW_BURIED_VIAS
Definition drc_rule.h:99
@ DRC_DISALLOW_BLIND_VIAS
Definition drc_rule.h:98
@ DRC_DISALLOW_TEXTS
Definition drc_rule.h:103
@ DRC_DISALLOW_ZONES
Definition drc_rule.h:102
@ DRC_DISALLOW_HOLES
Definition drc_rule.h:105
@ DRC_DISALLOW_GRAPHICS
Definition drc_rule.h:104
@ DRC_DISALLOW_THROUGH_VIAS
Definition drc_rule.h:96
@ DRC_DISALLOW_FOOTPRINTS
Definition drc_rule.h:106
@ DRC_DISALLOW_TRACKS
Definition drc_rule.h:100
@ DRC_DISALLOW_MICRO_VIAS
Definition drc_rule.h:97
DRC_CONSTRAINT_T
Definition drc_rule.h:53
@ ANNULAR_WIDTH_CONSTRAINT
Definition drc_rule.h:67
@ BRIDGED_MASK_CONSTRAINT
Definition drc_rule.h:89
@ COURTYARD_CLEARANCE_CONSTRAINT
Definition drc_rule.h:61
@ VIA_DIAMETER_CONSTRAINT
Definition drc_rule.h:76
@ ZONE_CONNECTION_CONSTRAINT
Definition drc_rule.h:68
@ DIFF_PAIR_GAP_CONSTRAINT
Definition drc_rule.h:79
@ VIA_DANGLING_CONSTRAINT
Definition drc_rule.h:88
@ SOLDER_MASK_SLIVER_CONSTRAINT
Definition drc_rule.h:90
@ DISALLOW_CONSTRAINT
Definition drc_rule.h:75
@ TRACK_WIDTH_CONSTRAINT
Definition drc_rule.h:65
@ SILK_CLEARANCE_CONSTRAINT
Definition drc_rule.h:62
@ EDGE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:59
@ MIN_RESOLVED_SPOKES_CONSTRAINT
Definition drc_rule.h:71
@ TRACK_SEGMENT_LENGTH_CONSTRAINT
Definition drc_rule.h:66
@ TEXT_THICKNESS_CONSTRAINT
Definition drc_rule.h:64
@ LENGTH_CONSTRAINT
Definition drc_rule.h:77
@ VIA_COUNT_CONSTRAINT
Definition drc_rule.h:82
@ PHYSICAL_HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:84
@ CLEARANCE_CONSTRAINT
Definition drc_rule.h:55
@ NULL_CONSTRAINT
Definition drc_rule.h:54
@ THERMAL_SPOKE_WIDTH_CONSTRAINT
Definition drc_rule.h:70
@ CONNECTION_WIDTH_CONSTRAINT
Definition drc_rule.h:86
@ THERMAL_RELIEF_GAP_CONSTRAINT
Definition drc_rule.h:69
@ MAX_UNCOUPLED_CONSTRAINT
Definition drc_rule.h:80
@ ASSERTION_CONSTRAINT
Definition drc_rule.h:85
@ SKEW_CONSTRAINT
Definition drc_rule.h:78
@ HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:57
@ SOLDER_PASTE_ABS_MARGIN_CONSTRAINT
Definition drc_rule.h:73
@ SOLDER_MASK_EXPANSION_CONSTRAINT
Definition drc_rule.h:72
@ TRACK_ANGLE_CONSTRAINT
Definition drc_rule.h:87
@ HOLE_SIZE_CONSTRAINT
Definition drc_rule.h:60
@ TEXT_HEIGHT_CONSTRAINT
Definition drc_rule.h:63
@ CREEPAGE_CONSTRAINT
Definition drc_rule.h:56
@ DIFF_PAIR_INTRA_SKEW_CONSTRAINT
Definition drc_rule.h:81
@ PHYSICAL_CLEARANCE_CONSTRAINT
Definition drc_rule.h:83
@ SOLDER_PASTE_REL_MARGIN_CONSTRAINT
Definition drc_rule.h:74
@ HOLE_TO_HOLE_CONSTRAINT
Definition drc_rule.h:58
PAD_DRILL_SHAPE
The set of pad drill shapes, used with PAD::{Set,Get}DrillShape()
Definition padstack.h:69
PAD_ATTRIB
The set of pad shapes, used with PAD::{Set,Get}Attribute().
Definition padstack.h:97
@ NPTH
like PAD_PTH, but not plated mechanical use only, no connection allowed
Definition padstack.h:103
@ SMD
Smd pad, appears on the solder paste layer (default)
Definition padstack.h:99
@ PTH
Plated through hole pad.
Definition padstack.h:98
@ CONN
Like smd, does not appear on the solder paste layer (default) Note: also has a special attribute in G...
Definition padstack.h:100
PAD_SHAPE
The set of pad shapes, used with PAD::{Set,Get}Shape()
Definition padstack.h:52
@ CHAMFERED_RECT
Definition padstack.h:60
@ ROUNDRECT
Definition padstack.h:57
@ TRAPEZOID
Definition padstack.h:56
@ RECTANGLE
Definition padstack.h:54
UNCONNECTED_LAYER_MODE
Definition padstack.h:128
DIM_TEXT_POSITION
Where to place the text on a dimension.
@ OUTSIDE
Text appears outside the dimension line (default)
@ MANUAL
Text placement is manually set by the user.
@ INLINE
Text appears in line with the dimension line.
DIM_UNITS_FORMAT
How to display the units in a dimension's text.
DIM_UNITS_MODE
Used for storing the units selection in the file because EDA_UNITS alone doesn't cut it.
DIM_ARROW_DIRECTION
Used for dimension's arrow.
DIM_TEXT_BORDER
Frame to show around dimension text.
DIM_PRECISION
VIATYPE
DRILL_MARKS
Plots and prints can show holes in pads and vias 3 options are available:
SEVERITY
@ RPT_SEVERITY_WARNING
@ RPT_SEVERITY_ERROR
@ RPT_SEVERITY_UNDEFINED
@ RPT_SEVERITY_EXCLUSION
@ RPT_SEVERITY_IGNORE
@ RPT_SEVERITY_DEBUG
@ RPT_SEVERITY_INFO
@ RPT_SEVERITY_ACTION
@ TARGET_UNKNOWN
@ TARGET_ROUND
@ TARGET_RECT
@ TARGET_TRACK
TEARDROP_TYPE
define the type of a teardrop: on a via or pad, or a track end
Class ZONE_SETTINGS used to handle zones parameters in dialogs.
ISLAND_REMOVAL_MODE
Whether or not to remove isolated islands from a zone.
ZONE_FILL_MODE
ZONE_BORDER_DISPLAY_STYLE
Zone border styles.
PLACEMENT_SOURCE_T
ZONE_CONNECTION
How pads are covered by copper in zone.
Definition zones.h:47
@ THERMAL
Use thermal relief for pads.
Definition zones.h:50
@ THT_THERMAL
Thermal relief only for THT pads.
Definition zones.h:52
@ NONE
Pads are not covered.
Definition zones.h:49
@ FULL
pads are covered by copper
Definition zones.h:51