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