KiCad PCB EDA Suite
altium_parser_pcb.h File Reference
#include <cstdint>
#include <cstring>
#include <memory>
#include <vector>
#include <footprint.h>
#include <wx/gdicmn.h>

Go to the source code of this file.

Classes

struct  ALTIUM_VERTICE
 
struct  AEXTENDED_PRIMITIVE_INFORMATION
 
struct  ABOARD6_LAYER_STACKUP
 
struct  ABOARD6
 
struct  ACLASS6
 
struct  ACOMPONENT6
 
struct  ADIMENSION6
 
struct  AMODEL
 
struct  ANET6
 
struct  APOLYGON6
 
struct  ARULE6
 
struct  AREGION6
 
struct  AARC6
 
struct  ACOMPONENTBODY6
 
struct  APAD6_SIZE_AND_SHAPE
 
struct  APAD6
 
struct  AVIA6
 
struct  ATRACK6
 
struct  ATEXT6
 
struct  AFILL6
 

Enumerations

enum class  ALTIUM_UNIT {
  UNKNOWN = 0 , INCHES = 1 , MILS = 2 , MILLIMETERS = 3 ,
  CENTIMETER = 4
}
 
enum class  ALTIUM_CLASS_KIND {
  UNKNOWN = -1 , NET_CLASS = 0 , SOURCE_SCHEMATIC_CLASS = 1 , FROM_TO = 2 ,
  PAD_CLASS = 3 , LAYER_CLASS = 4 , UNKNOWN_CLASS = 5 , DIFF_PAIR_CLASS = 6 ,
  POLYGON_CLASS = 7
}
 
enum class  ALTIUM_DIMENSION_KIND {
  UNKNOWN = 0 , LINEAR = 1 , ANGULAR = 2 , RADIAL = 3 ,
  LEADER = 4 , DATUM = 5 , BASELINE = 6 , CENTER = 7 ,
  LINEAR_DIAMETER = 8 , RADIAL_DIAMETER = 9
}
 
enum class  ALTIUM_REGION_KIND {
  UNKNOWN = -1 , COPPER = 0 , POLYGON_CUTOUT = 1 , UNKNOWN_2 = 2 ,
  UNKNOWN_3 = 3 , CAVITY_DEFINITION = 4 , BOARD_CUTOUT = 5
}
 
enum class  ALTIUM_RULE_KIND {
  UNKNOWN = 0 , CLEARANCE = 1 , DIFF_PAIR_ROUTINGS = 2 , HEIGHT = 3 ,
  HOLE_SIZE = 4 , HOLE_TO_HOLE_CLEARANCE = 5 , WIDTH = 6 , PASTE_MASK_EXPANSION = 7 ,
  PLANE_CLEARANCE = 8 , POLYGON_CONNECT = 9
}
 
enum class  ALTIUM_CONNECT_STYLE { UNKNOWN = 0 , DIRECT = 1 , RELIEF = 2 , NONE = 3 }
 
enum class  ALTIUM_RECORD {
  UNKNOWN = -1 , ARC = 1 , PAD = 2 , VIA = 3 ,
  TRACK = 4 , TEXT = 5 , FILL = 6 , REGION = 11 ,
  MODEL = 12
}
 
enum class  ALTIUM_PAD_SHAPE { UNKNOWN = 0 , CIRCLE = 1 , RECT = 2 , OCTAGONAL = 3 }
 
enum class  ALTIUM_PAD_SHAPE_ALT {
  UNKNOWN = 0 , CIRCLE = 1 , RECT = 2 , OCTAGONAL = 3 ,
  ROUNDRECT = 9
}
 
enum class  ALTIUM_PAD_HOLE_SHAPE { UNKNOWN = -1 , ROUND = 0 , SQUARE = 1 , SLOT = 2 }
 
enum class  ALTIUM_PAD_MODE { SIMPLE = 0 , TOP_MIDDLE_BOTTOM = 1 , FULL_STACK = 2 }
 
