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
18 * along with this program. If not, see <https://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
33#include <drc/drc_item.h>
34#include <padstack.h>
35#include <pcb_dimension.h>
36#include <pcb_track.h>
47#include <jobs/job_pcb_render.h>
48#include <drc/drc_rule.h>
49#include <plotprint_opts.h>
50#include <zones.h>
51#include <zone_settings.h>
53
54// Adding something new here? Add it to test_api_enums.cpp!
55
56using namespace kiapi::board;
57using namespace kiapi::board::commands;
58using namespace kiapi::board::jobs;
59
60template<>
61types::PadType ToProtoEnum( PAD_ATTRIB aValue )
62{
63 switch( aValue )
64 {
65 case PAD_ATTRIB::PTH: return types::PadType::PT_PTH;
66 case PAD_ATTRIB::SMD: return types::PadType::PT_SMD;
67 case PAD_ATTRIB::CONN: return types::PadType::PT_EDGE_CONNECTOR;
68 case PAD_ATTRIB::NPTH: return types::PadType::PT_NPTH;
69
70 default:
71 wxCHECK_MSG( false, types::PadType::PT_UNKNOWN,
72 "Unhandled case in ToProtoEnum<PAD_ATTRIB>");
73 }
74}
75
76
77template<>
78PAD_ATTRIB FromProtoEnum( types::PadType aValue )
79{
80 switch( aValue )
81 {
82 case types::PadType::PT_UNKNOWN:
83 case types::PadType::PT_PTH: return PAD_ATTRIB::PTH;
84 case types::PadType::PT_SMD: return PAD_ATTRIB::SMD;
85 case types::PadType::PT_EDGE_CONNECTOR: return PAD_ATTRIB::CONN;
86 case types::PadType::PT_NPTH: return PAD_ATTRIB::NPTH;
87
88 default:
89 wxCHECK_MSG( false, PAD_ATTRIB::PTH,
90 "Unhandled case in FromProtoEnum<types::PadType>" );
91 }
92}
93
94template<>
95types::DrillShape ToProtoEnum( PAD_DRILL_SHAPE aValue )
96{
97 switch( aValue )
98 {
99 case PAD_DRILL_SHAPE::CIRCLE: return types::DrillShape::DS_CIRCLE;
100 case PAD_DRILL_SHAPE::OBLONG: return types::DrillShape::DS_OBLONG;
101 case PAD_DRILL_SHAPE::UNDEFINED: return types::DrillShape::DS_UNDEFINED;
102 default:
103 wxCHECK_MSG( false, types::DrillShape::DS_UNKNOWN,
104 "Unhandled case in ToProtoEnum<PAD_DRILL_SHAPE>");
105 }
106}
107
108template<>
109PAD_DRILL_SHAPE FromProtoEnum( types::DrillShape aValue )
110{
111 switch( aValue )
112 {
113 case types::DrillShape::DS_CIRCLE: return PAD_DRILL_SHAPE::CIRCLE;
114 case types::DrillShape::DS_OBLONG: return PAD_DRILL_SHAPE::OBLONG;
115 case types::DrillShape::DS_UNKNOWN:
116 case types::DrillShape::DS_UNDEFINED: return PAD_DRILL_SHAPE::UNDEFINED;
117 default:
118 wxCHECK_MSG( false, PAD_DRILL_SHAPE::UNDEFINED,
119 "Unhandled case in FromProtoEnum<types::DrillShape>" );
120 }
121}
122
123template<>
124types::PadStackShape ToProtoEnum( PAD_SHAPE aValue )
125{
126 switch( aValue )
127 {
128 case PAD_SHAPE::CIRCLE: return types::PadStackShape::PSS_CIRCLE;
129 case PAD_SHAPE::RECTANGLE: return types::PadStackShape::PSS_RECTANGLE;
130 case PAD_SHAPE::OVAL: return types::PadStackShape::PSS_OVAL;
131 case PAD_SHAPE::TRAPEZOID: return types::PadStackShape::PSS_TRAPEZOID;
132 case PAD_SHAPE::ROUNDRECT: return types::PadStackShape::PSS_ROUNDRECT;
133 case PAD_SHAPE::CHAMFERED_RECT: return types::PadStackShape::PSS_CHAMFEREDRECT;
134 case PAD_SHAPE::CUSTOM: return types::PadStackShape::PSS_CUSTOM;
135
136 default:
137 wxCHECK_MSG( false, types::PadStackShape::PSS_UNKNOWN,
138 "Unhandled case in ToProtoEnum<PAD_SHAPE>");
139 }
140}
141
142
143template<>
144PAD_SHAPE FromProtoEnum( types::PadStackShape aValue )
145{
146 switch( aValue )
147 {
148 case types::PadStackShape::PSS_UNKNOWN:
149 case types::PadStackShape::PSS_CIRCLE: return PAD_SHAPE::CIRCLE;
150 case types::PadStackShape::PSS_RECTANGLE: return PAD_SHAPE::RECTANGLE;
151 case types::PadStackShape::PSS_OVAL: return PAD_SHAPE::OVAL;
152 case types::PadStackShape::PSS_TRAPEZOID: return PAD_SHAPE::TRAPEZOID;
153 case types::PadStackShape::PSS_ROUNDRECT: return PAD_SHAPE::ROUNDRECT;
154 case types::PadStackShape::PSS_CHAMFEREDRECT: return PAD_SHAPE::CHAMFERED_RECT;
155 case types::PadStackShape::PSS_CUSTOM: return PAD_SHAPE::CUSTOM;
156
157 default:
158 wxCHECK_MSG( false, PAD_SHAPE::CIRCLE,
159 "Unhandled case in FromProtoEnum<types::PadStackShape>" );
160 }
161}
162
163
164template<>
165types::PadStackType ToProtoEnum( PADSTACK::MODE aValue )
166{
167 switch( aValue )
168 {
169 case PADSTACK::MODE::NORMAL: return types::PadStackType::PST_NORMAL;
170 case PADSTACK::MODE::FRONT_INNER_BACK: return types::PadStackType::PST_FRONT_INNER_BACK;
171 case PADSTACK::MODE::CUSTOM: return types::PadStackType::PST_CUSTOM;
172
173 default:
174 wxCHECK_MSG( false, types::PadStackType::PST_UNKNOWN,
175 "Unhandled case in ToProtoEnum<PADSTACK::MODE>");
176 }
177}
178
179
180template<>
181PADSTACK::MODE FromProtoEnum( types::PadStackType aValue )
182{
183 switch( aValue )
184 {
185 case types::PadStackType::PST_UNKNOWN:
186 case types::PadStackType::PST_NORMAL: return PADSTACK::MODE::NORMAL;
187 case types::PadStackType::PST_FRONT_INNER_BACK: return PADSTACK::MODE::FRONT_INNER_BACK;
188 case types::PadStackType::PST_CUSTOM: return PADSTACK::MODE::CUSTOM;
189
190 default:
191 wxCHECK_MSG( false, PADSTACK::MODE::NORMAL,
192 "Unhandled case in FromProtoEnum<types::PadStackType>" );
193 }
194}
195
196
197template<>
198types::ViaType ToProtoEnum( VIATYPE aValue )
199{
200 switch( aValue )
201 {
202 case VIATYPE::THROUGH: return types::ViaType::VT_THROUGH;
203 case VIATYPE::BLIND: return types::ViaType::VT_BLIND; // Since V10
204 case VIATYPE::BURIED: return types::ViaType::VT_BURIED;
205 case VIATYPE::MICROVIA: return types::ViaType::VT_MICRO;
206
207 default:
208 wxCHECK_MSG( false, types::ViaType::VT_UNKNOWN,
209 "Unhandled case in ToProtoEnum<VIATYPE>");
210 }
211}
212
213
214template<>
215VIATYPE FromProtoEnum( types::ViaType aValue )
216{
217 switch( aValue )
218 {
219 case types::ViaType::VT_UNKNOWN:
220 case types::ViaType::VT_THROUGH: return VIATYPE::THROUGH;
221 case types::ViaType::VT_BLIND_BURIED: return VIATYPE::BLIND;
222 case types::ViaType::VT_BLIND: return VIATYPE::BLIND; // Since V10
223 case types::ViaType::VT_BURIED: return VIATYPE::BURIED;
224 case types::ViaType::VT_MICRO: return VIATYPE::MICROVIA;
225
226 default:
227 wxCHECK_MSG( false, VIATYPE::THROUGH,
228 "Unhandled case in FromProtoEnum<types::ViaType>" );
229 }
230}
231
232
233template<>
234types::ZoneConnectionStyle ToProtoEnum( ZONE_CONNECTION aValue )
235{
236 switch( aValue )
237 {
238 case ZONE_CONNECTION::INHERITED: return types::ZoneConnectionStyle::ZCS_INHERITED;
239 case ZONE_CONNECTION::NONE: return types::ZoneConnectionStyle::ZCS_NONE;
240 case ZONE_CONNECTION::THERMAL: return types::ZoneConnectionStyle::ZCS_THERMAL;
241 case ZONE_CONNECTION::FULL: return types::ZoneConnectionStyle::ZCS_FULL;
242 case ZONE_CONNECTION::THT_THERMAL: return types::ZoneConnectionStyle::ZCS_PTH_THERMAL;
243
244 default:
245 wxCHECK_MSG( false, types::ZoneConnectionStyle::ZCS_UNKNOWN,
246 "Unhandled case in ToProtoEnum<ZONE_CONNECTION>");
247 }
248}
249
250
251template<>
252ZONE_CONNECTION FromProtoEnum( types::ZoneConnectionStyle aValue )
253{
254 switch( aValue )
255 {
256 case types::ZoneConnectionStyle::ZCS_UNKNOWN: return ZONE_CONNECTION::INHERITED;
257 case types::ZoneConnectionStyle::ZCS_INHERITED: return ZONE_CONNECTION::INHERITED;
258 case types::ZoneConnectionStyle::ZCS_NONE: return ZONE_CONNECTION::NONE;
259 case types::ZoneConnectionStyle::ZCS_THERMAL: return ZONE_CONNECTION::THERMAL;
260 case types::ZoneConnectionStyle::ZCS_FULL: return ZONE_CONNECTION::FULL;
261 case types::ZoneConnectionStyle::ZCS_PTH_THERMAL: return ZONE_CONNECTION::THT_THERMAL;
262
263 default:
264 wxCHECK_MSG( false, ZONE_CONNECTION::INHERITED,
265 "Unhandled case in FromProtoEnum<types::ZoneConnectionStyle>" );
266 }
267}
268
269
270template<>
271CustomRuleConstraintType ToProtoEnum( DRC_CONSTRAINT_T aValue )
272{
273 switch( aValue )
274 {
275 case NULL_CONSTRAINT: return CustomRuleConstraintType::CRCT_UNKNOWN;
276 case CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CLEARANCE;
277 case CREEPAGE_CONSTRAINT: return CustomRuleConstraintType::CRCT_CREEPAGE;
278 case HOLE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_CLEARANCE;
279 case HOLE_TO_HOLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_TO_HOLE;
280 case EDGE_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_EDGE_CLEARANCE;
281 case HOLE_SIZE_CONSTRAINT: return CustomRuleConstraintType::CRCT_HOLE_SIZE;
282 case COURTYARD_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE;
283 case SILK_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_SILK_CLEARANCE;
284 case TEXT_HEIGHT_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_HEIGHT;
285 case TEXT_THICKNESS_CONSTRAINT: return CustomRuleConstraintType::CRCT_TEXT_THICKNESS;
286 case TRACK_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_WIDTH;
287 case TRACK_SEGMENT_LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH;
288 case ANNULAR_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_ANNULAR_WIDTH;
289 case ZONE_CONNECTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ZONE_CONNECTION;
290 case THERMAL_RELIEF_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP;
291 case THERMAL_SPOKE_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH;
292 case MIN_RESOLVED_SPOKES_CONSTRAINT: return CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES;
293 case SOLDER_MASK_EXPANSION_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION;
294 case SOLDER_PASTE_ABS_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN;
295 case SOLDER_PASTE_REL_MARGIN_CONSTRAINT:return CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN;
296 case DISALLOW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DISALLOW;
297 case VIA_DIAMETER_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DIAMETER;
298 case LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_LENGTH;
299 case SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_SKEW;
300 case DIFF_PAIR_GAP_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP;
301 case MAX_UNCOUPLED_CONSTRAINT: return CustomRuleConstraintType::CRCT_MAX_UNCOUPLED;
302 case DIFF_PAIR_INTRA_SKEW_CONSTRAINT: return CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW;
303 case VIA_COUNT_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_COUNT;
304 case PHYSICAL_CLEARANCE_CONSTRAINT: return CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE;
305 case PHYSICAL_HOLE_CLEARANCE_CONSTRAINT:return CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE;
306 case ASSERTION_CONSTRAINT: return CustomRuleConstraintType::CRCT_ASSERTION;
307 case CONNECTION_WIDTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_CONNECTION_WIDTH;
308 case TRACK_ANGLE_CONSTRAINT: return CustomRuleConstraintType::CRCT_TRACK_ANGLE;
309 case VIA_DANGLING_CONSTRAINT: return CustomRuleConstraintType::CRCT_VIA_DANGLING;
310 case BRIDGED_MASK_CONSTRAINT: return CustomRuleConstraintType::CRCT_BRIDGED_MASK;
311 case SOLDER_MASK_SLIVER_CONSTRAINT: return CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER;
312 case NET_CHAIN_LENGTH_CONSTRAINT: return CustomRuleConstraintType::CRCT_NET_CHAIN_LENGTH;
314 return CustomRuleConstraintType::CRCT_NET_CHAIN_STUB_LENGTH;
316 return CustomRuleConstraintType::CRCT_NET_CHAIN_RETURN_PATH;
317
318 default:
319 wxCHECK_MSG( false, CustomRuleConstraintType::CRCT_UNKNOWN,
320 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT_T>" );
321 }
322}
323
324
325template<>
326DRC_CONSTRAINT_T FromProtoEnum( CustomRuleConstraintType aValue )
327{
328 switch( aValue )
329 {
330 case CustomRuleConstraintType::CRCT_UNKNOWN: return NULL_CONSTRAINT;
331 case CustomRuleConstraintType::CRCT_CLEARANCE: return CLEARANCE_CONSTRAINT;
332 case CustomRuleConstraintType::CRCT_CREEPAGE: return CREEPAGE_CONSTRAINT;
333 case CustomRuleConstraintType::CRCT_HOLE_CLEARANCE: return HOLE_CLEARANCE_CONSTRAINT;
334 case CustomRuleConstraintType::CRCT_HOLE_TO_HOLE: return HOLE_TO_HOLE_CONSTRAINT;
335 case CustomRuleConstraintType::CRCT_EDGE_CLEARANCE: return EDGE_CLEARANCE_CONSTRAINT;
336 case CustomRuleConstraintType::CRCT_HOLE_SIZE: return HOLE_SIZE_CONSTRAINT;
337 case CustomRuleConstraintType::CRCT_COURTYARD_CLEARANCE: return COURTYARD_CLEARANCE_CONSTRAINT;
338 case CustomRuleConstraintType::CRCT_SILK_CLEARANCE: return SILK_CLEARANCE_CONSTRAINT;
339 case CustomRuleConstraintType::CRCT_TEXT_HEIGHT: return TEXT_HEIGHT_CONSTRAINT;
340 case CustomRuleConstraintType::CRCT_TEXT_THICKNESS: return TEXT_THICKNESS_CONSTRAINT;
341 case CustomRuleConstraintType::CRCT_TRACK_WIDTH: return TRACK_WIDTH_CONSTRAINT;
342 case CustomRuleConstraintType::CRCT_TRACK_SEGMENT_LENGTH: return TRACK_SEGMENT_LENGTH_CONSTRAINT;
343 case CustomRuleConstraintType::CRCT_ANNULAR_WIDTH: return ANNULAR_WIDTH_CONSTRAINT;
344 case CustomRuleConstraintType::CRCT_ZONE_CONNECTION: return ZONE_CONNECTION_CONSTRAINT;
345 case CustomRuleConstraintType::CRCT_THERMAL_RELIEF_GAP: return THERMAL_RELIEF_GAP_CONSTRAINT;
346 case CustomRuleConstraintType::CRCT_THERMAL_SPOKE_WIDTH: return THERMAL_SPOKE_WIDTH_CONSTRAINT;
347 case CustomRuleConstraintType::CRCT_MIN_RESOLVED_SPOKES: return MIN_RESOLVED_SPOKES_CONSTRAINT;
348 case CustomRuleConstraintType::CRCT_SOLDER_MASK_EXPANSION: return SOLDER_MASK_EXPANSION_CONSTRAINT;
349 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_ABS_MARGIN:return SOLDER_PASTE_ABS_MARGIN_CONSTRAINT;
350 case CustomRuleConstraintType::CRCT_SOLDER_PASTE_REL_MARGIN:return SOLDER_PASTE_REL_MARGIN_CONSTRAINT;
351 case CustomRuleConstraintType::CRCT_DISALLOW: return DISALLOW_CONSTRAINT;
352 case CustomRuleConstraintType::CRCT_VIA_DIAMETER: return VIA_DIAMETER_CONSTRAINT;
353 case CustomRuleConstraintType::CRCT_LENGTH: return LENGTH_CONSTRAINT;
354 case CustomRuleConstraintType::CRCT_SKEW: return SKEW_CONSTRAINT;
355 case CustomRuleConstraintType::CRCT_DIFF_PAIR_GAP: return DIFF_PAIR_GAP_CONSTRAINT;
356 case CustomRuleConstraintType::CRCT_MAX_UNCOUPLED: return MAX_UNCOUPLED_CONSTRAINT;
357 case CustomRuleConstraintType::CRCT_DIFF_PAIR_INTRA_SKEW: return DIFF_PAIR_INTRA_SKEW_CONSTRAINT;
358 case CustomRuleConstraintType::CRCT_VIA_COUNT: return VIA_COUNT_CONSTRAINT;
359 case CustomRuleConstraintType::CRCT_PHYSICAL_CLEARANCE: return PHYSICAL_CLEARANCE_CONSTRAINT;
360 case CustomRuleConstraintType::CRCT_PHYSICAL_HOLE_CLEARANCE:return PHYSICAL_HOLE_CLEARANCE_CONSTRAINT;
361 case CustomRuleConstraintType::CRCT_ASSERTION: return ASSERTION_CONSTRAINT;
362 case CustomRuleConstraintType::CRCT_CONNECTION_WIDTH: return CONNECTION_WIDTH_CONSTRAINT;
363 case CustomRuleConstraintType::CRCT_TRACK_ANGLE: return TRACK_ANGLE_CONSTRAINT;
364 case CustomRuleConstraintType::CRCT_VIA_DANGLING: return VIA_DANGLING_CONSTRAINT;
365 case CustomRuleConstraintType::CRCT_BRIDGED_MASK: return BRIDGED_MASK_CONSTRAINT;
366 case CustomRuleConstraintType::CRCT_SOLDER_MASK_SLIVER: return SOLDER_MASK_SLIVER_CONSTRAINT;
367 case CustomRuleConstraintType::CRCT_NET_CHAIN_LENGTH: return NET_CHAIN_LENGTH_CONSTRAINT;
368 case CustomRuleConstraintType::CRCT_NET_CHAIN_STUB_LENGTH: return NET_CHAIN_STUB_LENGTH_CONSTRAINT;
369 case CustomRuleConstraintType::CRCT_NET_CHAIN_RETURN_PATH: return NET_CHAIN_RETURN_PATH_CONSTRAINT;
370
371 default:
372 wxCHECK_MSG( false, NULL_CONSTRAINT,
373 "Unhandled case in FromProtoEnum<CustomRuleConstraintType>" );
374 }
375}
376
377
378template<>
379CustomRuleConstraintOption ToProtoEnum( DRC_CONSTRAINT::OPTIONS aValue )
380{
381 switch( aValue )
382 {
383 case DRC_CONSTRAINT::OPTIONS::SKEW_WITHIN_DIFF_PAIRS: return CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS;
384 case DRC_CONSTRAINT::OPTIONS::SPACE_DOMAIN: return CustomRuleConstraintOption::CRCO_SPACE_DOMAIN;
385 case DRC_CONSTRAINT::OPTIONS::TIME_DOMAIN: return CustomRuleConstraintOption::CRCO_TIME_DOMAIN;
386
387 default:
388 wxCHECK_MSG( false, CustomRuleConstraintOption::CRCO_UNKNOWN,
389 "Unhandled case in ToProtoEnum<DRC_CONSTRAINT::OPTIONS>" );
390 }
391}
392
393
394template<>
395DRC_CONSTRAINT::OPTIONS FromProtoEnum( CustomRuleConstraintOption aValue )
396{
397 switch( aValue )
398 {
399 case CustomRuleConstraintOption::CRCO_SKEW_WITHIN_DIFF_PAIRS:
401
402 case CustomRuleConstraintOption::CRCO_SPACE_DOMAIN:
404
405 case CustomRuleConstraintOption::CRCO_TIME_DOMAIN:
407
408 case CustomRuleConstraintOption::CRCO_UNKNOWN:
409 default:
411 "Unhandled case in FromProtoEnum<CustomRuleConstraintOption>" );
412 }
413}
414
415
416template<>
417CustomRuleDisallowType ToProtoEnum( DRC_DISALLOW_T aValue )
418{
419 switch( aValue )
420 {
421 case DRC_DISALLOW_THROUGH_VIAS: return CustomRuleDisallowType::CRDT_THROUGH_VIAS;
422 case DRC_DISALLOW_MICRO_VIAS: return CustomRuleDisallowType::CRDT_MICRO_VIAS;
423 case DRC_DISALLOW_BLIND_VIAS: return CustomRuleDisallowType::CRDT_BLIND_VIAS;
424 case DRC_DISALLOW_BURIED_VIAS: return CustomRuleDisallowType::CRDT_BURIED_VIAS;
425 case DRC_DISALLOW_TRACKS: return CustomRuleDisallowType::CRDT_TRACKS;
426 case DRC_DISALLOW_PADS: return CustomRuleDisallowType::CRDT_PADS;
427 case DRC_DISALLOW_ZONES: return CustomRuleDisallowType::CRDT_ZONES;
428 case DRC_DISALLOW_TEXTS: return CustomRuleDisallowType::CRDT_TEXTS;
429 case DRC_DISALLOW_GRAPHICS: return CustomRuleDisallowType::CRDT_GRAPHICS;
430 case DRC_DISALLOW_HOLES: return CustomRuleDisallowType::CRDT_HOLES;
431 case DRC_DISALLOW_FOOTPRINTS: return CustomRuleDisallowType::CRDT_FOOTPRINTS;
432
433 default:
434 wxCHECK_MSG( false, CustomRuleDisallowType::CRDT_UNKNOWN,
435 "Unhandled case in ToProtoEnum<DRC_DISALLOW_T>" );
436 }
437}
438
439
440template<>
441DRC_DISALLOW_T FromProtoEnum( CustomRuleDisallowType aValue )
442{
443 switch( aValue )
444 {
445 case CustomRuleDisallowType::CRDT_THROUGH_VIAS: return DRC_DISALLOW_THROUGH_VIAS;
446 case CustomRuleDisallowType::CRDT_MICRO_VIAS: return DRC_DISALLOW_MICRO_VIAS;
447 case CustomRuleDisallowType::CRDT_BLIND_VIAS: return DRC_DISALLOW_BLIND_VIAS;
448 case CustomRuleDisallowType::CRDT_BURIED_VIAS: return DRC_DISALLOW_BURIED_VIAS;
449 case CustomRuleDisallowType::CRDT_TRACKS: return DRC_DISALLOW_TRACKS;
450 case CustomRuleDisallowType::CRDT_PADS: return DRC_DISALLOW_PADS;
451 case CustomRuleDisallowType::CRDT_ZONES: return DRC_DISALLOW_ZONES;
452 case CustomRuleDisallowType::CRDT_TEXTS: return DRC_DISALLOW_TEXTS;
453 case CustomRuleDisallowType::CRDT_GRAPHICS: return DRC_DISALLOW_GRAPHICS;
454 case CustomRuleDisallowType::CRDT_HOLES: return DRC_DISALLOW_HOLES;
455 case CustomRuleDisallowType::CRDT_FOOTPRINTS: return DRC_DISALLOW_FOOTPRINTS;
456
457 case CustomRuleDisallowType::CRDT_UNKNOWN:
458 default:
459 wxCHECK_MSG( false, DRC_DISALLOW_THROUGH_VIAS,
460 "Unhandled case in FromProtoEnum<CustomRuleDisallowType>" );
461 }
462}
463
464
465template<>
466types::UnconnectedLayerRemoval ToProtoEnum( UNCONNECTED_LAYER_MODE aValue )
467{
468 switch( aValue )
469 {
471 return types::UnconnectedLayerRemoval::ULR_KEEP;
472
474 return types::UnconnectedLayerRemoval::ULR_REMOVE;
475
477 return types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END;
478
480 return types::UnconnectedLayerRemoval::ULR_START_END_ONLY;
481
482 default:
483 wxCHECK_MSG( false, types::UnconnectedLayerRemoval::ULR_UNKNOWN,
484 "Unhandled case in ToProtoEnum<PADSTACK::UNCONNECTED_LAYER_MODE>");
485 }
486}
487
488
489template<>
490UNCONNECTED_LAYER_MODE FromProtoEnum( types::UnconnectedLayerRemoval aValue )
491{
492 switch( aValue )
493 {
494 case types::UnconnectedLayerRemoval::ULR_UNKNOWN:
495 case types::UnconnectedLayerRemoval::ULR_KEEP:
497
498 case types::UnconnectedLayerRemoval::ULR_REMOVE:
500
501 case types::UnconnectedLayerRemoval::ULR_REMOVE_EXCEPT_START_AND_END:
503
504 case types::UnconnectedLayerRemoval::ULR_START_END_ONLY:
506
507 default:
508 wxCHECK_MSG( false, UNCONNECTED_LAYER_MODE::KEEP_ALL,
509 "Unhandled case in FromProtoEnum<types::UnconnectedLayerRemoval>");
510 }
511}
512
513
514template<>
515types::IslandRemovalMode ToProtoEnum( ISLAND_REMOVAL_MODE aValue )
516{
517 switch( aValue )
518 {
519 case ISLAND_REMOVAL_MODE::ALWAYS: return types::IslandRemovalMode::IRM_ALWAYS;
520 case ISLAND_REMOVAL_MODE::NEVER: return types::IslandRemovalMode::IRM_NEVER;
521 case ISLAND_REMOVAL_MODE::AREA: return types::IslandRemovalMode::IRM_AREA;
522
523 default:
524 wxCHECK_MSG( false, types::IslandRemovalMode::IRM_UNKNOWN,
525 "Unhandled case in ToProtoEnum<ISLAND_REMOVAL_MODE>");
526 }
527}
528
529
530template<>
531ISLAND_REMOVAL_MODE FromProtoEnum( types::IslandRemovalMode aValue )
532{
533 switch( aValue )
534 {
535 case types::IslandRemovalMode::IRM_UNKNOWN:
536 case types::IslandRemovalMode::IRM_ALWAYS: return ISLAND_REMOVAL_MODE::ALWAYS;
537 case types::IslandRemovalMode::IRM_NEVER: return ISLAND_REMOVAL_MODE::NEVER;
538 case types::IslandRemovalMode::IRM_AREA: return ISLAND_REMOVAL_MODE::AREA;
539
540 default:
541 wxCHECK_MSG( false, ISLAND_REMOVAL_MODE::ALWAYS,
542 "Unhandled case in FromProtoEnum<types::IslandRemovalMode>" );
543 }
544}
545
546
547template<>
548types::ZoneFillMode ToProtoEnum( ZONE_FILL_MODE aValue )
549{
550 switch( aValue )
551 {
552 case ZONE_FILL_MODE::POLYGONS: return types::ZoneFillMode::ZFM_SOLID;
553 case ZONE_FILL_MODE::HATCH_PATTERN: return types::ZoneFillMode::ZFM_HATCHED;
554 case ZONE_FILL_MODE::COPPER_THIEVING: return types::ZoneFillMode::ZFM_COPPER_THIEVING;
555
556 default:
557 wxCHECK_MSG( false, types::ZoneFillMode::ZFM_UNKNOWN,
558 "Unhandled case in ToProtoEnum<ZONE_FILL_MODE>");
559 }
560}
561
562
563template<>
564ZONE_FILL_MODE FromProtoEnum( types::ZoneFillMode aValue )
565{
566 switch( aValue )
567 {
568 case types::ZoneFillMode::ZFM_UNKNOWN:
569 case types::ZoneFillMode::ZFM_SOLID: return ZONE_FILL_MODE::POLYGONS;
570 case types::ZoneFillMode::ZFM_HATCHED: return ZONE_FILL_MODE::HATCH_PATTERN;
571 case types::ZoneFillMode::ZFM_COPPER_THIEVING: return ZONE_FILL_MODE::COPPER_THIEVING;
572
573 default:
574 wxCHECK_MSG( false, ZONE_FILL_MODE::POLYGONS,
575 "Unhandled case in FromProtoEnum<types::ZoneFillMode>" );
576 }
577}
578
579
580template<>
581types::ThievingPattern ToProtoEnum( THIEVING_PATTERN aValue )
582{
583 switch( aValue )
584 {
585 case THIEVING_PATTERN::DOTS: return types::ThievingPattern::TP_DOTS;
586 case THIEVING_PATTERN::SQUARES: return types::ThievingPattern::TP_SQUARES;
587 case THIEVING_PATTERN::HATCH: return types::ThievingPattern::TP_CROSSHATCH;
588
589 default:
590 wxCHECK_MSG( false, types::ThievingPattern::TP_UNKNOWN,
591 "Unhandled case in ToProtoEnum<THIEVING_PATTERN>" );
592 }
593}
594
595
596template<>
597THIEVING_PATTERN FromProtoEnum( types::ThievingPattern aValue )
598{
599 switch( aValue )
600 {
601 case types::ThievingPattern::TP_UNKNOWN:
602 case types::ThievingPattern::TP_DOTS: return THIEVING_PATTERN::DOTS;
603 case types::ThievingPattern::TP_SQUARES: return THIEVING_PATTERN::SQUARES;
604 case types::ThievingPattern::TP_CROSSHATCH: return THIEVING_PATTERN::HATCH;
605
606 default:
607 wxCHECK_MSG( false, THIEVING_PATTERN::DOTS,
608 "Unhandled case in FromProtoEnum<types::ThievingPattern>" );
609 }
610}
611
612
613template<>
614types::ZoneBorderStyle ToProtoEnum( ZONE_BORDER_DISPLAY_STYLE aValue )
615{
616 switch( aValue )
617 {
618 case ZONE_BORDER_DISPLAY_STYLE::NO_HATCH: return types::ZoneBorderStyle::ZBS_SOLID;
619 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL: return types::ZoneBorderStyle::ZBS_DIAGONAL_FULL;
620 case ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE: return types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE;
621 case ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER: return types::ZoneBorderStyle::ZBS_INVISIBLE;
622
623 default:
624 wxCHECK_MSG( false, types::ZoneBorderStyle::ZBS_UNKNOWN,
625 "Unhandled case in ToProtoEnum<ZONE_BORDER_DISPLAY_STYLE>");
626 }
627}
628
629
630template<>
631ZONE_BORDER_DISPLAY_STYLE FromProtoEnum( types::ZoneBorderStyle aValue )
632{
633 switch( aValue )
634 {
635 case types::ZoneBorderStyle::ZBS_SOLID: return ZONE_BORDER_DISPLAY_STYLE::NO_HATCH;
636 case types::ZoneBorderStyle::ZBS_DIAGONAL_FULL: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_FULL;
637 case types::ZoneBorderStyle::ZBS_UNKNOWN:
638 case types::ZoneBorderStyle::ZBS_DIAGONAL_EDGE: return ZONE_BORDER_DISPLAY_STYLE::DIAGONAL_EDGE;
639 case types::ZoneBorderStyle::ZBS_INVISIBLE: return ZONE_BORDER_DISPLAY_STYLE::INVISIBLE_BORDER;
640
641 default:
643 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
644 }
645}
646
647
648template<>
649types::PlacementRuleSourceType ToProtoEnum( PLACEMENT_SOURCE_T aValue )
650{
651 switch( aValue )
652 {
654 return types::PlacementRuleSourceType::PRST_SHEET_NAME;
655
657 return types::PlacementRuleSourceType::PRST_COMPONENT_CLASS;
658
660 return types::PlacementRuleSourceType::PRST_GROUP;
661
663 return types::PlacementRuleSourceType::PRST_DESIGN_BLOCK;
664
665 default:
666 wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN,
667 "Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>");
668 }
669}
670
671
672template<>
673PLACEMENT_SOURCE_T FromProtoEnum( types::PlacementRuleSourceType aValue )
674{
675 switch( aValue )
676 {
677 case types::PlacementRuleSourceType::PRST_UNKNOWN:
678 case types::PlacementRuleSourceType::PRST_SHEET_NAME:
680
681 case types::PlacementRuleSourceType::PRST_COMPONENT_CLASS:
683
684 case types::PlacementRuleSourceType::PRST_GROUP:
686
687 case types::PlacementRuleSourceType::PRST_DESIGN_BLOCK:
689
690 default:
691 wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME,
692 "Unhandled case in FromProtoEnum<types::PlacementRuleSourceType>" );
693 }
694}
695
696
697template<>
698types::TeardropType ToProtoEnum( TEARDROP_TYPE aValue )
699{
700 switch( aValue )
701 {
702 case TEARDROP_TYPE::TD_NONE: return types::TeardropType::TDT_NONE;
703 case TEARDROP_TYPE::TD_UNSPECIFIED: return types::TeardropType::TDT_UNSPECIFIED;
704 case TEARDROP_TYPE::TD_VIAPAD: return types::TeardropType::TDT_VIA_PAD;
705 case TEARDROP_TYPE::TD_TRACKEND: return types::TeardropType::TDT_TRACK_END;
706
707 default:
708 wxCHECK_MSG( false, types::TeardropType::TDT_UNKNOWN,
709 "Unhandled case in ToProtoEnum<TEARDROP_TYPE>");
710 }
711}
712
713
714template<>
715TEARDROP_TYPE FromProtoEnum( types::TeardropType aValue )
716{
717 switch( aValue )
718 {
719 case types::TeardropType::TDT_UNKNOWN:
720 case types::TeardropType::TDT_NONE: return TEARDROP_TYPE::TD_NONE;
721 case types::TeardropType::TDT_UNSPECIFIED: return TEARDROP_TYPE::TD_UNSPECIFIED;
722 case types::TeardropType::TDT_VIA_PAD: return TEARDROP_TYPE::TD_VIAPAD;
723 case types::TeardropType::TDT_TRACK_END: return TEARDROP_TYPE::TD_TRACKEND;
724
725 default:
726 wxCHECK_MSG( false, TEARDROP_TYPE::TD_NONE,
727 "Unhandled case in FromProtoEnum<types::ZoneHatchBorderMode>" );
728 }
729}
730
731
732template<>
733kiapi::board::TeardropTarget ToProtoEnum( TARGET_TD aValue )
734{
735 switch( aValue )
736 {
737 case TARGET_ROUND: return kiapi::board::TeardropTarget::TDT_ROUND;
738 case TARGET_RECT: return kiapi::board::TeardropTarget::TDT_RECT;
739 case TARGET_TRACK: return kiapi::board::TeardropTarget::TDT_TRACK;
740
741 default:
742 wxCHECK_MSG( false, kiapi::board::TeardropTarget::TDT_UNKNOWN,
743 "Unhandled case in ToProtoEnum<TARGET_TD>" );
744 }
745}
746
747
748template<>
749TARGET_TD FromProtoEnum( kiapi::board::TeardropTarget aValue )
750{
751 switch( aValue )
752 {
753 case kiapi::board::TeardropTarget::TDT_ROUND: return TARGET_ROUND;
754 case kiapi::board::TeardropTarget::TDT_RECT: return TARGET_RECT;
755 case kiapi::board::TeardropTarget::TDT_TRACK: return TARGET_TRACK;
756
757 case kiapi::board::TeardropTarget::TDT_UNKNOWN:
758 default:
759 return TARGET_UNKNOWN;
760 }
761}
762
763
764template<>
765types::DimensionTextBorderStyle ToProtoEnum( DIM_TEXT_BORDER aValue )
766{
767 switch( aValue )
768 {
769 case DIM_TEXT_BORDER::NONE: return types::DimensionTextBorderStyle::DTBS_NONE;
770 case DIM_TEXT_BORDER::RECTANGLE: return types::DimensionTextBorderStyle::DTBS_RECTANGLE;
771 case DIM_TEXT_BORDER::CIRCLE: return types::DimensionTextBorderStyle::DTBS_CIRCLE;
772 case DIM_TEXT_BORDER::ROUNDRECT: return types::DimensionTextBorderStyle::DTBS_ROUNDRECT;
773
774 default:
775 wxCHECK_MSG( false, types::DimensionTextBorderStyle::DTBS_UNKNOWN,
776 "Unhandled case in ToProtoEnum<DIM_TEXT_BORDER>");
777 }
778}
779
780
781template<>
782DIM_TEXT_BORDER FromProtoEnum( types::DimensionTextBorderStyle aValue )
783{
784 switch( aValue )
785 {
786 case types::DimensionTextBorderStyle::DTBS_UNKNOWN:
787 case types::DimensionTextBorderStyle::DTBS_NONE: return DIM_TEXT_BORDER::NONE;
788 case types::DimensionTextBorderStyle::DTBS_RECTANGLE: return DIM_TEXT_BORDER::RECTANGLE;
789 case types::DimensionTextBorderStyle::DTBS_CIRCLE: return DIM_TEXT_BORDER::CIRCLE;
790 case types::DimensionTextBorderStyle::DTBS_ROUNDRECT: return DIM_TEXT_BORDER::ROUNDRECT;
791
792 default:
793 wxCHECK_MSG( false, DIM_TEXT_BORDER::NONE,
794 "Unhandled case in FromProtoEnum<types::DimensionTextBorderStyle>" );
795 }
796}
797
798
799template<>
800types::DimensionUnitFormat ToProtoEnum( DIM_UNITS_FORMAT aValue )
801{
802 switch( aValue )
803 {
804 case DIM_UNITS_FORMAT::NO_SUFFIX: return types::DimensionUnitFormat::DUF_NO_SUFFIX;
805 case DIM_UNITS_FORMAT::BARE_SUFFIX: return types::DimensionUnitFormat::DUF_BARE_SUFFIX;
806 case DIM_UNITS_FORMAT::PAREN_SUFFIX: return types::DimensionUnitFormat::DUF_PAREN_SUFFIX;
807
808 default:
809 wxCHECK_MSG( false, types::DimensionUnitFormat::DUF_UNKNOWN,
810 "Unhandled case in ToProtoEnum<DIM_UNITS_FORMAT>");
811 }
812}
813
814
815template<>
816DIM_UNITS_FORMAT FromProtoEnum( types::DimensionUnitFormat aValue )
817{
818 switch( aValue )
819 {
820 case types::DimensionUnitFormat::DUF_UNKNOWN:
821 case types::DimensionUnitFormat::DUF_NO_SUFFIX: return DIM_UNITS_FORMAT::NO_SUFFIX;
822 case types::DimensionUnitFormat::DUF_BARE_SUFFIX: return DIM_UNITS_FORMAT::BARE_SUFFIX;
823 case types::DimensionUnitFormat::DUF_PAREN_SUFFIX: return DIM_UNITS_FORMAT::PAREN_SUFFIX;
824
825 default:
826 wxCHECK_MSG( false, DIM_UNITS_FORMAT::NO_SUFFIX,
827 "Unhandled case in FromProtoEnum<types::DimensionUnitFormat>" );
828 }
829}
830
831
832template<>
833types::DimensionArrowDirection ToProtoEnum( DIM_ARROW_DIRECTION aValue )
834{
835 switch( aValue )
836 {
837 case DIM_ARROW_DIRECTION::INWARD: return types::DimensionArrowDirection::DAD_INWARD;
838 case DIM_ARROW_DIRECTION::OUTWARD: return types::DimensionArrowDirection::DAD_OUTWARD;
839
840 default:
841 wxCHECK_MSG( false, types::DimensionArrowDirection::DAD_UNKNOWN,
842 "Unhandled case in ToProtoEnum<DIM_ARROW_DIRECTION>");
843 }
844}
845
846
847template<>
848DIM_ARROW_DIRECTION FromProtoEnum( types::DimensionArrowDirection aValue )
849{
850 switch( aValue )
851 {
852 case types::DimensionArrowDirection::DAD_INWARD: return DIM_ARROW_DIRECTION::INWARD;
853 case types::DimensionArrowDirection::DAD_UNKNOWN:
854 case types::DimensionArrowDirection::DAD_OUTWARD: return DIM_ARROW_DIRECTION::OUTWARD;
855
856 default:
857 wxCHECK_MSG( false, DIM_ARROW_DIRECTION::OUTWARD,
858 "Unhandled case in FromProtoEnum<types::DimensionArrowDirection>" );
859 }
860}
861
862
863template<>
864types::DimensionPrecision ToProtoEnum( DIM_PRECISION aValue )
865{
866 switch( aValue )
867 {
868 case DIM_PRECISION::X: return types::DimensionPrecision::DP_FIXED_0;
869 case DIM_PRECISION::X_X: return types::DimensionPrecision::DP_FIXED_1;
870 case DIM_PRECISION::X_XX: return types::DimensionPrecision::DP_FIXED_2;
871 case DIM_PRECISION::X_XXX: return types::DimensionPrecision::DP_FIXED_3;
872 case DIM_PRECISION::X_XXXX: return types::DimensionPrecision::DP_FIXED_4;
873 case DIM_PRECISION::X_XXXXX: return types::DimensionPrecision::DP_FIXED_5;
874 case DIM_PRECISION::V_VV: return types::DimensionPrecision::DP_SCALED_IN_2;
875 case DIM_PRECISION::V_VVV: return types::DimensionPrecision::DP_SCALED_IN_3;
876 case DIM_PRECISION::V_VVVV: return types::DimensionPrecision::DP_SCALED_IN_4;
877 case DIM_PRECISION::V_VVVVV: return types::DimensionPrecision::DP_SCALED_IN_5;
878
879 default:
880 wxCHECK_MSG( false, types::DimensionPrecision::DP_UNKNOWN,
881 "Unhandled case in ToProtoEnum<DIM_PRECISION>");
882 }
883}
884
885
886template<>
887DIM_PRECISION FromProtoEnum( types::DimensionPrecision aValue )
888{
889 switch( aValue )
890 {
891 case types::DimensionPrecision::DP_FIXED_0: return DIM_PRECISION::X;
892 case types::DimensionPrecision::DP_FIXED_1: return DIM_PRECISION::X_X;
893 case types::DimensionPrecision::DP_FIXED_2: return DIM_PRECISION::X_XX;
894 case types::DimensionPrecision::DP_FIXED_3: return DIM_PRECISION::X_XXX;
895 case types::DimensionPrecision::DP_FIXED_4: return DIM_PRECISION::X_XXXX;
896 case types::DimensionPrecision::DP_FIXED_5: return DIM_PRECISION::X_XXXXX;
897 case types::DimensionPrecision::DP_UNKNOWN:
898 case types::DimensionPrecision::DP_SCALED_IN_2: return DIM_PRECISION::V_VV;
899 case types::DimensionPrecision::DP_SCALED_IN_3: return DIM_PRECISION::V_VVV;
900 case types::DimensionPrecision::DP_SCALED_IN_4: return DIM_PRECISION::V_VVVV;
901 case types::DimensionPrecision::DP_SCALED_IN_5: return DIM_PRECISION::V_VVVVV;
902
903 default:
904 wxCHECK_MSG( false, DIM_PRECISION::V_VV,
905 "Unhandled case in FromProtoEnum<types::DimensionPrecision>" );
906 }
907}
908
909
910template<>
911types::DimensionTextPosition ToProtoEnum( DIM_TEXT_POSITION aValue )
912{
913 switch( aValue )
914 {
915 case DIM_TEXT_POSITION::OUTSIDE: return types::DimensionTextPosition::DTP_OUTSIDE;
916 case DIM_TEXT_POSITION::INLINE: return types::DimensionTextPosition::DTP_INLINE;
917 case DIM_TEXT_POSITION::MANUAL: return types::DimensionTextPosition::DTP_MANUAL;
918
919 default:
920 wxCHECK_MSG( false, types::DimensionTextPosition::DTP_UNKNOWN,
921 "Unhandled case in ToProtoEnum<DIM_TEXT_POSITION>");
922 }
923}
924
925
926template<>
927DIM_TEXT_POSITION FromProtoEnum( types::DimensionTextPosition aValue )
928{
929 switch( aValue )
930 {
931 case types::DimensionTextPosition::DTP_UNKNOWN:
932 case types::DimensionTextPosition::DTP_OUTSIDE: return DIM_TEXT_POSITION::OUTSIDE;
933 case types::DimensionTextPosition::DTP_INLINE: return DIM_TEXT_POSITION::INLINE;
934 case types::DimensionTextPosition::DTP_MANUAL: return DIM_TEXT_POSITION::MANUAL;
935
936 default:
937 wxCHECK_MSG( false, DIM_TEXT_POSITION::OUTSIDE,
938 "Unhandled case in FromProtoEnum<types::DimensionTextPosition>" );
939 }
940}
941
942
943template<>
944types::DimensionUnit ToProtoEnum( DIM_UNITS_MODE aValue )
945{
946 switch( aValue )
947 {
948 case DIM_UNITS_MODE::INCH: return types::DimensionUnit::DU_INCHES;
949 case DIM_UNITS_MODE::MILS: return types::DimensionUnit::DU_MILS;
950 case DIM_UNITS_MODE::MM: return types::DimensionUnit::DU_MILLIMETERS;
951 case DIM_UNITS_MODE::AUTOMATIC: return types::DimensionUnit::DU_AUTOMATIC;
952
953 default:
954 wxCHECK_MSG( false, types::DimensionUnit::DU_UNKNOWN,
955 "Unhandled case in ToProtoEnum<DIM_UNITS_MODE>");
956 }
957}
958
959
960template<>
961DIM_UNITS_MODE FromProtoEnum( types::DimensionUnit aValue )
962{
963 switch( aValue )
964 {
965 case types::DimensionUnit::DU_INCHES: return DIM_UNITS_MODE::INCH;
966 case types::DimensionUnit::DU_MILS: return DIM_UNITS_MODE::MILS;
967 case types::DimensionUnit::DU_MILLIMETERS: return DIM_UNITS_MODE::MM;
968 case types::DimensionUnit::DU_UNKNOWN:
969 case types::DimensionUnit::DU_AUTOMATIC: return DIM_UNITS_MODE::AUTOMATIC;
970
971 default:
972 wxCHECK_MSG( false, DIM_UNITS_MODE::AUTOMATIC,
973 "Unhandled case in FromProtoEnum<types::DimensionUnit>" );
974 }
975}
976
977
978template<>
979commands::InactiveLayerDisplayMode ToProtoEnum( HIGH_CONTRAST_MODE aValue )
980{
981 switch( aValue )
982 {
983 case HIGH_CONTRAST_MODE::NORMAL: return commands::InactiveLayerDisplayMode::ILDM_NORMAL;
984 case HIGH_CONTRAST_MODE::DIMMED: return commands::InactiveLayerDisplayMode::ILDM_DIMMED;
985 case HIGH_CONTRAST_MODE::HIDDEN: return commands::InactiveLayerDisplayMode::ILDM_HIDDEN;
986
987 default:
988 wxCHECK_MSG( false, commands::InactiveLayerDisplayMode::ILDM_NORMAL,
989 "Unhandled case in ToProtoEnum<HIGH_CONTRAST_MODE>");
990 }
991}
992
993
994template<>
995HIGH_CONTRAST_MODE FromProtoEnum( commands::InactiveLayerDisplayMode aValue )
996{
997 switch( aValue )
998 {
999 case commands::InactiveLayerDisplayMode::ILDM_DIMMED: return HIGH_CONTRAST_MODE::DIMMED;
1000 case commands::InactiveLayerDisplayMode::ILDM_HIDDEN: return HIGH_CONTRAST_MODE::HIDDEN;
1001 case commands::InactiveLayerDisplayMode::ILDM_UNKNOWN:
1002 case commands::InactiveLayerDisplayMode::ILDM_NORMAL: return HIGH_CONTRAST_MODE::NORMAL;
1003
1004 default:
1005 wxCHECK_MSG( false, HIGH_CONTRAST_MODE::NORMAL,
1006 "Unhandled case in FromProtoEnum<commands::InactiveLayerDisplayMode>" );
1007 }
1008}
1009
1010
1011template<>
1012commands::NetColorDisplayMode ToProtoEnum( NET_COLOR_MODE aValue )
1013{
1014 switch( aValue )
1015 {
1016 case NET_COLOR_MODE::ALL: return commands::NetColorDisplayMode::NCDM_ALL;
1017 case NET_COLOR_MODE::RATSNEST: return commands::NetColorDisplayMode::NCDM_RATSNEST;
1018 case NET_COLOR_MODE::OFF: return commands::NetColorDisplayMode::NCDM_OFF;
1019
1020 default:
1021 wxCHECK_MSG( false, commands::NetColorDisplayMode::NCDM_UNKNOWN,
1022 "Unhandled case in ToProtoEnum<NET_COLOR_MODE>");
1023 }
1024}
1025
1026
1027template<>
1028NET_COLOR_MODE FromProtoEnum( commands::NetColorDisplayMode aValue )
1029{
1030 switch( aValue )
1031 {
1032 case commands::NetColorDisplayMode::NCDM_ALL: return NET_COLOR_MODE::ALL;
1033 case commands::NetColorDisplayMode::NCDM_OFF: return NET_COLOR_MODE::OFF;
1034 case commands::NetColorDisplayMode::NCDM_UNKNOWN:
1035 case commands::NetColorDisplayMode::NCDM_RATSNEST: return NET_COLOR_MODE::RATSNEST;
1036
1037 default:
1038 wxCHECK_MSG( false, NET_COLOR_MODE::RATSNEST,
1039 "Unhandled case in FromProtoEnum<commands::NetColorDisplayMode>" );
1040 }
1041}
1042
1043
1044template<>
1045commands::RatsnestDisplayMode ToProtoEnum( RATSNEST_MODE aValue )
1046{
1047 switch( aValue )
1048 {
1049 case RATSNEST_MODE::ALL: return commands::RatsnestDisplayMode::RDM_ALL_LAYERS;
1050 case RATSNEST_MODE::VISIBLE: return commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS;
1051
1052 default:
1053 wxCHECK_MSG( false, commands::RatsnestDisplayMode::RDM_UNKNOWN,
1054 "Unhandled case in ToProtoEnum<RATSNEST_MODE>");
1055 }
1056}
1057
1058
1059template<>
1060RATSNEST_MODE FromProtoEnum( commands::RatsnestDisplayMode aValue )
1061{
1062 switch( aValue )
1063 {
1064 case commands::RatsnestDisplayMode::RDM_VISIBLE_LAYERS: return RATSNEST_MODE::VISIBLE;
1065 case commands::RatsnestDisplayMode::RDM_UNKNOWN:
1066 case commands::RatsnestDisplayMode::RDM_ALL_LAYERS: return RATSNEST_MODE::ALL;
1067
1068 default:
1069 wxCHECK_MSG( false, RATSNEST_MODE::ALL,
1070 "Unhandled case in FromProtoEnum<commands::RatsnestDisplayMode>" );
1071 }
1072}
1073
1074
1075template<>
1076BoardStackupLayerType ToProtoEnum( BOARD_STACKUP_ITEM_TYPE aValue )
1077{
1078 switch( aValue )
1079 {
1080 case BS_ITEM_TYPE_UNDEFINED: return BoardStackupLayerType::BSLT_UNDEFINED;
1081 case BS_ITEM_TYPE_COPPER: return BoardStackupLayerType::BSLT_COPPER;
1082 case BS_ITEM_TYPE_DIELECTRIC: return BoardStackupLayerType::BSLT_DIELECTRIC;
1083 case BS_ITEM_TYPE_SOLDERPASTE: return BoardStackupLayerType::BSLT_SOLDERPASTE;
1084 case BS_ITEM_TYPE_SOLDERMASK: return BoardStackupLayerType::BSLT_SOLDERMASK;
1085 case BS_ITEM_TYPE_SILKSCREEN: return BoardStackupLayerType::BSLT_SILKSCREEN;
1086
1087 default:
1088 wxCHECK_MSG( false, BoardStackupLayerType::BSLT_UNKNOWN,
1089 "Unhandled case in ToProtoEnum<BOARD_STACKUP_ITEM_TYPE>");
1090 }
1091}
1092
1093
1094template<>
1095BOARD_STACKUP_ITEM_TYPE FromProtoEnum( BoardStackupLayerType aValue )
1096{
1097 switch( aValue )
1098 {
1099 case BoardStackupLayerType::BSLT_UNDEFINED: return BS_ITEM_TYPE_UNDEFINED;
1100 case BoardStackupLayerType::BSLT_COPPER: return BS_ITEM_TYPE_COPPER;
1101 case BoardStackupLayerType::BSLT_DIELECTRIC: return BS_ITEM_TYPE_DIELECTRIC;
1102 case BoardStackupLayerType::BSLT_SOLDERPASTE: return BS_ITEM_TYPE_SOLDERPASTE;
1103 case BoardStackupLayerType::BSLT_SOLDERMASK: return BS_ITEM_TYPE_SOLDERMASK;
1104 case BoardStackupLayerType::BSLT_SILKSCREEN: return BS_ITEM_TYPE_SILKSCREEN;
1105
1106 default:
1107 wxCHECK_MSG( false, BS_ITEM_TYPE_UNDEFINED,
1108 "Unhandled case in FromProtoEnum<BoardStackupLayerType>" );
1109 }
1110}
1111
1112
1113template<>
1114DrcSeverity ToProtoEnum( SEVERITY aValue )
1115{
1116 switch( aValue )
1117 {
1118 case RPT_SEVERITY_WARNING: return DrcSeverity::DRS_WARNING;
1119 case RPT_SEVERITY_ERROR: return DrcSeverity::DRS_ERROR;
1120 case RPT_SEVERITY_EXCLUSION: return DrcSeverity::DRS_EXCLUSION;
1121 case RPT_SEVERITY_IGNORE: return DrcSeverity::DRS_IGNORE;
1122 case RPT_SEVERITY_INFO: return DrcSeverity::DRS_INFO;
1123 case RPT_SEVERITY_ACTION: return DrcSeverity::DRS_ACTION;
1124 case RPT_SEVERITY_DEBUG: return DrcSeverity::DRS_DEBUG;
1125 case RPT_SEVERITY_UNDEFINED: return DrcSeverity::DRS_UNDEFINED;
1126 default:
1127 wxCHECK_MSG( false, DrcSeverity::DRS_UNDEFINED,
1128 "Unhandled case in ToProtoEnum<SEVERITY>");
1129 }
1130}
1131
1132
1133template<>
1134SEVERITY FromProtoEnum( DrcSeverity aValue )
1135{
1136 switch( aValue )
1137 {
1138 case DrcSeverity::DRS_WARNING: return RPT_SEVERITY_WARNING;
1139 case DrcSeverity::DRS_ERROR: return RPT_SEVERITY_ERROR;
1140 case DrcSeverity::DRS_EXCLUSION: return RPT_SEVERITY_EXCLUSION;
1141 case DrcSeverity::DRS_IGNORE: return RPT_SEVERITY_IGNORE;
1142 case DrcSeverity::DRS_INFO: return RPT_SEVERITY_INFO;
1143 case DrcSeverity::DRS_ACTION: return RPT_SEVERITY_ACTION;
1144 case DrcSeverity::DRS_DEBUG: return RPT_SEVERITY_DEBUG;
1145 case DrcSeverity::DRS_UNKNOWN:
1146 default:
1148 }
1149}
1150
1151
1152template<>
1153PlotDrillMarks ToProtoEnum( DRILL_MARKS aValue )
1154{
1155 switch( aValue )
1156 {
1157 case DRILL_MARKS::NO_DRILL_SHAPE: return PlotDrillMarks::PDM_NONE;
1158 case DRILL_MARKS::SMALL_DRILL_SHAPE: return PlotDrillMarks::PDM_SMALL;
1159 case DRILL_MARKS::FULL_DRILL_SHAPE: return PlotDrillMarks::PDM_FULL;
1160 default:
1161 wxCHECK_MSG( false, PlotDrillMarks::PDM_UNKNOWN,
1162 "Unhandled case in ToProtoEnum<DRILL_MARKS>" );
1163 }
1164}
1165
1166
1167template<>
1168DRILL_MARKS FromProtoEnum( PlotDrillMarks aValue )
1169{
1170 switch( aValue )
1171 {
1172 case PlotDrillMarks::PDM_NONE: return DRILL_MARKS::NO_DRILL_SHAPE;
1173 case PlotDrillMarks::PDM_SMALL: return DRILL_MARKS::SMALL_DRILL_SHAPE;
1174 case PlotDrillMarks::PDM_FULL: return DRILL_MARKS::FULL_DRILL_SHAPE;
1175 case PlotDrillMarks::PDM_UNKNOWN:
1176 default:
1178 }
1179}
1180
1181
1182template<>
1184{
1185 switch( aValue )
1186 {
1187 case JOB_EXPORT_PCB_3D::FORMAT::STEP: return Board3DFormat::B3D_STEP;
1188 case JOB_EXPORT_PCB_3D::FORMAT::STEPZ: return Board3DFormat::B3D_STEPZ;
1189 case JOB_EXPORT_PCB_3D::FORMAT::BREP: return Board3DFormat::B3D_BREP;
1190 case JOB_EXPORT_PCB_3D::FORMAT::XAO: return Board3DFormat::B3D_XAO;
1191 case JOB_EXPORT_PCB_3D::FORMAT::GLB: return Board3DFormat::B3D_GLB;
1192 case JOB_EXPORT_PCB_3D::FORMAT::VRML: return Board3DFormat::B3D_VRML;
1193 case JOB_EXPORT_PCB_3D::FORMAT::PLY: return Board3DFormat::B3D_PLY;
1194 case JOB_EXPORT_PCB_3D::FORMAT::STL: return Board3DFormat::B3D_STL;
1195 case JOB_EXPORT_PCB_3D::FORMAT::U3D: return Board3DFormat::B3D_U3D;
1196 case JOB_EXPORT_PCB_3D::FORMAT::PDF: return Board3DFormat::B3D_PDF;
1197 default:
1198 wxCHECK_MSG( false, Board3DFormat::B3D_UNKNOWN,
1199 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::FORMAT>" );
1200 }
1201}
1202
1203
1204template<>
1206{
1207 switch( aValue )
1208 {
1209 case Board3DFormat::B3D_STEP: return JOB_EXPORT_PCB_3D::FORMAT::STEP;
1210 case Board3DFormat::B3D_STEPZ: return JOB_EXPORT_PCB_3D::FORMAT::STEPZ;
1211 case Board3DFormat::B3D_BREP: return JOB_EXPORT_PCB_3D::FORMAT::BREP;
1212 case Board3DFormat::B3D_XAO: return JOB_EXPORT_PCB_3D::FORMAT::XAO;
1213 case Board3DFormat::B3D_GLB: return JOB_EXPORT_PCB_3D::FORMAT::GLB;
1214 case Board3DFormat::B3D_VRML: return JOB_EXPORT_PCB_3D::FORMAT::VRML;
1215 case Board3DFormat::B3D_PLY: return JOB_EXPORT_PCB_3D::FORMAT::PLY;
1216 case Board3DFormat::B3D_STL: return JOB_EXPORT_PCB_3D::FORMAT::STL;
1217 case Board3DFormat::B3D_U3D: return JOB_EXPORT_PCB_3D::FORMAT::U3D;
1218 case Board3DFormat::B3D_PDF: return JOB_EXPORT_PCB_3D::FORMAT::PDF;
1219 case Board3DFormat::B3D_UNKNOWN:
1220 default:
1222 }
1223}
1224
1225
1226template<>
1227kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_3D::VRML_UNITS aValue )
1228{
1229 switch( aValue )
1230 {
1231 case JOB_EXPORT_PCB_3D::VRML_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1232 case JOB_EXPORT_PCB_3D::VRML_UNITS::MM: return kiapi::common::types::Units::U_MM;
1233 case JOB_EXPORT_PCB_3D::VRML_UNITS::METERS: return kiapi::common::types::Units::U_METERS;
1234 case JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS: return kiapi::common::types::Units::U_TENTHS;
1235 default:
1236 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1237 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_3D::VRML_UNITS>" );
1238 }
1239}
1240
1241
1242template<>
1243JOB_EXPORT_PCB_3D::VRML_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1244{
1245 switch( aValue )
1246 {
1247 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_3D::VRML_UNITS::INCH;
1248 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_3D::VRML_UNITS::MM;
1249 case kiapi::common::types::Units::U_METERS: return JOB_EXPORT_PCB_3D::VRML_UNITS::METERS;
1250 case kiapi::common::types::Units::U_TENTHS: return JOB_EXPORT_PCB_3D::VRML_UNITS::TENTHS;
1251 case kiapi::common::types::Units::U_UNKNOWN:
1252 default:
1254 }
1255}
1256
1257
1258template<>
1260{
1261 switch( aValue )
1262 {
1263 case JOB_PCB_RENDER::FORMAT::PNG: return RenderFormat::RF_PNG;
1264 case JOB_PCB_RENDER::FORMAT::JPEG: return RenderFormat::RF_JPEG;
1265 default:
1266 wxCHECK_MSG( false, RenderFormat::RF_UNKNOWN,
1267 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::FORMAT>" );
1268 }
1269}
1270
1271
1272template<>
1274{
1275 switch( aValue )
1276 {
1277 case RenderFormat::RF_PNG: return JOB_PCB_RENDER::FORMAT::PNG;
1278 case RenderFormat::RF_JPEG:return JOB_PCB_RENDER::FORMAT::JPEG;
1279 case RenderFormat::RF_UNKNOWN:
1280 default:
1282 }
1283}
1284
1285
1286template<>
1288{
1289 switch( aValue )
1290 {
1291 case JOB_PCB_RENDER::QUALITY::BASIC: return RenderQuality::RQ_BASIC;
1292 case JOB_PCB_RENDER::QUALITY::HIGH: return RenderQuality::RQ_HIGH;
1293 case JOB_PCB_RENDER::QUALITY::USER: return RenderQuality::RQ_USER;
1294 case JOB_PCB_RENDER::QUALITY::JOB_SETTINGS: return RenderQuality::RQ_JOB_SETTINGS;
1295 default:
1296 wxCHECK_MSG( false, RenderQuality::RQ_UNKNOWN,
1297 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::QUALITY>" );
1298 }
1299}
1300
1301
1302template<>
1304{
1305 switch( aValue )
1306 {
1307 case RenderQuality::RQ_BASIC: return JOB_PCB_RENDER::QUALITY::BASIC;
1308 case RenderQuality::RQ_HIGH: return JOB_PCB_RENDER::QUALITY::HIGH;
1309 case RenderQuality::RQ_USER: return JOB_PCB_RENDER::QUALITY::USER;
1310 case RenderQuality::RQ_JOB_SETTINGS: return JOB_PCB_RENDER::QUALITY::JOB_SETTINGS;
1311 case RenderQuality::RQ_UNKNOWN:
1312 default:
1314 }
1315}
1316
1317
1318template<>
1319RenderBackgroundStyle ToProtoEnum( JOB_PCB_RENDER::BG_STYLE aValue )
1320{
1321 switch( aValue )
1322 {
1323 case JOB_PCB_RENDER::BG_STYLE::DEFAULT: return RenderBackgroundStyle::RBS_DEFAULT;
1324 case JOB_PCB_RENDER::BG_STYLE::TRANSPARENT: return RenderBackgroundStyle::RBS_TRANSPARENT;
1325 case JOB_PCB_RENDER::BG_STYLE::OPAQUE: return RenderBackgroundStyle::RBS_OPAQUE;
1326 default:
1327 wxCHECK_MSG( false, RenderBackgroundStyle::RBS_UNKNOWN,
1328 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::BG_STYLE>" );
1329 }
1330}
1331
1332
1333template<>
1334JOB_PCB_RENDER::BG_STYLE FromProtoEnum( RenderBackgroundStyle aValue )
1335{
1336 switch( aValue )
1337 {
1338 case RenderBackgroundStyle::RBS_DEFAULT: return JOB_PCB_RENDER::BG_STYLE::DEFAULT;
1339 case RenderBackgroundStyle::RBS_TRANSPARENT: return JOB_PCB_RENDER::BG_STYLE::TRANSPARENT;
1340 case RenderBackgroundStyle::RBS_OPAQUE: return JOB_PCB_RENDER::BG_STYLE::OPAQUE;
1341 case RenderBackgroundStyle::RBS_UNKNOWN:
1342 default:
1344 }
1345}
1346
1347
1348template<>
1350{
1351 switch( aValue )
1352 {
1353 case JOB_PCB_RENDER::SIDE::TOP: return RenderSide::RS_TOP;
1354 case JOB_PCB_RENDER::SIDE::BOTTOM: return RenderSide::RS_BOTTOM;
1355 case JOB_PCB_RENDER::SIDE::LEFT: return RenderSide::RS_LEFT;
1356 case JOB_PCB_RENDER::SIDE::RIGHT: return RenderSide::RS_RIGHT;
1357 case JOB_PCB_RENDER::SIDE::FRONT: return RenderSide::RS_FRONT;
1358 case JOB_PCB_RENDER::SIDE::BACK: return RenderSide::RS_BACK;
1359 default:
1360 wxCHECK_MSG( false, RenderSide::RS_UNKNOWN,
1361 "Unhandled case in ToProtoEnum<JOB_PCB_RENDER::SIDE>" );
1362 }
1363}
1364
1365
1366template<>
1368{
1369 switch( aValue )
1370 {
1371 case RenderSide::RS_TOP: return JOB_PCB_RENDER::SIDE::TOP;
1372 case RenderSide::RS_BOTTOM: return JOB_PCB_RENDER::SIDE::BOTTOM;
1373 case RenderSide::RS_LEFT: return JOB_PCB_RENDER::SIDE::LEFT;
1374 case RenderSide::RS_RIGHT: return JOB_PCB_RENDER::SIDE::RIGHT;
1375 case RenderSide::RS_FRONT: return JOB_PCB_RENDER::SIDE::FRONT;
1376 case RenderSide::RS_BACK: return JOB_PCB_RENDER::SIDE::BACK;
1377 case RenderSide::RS_UNKNOWN:
1378 default:
1380 }
1381}
1382
1383
1384template<>
1385BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_SVG::GEN_MODE aValue )
1386{
1387 switch( aValue )
1388 {
1389 case JOB_EXPORT_PCB_SVG::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1390 case JOB_EXPORT_PCB_SVG::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1391 default:
1392 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1393 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_SVG::GEN_MODE>" );
1394 }
1395}
1396
1397
1398template<>
1399JOB_EXPORT_PCB_SVG::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1400{
1401 switch( aValue )
1402 {
1403 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1405 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1407 case BoardJobPaginationMode::BJPM_UNKNOWN:
1408 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1409 default:
1411 }
1412}
1413
1414
1415template<>
1416BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_DXF::GEN_MODE aValue )
1417{
1418 switch( aValue )
1419 {
1420 case JOB_EXPORT_PCB_DXF::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1421 case JOB_EXPORT_PCB_DXF::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1422 default:
1423 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1424 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::GEN_MODE>" );
1425 }
1426}
1427
1428
1429template<>
1430JOB_EXPORT_PCB_DXF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1431{
1432 switch( aValue )
1433 {
1434 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1436 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1438 case BoardJobPaginationMode::BJPM_UNKNOWN:
1439 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1440 default:
1442 }
1443}
1444
1445
1446template<>
1447BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PDF::GEN_MODE aValue )
1448{
1449 switch( aValue )
1450 {
1452 return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1454 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE;
1456 return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1457 default:
1458 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1459 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PDF::GEN_MODE>" );
1460 }
1461}
1462
1463
1464template<>
1465JOB_EXPORT_PCB_PDF::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1466{
1467 switch( aValue )
1468 {
1469 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1471 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1473 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1475 case BoardJobPaginationMode::BJPM_UNKNOWN:
1476 default:
1478 }
1479}
1480
1481
1482template<>
1483BoardJobPaginationMode ToProtoEnum( JOB_EXPORT_PCB_PS::GEN_MODE aValue )
1484{
1485 switch( aValue )
1486 {
1487 case JOB_EXPORT_PCB_PS::GEN_MODE::SINGLE: return BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE;
1488 case JOB_EXPORT_PCB_PS::GEN_MODE::MULTI: return BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE;
1489 default:
1490 wxCHECK_MSG( false, BoardJobPaginationMode::BJPM_UNKNOWN,
1491 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_PS::GEN_MODE>" );
1492 }
1493}
1494
1495
1496template<>
1497JOB_EXPORT_PCB_PS::GEN_MODE FromProtoEnum( BoardJobPaginationMode aValue )
1498{
1499 switch( aValue )
1500 {
1501 case BoardJobPaginationMode::BJPM_ALL_LAYERS_ONE_PAGE:
1503 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_FILE:
1505 case BoardJobPaginationMode::BJPM_UNKNOWN:
1506 case BoardJobPaginationMode::BJPM_EACH_LAYER_OWN_PAGE:
1507 default:
1509 }
1510}
1511
1512
1513template<>
1515{
1516 switch( aValue )
1517 {
1518 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON: return DrillFormat::DF_EXCELLON;
1519 case JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER: return DrillFormat::DF_GERBER;
1520 default:
1521 wxCHECK_MSG( false, DrillFormat::DF_UNKNOWN,
1522 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_FORMAT>" );
1523 }
1524}
1525
1526
1527template<>
1529{
1530 switch( aValue )
1531 {
1532 case DrillFormat::DF_EXCELLON: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::EXCELLON;
1533 case DrillFormat::DF_GERBER: return JOB_EXPORT_PCB_DRILL::DRILL_FORMAT::GERBER;
1534 case DrillFormat::DF_UNKNOWN:
1535 default:
1537 }
1538}
1539
1540
1541template<>
1543{
1544 switch( aValue )
1545 {
1546 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS: return DrillOrigin::DO_ABSOLUTE;
1547 case JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT: return DrillOrigin::DO_PLOT;
1548 default:
1549 wxCHECK_MSG( false, DrillOrigin::DO_UNKNOWN,
1550 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN>" );
1551 }
1552}
1553
1554
1555template<>
1557{
1558 switch( aValue )
1559 {
1560 case DrillOrigin::DO_ABSOLUTE: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::ABS;
1561 case DrillOrigin::DO_PLOT: return JOB_EXPORT_PCB_DRILL::DRILL_ORIGIN::PLOT;
1562 case DrillOrigin::DO_UNKNOWN:
1563 default:
1565 }
1566}
1567
1568
1569template<>
1571{
1572 switch( aValue )
1573 {
1575 return DrillZerosFormat::DZF_DECIMAL;
1577 return DrillZerosFormat::DZF_SUPPRESS_LEADING;
1579 return DrillZerosFormat::DZF_SUPPRESS_TRAILING;
1581 return DrillZerosFormat::DZF_KEEP_ZEROS;
1582 default:
1583 wxCHECK_MSG( false, DrillZerosFormat::DZF_UNKNOWN,
1584 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::ZEROS_FORMAT>" );
1585 }
1586}
1587
1588
1589template<>
1591{
1592 switch( aValue )
1593 {
1594 case DrillZerosFormat::DZF_DECIMAL:
1596 case DrillZerosFormat::DZF_SUPPRESS_LEADING:
1598 case DrillZerosFormat::DZF_SUPPRESS_TRAILING:
1600 case DrillZerosFormat::DZF_KEEP_ZEROS:
1602 case DrillZerosFormat::DZF_UNKNOWN:
1603 default:
1605 }
1606}
1607
1608
1609template<>
1611{
1612 switch( aValue )
1613 {
1615 return DrillMapFormat::DMF_POSTSCRIPT;
1617 return DrillMapFormat::DMF_GERBER_X2;
1619 return DrillMapFormat::DMF_DXF;
1621 return DrillMapFormat::DMF_SVG;
1623 return DrillMapFormat::DMF_PDF;
1624 default:
1625 wxCHECK_MSG( false, DrillMapFormat::DMF_UNKNOWN,
1626 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::MAP_FORMAT>" );
1627 }
1628}
1629
1630
1631template<>
1633{
1634 switch( aValue )
1635 {
1636 case DrillMapFormat::DMF_POSTSCRIPT:
1638 case DrillMapFormat::DMF_GERBER_X2:
1640 case DrillMapFormat::DMF_DXF:
1642 case DrillMapFormat::DMF_SVG:
1644 case DrillMapFormat::DMF_PDF:
1646 case DrillMapFormat::DMF_UNKNOWN:
1647 default:
1649 }
1650}
1651
1652
1653template<>
1654kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DRILL::DRILL_UNITS aValue )
1655{
1656 switch( aValue )
1657 {
1658 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1659 case JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM: return kiapi::common::types::Units::U_MM;
1660 default:
1661 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1662 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DRILL::DRILL_UNITS>" );
1663 }
1664}
1665
1666
1667template<>
1668JOB_EXPORT_PCB_DRILL::DRILL_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1669{
1670 switch( aValue )
1671 {
1672 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::INCH;
1673 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DRILL::DRILL_UNITS::MM;
1674 case kiapi::common::types::Units::U_UNKNOWN:
1675 case kiapi::common::types::Units::U_METERS:
1676 case kiapi::common::types::Units::U_TENTHS:
1677 default:
1679 }
1680}
1681
1682
1683template<>
1685{
1686 switch( aValue )
1687 {
1688 case JOB_EXPORT_PCB_POS::SIDE::FRONT: return PositionSide::PS_FRONT;
1689 case JOB_EXPORT_PCB_POS::SIDE::BACK: return PositionSide::PS_BACK;
1690 case JOB_EXPORT_PCB_POS::SIDE::BOTH: return PositionSide::PS_BOTH;
1691 default:
1692 wxCHECK_MSG( false, PositionSide::PS_UNKNOWN,
1693 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::SIDE>" );
1694 }
1695}
1696
1697
1698template<>
1700{
1701 switch( aValue )
1702 {
1703 case PositionSide::PS_FRONT: return JOB_EXPORT_PCB_POS::SIDE::FRONT;
1704 case PositionSide::PS_BACK: return JOB_EXPORT_PCB_POS::SIDE::BACK;
1705 case PositionSide::PS_BOTH: return JOB_EXPORT_PCB_POS::SIDE::BOTH;
1706 case PositionSide::PS_UNKNOWN:
1707 default:
1709 }
1710}
1711
1712
1713template<>
1715{
1716 switch( aValue )
1717 {
1718 case JOB_EXPORT_PCB_POS::FORMAT::ASCII: return PositionFormat::PF_ASCII;
1719 case JOB_EXPORT_PCB_POS::FORMAT::CSV: return PositionFormat::PF_CSV;
1720 case JOB_EXPORT_PCB_POS::FORMAT::GERBER: return PositionFormat::PF_GERBER;
1721 default:
1722 wxCHECK_MSG( false, PositionFormat::PF_UNKNOWN,
1723 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::FORMAT>" );
1724 }
1725}
1726
1727
1728template<>
1730{
1731 switch( aValue )
1732 {
1733 case PositionFormat::PF_ASCII: return JOB_EXPORT_PCB_POS::FORMAT::ASCII;
1734 case PositionFormat::PF_CSV: return JOB_EXPORT_PCB_POS::FORMAT::CSV;
1735 case PositionFormat::PF_GERBER: return JOB_EXPORT_PCB_POS::FORMAT::GERBER;
1736 case PositionFormat::PF_UNKNOWN:
1737 default:
1739 }
1740}
1741
1742
1743template<>
1745{
1746 switch( aValue )
1747 {
1748 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B: return Ipc2581Version::IPC2581V_B;
1749 case JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C: return Ipc2581Version::IPC2581V_C;
1750 default:
1751 wxCHECK_MSG( false, Ipc2581Version::IPC2581V_UNKNOWN,
1752 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION>" );
1753 }
1754}
1755
1756
1757template<>
1759{
1760 switch( aValue )
1761 {
1762 case Ipc2581Version::IPC2581V_B: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::B;
1763 case Ipc2581Version::IPC2581V_C: return JOB_EXPORT_PCB_IPC2581::IPC2581_VERSION::C;
1764 case Ipc2581Version::IPC2581V_UNKNOWN:
1765 default:
1767 }
1768}
1769
1770
1771template<>
1773{
1774 switch( aValue )
1775 {
1776 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE: return OdbCompression::ODBC_NONE;
1777 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP: return OdbCompression::ODBC_ZIP;
1778 case JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ: return OdbCompression::ODBC_TGZ;
1779 default:
1780 wxCHECK_MSG( false, OdbCompression::ODBC_UNKNOWN,
1781 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_COMPRESSION>" );
1782 }
1783}
1784
1785
1786template<>
1788{
1789 switch( aValue )
1790 {
1791 case OdbCompression::ODBC_NONE: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::NONE;
1792 case OdbCompression::ODBC_ZIP: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::ZIP;
1793 case OdbCompression::ODBC_TGZ: return JOB_EXPORT_PCB_ODB::ODB_COMPRESSION::TGZ;
1794 case OdbCompression::ODBC_UNKNOWN:
1795 default:
1797 }
1798}
1799
1800
1801template<>
1803{
1804 switch( aValue )
1805 {
1806 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT: return StatsOutputFormat::SOF_REPORT;
1807 case JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON: return StatsOutputFormat::SOF_JSON;
1808 default:
1809 wxCHECK_MSG( false, StatsOutputFormat::SOF_UNKNOWN,
1810 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT>" );
1811 }
1812}
1813
1814
1815template<>
1817{
1818 switch( aValue )
1819 {
1820 case StatsOutputFormat::SOF_REPORT: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::REPORT;
1821 case StatsOutputFormat::SOF_JSON: return JOB_EXPORT_PCB_STATS::OUTPUT_FORMAT::JSON;
1822 case StatsOutputFormat::SOF_UNKNOWN:
1823 default:
1825 }
1826}
1827
1828
1829template<>
1830kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_DXF::DXF_UNITS aValue )
1831{
1832 switch( aValue )
1833 {
1834 case JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1835 case JOB_EXPORT_PCB_DXF::DXF_UNITS::MM: return kiapi::common::types::Units::U_MM;
1836 default:
1837 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1838 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_DXF::DXF_UNITS>" );
1839 }
1840}
1841
1842
1843template<>
1844JOB_EXPORT_PCB_DXF::DXF_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1845{
1846 switch( aValue )
1847 {
1848 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_DXF::DXF_UNITS::INCH;
1849 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_DXF::DXF_UNITS::MM;
1850 case kiapi::common::types::Units::U_UNKNOWN:
1851 case kiapi::common::types::Units::U_METERS:
1852 case kiapi::common::types::Units::U_TENTHS:
1853 default:
1855 }
1856}
1857
1858
1859template<>
1860kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_POS::UNITS aValue )
1861{
1862 switch( aValue )
1863 {
1864 case JOB_EXPORT_PCB_POS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1865 case JOB_EXPORT_PCB_POS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1866 default:
1867 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1868 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_POS::UNITS>" );
1869 }
1870}
1871
1872
1873template<>
1874JOB_EXPORT_PCB_POS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1875{
1876 switch( aValue )
1877 {
1878 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_POS::UNITS::INCH;
1879 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_POS::UNITS::MM;
1880 case kiapi::common::types::Units::U_UNKNOWN:
1881 case kiapi::common::types::Units::U_METERS:
1882 case kiapi::common::types::Units::U_TENTHS:
1883 default:
1885 }
1886}
1887
1888
1889template<>
1890kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS aValue )
1891{
1892 switch( aValue )
1893 {
1894 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1895 case JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM: return kiapi::common::types::Units::U_MM;
1896 default:
1897 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1898 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS>" );
1899 }
1900}
1901
1902
1903template<>
1904JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1905{
1906 switch( aValue )
1907 {
1908 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::INCH;
1909 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_IPC2581::IPC2581_UNITS::MM;
1910 case kiapi::common::types::Units::U_UNKNOWN:
1911 case kiapi::common::types::Units::U_METERS:
1912 case kiapi::common::types::Units::U_TENTHS:
1913 default:
1915 }
1916}
1917
1918
1919template<>
1920kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_ODB::ODB_UNITS aValue )
1921{
1922 switch( aValue )
1923 {
1924 case JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1925 case JOB_EXPORT_PCB_ODB::ODB_UNITS::MM: return kiapi::common::types::Units::U_MM;
1926 default:
1927 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1928 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_ODB::ODB_UNITS>" );
1929 }
1930}
1931
1932
1933template<>
1934JOB_EXPORT_PCB_ODB::ODB_UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1935{
1936 switch( aValue )
1937 {
1938 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_ODB::ODB_UNITS::INCH;
1939 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_ODB::ODB_UNITS::MM;
1940 case kiapi::common::types::Units::U_UNKNOWN:
1941 case kiapi::common::types::Units::U_METERS:
1942 case kiapi::common::types::Units::U_TENTHS:
1943 default:
1945 }
1946}
1947
1948
1949template<>
1950kiapi::common::types::Units ToProtoEnum( JOB_EXPORT_PCB_STATS::UNITS aValue )
1951{
1952 switch( aValue )
1953 {
1954 case JOB_EXPORT_PCB_STATS::UNITS::INCH: return kiapi::common::types::Units::U_INCH;
1955 case JOB_EXPORT_PCB_STATS::UNITS::MM: return kiapi::common::types::Units::U_MM;
1956 default:
1957 wxCHECK_MSG( false, kiapi::common::types::Units::U_UNKNOWN,
1958 "Unhandled case in ToProtoEnum<JOB_EXPORT_PCB_STATS::UNITS>" );
1959 }
1960}
1961
1962
1963template<>
1964JOB_EXPORT_PCB_STATS::UNITS FromProtoEnum( kiapi::common::types::Units aValue )
1965{
1966 switch( aValue )
1967 {
1968 case kiapi::common::types::Units::U_INCH: return JOB_EXPORT_PCB_STATS::UNITS::INCH;
1969 case kiapi::common::types::Units::U_MM: return JOB_EXPORT_PCB_STATS::UNITS::MM;
1970 case kiapi::common::types::Units::U_UNKNOWN:
1971 case kiapi::common::types::Units::U_METERS:
1972 case kiapi::common::types::Units::U_TENTHS:
1973 default:
1975 }
1976}
1977
1978
1979template<>
1980DrcErrorType ToProtoEnum( PCB_DRC_CODE aValue )
1981{
1982 switch( aValue )
1983 {
1984 case DRCE_UNCONNECTED_ITEMS: return DrcErrorType::DRCET_UNCONNECTED_ITEMS;
1985 case DRCE_SHORTING_ITEMS: return DrcErrorType::DRCET_SHORTING_ITEMS;
1986 case DRCE_ALLOWED_ITEMS: return DrcErrorType::DRCET_ALLOWED_ITEMS;
1987 case DRCE_TEXT_ON_EDGECUTS: return DrcErrorType::DRCET_TEXT_ON_EDGECUTS;
1988 case DRCE_CLEARANCE: return DrcErrorType::DRCET_CLEARANCE;
1989 case DRCE_CREEPAGE: return DrcErrorType::DRCET_CREEPAGE;
1990 case DRCE_TRACKS_CROSSING: return DrcErrorType::DRCET_TRACKS_CROSSING;
1991 case DRCE_EDGE_CLEARANCE: return DrcErrorType::DRCET_EDGE_CLEARANCE;
1992 case DRCE_ISOLATED_COPPER: return DrcErrorType::DRCET_ISOLATED_COPPER;
1993 case DRCE_STARVED_THERMAL: return DrcErrorType::DRCET_STARVED_THERMAL;
1994 case DRCE_DANGLING_VIA: return DrcErrorType::DRCET_DANGLING_VIA;
1995 case DRCE_DANGLING_TRACK: return DrcErrorType::DRCET_DANGLING_TRACK;
1996 case DRCE_DRILLED_HOLES_TOO_CLOSE: return DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE;
1997 case DRCE_DRILLED_HOLES_COLOCATED: return DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED;
1998 case DRCE_HOLE_CLEARANCE: return DrcErrorType::DRCET_HOLE_CLEARANCE;
1999 case DRCE_CONNECTION_WIDTH: return DrcErrorType::DRCET_CONNECTION_WIDTH;
2000 case DRCE_TRACK_WIDTH: return DrcErrorType::DRCET_TRACK_WIDTH;
2001 case DRCE_TRACK_ANGLE: return DrcErrorType::DRCET_TRACK_ANGLE;
2002 case DRCE_TRACK_SEGMENT_LENGTH: return DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH;
2003 case DRCE_ANNULAR_WIDTH: return DrcErrorType::DRCET_ANNULAR_WIDTH;
2004 case DRCE_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_DRILL_OUT_OF_RANGE;
2005 case DRCE_VIA_DIAMETER: return DrcErrorType::DRCET_VIA_DIAMETER;
2006 case DRCE_PADSTACK: return DrcErrorType::DRCET_PADSTACK;
2007 case DRCE_PADSTACK_INVALID: return DrcErrorType::DRCET_PADSTACK_INVALID;
2008 case DRCE_MICROVIA_DRILL_OUT_OF_RANGE: return DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE;
2009 case DRCE_OVERLAPPING_FOOTPRINTS: return DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS;
2010 case DRCE_MISSING_COURTYARD: return DrcErrorType::DRCET_MISSING_COURTYARD;
2011 case DRCE_MALFORMED_COURTYARD: return DrcErrorType::DRCET_MALFORMED_COURTYARD;
2012 case DRCE_PTH_IN_COURTYARD: return DrcErrorType::DRCET_PTH_IN_COURTYARD;
2013 case DRCE_NPTH_IN_COURTYARD: return DrcErrorType::DRCET_NPTH_IN_COURTYARD;
2014 case DRCE_DISABLED_LAYER_ITEM: return DrcErrorType::DRCET_DISABLED_LAYER_ITEM;
2015 case DRCE_INVALID_OUTLINE: return DrcErrorType::DRCET_INVALID_OUTLINE;
2016 case DRCE_MISSING_FOOTPRINT: return DrcErrorType::DRCET_MISSING_FOOTPRINT;
2017 case DRCE_DUPLICATE_FOOTPRINT: return DrcErrorType::DRCET_DUPLICATE_FOOTPRINT;
2018 case DRCE_NET_CONFLICT: return DrcErrorType::DRCET_NET_CONFLICT;
2019 case DRCE_EXTRA_FOOTPRINT: return DrcErrorType::DRCET_EXTRA_FOOTPRINT;
2020 case DRCE_SCHEMATIC_PARITY: return DrcErrorType::DRCET_SCHEMATIC_PARITY;
2021 case DRCE_SCHEMATIC_FIELDS_PARITY: return DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY;
2022 case DRCE_FOOTPRINT_FILTERS: return DrcErrorType::DRCET_FOOTPRINT_FILTERS;
2023 case DRCE_LIB_FOOTPRINT_ISSUES: return DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES;
2024 case DRCE_LIB_FOOTPRINT_MISMATCH: return DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH;
2025 case DRCE_UNRESOLVED_VARIABLE: return DrcErrorType::DRCET_UNRESOLVED_VARIABLE;
2026 case DRCE_ASSERTION_FAILURE: return DrcErrorType::DRCET_ASSERTION_FAILURE;
2027 case DRCE_GENERIC_WARNING: return DrcErrorType::DRCET_GENERIC_WARNING;
2028 case DRCE_GENERIC_ERROR: return DrcErrorType::DRCET_GENERIC_ERROR;
2029 case DRCE_COPPER_SLIVER: return DrcErrorType::DRCET_COPPER_SLIVER;
2030 case DRCE_SILK_CLEARANCE: return DrcErrorType::DRCET_SILK_CLEARANCE;
2031 case DRCE_SILK_MASK_CLEARANCE: return DrcErrorType::DRCET_SILK_MASK_CLEARANCE;
2032 case DRCE_SILK_EDGE_CLEARANCE: return DrcErrorType::DRCET_SILK_EDGE_CLEARANCE;
2033 case DRCE_SOLDERMASK_BRIDGE: return DrcErrorType::DRCET_SOLDERMASK_BRIDGE;
2034 case DRCE_TEXT_HEIGHT: return DrcErrorType::DRCET_TEXT_HEIGHT;
2035 case DRCE_TEXT_THICKNESS: return DrcErrorType::DRCET_TEXT_THICKNESS;
2036 case DRCE_LENGTH_OUT_OF_RANGE: return DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE;
2037 case DRCE_SKEW_OUT_OF_RANGE: return DrcErrorType::DRCET_SKEW_OUT_OF_RANGE;
2038 case DRCE_VIA_COUNT_OUT_OF_RANGE: return DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE;
2039 case DRCE_DP_GAP_OUT_OF_RANGE: return DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE;
2040 case DRCE_DP_UNCOUPLED_LENGTH_TOO_LONG: return DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG;
2041 case DRCE_FOOTPRINT: return DrcErrorType::DRCET_FOOTPRINT;
2042 case DRCE_FOOTPRINT_TYPE_MISMATCH: return DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH;
2043 case DRCE_PAD_TH_WITH_NO_HOLE: return DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE;
2044 case DRCE_MIRRORED_TEXT_ON_FRONT_LAYER: return DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER;
2045 case DRCE_UNMIRRORED_TEXT_ON_BACK_LAYER: return DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER;
2046 case DRCE_MISSING_TUNING_PROFILE: return DrcErrorType::DRCET_MISSING_TUNING_PROFILE;
2047 case DRCE_TUNING_PROFILE_IMPLICIT_RULES: return DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES;
2048 case DRCE_TRACK_ON_POST_MACHINED_LAYER: return DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER;
2049 case DRCE_TRACK_NOT_CENTERED_ON_VIA: return DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA;
2050 default:
2051 wxCHECK_MSG( false, DrcErrorType::DRCET_UNKNOWN, "Unhandled case in ToProtoEnum<PCB_DRC_CODE>" );
2052 }
2053}
2054
2055
2056template<>
2057PCB_DRC_CODE FromProtoEnum( DrcErrorType aValue )
2058{
2059 switch( aValue )
2060 {
2061 case DrcErrorType::DRCET_UNCONNECTED_ITEMS: return DRCE_UNCONNECTED_ITEMS;
2062 case DrcErrorType::DRCET_SHORTING_ITEMS: return DRCE_SHORTING_ITEMS;
2063 case DrcErrorType::DRCET_ALLOWED_ITEMS: return DRCE_ALLOWED_ITEMS;
2064 case DrcErrorType::DRCET_TEXT_ON_EDGECUTS: return DRCE_TEXT_ON_EDGECUTS;
2065 case DrcErrorType::DRCET_CLEARANCE: return DRCE_CLEARANCE;
2066 case DrcErrorType::DRCET_CREEPAGE: return DRCE_CREEPAGE;
2067 case DrcErrorType::DRCET_TRACKS_CROSSING: return DRCE_TRACKS_CROSSING;
2068 case DrcErrorType::DRCET_EDGE_CLEARANCE: return DRCE_EDGE_CLEARANCE;
2069 case DrcErrorType::DRCET_ISOLATED_COPPER: return DRCE_ISOLATED_COPPER;
2070 case DrcErrorType::DRCET_STARVED_THERMAL: return DRCE_STARVED_THERMAL;
2071 case DrcErrorType::DRCET_DANGLING_VIA: return DRCE_DANGLING_VIA;
2072 case DrcErrorType::DRCET_DANGLING_TRACK: return DRCE_DANGLING_TRACK;
2073 case DrcErrorType::DRCET_DRILLED_HOLES_TOO_CLOSE: return DRCE_DRILLED_HOLES_TOO_CLOSE;
2074 case DrcErrorType::DRCET_DRILLED_HOLES_COLOCATED: return DRCE_DRILLED_HOLES_COLOCATED;
2075 case DrcErrorType::DRCET_HOLE_CLEARANCE: return DRCE_HOLE_CLEARANCE;
2076 case DrcErrorType::DRCET_CONNECTION_WIDTH: return DRCE_CONNECTION_WIDTH;
2077 case DrcErrorType::DRCET_TRACK_WIDTH: return DRCE_TRACK_WIDTH;
2078 case DrcErrorType::DRCET_TRACK_ANGLE: return DRCE_TRACK_ANGLE;
2079 case DrcErrorType::DRCET_TRACK_SEGMENT_LENGTH: return DRCE_TRACK_SEGMENT_LENGTH;
2080 case DrcErrorType::DRCET_ANNULAR_WIDTH: return DRCE_ANNULAR_WIDTH;
2081 case DrcErrorType::DRCET_DRILL_OUT_OF_RANGE: return DRCE_DRILL_OUT_OF_RANGE;
2082 case DrcErrorType::DRCET_VIA_DIAMETER: return DRCE_VIA_DIAMETER;
2083 case DrcErrorType::DRCET_PADSTACK: return DRCE_PADSTACK;
2084 case DrcErrorType::DRCET_PADSTACK_INVALID: return DRCE_PADSTACK_INVALID;
2085 case DrcErrorType::DRCET_MICROVIA_DRILL_OUT_OF_RANGE: return DRCE_MICROVIA_DRILL_OUT_OF_RANGE;
2086 case DrcErrorType::DRCET_OVERLAPPING_FOOTPRINTS: return DRCE_OVERLAPPING_FOOTPRINTS;
2087 case DrcErrorType::DRCET_MISSING_COURTYARD: return DRCE_MISSING_COURTYARD;
2088 case DrcErrorType::DRCET_MALFORMED_COURTYARD: return DRCE_MALFORMED_COURTYARD;
2089 case DrcErrorType::DRCET_PTH_IN_COURTYARD: return DRCE_PTH_IN_COURTYARD;
2090 case DrcErrorType::DRCET_NPTH_IN_COURTYARD: return DRCE_NPTH_IN_COURTYARD;
2091 case DrcErrorType::DRCET_DISABLED_LAYER_ITEM: return DRCE_DISABLED_LAYER_ITEM;
2092 case DrcErrorType::DRCET_INVALID_OUTLINE: return DRCE_INVALID_OUTLINE;
2093 case DrcErrorType::DRCET_MISSING_FOOTPRINT: return DRCE_MISSING_FOOTPRINT;
2094 case DrcErrorType::DRCET_DUPLICATE_FOOTPRINT: return DRCE_DUPLICATE_FOOTPRINT;
2095 case DrcErrorType::DRCET_NET_CONFLICT: return DRCE_NET_CONFLICT;
2096 case DrcErrorType::DRCET_EXTRA_FOOTPRINT: return DRCE_EXTRA_FOOTPRINT;
2097 case DrcErrorType::DRCET_SCHEMATIC_PARITY: return DRCE_SCHEMATIC_PARITY;
2098 case DrcErrorType::DRCET_SCHEMATIC_FIELDS_PARITY: return DRCE_SCHEMATIC_FIELDS_PARITY;
2099 case DrcErrorType::DRCET_FOOTPRINT_FILTERS: return DRCE_FOOTPRINT_FILTERS;
2100 case DrcErrorType::DRCET_LIB_FOOTPRINT_ISSUES: return DRCE_LIB_FOOTPRINT_ISSUES;
2101 case DrcErrorType::DRCET_LIB_FOOTPRINT_MISMATCH: return DRCE_LIB_FOOTPRINT_MISMATCH;
2102 case DrcErrorType::DRCET_UNRESOLVED_VARIABLE: return DRCE_UNRESOLVED_VARIABLE;
2103 case DrcErrorType::DRCET_ASSERTION_FAILURE: return DRCE_ASSERTION_FAILURE;
2104 case DrcErrorType::DRCET_GENERIC_WARNING: return DRCE_GENERIC_WARNING;
2105 case DrcErrorType::DRCET_GENERIC_ERROR: return DRCE_GENERIC_ERROR;
2106 case DrcErrorType::DRCET_COPPER_SLIVER: return DRCE_COPPER_SLIVER;
2107 case DrcErrorType::DRCET_SILK_CLEARANCE: return DRCE_SILK_CLEARANCE;
2108 case DrcErrorType::DRCET_SILK_MASK_CLEARANCE: return DRCE_SILK_MASK_CLEARANCE;
2109 case DrcErrorType::DRCET_SILK_EDGE_CLEARANCE: return DRCE_SILK_EDGE_CLEARANCE;
2110 case DrcErrorType::DRCET_SOLDERMASK_BRIDGE: return DRCE_SOLDERMASK_BRIDGE;
2111 case DrcErrorType::DRCET_TEXT_HEIGHT: return DRCE_TEXT_HEIGHT;
2112 case DrcErrorType::DRCET_TEXT_THICKNESS: return DRCE_TEXT_THICKNESS;
2113 case DrcErrorType::DRCET_LENGTH_OUT_OF_RANGE: return DRCE_LENGTH_OUT_OF_RANGE;
2114 case DrcErrorType::DRCET_SKEW_OUT_OF_RANGE: return DRCE_SKEW_OUT_OF_RANGE;
2115 case DrcErrorType::DRCET_VIA_COUNT_OUT_OF_RANGE: return DRCE_VIA_COUNT_OUT_OF_RANGE;
2116 case DrcErrorType::DRCET_DIFF_PAIR_GAP_OUT_OF_RANGE: return DRCE_DP_GAP_OUT_OF_RANGE;
2117 case DrcErrorType::DRCET_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG: return DRCE_DP_UNCOUPLED_LENGTH_TOO_LONG;
2118 case DrcErrorType::DRCET_FOOTPRINT: return DRCE_FOOTPRINT;
2119 case DrcErrorType::DRCET_FOOTPRINT_TYPE_MISMATCH: return DRCE_FOOTPRINT_TYPE_MISMATCH;
2120 case DrcErrorType::DRCET_PAD_TH_WITH_NO_HOLE: return DRCE_PAD_TH_WITH_NO_HOLE;
2121 case DrcErrorType::DRCET_MIRRORED_TEXT_ON_FRONT_LAYER: return DRCE_MIRRORED_TEXT_ON_FRONT_LAYER;
2122 case DrcErrorType::DRCET_NONMIRRORED_TEXT_ON_BACK_LAYER: return DRCE_UNMIRRORED_TEXT_ON_BACK_LAYER;
2123 case DrcErrorType::DRCET_MISSING_TUNING_PROFILE: return DRCE_MISSING_TUNING_PROFILE;
2124 case DrcErrorType::DRCET_TUNING_PROFILE_IMPLICIT_RULES: return DRCE_TUNING_PROFILE_IMPLICIT_RULES;
2125 case DrcErrorType::DRCET_TRACK_ON_POST_MACHINED_LAYER: return DRCE_TRACK_ON_POST_MACHINED_LAYER;
2126 case DrcErrorType::DRCET_TRACK_NOT_CENTERED_ON_VIA: return DRCE_TRACK_NOT_CENTERED_ON_VIA;
2127
2128 case DrcErrorType::DRCET_UNKNOWN:
2129 default:
2130 return static_cast<PCB_DRC_CODE>( 0 );
2131 }
2132}
2133
2134
2135template<>
2136types::ConstraintType ToProtoEnum( PCB_CONSTRAINT_TYPE aValue )
2137{
2138 switch( aValue )
2139 {
2140 case PCB_CONSTRAINT_TYPE::COINCIDENT: return types::ConstraintType::CT_COINCIDENT;
2141 case PCB_CONSTRAINT_TYPE::HORIZONTAL: return types::ConstraintType::CT_HORIZONTAL;
2142 case PCB_CONSTRAINT_TYPE::VERTICAL: return types::ConstraintType::CT_VERTICAL;
2143 case PCB_CONSTRAINT_TYPE::PARALLEL: return types::ConstraintType::CT_PARALLEL;
2144 case PCB_CONSTRAINT_TYPE::PERPENDICULAR: return types::ConstraintType::CT_PERPENDICULAR;
2145 case PCB_CONSTRAINT_TYPE::COLLINEAR: return types::ConstraintType::CT_COLLINEAR;
2146 case PCB_CONSTRAINT_TYPE::SYMMETRIC: return types::ConstraintType::CT_SYMMETRIC;
2147 case PCB_CONSTRAINT_TYPE::EQUAL_LENGTH: return types::ConstraintType::CT_EQUAL_LENGTH;
2148 case PCB_CONSTRAINT_TYPE::EQUAL_RADIUS: return types::ConstraintType::CT_EQUAL_RADIUS;
2149 case PCB_CONSTRAINT_TYPE::POINT_ON_LINE: return types::ConstraintType::CT_POINT_ON_LINE;
2150 case PCB_CONSTRAINT_TYPE::MIDPOINT: return types::ConstraintType::CT_MIDPOINT;
2151 case PCB_CONSTRAINT_TYPE::FIXED_POSITION: return types::ConstraintType::CT_FIXED_POSITION;
2152 case PCB_CONSTRAINT_TYPE::FIXED_LENGTH: return types::ConstraintType::CT_FIXED_LENGTH;
2153 case PCB_CONSTRAINT_TYPE::CONCENTRIC: return types::ConstraintType::CT_CONCENTRIC;
2154 case PCB_CONSTRAINT_TYPE::FIXED_RADIUS: return types::ConstraintType::CT_FIXED_RADIUS;
2155 case PCB_CONSTRAINT_TYPE::ANGULAR_DIMENSION: return types::ConstraintType::CT_ANGULAR_DIMENSION;
2156 case PCB_CONSTRAINT_TYPE::TANGENT: return types::ConstraintType::CT_TANGENT;
2157 case PCB_CONSTRAINT_TYPE::ARC_ANGLE: return types::ConstraintType::CT_ARC_ANGLE;
2158
2160 default:
2161 wxCHECK_MSG( false, types::ConstraintType::CT_UNKNOWN,
2162 "Unhandled case in ToProtoEnum<PCB_CONSTRAINT_TYPE>" );
2163 }
2164}
2165
2166
2167template<>
2168PCB_CONSTRAINT_TYPE FromProtoEnum( types::ConstraintType aValue )
2169{
2170 switch( aValue )
2171 {
2172 case types::ConstraintType::CT_UNKNOWN: return PCB_CONSTRAINT_TYPE::UNDEFINED;
2173 case types::ConstraintType::CT_COINCIDENT: return PCB_CONSTRAINT_TYPE::COINCIDENT;
2174 case types::ConstraintType::CT_HORIZONTAL: return PCB_CONSTRAINT_TYPE::HORIZONTAL;
2175 case types::ConstraintType::CT_VERTICAL: return PCB_CONSTRAINT_TYPE::VERTICAL;
2176 case types::ConstraintType::CT_PARALLEL: return PCB_CONSTRAINT_TYPE::PARALLEL;
2177 case types::ConstraintType::CT_PERPENDICULAR: return PCB_CONSTRAINT_TYPE::PERPENDICULAR;
2178 case types::ConstraintType::CT_COLLINEAR: return PCB_CONSTRAINT_TYPE::COLLINEAR;
2179 case types::ConstraintType::CT_SYMMETRIC: return PCB_CONSTRAINT_TYPE::SYMMETRIC;
2180 case types::ConstraintType::CT_EQUAL_LENGTH: return PCB_CONSTRAINT_TYPE::EQUAL_LENGTH;
2181 case types::ConstraintType::CT_EQUAL_RADIUS: return PCB_CONSTRAINT_TYPE::EQUAL_RADIUS;
2182 case types::ConstraintType::CT_POINT_ON_LINE: return PCB_CONSTRAINT_TYPE::POINT_ON_LINE;
2183 case types::ConstraintType::CT_MIDPOINT: return PCB_CONSTRAINT_TYPE::MIDPOINT;
2184 case types::ConstraintType::CT_FIXED_POSITION: return PCB_CONSTRAINT_TYPE::FIXED_POSITION;
2185 case types::ConstraintType::CT_FIXED_LENGTH: return PCB_CONSTRAINT_TYPE::FIXED_LENGTH;
2186 case types::ConstraintType::CT_CONCENTRIC: return PCB_CONSTRAINT_TYPE::CONCENTRIC;
2187 case types::ConstraintType::CT_FIXED_RADIUS: return PCB_CONSTRAINT_TYPE::FIXED_RADIUS;
2188 case types::ConstraintType::CT_ANGULAR_DIMENSION: return PCB_CONSTRAINT_TYPE::ANGULAR_DIMENSION;
2189 case types::ConstraintType::CT_TANGENT: return PCB_CONSTRAINT_TYPE::TANGENT;
2190 case types::ConstraintType::CT_ARC_ANGLE: return PCB_CONSTRAINT_TYPE::ARC_ANGLE;
2191
2192 default:
2193 wxCHECK_MSG( false, PCB_CONSTRAINT_TYPE::UNDEFINED,
2194 "Unhandled case in FromProtoEnum<types::ConstraintType>" );
2195 }
2196}
2197
2198
2199template<>
2200types::ConstraintAnchor ToProtoEnum( CONSTRAINT_ANCHOR aValue )
2201{
2202 switch( aValue )
2203 {
2204 case CONSTRAINT_ANCHOR::WHOLE: return types::ConstraintAnchor::CA_WHOLE;
2205 case CONSTRAINT_ANCHOR::START: return types::ConstraintAnchor::CA_START;
2206 case CONSTRAINT_ANCHOR::END: return types::ConstraintAnchor::CA_END;
2207 case CONSTRAINT_ANCHOR::MID: return types::ConstraintAnchor::CA_MID;
2208 case CONSTRAINT_ANCHOR::CENTER: return types::ConstraintAnchor::CA_CENTER;
2209 case CONSTRAINT_ANCHOR::RADIUS: return types::ConstraintAnchor::CA_RADIUS;
2210 case CONSTRAINT_ANCHOR::VERTEX: return types::ConstraintAnchor::CA_VERTEX;
2211
2212 default:
2213 wxCHECK_MSG( false, types::ConstraintAnchor::CA_UNKNOWN,
2214 "Unhandled case in ToProtoEnum<CONSTRAINT_ANCHOR>" );
2215 }
2216}
2217
2218
2219template<>
2220CONSTRAINT_ANCHOR FromProtoEnum( types::ConstraintAnchor aValue )
2221{
2222 switch( aValue )
2223 {
2224 case types::ConstraintAnchor::CA_UNKNOWN:
2225 case types::ConstraintAnchor::CA_WHOLE: return CONSTRAINT_ANCHOR::WHOLE;
2226 case types::ConstraintAnchor::CA_START: return CONSTRAINT_ANCHOR::START;
2227 case types::ConstraintAnchor::CA_END: return CONSTRAINT_ANCHOR::END;
2228 case types::ConstraintAnchor::CA_MID: return CONSTRAINT_ANCHOR::MID;
2229 case types::ConstraintAnchor::CA_CENTER: return CONSTRAINT_ANCHOR::CENTER;
2230 case types::ConstraintAnchor::CA_RADIUS: return CONSTRAINT_ANCHOR::RADIUS;
2231 case types::ConstraintAnchor::CA_VERTEX: return CONSTRAINT_ANCHOR::VERTEX;
2232
2233 default:
2234 wxCHECK_MSG( false, CONSTRAINT_ANCHOR::WHOLE,
2235 "Unhandled case in FromProtoEnum<types::ConstraintAnchor>" );
2236 }
2237}
2238
2239
2240// 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:35
@ DRCE_DISABLED_LAYER_ITEM
Definition drc_item.h:69
@ DRCE_DP_UNCOUPLED_LENGTH_TOO_LONG
Definition drc_item.h:109
@ DRCE_SKEW_OUT_OF_RANGE
Definition drc_item.h:106
@ DRCE_CREEPAGE
Definition drc_item.h:42
@ DRCE_TUNING_PROFILE_IMPLICIT_RULES
Definition drc_item.h:115
@ DRCE_HOLE_CLEARANCE
Definition drc_item.h:52
@ DRCE_SILK_EDGE_CLEARANCE
Definition drc_item.h:97
@ DRCE_FOOTPRINT_FILTERS
Definition drc_item.h:77
@ DRCE_SILK_MASK_CLEARANCE
Definition drc_item.h:95
@ DRCE_VIA_DIAMETER
Definition drc_item.h:59
@ DRCE_UNCONNECTED_ITEMS
Definition drc_item.h:37
@ DRCE_DP_GAP_OUT_OF_RANGE
Definition drc_item.h:108
@ DRCE_TRACK_WIDTH
Definition drc_item.h:53
@ DRCE_PADSTACK
Definition drc_item.h:60
@ DRCE_MIRRORED_TEXT_ON_FRONT_LAYER
Definition drc_item.h:111
@ DRCE_LIB_FOOTPRINT_ISSUES
Definition drc_item.h:80
@ DRCE_OVERLAPPING_FOOTPRINTS
Definition drc_item.h:63
@ DRCE_INVALID_OUTLINE
Definition drc_item.h:70
@ DRCE_TRACK_ON_POST_MACHINED_LAYER
Definition drc_item.h:117
@ DRCE_TEXT_ON_EDGECUTS
Definition drc_item.h:40
@ DRCE_DRILL_OUT_OF_RANGE
Definition drc_item.h:58
@ DRCE_EDGE_CLEARANCE
Definition drc_item.h:44
@ DRCE_STARVED_THERMAL
Definition drc_item.h:47
@ DRCE_TRACK_SEGMENT_LENGTH
Definition drc_item.h:55
@ DRCE_SCHEMATIC_FIELDS_PARITY
Definition drc_item.h:121
@ DRCE_MISSING_COURTYARD
Definition drc_item.h:64
@ DRCE_TRACK_ANGLE
Definition drc_item.h:54
@ DRCE_TRACK_NOT_CENTERED_ON_VIA
Definition drc_item.h:119
@ DRCE_CLEARANCE
Definition drc_item.h:41
@ DRCE_ISOLATED_COPPER
Definition drc_item.h:46
@ DRCE_GENERIC_ERROR
Definition drc_item.h:89
@ DRCE_MISSING_TUNING_PROFILE
Definition drc_item.h:114
@ DRCE_DRILLED_HOLES_TOO_CLOSE
Definition drc_item.h:50
@ DRCE_ALLOWED_ITEMS
Definition drc_item.h:39
@ DRCE_COPPER_SLIVER
Definition drc_item.h:91
@ DRCE_PTH_IN_COURTYARD
Definition drc_item.h:67
@ DRCE_MICROVIA_DRILL_OUT_OF_RANGE
Definition drc_item.h:62
@ DRCE_SHORTING_ITEMS
Definition drc_item.h:38
@ DRCE_MALFORMED_COURTYARD
Definition drc_item.h:65
@ DRCE_DANGLING_VIA
Definition drc_item.h:48
@ DRCE_PADSTACK_INVALID
Definition drc_item.h:61
@ DRCE_UNRESOLVED_VARIABLE
Definition drc_item.h:86
@ DRCE_FOOTPRINT_TYPE_MISMATCH
Definition drc_item.h:79
@ DRCE_DUPLICATE_FOOTPRINT
Definition drc_item.h:73
@ DRCE_DANGLING_TRACK
Definition drc_item.h:49
@ DRCE_TEXT_HEIGHT
Definition drc_item.h:99
@ DRCE_ASSERTION_FAILURE
Definition drc_item.h:87
@ DRCE_SOLDERMASK_BRIDGE
Definition drc_item.h:92
@ DRCE_DRILLED_HOLES_COLOCATED
Definition drc_item.h:51
@ DRCE_EXTRA_FOOTPRINT
Definition drc_item.h:74
@ DRCE_SILK_CLEARANCE
Definition drc_item.h:98
@ DRCE_LENGTH_OUT_OF_RANGE
Definition drc_item.h:102
@ DRCE_LIB_FOOTPRINT_MISMATCH
Definition drc_item.h:81
@ DRCE_NET_CONFLICT
Definition drc_item.h:75
@ DRCE_MISSING_FOOTPRINT
Definition drc_item.h:72
@ DRCE_PAD_TH_WITH_NO_HOLE
Definition drc_item.h:82
@ DRCE_FOOTPRINT
Definition drc_item.h:83
@ DRCE_UNMIRRORED_TEXT_ON_BACK_LAYER
Definition drc_item.h:112
@ DRCE_GENERIC_WARNING
Definition drc_item.h:88
@ DRCE_TEXT_THICKNESS
Definition drc_item.h:100
@ DRCE_NPTH_IN_COURTYARD
Definition drc_item.h:68
@ DRCE_CONNECTION_WIDTH
Definition drc_item.h:57
@ DRCE_SCHEMATIC_PARITY
Definition drc_item.h:76
@ DRCE_TRACKS_CROSSING
Definition drc_item.h:43
@ DRCE_VIA_COUNT_OUT_OF_RANGE
Definition drc_item.h:107
@ DRCE_ANNULAR_WIDTH
Definition drc_item.h:56
DRC_DISALLOW_T
Definition drc_rule.h:94
@ DRC_DISALLOW_PADS
Definition drc_rule.h:100
@ DRC_DISALLOW_BURIED_VIAS
Definition drc_rule.h:98
@ DRC_DISALLOW_BLIND_VIAS
Definition drc_rule.h:97
@ DRC_DISALLOW_TEXTS
Definition drc_rule.h:102
@ DRC_DISALLOW_ZONES
Definition drc_rule.h:101
@ DRC_DISALLOW_HOLES
Definition drc_rule.h:104
@ DRC_DISALLOW_GRAPHICS
Definition drc_rule.h:103
@ DRC_DISALLOW_THROUGH_VIAS
Definition drc_rule.h:95
@ DRC_DISALLOW_FOOTPRINTS
Definition drc_rule.h:105
@ DRC_DISALLOW_TRACKS
Definition drc_rule.h:99
@ DRC_DISALLOW_MICRO_VIAS
Definition drc_rule.h:96
DRC_CONSTRAINT_T
Definition drc_rule.h:49
@ ANNULAR_WIDTH_CONSTRAINT
Definition drc_rule.h:63
@ BRIDGED_MASK_CONSTRAINT
Definition drc_rule.h:88
@ COURTYARD_CLEARANCE_CONSTRAINT
Definition drc_rule.h:57
@ VIA_DIAMETER_CONSTRAINT
Definition drc_rule.h:72
@ ZONE_CONNECTION_CONSTRAINT
Definition drc_rule.h:64
@ DIFF_PAIR_GAP_CONSTRAINT
Definition drc_rule.h:78
@ NET_CHAIN_LENGTH_CONSTRAINT
Definition drc_rule.h:74
@ VIA_DANGLING_CONSTRAINT
Definition drc_rule.h:87
@ SOLDER_MASK_SLIVER_CONSTRAINT
Definition drc_rule.h:89
@ NET_CHAIN_STUB_LENGTH_CONSTRAINT
Definition drc_rule.h:75
@ DISALLOW_CONSTRAINT
Definition drc_rule.h:71
@ TRACK_WIDTH_CONSTRAINT
Definition drc_rule.h:61
@ SILK_CLEARANCE_CONSTRAINT
Definition drc_rule.h:58
@ EDGE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:55
@ MIN_RESOLVED_SPOKES_CONSTRAINT
Definition drc_rule.h:67
@ TRACK_SEGMENT_LENGTH_CONSTRAINT
Definition drc_rule.h:62
@ TEXT_THICKNESS_CONSTRAINT
Definition drc_rule.h:60
@ LENGTH_CONSTRAINT
Definition drc_rule.h:73
@ VIA_COUNT_CONSTRAINT
Definition drc_rule.h:81
@ NET_CHAIN_RETURN_PATH_CONSTRAINT
Definition drc_rule.h:76
@ PHYSICAL_HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:83
@ CLEARANCE_CONSTRAINT
Definition drc_rule.h:51
@ NULL_CONSTRAINT
Definition drc_rule.h:50
@ THERMAL_SPOKE_WIDTH_CONSTRAINT
Definition drc_rule.h:66
@ CONNECTION_WIDTH_CONSTRAINT
Definition drc_rule.h:85
@ THERMAL_RELIEF_GAP_CONSTRAINT
Definition drc_rule.h:65
@ MAX_UNCOUPLED_CONSTRAINT
Definition drc_rule.h:79
@ ASSERTION_CONSTRAINT
Definition drc_rule.h:84
@ SKEW_CONSTRAINT
Definition drc_rule.h:77
@ HOLE_CLEARANCE_CONSTRAINT
Definition drc_rule.h:53
@ SOLDER_PASTE_ABS_MARGIN_CONSTRAINT
Definition drc_rule.h:69
@ SOLDER_MASK_EXPANSION_CONSTRAINT
Definition drc_rule.h:68
@ TRACK_ANGLE_CONSTRAINT
Definition drc_rule.h:86
@ HOLE_SIZE_CONSTRAINT
Definition drc_rule.h:56
@ TEXT_HEIGHT_CONSTRAINT
Definition drc_rule.h:59
@ CREEPAGE_CONSTRAINT
Definition drc_rule.h:52
@ DIFF_PAIR_INTRA_SKEW_CONSTRAINT
Definition drc_rule.h:80
@ PHYSICAL_CLEARANCE_CONSTRAINT
Definition drc_rule.h:82
@ SOLDER_PASTE_REL_MARGIN_CONSTRAINT
Definition drc_rule.h:70
@ HOLE_TO_HOLE_CONSTRAINT
Definition drc_rule.h:54
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
CONSTRAINT_ANCHOR
Which feature of a referenced board item participates in a constraint.
@ VERTEX
An indexed rectangle corner or polygon outline vertex; pairs with CONSTRAINT_MEMBER::m_index.
@ MID
Midpoint of a segment or arc.
@ RADIUS
The radius (scalar feature) of an arc or circle.
@ WHOLE
The item as a whole (a segment as a line, a circle).
@ START
First endpoint of a segment or arc.
@ END
Second endpoint of a segment or arc.
@ CENTER
Center of an arc or circle.
PCB_CONSTRAINT_TYPE
The geometric relationship a PCB_CONSTRAINT enforces between its members.
@ CONCENTRIC
Two arcs/circles share a center.
@ SYMMETRIC
Two points are mirror images about an axis.
@ FIXED_POSITION
A point is locked at its current location.
@ VERTICAL
A segment (or two points) is vertical.
@ TANGENT
A line and a curve, or two curves, touch tangentially.
@ COINCIDENT
Two points are made to coincide.
@ PERPENDICULAR
Two segments are perpendicular.
@ FIXED_RADIUS
An arc/circle has a driving radius value.
@ HORIZONTAL
A segment (or two points) is horizontal.
@ EQUAL_RADIUS
Two arcs/circles have equal radius.
@ MIDPOINT
A point is the midpoint of a segment.
@ POINT_ON_LINE
A point lies on a segment's supporting line.
@ FIXED_LENGTH
A segment has a driving length value.
@ ANGULAR_DIMENSION
An angle between members (driving or reference).
@ COLLINEAR
Two segments lie on the same line.
@ ARC_ANGLE
An arc has a driving or reference swept-angle value.
@ PARALLEL
Two segments are parallel.
@ EQUAL_LENGTH
Two segments have equal length.
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.
THIEVING_PATTERN
Shape stamped onto the grid for a copper-thieving fill.
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:43
@ THERMAL
Use thermal relief for pads.
Definition zones.h:46
@ THT_THERMAL
Thermal relief only for THT pads.
Definition zones.h:48
@ NONE
Pads are not covered.
Definition zones.h:45
@ FULL
pads are covered by copper
Definition zones.h:47