KiCad PCB EDA Suite
Loading...
Searching...
No Matches
altium_parser_pcb.h File Reference
#include <cstdint>
#include <cstring>
#include <limits>
#include <map>
#include <memory>
#include <set>
#include <vector>
#include <wx/gdicmn.h>
#include <math/vector2d.h>
#include <math/vector3.h>

Go to the source code of this file.

Classes

struct  ALTIUM_VERTICE
 
struct  AEXTENDED_PRIMITIVE_INFORMATION
 
struct  ABOARD6_LAYER_STACKUP
 
struct  ALIBRARY
 
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 , INCH = 1 , MILS = 2 , MM = 3 ,
  CM = 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 ,
  UNKNOWN_2 = 8 , LINEAR_DIAMETER = 9 , RADIAL_DIAMETER = 10
}
 
enum class  ALTIUM_REGION_KIND {
  UNKNOWN = -1 , COPPER = 0 , POLYGON_CUTOUT = 1 , DASHED_OUTLINE = 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 ,
  SOLDER_MASK_EXPANSION = 8 , PLANE_CLEARANCE = 9 , POLYGON_CONNECT = 10 , ROUTING_VIAS = 11
}
 
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_BARCODE_TYPE { CODE39 = 0 , CODE128 = 1 }
 
enum class  ALTIUM_LAYER : uint32_t {
  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 , V7_START = 0x01000000 ,
  V7_COPPER_BASE = 0x01000000 , V7_TOP_LAYER = V7_COPPER_BASE + 1 , V7_BOTTOM_LAYER = V7_COPPER_BASE + 65535 , V7_MECHANICAL_BASE = 0x01020000 ,
  V7_MECHANICAL_1 = V7_MECHANICAL_BASE + 1 , V7_MECHANICAL_17 = V7_MECHANICAL_BASE + 17 , V7_MECHANICAL_LAST = V7_MECHANICAL_BASE + 65535 , V8_OTHER_BASE = 0x01030000 ,
  V8_TOP_OVERLAY = V8_OTHER_BASE + 6 , V8_BOTTOM_OVERLAY = V8_OTHER_BASE + 7 , V8_TOP_PASTE = V8_OTHER_BASE + 8 , V8_BOTTOM_PASTE = V8_OTHER_BASE + 9 ,
  V8_TOP_SOLDER = V8_OTHER_BASE + 10 , V8_BOTTOM_SOLDER = V8_OTHER_BASE + 11 , V8_DRILL_GUIDE = V8_OTHER_BASE + 12 , V8_KEEP_OUT_LAYER = V8_OTHER_BASE + 13 ,
  V8_DRILL_DRAWING = V8_OTHER_BASE + 14 , V8_MULTI_LAYER = V8_OTHER_BASE + 15 , V8_CONNECTIONS = V8_OTHER_BASE + 16 , V8_BACKGROUND = V8_OTHER_BASE + 17 ,
  V8_DRC_ERROR_MARKERS = V8_OTHER_BASE + 18 , V8_SELECTIONS = V8_OTHER_BASE + 19 , V8_VISIBLE_GRID_1 = V8_OTHER_BASE + 20 , V8_VISIBLE_GRID_2 = V8_OTHER_BASE + 21 ,
  V8_PAD_HOLES = V8_OTHER_BASE + 22 , V8_VIA_HOLES = V8_OTHER_BASE + 23 , V8_TOP_PAD_MASTER = V8_OTHER_BASE + 24 , V8_BOTTOM_PAD_MASTER = V8_OTHER_BASE + 25 ,
  V8_DRC_DETAIL_MARKERS = V8_OTHER_BASE + 26
}
 
enum class  ALTIUM_MECHKIND {
  UNKNOWN = 0 , ASSEMBLY_TOP = 0x01 , ASSEMBLY_BOT = 0x02 , ASSEMBLY_NOTES = 0x03 ,
  BOARD = 0x04 , COATING_TOP = 0x05 , COATING_BOT = 0x06 , COMPONENT_CENTER_TOP = 0x07 ,
  COMPONENT_CENTER_BOT = 0x08 , COMPONENT_OUTLINE_TOP = 0x09 , COMPONENT_OUTLINE_BOT = 0x0A , COURTYARD_TOP = 0x0B ,
  COURTYARD_BOT = 0x0C , DESIGNATOR_TOP = 0x0D , DESIGNATOR_BOT = 0x0E , DIMENSIONS = 0x0F ,
  DIMENSIONS_TOP = 0x10 , DIMENSIONS_BOT = 0x11 , FAB_NOTES = 0x12 , GLUE_POINTS_TOP = 0x13 ,
  GLUE_POINTS_BOT = 0x14 , GOLD_PLATING_TOP = 0x15 , GOLD_PLATING_BOT = 0x16 , VALUE_TOP = 0x17 ,
  VALUE_BOT = 0x18 , V_CUT = 0x19 , BODY_3D_TOP = 0x1A , BODY_3D_BOT = 0x1B ,
  ROUTE_TOOL_PATH = 0x1C , SHEET = 0x1D , BOARD_SHAPE = 0x1E
}
 