enum class  ALTIUM_MODE { UNKNOWN = -1 , NONE = 0 , RULE = 1 , MANUAL = 2 }
 
enum class  ALTIUM_POLYGON_HATCHSTYLE {
  UNKNOWN = 0 , SOLID = 1 , DEGREE_45 = 2 , DEGREE_90 = 3 ,
  HORIZONTAL = 4 , VERTICAL = 5 , NONE = 6
}
 
enum class  ALTIUM_TEXT_POSITION {
  MANUAL = 0 , LEFT_TOP = 1 , LEFT_CENTER = 2 , LEFT_BOTTOM = 3 ,
  CENTER_TOP = 4 , CENTER_CENTER = 5 , CENTER_BOTTOM = 6 , RIGHT_TOP = 7 ,
  RIGHT_CENTER = 8 , RIGHT_BOTTOM = 9
}
 
enum class  ALTIUM_TEXT_TYPE { UNKNOWN = -1 , STROKE = 0 , TRUETYPE = 1 , BARCODE = 2 }
 
enum class  ALTIUM_LAYER {
  UNKNOWN = 0 , TOP_LAYER = 1 , MID_LAYER_1 = 2 , MID_LAYER_2 = 3 ,
  MID_LAYER_3 = 4 , MID_LAYER_4 = 5 , MID_LAYER_5 = 6 , MID_LAYER_6 = 7 ,
  MID_LAYER_7 = 8 , MID_LAYER_8 = 9 , MID_LAYER_9 = 10 , MID_LAYER_10 = 11 ,
  MID_LAYER_11 = 12 , MID_LAYER_12 = 13 , MID_LAYER_13 = 14 , MID_LAYER_14 = 15 ,
  MID_LAYER_15 = 16 , MID_LAYER_16 = 17 , MID_LAYER_17 = 18 , MID_LAYER_18 = 19 ,
  MID_LAYER_19 = 20 , MID_LAYER_20 = 21 , MID_LAYER_21 = 22 , MID_LAYER_22 = 23 ,
  MID_LAYER_23 = 24 , MID_LAYER_24 = 25 , MID_LAYER_25 = 26 , MID_LAYER_26 = 27 ,
  MID_LAYER_27 = 28 , MID_LAYER_28 = 29 , MID_LAYER_29 = 30 , MID_LAYER_30 = 31 ,
  BOTTOM_LAYER = 32 , TOP_OVERLAY = 33 , BOTTOM_OVERLAY = 34 , TOP_PASTE = 35 ,
  BOTTOM_PASTE = 36 , TOP_SOLDER = 37 , BOTTOM_SOLDER = 38 , INTERNAL_PLANE_1 = 39 ,
  INTERNAL_PLANE_2 = 40 , INTERNAL_PLANE_3 = 41 , INTERNAL_PLANE_4 = 42 , INTERNAL_PLANE_5 = 43 ,
  INTERNAL_PLANE_6 = 44 , INTERNAL_PLANE_7 = 45 , INTERNAL_PLANE_8 = 46 , INTERNAL_PLANE_9 = 47 ,
  INTERNAL_PLANE_10 = 48 , INTERNAL_PLANE_11 = 49 , INTERNAL_PLANE_12 = 50 , INTERNAL_PLANE_13 = 51 ,
  INTERNAL_PLANE_14 = 52 , INTERNAL_PLANE_15 = 53 , INTERNAL_PLANE_16 = 54 , DRILL_GUIDE = 55 ,
  KEEP_OUT_LAYER = 56 , MECHANICAL_1 = 57 , MECHANICAL_2 = 58 , MECHANICAL_3 = 59 ,
  MECHANICAL_4 = 60 , MECHANICAL_5 = 61 , MECHANICAL_6 = 62 , MECHANICAL_7 = 63 ,
  MECHANICAL_8 = 64 , MECHANICAL_9 = 65 , MECHANICAL_10 = 66 , MECHANICAL_11 = 67 ,
  MECHANICAL_12 = 68 , MECHANICAL_13 = 69 , MECHANICAL_14 = 70 , MECHANICAL_15 = 71 ,
  MECHANICAL_16 = 72 , DRILL_DRAWING = 73 , MULTI_LAYER = 74 , CONNECTIONS = 75 ,
  BACKGROUND = 76 , DRC_ERROR_MARKERS = 77 , SELECTIONS = 78 , VISIBLE_GRID_1 = 79 ,
  VISIBLE_GRID_2 = 80 , PAD_HOLES = 81 , VIA_HOLES = 82
}
 