enum class  AEXTENDED_PRIMITIVE_INFORMATION_TYPE { UNKNOWN = -1 , MASK }
 

Functions

bool altiumScopeExprMatchesPolygon (const wxString &aExpr)
 Return true if an Altium rule scope expression targets polygon pour primitives (matches InPolygon, InPoly, IsPolygon, or IsPoly).
 
const ARULE6selectAltiumPolygonRule (const std::vector< ARULE6 > &aRulesByPriorityAsc)
 Select the highest Altium-priority rule whose scope references polygons.
 
bool altiumViaSideIsTented (bool aTentFlag, bool aManual, bool aFromHole, uint32_t aHoleSize, int32_t aMaskExpansion, int aLandDiameter)
 Decide whether one side of an Altium via should be tented when imported into KiCad.
 

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()
 
const uint16_t ALTIUM_POLYGON_BOARD = std::numeric_limits<uint16_t>::max() - 1
 

Enumeration Type Documentation

◆ AEXTENDED_PRIMITIVE_INFORMATION_TYPE

Enumerator
UNKNOWN 
MASK 

Definition at line 440 of file altium_parser_pcb.h.

◆ ALTIUM_BARCODE_TYPE

enum class ALTIUM_BARCODE_TYPE
strong
Enumerator
CODE39 
CODE128 

Definition at line 221 of file altium_parser_pcb.h.

◆ 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 65 of file altium_parser_pcb.h.

◆ ALTIUM_CONNECT_STYLE

enum class ALTIUM_CONNECT_STYLE
strong
Enumerator
UNKNOWN 
DIRECT 
RELIEF 
NONE 

Definition at line 124 of file altium_parser_pcb.h.

◆ ALTIUM_DIMENSION_KIND

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

Definition at line 79 of file altium_parser_pcb.h.

◆ ALTIUM_LAYER

enum class ALTIUM_LAYER : uint32_t
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 
V7_START 
V7_COPPER_BASE 
V7_TOP_LAYER 
V7_BOTTOM_LAYER 
V7_MECHANICAL_BASE 
V7_MECHANICAL_1 
V7_MECHANICAL_17 
V7_MECHANICAL_LAST 
V8_OTHER_BASE 
V8_TOP_OVERLAY 
V8_BOTTOM_OVERLAY 
V8_TOP_PASTE 
V8_BOTTOM_PASTE 
V8_TOP_SOLDER 
V8_BOTTOM_SOLDER 
V8_DRILL_GUIDE 
V8_KEEP_OUT_LAYER 
V8_DRILL_DRAWING 
V8_MULTI_LAYER 
V8_CONNECTIONS 
V8_BACKGROUND 
V8_DRC_ERROR_MARKERS 
V8_SELECTIONS 
V8_VISIBLE_GRID_1 
V8_VISIBLE_GRID_2 
V8_PAD_HOLES 
V8_VIA_HOLES 
V8_TOP_PAD_MASTER 
V8_BOTTOM_PAD_MASTER 
V8_DRC_DETAIL_MARKERS 

Definition at line 258 of file altium_parser_pcb.h.

◆ ALTIUM_MECHKIND

enum class ALTIUM_MECHKIND
strong
Enumerator
UNKNOWN 
ASSEMBLY_TOP 
ASSEMBLY_BOT 
ASSEMBLY_NOTES 
BOARD 
COATING_TOP 
COATING_BOT 
COMPONENT_CENTER_TOP 
COMPONENT_CENTER_BOT 
COMPONENT_OUTLINE_TOP 
COMPONENT_OUTLINE_BOT 
COURTYARD_TOP 
COURTYARD_BOT 
DESIGNATOR_TOP 
DESIGNATOR_BOT 
DIMENSIONS 
DIMENSIONS_TOP 
DIMENSIONS_BOT 
FAB_NOTES 
GLUE_POINTS_TOP 
GLUE_POINTS_BOT 
GOLD_PLATING_TOP 
GOLD_PLATING_BOT 
VALUE_TOP 
VALUE_BOT 
V_CUT 
BODY_3D_TOP 
BODY_3D_BOT 
ROUTE_TOOL_PATH 
SHEET 
BOARD_SHAPE 

Definition at line 388 of file altium_parser_pcb.h.

◆ ALTIUM_MODE

enum class ALTIUM_MODE
strong
Enumerator
UNKNOWN 
NONE 
RULE 
MANUAL 