enum class  AEXTENDED_PRIMITIVE_INFORMATION_TYPE { UNKNOWN = -1 , MASK }
 

Variables

const uint16_t ALTIUM_NET_UNCONNECTED = std::numeric_limits<uint16_t>::max()
 
const uint16_t ALTIUM_COMPONENT_NONE = std::numeric_limits<uint16_t>::max()
 
const uint16_t ALTIUM_POLYGON_NONE = std::numeric_limits<uint16_t>::max()
 

Enumeration Type Documentation

◆ AEXTENDED_PRIMITIVE_INFORMATION_TYPE

Enumerator
UNKNOWN 
MASK 

Definition at line 335 of file altium_parser_pcb.h.

336{
337 UNKNOWN = -1,
338
339 MASK
340};
#define MASK(x)
@ UNKNOWN
Definition: sch_item.h:64

◆ ALTIUM_CLASS_KIND

enum class ALTIUM_CLASS_KIND
strong
Enumerator
UNKNOWN 
NET_CLASS 
SOURCE_SCHEMATIC_CLASS 
FROM_TO 
PAD_CLASS 
LAYER_CLASS 
UNKNOWN_CLASS 
DIFF_PAIR_CLASS 
POLYGON_CLASS 

Definition at line 56 of file altium_parser_pcb.h.

◆ ALTIUM_CONNECT_STYLE

enum class ALTIUM_CONNECT_STYLE
strong
Enumerator
UNKNOWN 
DIRECT 
RELIEF 
NONE 

Definition at line 112 of file altium_parser_pcb.h.

113{
114 UNKNOWN = 0,
115 DIRECT = 1,
116 RELIEF = 2,
117 NONE = 3
118};
@ NONE
Definition: kibis.h:53

◆ ALTIUM_DIMENSION_KIND

enum class ALTIUM_DIMENSION_KIND
strong
Enumerator
UNKNOWN 
LINEAR 
ANGULAR 
RADIAL 
LEADER 
DATUM 
BASELINE 
CENTER 
LINEAR_DIAMETER 
RADIAL_DIAMETER 

Definition at line 70 of file altium_parser_pcb.h.

◆ ALTIUM_LAYER

enum class ALTIUM_LAYER
strong
Enumerator
UNKNOWN 
TOP_LAYER 
MID_LAYER_1 
MID_LAYER_2 
MID_LAYER_3 
MID_LAYER_4 
MID_LAYER_5 
MID_LAYER_6 
MID_LAYER_7 
MID_LAYER_8 
MID_LAYER_9 
MID_LAYER_10 
MID_LAYER_11 
MID_LAYER_12 
MID_LAYER_13 
MID_LAYER_14 
MID_LAYER_15 
MID_LAYER_16 
MID_LAYER_17 
MID_LAYER_18 
MID_LAYER_19 
MID_LAYER_20 
MID_LAYER_21 
MID_LAYER_22 
MID_LAYER_23 
MID_LAYER_24 
MID_LAYER_25 
MID_LAYER_26 
MID_LAYER_27 
MID_LAYER_28 
MID_LAYER_29 
MID_LAYER_30 
BOTTOM_LAYER 
TOP_OVERLAY 
BOTTOM_OVERLAY 
TOP_PASTE 
BOTTOM_PASTE 
TOP_SOLDER 
BOTTOM_SOLDER 
INTERNAL_PLANE_1 
INTERNAL_PLANE_2 
INTERNAL_PLANE_3 
INTERNAL_PLANE_4 
INTERNAL_PLANE_5 
INTERNAL_PLANE_6 
INTERNAL_PLANE_7 
INTERNAL_PLANE_8 
INTERNAL_PLANE_9 
INTERNAL_PLANE_10 
INTERNAL_PLANE_11 
INTERNAL_PLANE_12 
INTERNAL_PLANE_13 
INTERNAL_PLANE_14 
INTERNAL_PLANE_15 
INTERNAL_PLANE_16 
DRILL_GUIDE 
KEEP_OUT_LAYER 
MECHANICAL_1 
MECHANICAL_2 
MECHANICAL_3 
MECHANICAL_4 
MECHANICAL_5 
MECHANICAL_6 
MECHANICAL_7 
MECHANICAL_8 
MECHANICAL_9 
MECHANICAL_10 
MECHANICAL_11 
MECHANICAL_12 
MECHANICAL_13 
MECHANICAL_14 
MECHANICAL_15 
MECHANICAL_16 
DRILL_DRAWING 
MULTI_LAYER 
CONNECTIONS 
BACKGROUND 
DRC_ERROR_MARKERS 
SELECTIONS 
VISIBLE_GRID_1 
VISIBLE_GRID_2 
PAD_HOLES 
VIA_HOLES 

Definition at line 240 of file altium_parser_pcb.h.

241{
242 UNKNOWN = 0,
243
244 TOP_LAYER = 1,
245 MID_LAYER_1 = 2,
246 MID_LAYER_2 = 3,
247 MID_LAYER_3 = 4,
248 MID_LAYER_4 = 5,
249 MID_LAYER_5 = 6,
250 MID_LAYER_6 = 7,
251 MID_LAYER_7 = 8,
252 MID_LAYER_8 = 9,
253 MID_LAYER_9 = 10,
254 MID_LAYER_10 = 11,
255 MID_LAYER_11 = 12,
256 MID_LAYER_12 = 13,
257 MID_LAYER_13 = 14,
258 MID_LAYER_14 = 15,
259 MID_LAYER_15 = 16,
260 MID_LAYER_16 = 17,
261 MID_LAYER_17 = 18,
262 MID_LAYER_18 = 19,
263 MID_LAYER_19 = 20,
264 MID_LAYER_20 = 21,
265 MID_LAYER_21 = 22,
266 MID_LAYER_22 = 23,
267 MID_LAYER_23 = 24,
268 MID_LAYER_24 = 25,
269 MID_LAYER_25 = 26,
270 MID_LAYER_26 = 27,
271 MID_LAYER_27 = 28,
272 MID_LAYER_28 = 29,
273 MID_LAYER_29 = 30,
274 MID_LAYER_30 = 31,
275 BOTTOM_LAYER = 32,
276
277 TOP_OVERLAY = 33,
278 BOTTOM_OVERLAY = 34,
279 TOP_PASTE = 35,
280 BOTTOM_PASTE = 36,
281 TOP_SOLDER = 37,
282 BOTTOM_SOLDER = 38,
283
284 INTERNAL_PLANE_1 = 39,
285 INTERNAL_PLANE_2 = 40,
286 INTERNAL_PLANE_3 = 41,
287 INTERNAL_PLANE_4 = 42,
288 INTERNAL_PLANE_5 = 43,
289 INTERNAL_PLANE_6 = 44,
290 INTERNAL_PLANE_7 = 45,
291 INTERNAL_PLANE_8 = 46,
292 INTERNAL_PLANE_9 = 47,
300
301 DRILL_GUIDE = 55,
302 KEEP_OUT_LAYER = 56,
303
304 MECHANICAL_1 = 57,
305 MECHANICAL_2 = 58,
306 MECHANICAL_3 = 59,
307 MECHANICAL_4 = 60,
308 MECHANICAL_5 = 61,
309 MECHANICAL_6 = 62,
310 MECHANICAL_7 = 63,
311 MECHANICAL_8 = 64,
312 MECHANICAL_9 = 65,
313 MECHANICAL_10 = 66,
314 MECHANICAL_11 = 67,
315 MECHANICAL_12 = 68,
316 MECHANICAL_13 = 69,
317 MECHANICAL_14 = 70,
318 MECHANICAL_15 = 71,
319 MECHANICAL_16 = 72,
320
321 DRILL_DRAWING = 73,
322 MULTI_LAYER = 74,
323 CONNECTIONS = 75,
324 BACKGROUND = 76,
326 SELECTIONS = 78,
327 VISIBLE_GRID_1 = 79,
328 VISIBLE_GRID_2 = 80,
329 PAD_HOLES = 81,
330 VIA_HOLES = 82,
331};