Definition at line 178 of file altium_parser_pcb.h.

◆ ALTIUM_PAD_HOLE_SHAPE

enum class ALTIUM_PAD_HOLE_SHAPE
strong
Enumerator
UNKNOWN 
ROUND 
SQUARE 
SLOT 

Definition at line 163 of file altium_parser_pcb.h.

◆ ALTIUM_PAD_MODE

enum class ALTIUM_PAD_MODE
strong
Enumerator
SIMPLE 
TOP_MIDDLE_BOTTOM 
FULL_STACK 

Definition at line 171 of file altium_parser_pcb.h.

◆ ALTIUM_PAD_SHAPE

enum class ALTIUM_PAD_SHAPE
strong
Enumerator
UNKNOWN 
CIRCLE 
RECT 
OCTAGONAL 

Definition at line 146 of file altium_parser_pcb.h.

◆ ALTIUM_PAD_SHAPE_ALT

enum class ALTIUM_PAD_SHAPE_ALT
strong
Enumerator
UNKNOWN 
CIRCLE 
RECT 
OCTAGONAL 
ROUNDRECT 

Definition at line 154 of file altium_parser_pcb.h.

◆ ALTIUM_POLYGON_HATCHSTYLE

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

Definition at line 186 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 132 of file altium_parser_pcb.h.

◆ ALTIUM_REGION_KIND

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

Definition at line 95 of file altium_parser_pcb.h.

◆ 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 
SOLDER_MASK_EXPANSION 
PLANE_CLEARANCE 
POLYGON_CONNECT 
ROUTING_VIAS 

Definition at line 107 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 198 of file altium_parser_pcb.h.

◆ ALTIUM_TEXT_TYPE

enum class ALTIUM_TEXT_TYPE
strong
Enumerator
UNKNOWN 
STROKE 
TRUETYPE 
BARCODE 

Definition at line 212 of file altium_parser_pcb.h.

◆ ALTIUM_UNIT

enum class ALTIUM_UNIT
strong
Enumerator
UNKNOWN 
INCH 
MILS 
MM 
CM 

Definition at line 55 of file altium_parser_pcb.h.

Function Documentation

◆ altiumScopeExprMatchesPolygon()

bool altiumScopeExprMatchesPolygon ( const wxString & aExpr)

Return true if an Altium rule scope expression targets polygon pour primitives (matches InPolygon, InPoly, IsPolygon, or IsPoly).

Definition at line 63 of file altium_parser_pcb.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), and selectAltiumPolygonRule().

◆ altiumViaSideIsTented()

bool altiumViaSideIsTented ( bool aTentFlag,
bool aManual,
bool aFromHole,
uint32_t aHoleSize,
int32_t aMaskExpansion,
int aLandDiameter )

Decide whether one side of an Altium via should be tented when imported into KiCad.

Returns the explicit Altium tent flag, except when the via uses a manual solder mask expansion measured from the hole edge. KiCad vias cannot represent a hole-referenced opening, so when the resulting opening (hole + 2 * expansion) does not clear the via land the pad copper is covered and the side is treated as tented.

Parameters
aTentFlagexplicit Altium tent flag for this side
aManualtrue if the via carries a manual solder mask expansion
aFromHoletrue if the manual expansion is measured from the hole edge
aHoleSizevia hole diameter (KiCad nm)
aMaskExpansionsolder mask expansion for this side (KiCad nm, may be negative)
aLandDiametervia land (copper) diameter for this side (KiCad nm)

Definition at line 86 of file altium_parser_pcb.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), and ALTIUM_PCB::ParseVias6Data().

◆ selectAltiumPolygonRule()

const ARULE6 * selectAltiumPolygonRule ( const std::vector< ARULE6 > & aRulesByPriorityAsc)

Select the highest Altium-priority rule whose scope references polygons.

Altium priority 1 is the most specific; larger numeric values are more general. aRulesByPriorityAsc must be sorted by ARULE6::priority in ascending numeric order so the first polygon-scoped match is also the highest Altium priority.

Returns nullptr if no rule references polygons.

Definition at line 71 of file altium_parser_pcb.cpp.

References altiumScopeExprMatchesPolygon().

Referenced by BOOST_AUTO_TEST_CASE(), and ALTIUM_PCB::GetRuleForPolygon().

Variable Documentation

◆ ALTIUM_COMPONENT_NONE

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

Definition at line 46 of file altium_parser_pcb.h.

◆ ALTIUM_NET_UNCONNECTED

◆ ALTIUM_POLYGON_BOARD

const uint16_t ALTIUM_POLYGON_BOARD = std::numeric_limits<uint16_t>::max() - 1

◆ ALTIUM_POLYGON_NONE