◆ ALTIUM_MODE

enum class ALTIUM_MODE
strong
Enumerator
UNKNOWN 
NONE 
RULE 
MANUAL 

Definition at line 166 of file altium_parser_pcb.h.

167{
168 UNKNOWN = -1,
169 NONE = 0, // TODO: correct ID?
170 RULE = 1,
171 MANUAL = 2
172};
@ MANUAL
Text placement is manually set by the user.

◆ ALTIUM_PAD_HOLE_SHAPE

enum class ALTIUM_PAD_HOLE_SHAPE
strong
Enumerator
UNKNOWN 
ROUND 
SQUARE 
SLOT 

Definition at line 151 of file altium_parser_pcb.h.

152{
153 UNKNOWN = -1,
154 ROUND = 0,
155 SQUARE = 1,
156 SLOT = 2
157};

◆ ALTIUM_PAD_MODE

enum class ALTIUM_PAD_MODE
strong
Enumerator
SIMPLE 
TOP_MIDDLE_BOTTOM 
FULL_STACK 

Definition at line 159 of file altium_parser_pcb.h.

160{
161 SIMPLE = 0,
163 FULL_STACK = 2
164};

◆ ALTIUM_PAD_SHAPE

enum class ALTIUM_PAD_SHAPE
strong
Enumerator
UNKNOWN 
CIRCLE 
RECT 
OCTAGONAL 

Definition at line 134 of file altium_parser_pcb.h.

135{
136 UNKNOWN = 0,
137 CIRCLE = 1,
138 RECT = 2,
139 OCTAGONAL = 3
140};
Represent basic circle geometry with utility geometry functions.
Definition: circle.h:33

◆ ALTIUM_PAD_SHAPE_ALT

enum class ALTIUM_PAD_SHAPE_ALT
strong
Enumerator
UNKNOWN 
CIRCLE 
RECT 
OCTAGONAL 
ROUNDRECT 

Definition at line 142 of file altium_parser_pcb.h.

143{
144 UNKNOWN = 0,
145 CIRCLE = 1,
146 RECT = 2, // TODO: valid?
147 OCTAGONAL = 3, // TODO: valid?
148 ROUNDRECT = 9
149};

◆ ALTIUM_POLYGON_HATCHSTYLE

enum class ALTIUM_POLYGON_HATCHSTYLE
strong
Enumerator
UNKNOWN 
SOLID 
DEGREE_45 
DEGREE_90 
HORIZONTAL 
VERTICAL 
NONE 

Definition at line 174 of file altium_parser_pcb.h.

◆ ALTIUM_RECORD

enum class ALTIUM_RECORD
strong
Enumerator
UNKNOWN 
ARC 
PAD 
VIA 
TRACK 
TEXT 
FILL 
REGION 
MODEL 

Definition at line 120 of file altium_parser_pcb.h.

121{
122 UNKNOWN = -1,
123
124 ARC = 1,
125 PAD = 2,
126 VIA = 3,
127 TRACK = 4,
128 TEXT = 5,
129 FILL = 6,
130 REGION = 11,
131 MODEL = 12
132};
Definition: pad.h:59
@ VIA
Normal via.
Definition: router_tool.cpp:89

◆ ALTIUM_REGION_KIND

enum class ALTIUM_REGION_KIND
strong
Enumerator
UNKNOWN 
COPPER 
POLYGON_CUTOUT 
UNKNOWN_2 
UNKNOWN_3 
CAVITY_DEFINITION 
BOARD_CUTOUT 

Definition at line 85 of file altium_parser_pcb.h.

86{
87 UNKNOWN = -1,
88
89 COPPER = 0, // KIND=0
90 POLYGON_CUTOUT = 1, // KIND=1
91 UNKNOWN_2 = 2, // KIND=2
92 UNKNOWN_3 = 3, // KIND=3
93 CAVITY_DEFINITION = 4, // KIND=4
94 BOARD_CUTOUT = 5, // KIND=0 AND ISBOARDCUTOUT=TRUE
95};

◆ ALTIUM_RULE_KIND

enum class ALTIUM_RULE_KIND
strong
Enumerator
UNKNOWN 
CLEARANCE 
DIFF_PAIR_ROUTINGS 
HEIGHT 
HOLE_SIZE 
HOLE_TO_HOLE_CLEARANCE 
WIDTH 
PASTE_MASK_EXPANSION 
PLANE_CLEARANCE 
POLYGON_CONNECT 

Definition at line 97 of file altium_parser_pcb.h.

◆ ALTIUM_TEXT_POSITION

enum class ALTIUM_TEXT_POSITION
strong
Enumerator
MANUAL 
LEFT_TOP 
LEFT_CENTER 
LEFT_BOTTOM 
CENTER_TOP 
CENTER_CENTER 
CENTER_BOTTOM 
RIGHT_TOP 
RIGHT_CENTER 
RIGHT_BOTTOM 

Definition at line 186 of file altium_parser_pcb.h.

187{
188 MANUAL = 0, // only relevant for NAMEAUTOPOSITION and COMMENTAUTOPOSITION
189 LEFT_TOP = 1,
190 LEFT_CENTER = 2,
191 LEFT_BOTTOM = 3,
192 CENTER_TOP = 4,
193 CENTER_CENTER = 5,
194 CENTER_BOTTOM = 6,
195 RIGHT_TOP = 7,
196 RIGHT_CENTER = 8,
197 RIGHT_BOTTOM = 9
198};

◆ ALTIUM_TEXT_TYPE

enum class ALTIUM_TEXT_TYPE
strong
Enumerator
UNKNOWN 
STROKE 
TRUETYPE 
BARCODE 

Definition at line 200 of file altium_parser_pcb.h.

201{
202 UNKNOWN = -1,
203
204 STROKE = 0,
205 TRUETYPE = 1,
206 BARCODE = 2
207};

◆ ALTIUM_UNIT

enum class ALTIUM_UNIT
strong
Enumerator
UNKNOWN 
INCHES 
MILS 
MILLIMETERS 
CENTIMETER 

Definition at line 46 of file altium_parser_pcb.h.

47{
48 UNKNOWN = 0,
49
50 INCHES = 1,
51 MILS = 2,
52 MILLIMETERS = 3,
53 CENTIMETER = 4
54};

Variable Documentation

◆ ALTIUM_COMPONENT_NONE

const uint16_t ALTIUM_COMPONENT_NONE = std::numeric_limits<uint16_t>::max()

Definition at line 40 of file altium_parser_pcb.h.

◆ ALTIUM_NET_UNCONNECTED

◆ ALTIUM_POLYGON_NONE