KiCad PCB EDA Suite
layer_ids.h File Reference
#include <set>
#include <vector>
#include <bitset>
#include <stdexcept>
#include <wx/string.h>

Go to the source code of this file.

Classes

class  GAL_SET
 Helper for storing and iterating over GAL_LAYER_IDs. More...
 
class  LSEQ
 LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs. More...
 
class  LSET
 LSET is a set of PCB_LAYER_IDs. More...
 

Macros

#define MAX_CU_LAYERS   (B_Cu - F_Cu + 1)
 
#define NETNAMES_LAYER_INDEX(layer)   ( NETNAMES_LAYER_ID_START + layer )
 Macro for obtaining netname layer for a given PCB layer. More...
 
#define GAL_LAYER_INDEX(x)   ( x - GAL_LAYER_ID_START )
 Use this macro to convert a GAL layer to a 0-indexed offset from LAYER_VIAS. More...
 
#define ZONE_LAYER_FOR(copperLayer)   ( LAYER_ZONE_START + copperLayer )
 Macro for getting the zone layer for a given copper layer. More...
 
#define SCH_LAYER_ID_COUNT   ( SCH_LAYER_ID_END - SCH_LAYER_ID_START )
 
#define SCH_LAYER_INDEX(x)   ( x - SCH_LAYER_ID_START )
 
#define GERBER_DRAWLAYERS_COUNT   PCB_LAYER_ID_COUNT
 
#define GERBER_DRAW_LAYER(x)   ( GERBVIEW_LAYER_ID_START + x )
 
#define GERBER_DCODE_LAYER(x)   ( GERBER_DRAWLAYERS_COUNT + x )
 
#define GERBER_DRAW_LAYER_INDEX(x)   ( x - GERBVIEW_LAYER_ID_START )
 
#define LAYER_ID_COUNT   LAYER_3D_END
 Must update this if you add any enums after GerbView! More...
 
#define MIN_VISIBILITY_MASK
 

Typedefs

typedef int LAYER_NUM
 This can be replaced with int and removed. More...
 
typedef std::bitset< GAL_LAYER_ID_COUNTGAL_BASE_SET
 
typedef std::vector< PCB_LAYER_IDBASE_SEQ
 A sequence of layers, a sequence provides a certain order. More...
 
typedef std::bitset< PCB_LAYER_ID_COUNTBASE_SET
 

Enumerations

enum  PCB_LAYER_ID : int {
  UNDEFINED_LAYER = -1, UNSELECTED_LAYER = -2, PCBNEW_LAYER_ID_START = 0, F_Cu = PCBNEW_LAYER_ID_START,
  In1_Cu, In2_Cu, In3_Cu, In4_Cu,
  In5_Cu, In6_Cu, In7_Cu, In8_Cu,
  In9_Cu, In10_Cu, In11_Cu, In12_Cu,
  In13_Cu, In14_Cu, In15_Cu, In16_Cu,
  In17_Cu, In18_Cu, In19_Cu, In20_Cu,
  In21_Cu, In22_Cu, In23_Cu, In24_Cu,
  In25_Cu, In26_Cu, In27_Cu, In28_Cu,
  In29_Cu, In30_Cu, B_Cu, B_Adhes,
  F_Adhes, B_Paste, F_Paste, B_SilkS,
  F_SilkS, B_Mask, F_Mask, Dwgs_User,
  Cmts_User, Eco1_User, Eco2_User, Edge_Cuts,
  Margin, B_CrtYd, F_CrtYd, B_Fab,
  F_Fab, User_1, User_2, User_3,
  User_4, User_5, User_6, User_7,
  User_8, User_9, Rescue, PCB_LAYER_ID_COUNT
}
 A quick note on layer IDs: More...
 
enum  FLASHING { FLASHING::DEFAULT, FLASHING::ALWAYS_FLASHED, FLASHING::NEVER_FLASHED }
 Enum used during connectivity building to ensure we do not query connectivity while building the database. More...
 
enum  NETNAMES_LAYER_ID : int {
  NETNAMES_LAYER_ID_START = PCB_LAYER_ID_COUNT, NETNAMES_LAYER_ID_RESERVED = NETNAMES_LAYER_ID_START + PCB_LAYER_ID_COUNT, LAYER_PAD_FR_NETNAMES, LAYER_PAD_BK_NETNAMES,
  LAYER_PAD_NETNAMES, LAYER_VIA_NETNAMES, NETNAMES_LAYER_ID_END
}
 Dedicated layers for net names used in Pcbnew. More...
 
enum  GAL_LAYER_ID : int {
  GAL_LAYER_ID_START = NETNAMES_LAYER_ID_END, LAYER_VIAS = GAL_LAYER_ID_START + 0, LAYER_VIA_MICROVIA = GAL_LAYER_ID_START + 1, LAYER_VIA_BBLIND = GAL_LAYER_ID_START + 2,
  LAYER_VIA_THROUGH = GAL_LAYER_ID_START + 3, LAYER_NON_PLATEDHOLES = GAL_LAYER_ID_START + 4, LAYER_MOD_TEXT = GAL_LAYER_ID_START + 5, LAYER_MOD_TEXT_INVISIBLE = GAL_LAYER_ID_START + 7,
  LAYER_ANCHOR = GAL_LAYER_ID_START + 8, LAYER_PAD_FR = GAL_LAYER_ID_START + 9, LAYER_PAD_BK = GAL_LAYER_ID_START + 10, LAYER_RATSNEST = GAL_LAYER_ID_START + 11,
  LAYER_GRID = GAL_LAYER_ID_START + 12, LAYER_GRID_AXES = GAL_LAYER_ID_START + 13, LAYER_NO_CONNECTS = GAL_LAYER_ID_START + 14, LAYER_MOD_FR = GAL_LAYER_ID_START + 15,
  LAYER_MOD_BK = GAL_LAYER_ID_START + 16, LAYER_MOD_VALUES = GAL_LAYER_ID_START + 17, LAYER_MOD_REFERENCES = GAL_LAYER_ID_START + 18, LAYER_TRACKS = GAL_LAYER_ID_START + 19,
  LAYER_PADS_TH = GAL_LAYER_ID_START + 20, LAYER_PAD_PLATEDHOLES = GAL_LAYER_ID_START + 21, LAYER_VIA_HOLES = GAL_LAYER_ID_START + 22, LAYER_DRC_ERROR = GAL_LAYER_ID_START + 23,
  LAYER_DRAWINGSHEET = GAL_LAYER_ID_START + 24, LAYER_GP_OVERLAY = GAL_LAYER_ID_START + 25, LAYER_SELECT_OVERLAY = GAL_LAYER_ID_START + 26, LAYER_PCB_BACKGROUND = GAL_LAYER_ID_START + 27,
  LAYER_CURSOR = GAL_LAYER_ID_START + 28, LAYER_AUX_ITEMS = GAL_LAYER_ID_START + 29, LAYER_DRAW_BITMAPS = GAL_LAYER_ID_START + 30, GAL_LAYER_ID_BITMASK_END = GAL_LAYER_ID_START + 31,
  LAYER_PADS = GAL_LAYER_ID_START + 32, LAYER_ZONES = GAL_LAYER_ID_START + 33, LAYER_PAD_HOLEWALLS = GAL_LAYER_ID_START + 34, LAYER_VIA_HOLEWALLS = GAL_LAYER_ID_START + 35,
  LAYER_DRC_WARNING = GAL_LAYER_ID_START + 36, LAYER_DRC_EXCLUSION = GAL_LAYER_ID_START + 37, LAYER_MARKER_SHADOWS = GAL_LAYER_ID_START + 38, LAYER_DRAWINGSHEET_PAGE1,
  LAYER_DRAWINGSHEET_PAGEn, LAYER_ZONE_START, LAYER_ZONE_END = LAYER_ZONE_START + PCB_LAYER_ID_COUNT, GAL_LAYER_ID_END
}
 GAL layers are "virtual" layers, i.e. More...
 
enum  SCH_LAYER_ID : int {
  SCH_LAYER_ID_START = GAL_LAYER_ID_END, LAYER_WIRE = SCH_LAYER_ID_START, LAYER_BUS, LAYER_JUNCTION,
  LAYER_LOCLABEL, LAYER_GLOBLABEL, LAYER_HIERLABEL, LAYER_PINNUM,
  LAYER_PINNAM, LAYER_REFERENCEPART, LAYER_VALUEPART, LAYER_FIELDS,
  LAYER_DEVICE, LAYER_NOTES, LAYER_PIN, LAYER_SHEET,
  LAYER_SHEETNAME, LAYER_SHEETFILENAME, LAYER_SHEETFIELDS, LAYER_SHEETLABEL,
  LAYER_NOCONNECT, LAYER_DANGLING, LAYER_ERC_WARN, LAYER_ERC_ERR,
  LAYER_DEVICE_BACKGROUND, LAYER_SHEET_BACKGROUND, LAYER_SCHEMATIC_GRID, LAYER_SCHEMATIC_GRID_AXES,
  LAYER_SCHEMATIC_BACKGROUND, LAYER_SCHEMATIC_CURSOR, LAYER_BRIGHTENED, LAYER_HIDDEN,
  LAYER_SELECTION_SHADOWS, LAYER_SCHEMATIC_DRAWINGSHEET, LAYER_BUS_JUNCTION, LAYER_SCHEMATIC_AUX_ITEMS,
  LAYER_SCHEMATIC_ANCHOR, SCH_LAYER_ID_END
}
 Eeschema drawing layers. More...
 
enum  GERBVIEW_LAYER_ID : int {
  GERBVIEW_LAYER_ID_START = SCH_LAYER_ID_END, GERBVIEW_LAYER_ID_RESERVED = GERBVIEW_LAYER_ID_START + ( 2 * GERBER_DRAWLAYERS_COUNT ), LAYER_DCODES, LAYER_NEGATIVE_OBJECTS,
  LAYER_GERBVIEW_GRID, LAYER_GERBVIEW_AXES, LAYER_GERBVIEW_BACKGROUND, LAYER_GERBVIEW_DRAWINGSHEET,
  GERBVIEW_LAYER_ID_END
}
 GerbView draw layers. More...
 
enum  LAYER_3D_ID : int {
  LAYER_3D_START = GERBVIEW_LAYER_ID_END, LAYER_3D_BACKGROUND_BOTTOM, LAYER_3D_BACKGROUND_TOP, LAYER_3D_BOARD,
  LAYER_3D_COPPER, LAYER_3D_SILKSCREEN_BOTTOM, LAYER_3D_SILKSCREEN_TOP, LAYER_3D_SOLDERMASK_BOTTOM,
  LAYER_3D_SOLDERMASK_TOP, LAYER_3D_SOLDERPASTE, LAYER_3D_END = LAYER_3D_SOLDERPASTE
}
 3D Viewer virtual layers for color settings More...
 

Functions

GAL_LAYER_ID operator++ (GAL_LAYER_ID &a)
 
GAL_LAYER_ID ToGalLayer (int aInteger)
 
GAL_LAYER_ID operator+ (const GAL_LAYER_ID &a, int b)
 Used for via types. More...
 
SCH_LAYER_ID operator++ (SCH_LAYER_ID &a)
 
wxString LayerName (int aLayer)
 Returns the string equivalent of a given layer. More...
 
bool IsValidLayer (LAYER_NUM aLayerId)
 Test whether a given integer is a valid layer index, i.e. More...
 
bool IsPcbLayer (LAYER_NUM aLayer)
 Test whether a layer is a valid layer for Pcbnew. More...
 
bool IsCopperLayer (LAYER_NUM aLayerId)
 Tests whether a layer is a copper layer. More...
 
bool IsNonCopperLayer (LAYER_NUM aLayerId)
 Test whether a layer is a non copper layer. More...
 
bool IsCopperLayer (LAYER_NUM aLayerId, bool aIncludeSyntheticCopperLayers)
 Tests whether a layer is a copper layer, optionally including synthetic copper layers such as LAYER_VIA_THROUGH, LAYER_PAD_FR, etc. More...
 
bool IsViaPadLayer (LAYER_NUM aLayer)
 
bool IsHoleLayer (LAYER_NUM aLayer)
 
bool IsUserLayer (PCB_LAYER_ID aLayerId)
 Test whether a layer is a non copper and a non tech layer. More...
 
bool IsFrontLayer (PCB_LAYER_ID aLayerId)
 Layer classification: check if it's a front layer. More...
 
bool IsBackLayer (PCB_LAYER_ID aLayerId)
 Layer classification: check if it's a back layer. More...
 
PCB_LAYER_ID FlipLayer (PCB_LAYER_ID aLayerId, int aCopperLayersCount=0)
 
LSET FlipLayerMask (LSET aMask, int aCopperLayersCount=0)
 Calculate the mask layer when flipping a footprint. More...
 
int GetNetnameLayer (int aLayer)
 Returns a netname layer corresponding to the given layer. More...
 
bool IsNetnameLayer (LAYER_NUM aLayer)
 Test whether a layer is a netname layer. More...
 
bool IsZoneLayer (LAYER_NUM aLayer)
 
bool IsDCodeLayer (int aLayer)
 
bool IsNetCopperLayer (LAYER_NUM aLayer)
 Checks if the given layer is "net copper", meaning it is eligible for net coloring. More...
 
PCB_LAYER_ID ToLAYER_ID (int aLayer)
 

Variables

constexpr int GAL_LAYER_ID_COUNT = GAL_LAYER_ID_END - GAL_LAYER_ID_START
 

Macro Definition Documentation

◆ GAL_LAYER_INDEX

#define GAL_LAYER_INDEX (   x)    ( x - GAL_LAYER_ID_START )

Use this macro to convert a GAL layer to a 0-indexed offset from LAYER_VIAS.

Definition at line 260 of file layer_ids.h.

◆ GERBER_DCODE_LAYER

#define GERBER_DCODE_LAYER (   x)    ( GERBER_DRAWLAYERS_COUNT + x )

Definition at line 412 of file layer_ids.h.

◆ GERBER_DRAW_LAYER

#define GERBER_DRAW_LAYER (   x)    ( GERBVIEW_LAYER_ID_START + x )

Definition at line 410 of file layer_ids.h.

◆ GERBER_DRAW_LAYER_INDEX

#define GERBER_DRAW_LAYER_INDEX (   x)    ( x - GERBVIEW_LAYER_ID_START )

Definition at line 414 of file layer_ids.h.

◆ GERBER_DRAWLAYERS_COUNT

#define GERBER_DRAWLAYERS_COUNT   PCB_LAYER_ID_COUNT

Definition at line 390 of file layer_ids.h.

◆ LAYER_ID_COUNT

#define LAYER_ID_COUNT   LAYER_3D_END

Must update this if you add any enums after GerbView!

Definition at line 436 of file layer_ids.h.

◆ MAX_CU_LAYERS

#define MAX_CU_LAYERS   (B_Cu - F_Cu + 1)

Definition at line 147 of file layer_ids.h.

◆ MIN_VISIBILITY_MASK

#define MIN_VISIBILITY_MASK
Value:
currently selected items overlay
Definition: layer_ids.h:226
to draw via holes (pad holes do not use this layer)
Definition: layer_ids.h:222
#define GAL_LAYER_INDEX(x)
Use this macro to convert a GAL layer to a 0-indexed offset from LAYER_VIAS.
Definition: layer_ids.h:260
general purpose overlay
Definition: layer_ids.h:225
to draw pad holes (plated)
Definition: layer_ids.h:221

Definition at line 450 of file layer_ids.h.

◆ NETNAMES_LAYER_INDEX

#define NETNAMES_LAYER_INDEX (   layer)    ( NETNAMES_LAYER_ID_START + layer )

Macro for obtaining netname layer for a given PCB layer.

Definition at line 181 of file layer_ids.h.

◆ SCH_LAYER_ID_COUNT

#define SCH_LAYER_ID_COUNT   ( SCH_LAYER_ID_END - SCH_LAYER_ID_START )

Definition at line 379 of file layer_ids.h.

◆ SCH_LAYER_INDEX

#define SCH_LAYER_INDEX (   x)    ( x - SCH_LAYER_ID_START )

Definition at line 381 of file layer_ids.h.

◆ ZONE_LAYER_FOR

#define ZONE_LAYER_FOR (   copperLayer)    ( LAYER_ZONE_START + copperLayer )

Macro for getting the zone layer for a given copper layer.

Definition at line 263 of file layer_ids.h.

Typedef Documentation

◆ BASE_SEQ

typedef std::vector<PCB_LAYER_ID> BASE_SEQ

A sequence of layers, a sequence provides a certain order.

Definition at line 458 of file layer_ids.h.

◆ BASE_SET

typedef std::bitset<PCB_LAYER_ID_COUNT> BASE_SET

Definition at line 507 of file layer_ids.h.

◆ GAL_BASE_SET

typedef std::bitset<GAL_LAYER_ID_COUNT> GAL_BASE_SET

Definition at line 287 of file layer_ids.h.

◆ LAYER_NUM

typedef int LAYER_NUM

This can be replaced with int and removed.

Until then, it is something you can increment, and its meaning is only advisory but can extend beyond PCB layers into view layers and gerber layers.

Definition at line 41 of file layer_ids.h.

Enumeration Type Documentation

◆ FLASHING

enum FLASHING
strong

Enum used during connectivity building to ensure we do not query connectivity while building the database.

Enumerator
DEFAULT 
ALWAYS_FLASHED 
NEVER_FLASHED 

Definition at line 153 of file layer_ids.h.

154 {
155  DEFAULT, // Flashing follows connectivity
156  ALWAYS_FLASHED, // Always flashed for connectivity
157  NEVER_FLASHED, // Never flashed for connectivity
158 };
Default property for a given type.
Definition: property.h:52

◆ GAL_LAYER_ID

enum GAL_LAYER_ID : int

GAL layers are "virtual" layers, i.e.

not tied into design data. Some layers here are shared between applications.

NOTE: Be very careful where you add new layers here. Layers below GAL_LAYER_ID_BITMASK_END must never be re-ordered and new layers must always be added after this value, because the layers before this value are mapped to bit locations in legacy board files.

The values in this enum that are used to store visibility state are explicitly encoded with an offset from GAL_LAYER_ID_START, which is explicitly encoded itself. The exact value of GAL_LAYER_ID_START is not that sensitive, but the offsets should never be changed or else any existing visibility settings will be disrupted.

Enumerator
GAL_LAYER_ID_START 
LAYER_VIAS 

Meta control for all vias opacity/visibility.

LAYER_VIA_MICROVIA 

to draw micro vias

LAYER_VIA_BBLIND 

to draw blind/buried vias

LAYER_VIA_THROUGH 

to draw usual through hole vias

LAYER_NON_PLATEDHOLES 

handle color for not plated holes (holes, not pads)

LAYER_MOD_TEXT 
LAYER_MOD_TEXT_INVISIBLE 

text marked as invisible

LAYER_ANCHOR 

anchor of items having an anchor point (texts, footprints)

LAYER_PAD_FR 

smd pads, front layer

LAYER_PAD_BK 

smd pads, back layer

LAYER_RATSNEST 
LAYER_GRID 
LAYER_GRID_AXES 
LAYER_NO_CONNECTS 

show a marker on pads with no nets

LAYER_MOD_FR 

show footprints on front

LAYER_MOD_BK 

show footprints on back

LAYER_MOD_VALUES 

show footprints values (when texts are visible)

LAYER_MOD_REFERENCES 

show footprints references (when texts are visible)

LAYER_TRACKS 
LAYER_PADS_TH 

multilayer pads, usually with holes

LAYER_PAD_PLATEDHOLES 

to draw pad holes (plated)

LAYER_VIA_HOLES 

to draw via holes (pad holes do not use this layer)

LAYER_DRC_ERROR 

layer for drc markers with SEVERITY_ERROR

LAYER_DRAWINGSHEET 

drawingsheet frame and titleblock

LAYER_GP_OVERLAY 

general purpose overlay

LAYER_SELECT_OVERLAY 

currently selected items overlay

LAYER_PCB_BACKGROUND 

PCB background color.

LAYER_CURSOR 

PCB cursor.

LAYER_AUX_ITEMS 

Auxiliary items (guides, rule, etc)

LAYER_DRAW_BITMAPS 

to handle and draw images bitmaps

GAL_LAYER_ID_BITMASK_END 

This is the end of the layers used for visibility bit masks in Pcbnew.

LAYER_PADS 

Meta control for all pads opacity/visibility (color ignored)

LAYER_ZONES 

Control for copper zone opacity/visibility (color ignored)

LAYER_PAD_HOLEWALLS 
LAYER_VIA_HOLEWALLS 
LAYER_DRC_WARNING 

layer for drc markers with SEVERITY_WARNING

LAYER_DRC_EXCLUSION 

layer for drc markers which have been individually excluded

LAYER_MARKER_SHADOWS 

shadows for drc markers

LAYER_DRAWINGSHEET_PAGE1 

for drawingsheetEditor previewing

LAYER_DRAWINGSHEET_PAGEn 

for drawingsheetEditor previewing

LAYER_ZONE_START 

Virtual layers for stacking zones and tracks on a given copper layer.

LAYER_ZONE_END 
GAL_LAYER_ID_END 

Definition at line 196 of file layer_ids.h.

196  : int
197 {
199 
206 // LAYER_MOD_TEXT_BK deprecated + 6,
231 
234 
235  // Layers in this section have visibility controls but were not present in legacy board files.
236 
239 
245 
246  // Add layers below this point that do not have visibility controls, so don't need explicit
247  // enum values
248 
251 
255 
257 };
currently selected items overlay
Definition: layer_ids.h:226
smd pads, front layer
Definition: layer_ids.h:209
to draw micro vias
Definition: layer_ids.h:201
Auxiliary items (guides, rule, etc)
Definition: layer_ids.h:229
layer for drc markers with SEVERITY_ERROR
Definition: layer_ids.h:223
for drawingsheetEditor previewing
Definition: layer_ids.h:249
Meta control for all pads opacity/visibility (color ignored)
Definition: layer_ids.h:237
PCB cursor.
Definition: layer_ids.h:228
show footprints values (when texts are visible)
Definition: layer_ids.h:217
smd pads, back layer
Definition: layer_ids.h:210
anchor of items having an anchor point (texts, footprints)
Definition: layer_ids.h:208
show footprints on back
Definition: layer_ids.h:216
to draw via holes (pad holes do not use this layer)
Definition: layer_ids.h:222
Control for copper zone opacity/visibility (color ignored)
Definition: layer_ids.h:238
This is the end of the layers used for visibility bit masks in Pcbnew.
Definition: layer_ids.h:233
to draw usual through hole vias
Definition: layer_ids.h:203
for drawingsheetEditor previewing
Definition: layer_ids.h:250
handle color for not plated holes (holes, not pads)
Definition: layer_ids.h:204
Meta control for all vias opacity/visibility.
Definition: layer_ids.h:200
shadows for drc markers
Definition: layer_ids.h:244
text marked as invisible
Definition: layer_ids.h:207
show footprints on front
Definition: layer_ids.h:215
Virtual layers for stacking zones and tracks on a given copper layer.
Definition: layer_ids.h:253
to handle and draw images bitmaps
Definition: layer_ids.h:230
drawingsheet frame and titleblock
Definition: layer_ids.h:224
show a marker on pads with no nets
Definition: layer_ids.h:214
show footprints references (when texts are visible)
Definition: layer_ids.h:218
multilayer pads, usually with holes
Definition: layer_ids.h:220
to draw blind/buried vias
Definition: layer_ids.h:202
layer for drc markers which have been individually excluded
Definition: layer_ids.h:243
general purpose overlay
Definition: layer_ids.h:225
layer for drc markers with SEVERITY_WARNING
Definition: layer_ids.h:242
PCB background color.
Definition: layer_ids.h:227
to draw pad holes (plated)
Definition: layer_ids.h:221

◆ GERBVIEW_LAYER_ID

enum GERBVIEW_LAYER_ID : int

GerbView draw layers.

Enumerator
GERBVIEW_LAYER_ID_START 
GERBVIEW_LAYER_ID_RESERVED 

GerbView draw layers and d-code layers.

LAYER_DCODES 
LAYER_NEGATIVE_OBJECTS 
LAYER_GERBVIEW_GRID 
LAYER_GERBVIEW_AXES 
LAYER_GERBVIEW_BACKGROUND 
LAYER_GERBVIEW_DRAWINGSHEET 
GERBVIEW_LAYER_ID_END 

Definition at line 393 of file layer_ids.h.

◆ LAYER_3D_ID

enum LAYER_3D_ID : int

3D Viewer virtual layers for color settings

Enumerator
LAYER_3D_START 
LAYER_3D_BACKGROUND_BOTTOM 
LAYER_3D_BACKGROUND_TOP 
LAYER_3D_BOARD 
LAYER_3D_COPPER 
LAYER_3D_SILKSCREEN_BOTTOM 
LAYER_3D_SILKSCREEN_TOP 
LAYER_3D_SOLDERMASK_BOTTOM 
LAYER_3D_SOLDERMASK_TOP 
LAYER_3D_SOLDERPASTE 
LAYER_3D_END 

Definition at line 418 of file layer_ids.h.

◆ NETNAMES_LAYER_ID

enum NETNAMES_LAYER_ID : int

Dedicated layers for net names used in Pcbnew.

Enumerator
NETNAMES_LAYER_ID_START 
NETNAMES_LAYER_ID_RESERVED 

Reserved space for board layer netnames.

LAYER_PAD_FR_NETNAMES 

Additional netnames layers (not associated with a PCB layer)

LAYER_PAD_BK_NETNAMES 
LAYER_PAD_NETNAMES 
LAYER_VIA_NETNAMES 
NETNAMES_LAYER_ID_END 

Definition at line 161 of file layer_ids.h.

161  : int
162 {
163 
165 
167 
169 
171 
176 
178 };
Additional netnames layers (not associated with a PCB layer)
Definition: layer_ids.h:172
Reserved space for board layer netnames.
Definition: layer_ids.h:168

◆ PCB_LAYER_ID

enum PCB_LAYER_ID : int

A quick note on layer IDs:

The layers are stored in separate enums so that certain functions can take in the enums as data types and don't have to know about layers from other applications.

Layers that are shared between applications should be in the GAL_LAYER_ID enum.

The PCB_LAYER_ID struct must start at zero for compatibility with legacy board files.

Some functions accept any layer ID, so they start at zero (i.e. F_Cu) and go up to the LAYER_ID_COUNT, which needs to be kept up-to-date if new enums are added.This is the definition of all layers used in Pcbnew.

The PCB layer types are fixed at value 0 through LAYER_ID_COUNT to ensure compatibility with legacy board files.

Enumerator
UNDEFINED_LAYER 
UNSELECTED_LAYER 
PCBNEW_LAYER_ID_START 
F_Cu 
In1_Cu 
In2_Cu 
In3_Cu 
In4_Cu 
In5_Cu 
In6_Cu 
In7_Cu 
In8_Cu 
In9_Cu 
In10_Cu 
In11_Cu 
In12_Cu 
In13_Cu 
In14_Cu 
In15_Cu 
In16_Cu 
In17_Cu 
In18_Cu 
In19_Cu 
In20_Cu 
In21_Cu 
In22_Cu 
In23_Cu 
In24_Cu 
In25_Cu 
In26_Cu 
In27_Cu 
In28_Cu 
In29_Cu 
In30_Cu 
B_Cu 
B_Adhes 
F_Adhes 
B_Paste 
F_Paste 
B_SilkS 
F_SilkS 
B_Mask 
F_Mask 
Dwgs_User 
Cmts_User 
Eco1_User 
Eco2_User 
Edge_Cuts 
Margin 
B_CrtYd 
F_CrtYd 
B_Fab 
F_Fab 
User_1 
User_2 
User_3 
User_4 
User_5 
User_6 
User_7 
User_8 
User_9 
Rescue 
PCB_LAYER_ID_COUNT 

Definition at line 65 of file layer_ids.h.

65  : int
66 {
67  UNDEFINED_LAYER = -1,
68  UNSELECTED_LAYER = -2,
69 
72  In1_Cu,
73  In2_Cu,
74  In3_Cu,
75  In4_Cu,
76  In5_Cu,
77  In6_Cu,
78  In7_Cu,
79  In8_Cu,
80  In9_Cu,
81  In10_Cu,
82  In11_Cu,
83  In12_Cu,
84  In13_Cu,
85  In14_Cu,
86  In15_Cu,
87  In16_Cu,
88  In17_Cu,
89  In18_Cu,
90  In19_Cu,
91  In20_Cu,
92  In21_Cu,
93  In22_Cu,
94  In23_Cu,
95  In24_Cu,
96  In25_Cu,
97  In26_Cu,
98  In27_Cu,
99  In28_Cu,
100  In29_Cu,
101  In30_Cu,
102  B_Cu, // 31
103 
104  B_Adhes,
105  F_Adhes,
106 
107  B_Paste,
108  F_Paste,
109 
110  B_SilkS,
111  F_SilkS,
112 
113  B_Mask,
114  F_Mask, // 39
115 
116  Dwgs_User,
117  Cmts_User,
118  Eco1_User,
119  Eco2_User,
120  Edge_Cuts,
121  Margin, // 45
122 
123  B_CrtYd,
124  F_CrtYd,
125 
126  B_Fab,
127  F_Fab, // 49
128 
129  // User definable layers.
130  User_1,
131  User_2,
132  User_3,
133  User_4,
134  User_5,
135  User_6,
136  User_7,
137  User_8,
138  User_9,
139 
140  Rescue, // 59
141 
142  // Four reserved layers (60 - 63) for future expansion within the 64 bit integer limit.
143 
145 };
Definition: layer_ids.h:71

◆ SCH_LAYER_ID

enum SCH_LAYER_ID : int

Eeschema drawing layers.

Enumerator
SCH_LAYER_ID_START 
LAYER_WIRE 
LAYER_BUS 
LAYER_JUNCTION 
LAYER_LOCLABEL 
LAYER_GLOBLABEL 
LAYER_HIERLABEL 
LAYER_PINNUM 
LAYER_PINNAM 
LAYER_REFERENCEPART 
LAYER_VALUEPART 
LAYER_FIELDS 
LAYER_DEVICE 
LAYER_NOTES 
LAYER_PIN 
LAYER_SHEET 
LAYER_SHEETNAME 
LAYER_SHEETFILENAME 
LAYER_SHEETFIELDS 
LAYER_SHEETLABEL 
LAYER_NOCONNECT 
LAYER_DANGLING 
LAYER_ERC_WARN 
LAYER_ERC_ERR 
LAYER_DEVICE_BACKGROUND 
LAYER_SHEET_BACKGROUND 
LAYER_SCHEMATIC_GRID 
LAYER_SCHEMATIC_GRID_AXES 
LAYER_SCHEMATIC_BACKGROUND 
LAYER_SCHEMATIC_CURSOR 
LAYER_BRIGHTENED 
LAYER_HIDDEN 
LAYER_SELECTION_SHADOWS 
LAYER_SCHEMATIC_DRAWINGSHEET 
LAYER_BUS_JUNCTION 
LAYER_SCHEMATIC_AUX_ITEMS 
LAYER_SCHEMATIC_ANCHOR 
SCH_LAYER_ID_END 

Definition at line 335 of file layer_ids.h.

335  : int
336 {
338 
340  LAYER_BUS,
345  LAYER_PINNUM,
346  LAYER_PINNAM,
349  LAYER_FIELDS,
350  LAYER_DEVICE,
351  LAYER_NOTES,
352  LAYER_PIN,
353  LAYER_SHEET,
369  LAYER_HIDDEN,
375 
377 };

Function Documentation

◆ FlipLayer()

PCB_LAYER_ID FlipLayer ( PCB_LAYER_ID  aLayerId,
int  aCopperLayersCount = 0 
)
Returns
the layer number after flipping an item some (not all) layers: external copper, and paired layers( Mask, Paste, solder ... ) are swapped between front and back sides internal layers are flipped only if the copper layers count is known
Parameters
aLayerId= the PCB_LAYER_ID to flip
aCopperLayersCount= the number of copper layers. if 0 (in fact if < 4 ) internal layers will be not flipped because the layer count is not known

Definition at line 530 of file lset.cpp.

531 {
532  switch( aLayerId )
533  {
534  case B_Cu: return F_Cu;
535  case F_Cu: return B_Cu;
536 
537  case B_SilkS: return F_SilkS;
538  case F_SilkS: return B_SilkS;
539 
540  case B_Adhes: return F_Adhes;
541  case F_Adhes: return B_Adhes;
542 
543  case B_Mask: return F_Mask;
544  case F_Mask: return B_Mask;
545 
546  case B_Paste: return F_Paste;
547  case F_Paste: return B_Paste;
548 
549  case B_CrtYd: return F_CrtYd;
550  case F_CrtYd: return B_CrtYd;
551 
552  case B_Fab: return F_Fab;
553  case F_Fab: return B_Fab;
554 
555  default: // change internal layer if aCopperLayersCount is >= 4
556  if( IsCopperLayer( aLayerId ) && aCopperLayersCount >= 4 )
557  {
558  // internal copper layers count is aCopperLayersCount-2
559  PCB_LAYER_ID fliplayer = PCB_LAYER_ID(aCopperLayersCount - 2 - ( aLayerId - In1_Cu ) );
560  // Ensure fliplayer has a value which does not crash Pcbnew:
561  if( fliplayer < F_Cu )
562  fliplayer = F_Cu;
563 
564  if( fliplayer > B_Cu )
565  fliplayer = B_Cu;
566 
567  return fliplayer;
568  }
569 
570  // No change for the other layers
571  return aLayerId;
572  }
573 }
bool IsCopperLayer(LAYER_NUM aLayerId)
Tests whether a layer is a copper layer.
Definition: layer_ids.h:808
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:65
Definition: layer_ids.h:71

References B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, In1_Cu, and IsCopperLayer().

Referenced by PCAD2KICAD::PCB_FOOTPRINT::AddToBoard(), PCAD2KICAD::PCB_PAD::Flip(), PCAD2KICAD::PCB_ARC::Flip(), PCAD2KICAD::PCB_LINE::Flip(), PCAD2KICAD::PCB_POLYGON::Flip(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), FP_SHAPE::Flip(), PCB_SHAPE::Flip(), FP_TEXT::Flip(), PCB_DIMENSION_BASE::Flip(), FOOTPRINT::Flip(), PCB_ARC::Flip(), PCB_VIA::Flip(), and FABMASTER::loadFootprints().

◆ FlipLayerMask()

LSET FlipLayerMask ( LSET  aMask,
int  aCopperLayersCount = 0 
)

Calculate the mask layer when flipping a footprint.

BACK and FRONT copper layers, mask, paste, solder layers are swapped internal layers are flipped only if the copper layers count is known

Parameters
aMask= the LSET to flip
aCopperLayersCount= the number of copper layers. if 0 (in fact if < 4 ) internal layers will be not flipped because the layer count is not known

Definition at line 576 of file lset.cpp.

577 {
578  // layers on physical outside of a board:
579  const static LSET and_mask( 16, // !! update count
580  B_Cu, F_Cu,
581  B_SilkS, F_SilkS,
582  B_Adhes, F_Adhes,
583  B_Mask, F_Mask,
584  B_Paste, F_Paste,
585  B_Adhes, F_Adhes,
586  B_CrtYd, F_CrtYd,
587  B_Fab, F_Fab
588  );
589 
590  LSET newMask = aMask & ~and_mask;
591 
592  if( aMask[B_Cu] )
593  newMask.set( F_Cu );
594 
595  if( aMask[F_Cu] )
596  newMask.set( B_Cu );
597 
598  if( aMask[B_SilkS] )
599  newMask.set( F_SilkS );
600 
601  if( aMask[F_SilkS] )
602  newMask.set( B_SilkS );
603 
604  if( aMask[B_Adhes] )
605  newMask.set( F_Adhes );
606 
607  if( aMask[F_Adhes] )
608  newMask.set( B_Adhes );
609 
610  if( aMask[B_Mask] )
611  newMask.set( F_Mask );
612 
613  if( aMask[F_Mask] )
614  newMask.set( B_Mask );
615 
616  if( aMask[B_Paste] )
617  newMask.set( F_Paste );
618 
619  if( aMask[F_Paste] )
620  newMask.set( B_Paste );
621 
622  if( aMask[B_Adhes] )
623  newMask.set( F_Adhes );
624 
625  if( aMask[F_Adhes] )
626  newMask.set( B_Adhes );
627 
628  if( aMask[B_CrtYd] )
629  newMask.set( F_CrtYd );
630 
631  if( aMask[F_CrtYd] )
632  newMask.set( B_CrtYd );
633 
634  if( aMask[B_Fab] )
635  newMask.set( F_Fab );
636 
637  if( aMask[F_Fab] )
638  newMask.set( B_Fab );
639 
640  if( aCopperLayersCount >= 4 ) // Internal layers exist
641  {
642  LSET internalMask = aMask & LSET::InternalCuMask();
643 
644  if( internalMask != LSET::InternalCuMask() )
645  {
646  // the mask does not include all internal layers. Therefore
647  // the flipped mask for internal copper layers must be built
648  int innerLayerCnt = aCopperLayersCount -2;
649 
650  // the flipped mask is the innerLayerCnt bits rewritten in reverse order
651  // ( bits innerLayerCnt to 1 rewritten in bits 1 to innerLayerCnt )
652  for( int ii = 0; ii < innerLayerCnt; ii++ )
653  {
654  if( internalMask[innerLayerCnt - ii] )
655  {
656  newMask.set( ii + In1_Cu );
657  }
658  else
659  {
660  newMask.reset( ii + In1_Cu );
661  }
662  }
663  }
664  }
665 
666  return newMask;
667 }
LSET is a set of PCB_LAYER_IDs.
Definition: layer_ids.h:516
static LSET InternalCuMask()
Return a complete set of internal copper layers which is all Cu layers except F_Cu and B_Cu.
Definition: lset.cpp:719
Definition: layer_ids.h:71

References B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, In1_Cu, and LSET::InternalCuMask().

Referenced by PAD::Flip(), ZONE::Flip(), FABMASTER::loadFootprints(), and ALTIUM_PCB::ParsePads6Data().

◆ GetNetnameLayer()

int GetNetnameLayer ( int  aLayer)
inline

Returns a netname layer corresponding to the given layer.

Definition at line 953 of file layer_ids.h.

954 {
955  if( IsCopperLayer( aLayer ) )
956  return NETNAMES_LAYER_INDEX( aLayer );
957  else if( aLayer == LAYER_PADS_TH )
958  return LAYER_PAD_NETNAMES;
959  else if( aLayer == LAYER_PAD_FR )
960  return LAYER_PAD_FR_NETNAMES;
961  else if( aLayer == LAYER_PAD_BK )
962  return LAYER_PAD_BK_NETNAMES;
963  else if( IsViaPadLayer( aLayer ) )
964  return LAYER_VIA_NETNAMES;
965 
966  // Fallback
967  return Cmts_User;
968 }
smd pads, front layer
Definition: layer_ids.h:209
smd pads, back layer
Definition: layer_ids.h:210
Additional netnames layers (not associated with a PCB layer)
Definition: layer_ids.h:172
bool IsCopperLayer(LAYER_NUM aLayerId)
Tests whether a layer is a copper layer.
Definition: layer_ids.h:808
multilayer pads, usually with holes
Definition: layer_ids.h:220
bool IsViaPadLayer(LAYER_NUM aLayer)
Definition: layer_ids.h:840
#define NETNAMES_LAYER_INDEX(layer)
Macro for obtaining netname layer for a given PCB layer.
Definition: layer_ids.h:181

References Cmts_User, IsCopperLayer(), IsViaPadLayer(), LAYER_PAD_BK, LAYER_PAD_BK_NETNAMES, LAYER_PAD_FR, LAYER_PAD_FR_NETNAMES, LAYER_PAD_NETNAMES, LAYER_PADS_TH, LAYER_VIA_NETNAMES, and NETNAMES_LAYER_INDEX.

Referenced by PCB_CONTROL::LayerAlphaDec(), PCB_CONTROL::LayerAlphaInc(), KIGFX::PCB_RENDER_SETTINGS::LoadColors(), APPEARANCE_CONTROLS::OnColorSwatchChanged(), PCB_DRAW_PANEL_GAL::setDefaultLayerDeps(), PCB_DRAW_PANEL_GAL::SetHighContrastLayer(), PCB_DRAW_PANEL_GAL::SetTopLayer(), and PCB_TRACK::ViewGetLayers().

◆ IsBackLayer()

bool IsBackLayer ( PCB_LAYER_ID  aLayerId)
inline

Layer classification: check if it's a back layer.

Definition at line 907 of file layer_ids.h.

908 {
909  switch( aLayerId )
910  {
911  case B_Cu:
912  case B_Adhes:
913  case B_Paste:
914  case B_SilkS:
915  case B_Mask:
916  case B_CrtYd:
917  case B_Fab:
918  return true;
919  default:
920  ;
921  }
922 
923  return false;
924 }

References B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, and B_SilkS.

Referenced by FP_TEXT::Flip(), FP_TEXT::FP_TEXT(), BOARD::GetFootprint(), FOOTPRINT::GetPolyCourtyard(), GENERAL_COLLECTOR::Inspect(), DIALOG_FOOTPRINT_PROPERTIES::OnAddField(), DRAWING_TOOL::PlaceText(), PCB_DRAW_PANEL_GAL::SetTopLayer(), FP_TEXT_GRID_TABLE::SetValueAsLong(), and PAD::ViewGetLOD().

◆ IsCopperLayer() [1/2]

bool IsCopperLayer ( LAYER_NUM  aLayerId)
inline

Tests whether a layer is a copper layer.

Parameters
aLayerId= Layer to test
Returns
true if aLayer is a valid copper layer

Definition at line 808 of file layer_ids.h.

809 {
810  return aLayerId >= F_Cu && aLayerId <= B_Cu;
811 }
Definition: layer_ids.h:71

References B_Cu, and F_Cu.

Referenced by BOARD::Add(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), BOARD::BOARD(), PCB_ONE_LAYER_SELECTOR::buildList(), SELECT_COPPER_LAYERS_PAIR_DIALOG::buildList(), BOARD_ADAPTER::createLayers(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::Edit_Zone_Params(), PAD::FlashLayer(), FlipLayer(), DSN::SPECCTRA_DB::FromBOARD(), GenCADLayerName(), GetGerberFileFunctionAttribute(), GetGerberFilePolarityAttribute(), GetGerberProtelExtension(), BOARD_DESIGN_SETTINGS::GetLayerClass(), BOARD_STACKUP::GetLayerDistance(), BOARD::GetLayerType(), GetNetnameLayer(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), DIALOG_EXPORT_SVG::initDialog(), BOARD_INSPECTION_TOOL::InspectClearance(), IsCopperLayer(), IsNetCopperLayer(), BOARD_ITEM::IsOnCopperLayer(), PCB_CONTROL::LayerAlphaDec(), PCB_CONTROL::LayerAlphaInc(), PCB_CONTROL::LayerNext(), PCB_CONTROL::LayerPrev(), FABMASTER::loadEtch(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadPolygon(), EAGLE_PLUGIN::loadSignals(), FABMASTER::loadZones(), APPEARANCE_CONTROLS::OnColorSwatchChanged(), DIALOG_PLOT::OnPopUpLayers(), EAGLE_PLUGIN::packageSMD(), ALTIUM_PCB::ParseVias6Data(), PNS::TOOL_BASE::pickSingleItem(), BRDITEMS_PLOTTER::PlotFootprintTextItem(), PlotOneBoardLayer(), BRDITEMS_PLOTTER::PlotPcbShape(), BRDITEMS_PLOTTER::PlotPcbText(), ROUTER_TOOL::prepareInteractive(), RENDER_3D_RAYTRACE::Reload(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::Run(), DRC_ENGINE::RunTests(), PCB_DRAW_PANEL_GAL::setDefaultLayerDeps(), PCB_DRAW_PANEL_GAL::SetHighContrastLayer(), BOARD::SetLayerType(), PCB_DRAW_PANEL_GAL::SetTopLayer(), PCB_BASE_FRAME::SwitchLayer(), PCB_EDIT_FRAME::SwitchLayer(), PNS_KICAD_IFACE_BASE::syncGraphicalItem(), PNS_KICAD_IFACE_BASE::syncTextItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), and DIALOG_PRINT_PCBNEW::TransferDataToWindow().

◆ IsCopperLayer() [2/2]

bool IsCopperLayer ( LAYER_NUM  aLayerId,
bool  aIncludeSyntheticCopperLayers 
)
inline

Tests whether a layer is a copper layer, optionally including synthetic copper layers such as LAYER_VIA_THROUGH, LAYER_PAD_FR, etc.

Parameters
aLayerId
aIncludeSyntheticCopperLayers
Returns

Definition at line 832 of file layer_ids.h.

833 {
834  if( aIncludeSyntheticCopperLayers )
835  return !IsNonCopperLayer( aLayerId );
836  else
837  return IsCopperLayer( aLayerId );
838 }
bool IsNonCopperLayer(LAYER_NUM aLayerId)
Test whether a layer is a non copper layer.
Definition: layer_ids.h:819
bool IsCopperLayer(LAYER_NUM aLayerId)
Tests whether a layer is a copper layer.
Definition: layer_ids.h:808

References IsCopperLayer(), and IsNonCopperLayer().

◆ IsDCodeLayer()

bool IsDCodeLayer ( int  aLayer)
inline

◆ IsFrontLayer()

bool IsFrontLayer ( PCB_LAYER_ID  aLayerId)
inline

Layer classification: check if it's a front layer.

Definition at line 884 of file layer_ids.h.

885 {
886  switch( aLayerId )
887  {
888  case F_Cu:
889  case F_Adhes:
890  case F_Paste:
891  case F_SilkS:
892  case F_Mask:
893  case F_CrtYd:
894  case F_Fab:
895  return true;
896  default:
897  ;
898  }
899 
900  return false;
901 }
Definition: layer_ids.h:71

References F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, and F_SilkS.

Referenced by GENERAL_COLLECTOR::Inspect(), BOARD_INSPECTION_TOOL::InspectClearance(), PCB_DRAW_PANEL_GAL::SetTopLayer(), and PAD::ViewGetLOD().

◆ IsHoleLayer()

bool IsHoleLayer ( LAYER_NUM  aLayer)
inline

Definition at line 847 of file layer_ids.h.

848 {
849  return aLayer == LAYER_VIA_HOLES
850  || aLayer == LAYER_VIA_HOLEWALLS
851  || aLayer == LAYER_PAD_PLATEDHOLES
852  || aLayer == LAYER_PAD_HOLEWALLS
853  || aLayer == LAYER_NON_PLATEDHOLES;
854 }
to draw via holes (pad holes do not use this layer)
Definition: layer_ids.h:222
handle color for not plated holes (holes, not pads)
Definition: layer_ids.h:204
to draw pad holes (plated)
Definition: layer_ids.h:221

References LAYER_NON_PLATEDHOLES, LAYER_PAD_HOLEWALLS, LAYER_PAD_PLATEDHOLES, LAYER_VIA_HOLES, and LAYER_VIA_HOLEWALLS.

Referenced by KIGFX::PCB_RENDER_SETTINGS::GetColor(), KIGFX::RENDER_SETTINGS::update(), PCB_VIA::ViewGetLOD(), and PAD::ViewGetLOD().

◆ IsNetCopperLayer()

bool IsNetCopperLayer ( LAYER_NUM  aLayer)
inline

Checks if the given layer is "net copper", meaning it is eligible for net coloring.

Parameters
aLayeris the layer to test
Returns
true if the layer is one that participates in net coloring

Definition at line 1002 of file layer_ids.h.

1003 {
1004  static std::set<LAYER_NUM> netCopperLayers =
1005  {
1006  LAYER_PAD_FR,
1007  LAYER_PAD_BK,
1008  LAYER_PADS_TH,
1014  };
1015 
1016  return IsCopperLayer( aLayer ) || netCopperLayers.count( aLayer );
1017 }
smd pads, front layer
Definition: layer_ids.h:209
to draw micro vias
Definition: layer_ids.h:201
smd pads, back layer
Definition: layer_ids.h:210
to draw usual through hole vias
Definition: layer_ids.h:203
bool IsCopperLayer(LAYER_NUM aLayerId)
Tests whether a layer is a copper layer.
Definition: layer_ids.h:808
multilayer pads, usually with holes
Definition: layer_ids.h:220
to draw blind/buried vias
Definition: layer_ids.h:202

References IsCopperLayer(), LAYER_PAD_BK, LAYER_PAD_FR, LAYER_PAD_HOLEWALLS, LAYER_PADS_TH, LAYER_VIA_BBLIND, LAYER_VIA_HOLEWALLS, LAYER_VIA_MICROVIA, and LAYER_VIA_THROUGH.

Referenced by KIGFX::PCB_RENDER_SETTINGS::GetColor().

◆ IsNetnameLayer()

bool IsNetnameLayer ( LAYER_NUM  aLayer)
inline

Test whether a layer is a netname layer.

Parameters
aLayer= Layer to test
Returns
true if aLayer is a valid netname layer

Definition at line 976 of file layer_ids.h.

977 {
978  return aLayer >= NETNAMES_LAYER_INDEX( F_Cu ) &&
979  aLayer < NETNAMES_LAYER_ID_END;
980 }
Definition: layer_ids.h:71
#define NETNAMES_LAYER_INDEX(layer)
Macro for obtaining netname layer for a given PCB layer.
Definition: layer_ids.h:181

References F_Cu, NETNAMES_LAYER_ID_END, and NETNAMES_LAYER_INDEX.

Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), PCB_DRAW_PANEL_GAL::setDefaultLayerDeps(), KIGFX::RENDER_SETTINGS::update(), PCB_TRACK::ViewGetLOD(), PCB_VIA::ViewGetLOD(), and PAD::ViewGetLOD().

◆ IsNonCopperLayer()

bool IsNonCopperLayer ( LAYER_NUM  aLayerId)
inline

Test whether a layer is a non copper layer.

Parameters
aLayerId= Layer to test
Returns
true if aLayer is a non copper layer

Definition at line 819 of file layer_ids.h.

820 {
821  return aLayerId > B_Cu && aLayerId <= PCB_LAYER_ID_COUNT;
822 }

References B_Cu, and PCB_LAYER_ID_COUNT.

Referenced by PCAD2KICAD::PCB_ARC::AddToFootprint(), PCAD2KICAD::PCB_LINE::AddToFootprint(), PCAD2KICAD::PCB_POLYGON::AddToFootprint(), CONVERT_TOOL::CreatePolys(), IsCopperLayer(), and PCB_DRAW_PANEL_GAL::setDefaultLayerDeps().

◆ IsPcbLayer()

bool IsPcbLayer ( LAYER_NUM  aLayer)
inline

Test whether a layer is a valid layer for Pcbnew.

Parameters
aLayer= Layer to test
Returns
true if aLayer is a layer valid in Pcbnew

Definition at line 797 of file layer_ids.h.

798 {
799  return aLayer >= F_Cu && aLayer < PCB_LAYER_ID_COUNT;
800 }
Definition: layer_ids.h:71

References F_Cu, and PCB_LAYER_ID_COUNT.

Referenced by GBR_TO_PCB_EXPORTER::ExportPcb(), FABMASTER::loadFootprints(), FABMASTER::loadGraphics(), FABMASTER::loadPolygon(), and FABMASTER::loadZone().

◆ IsUserLayer()

bool IsUserLayer ( PCB_LAYER_ID  aLayerId)
inline

Test whether a layer is a non copper and a non tech layer.

Parameters
aLayerId= Layer to test
Returns
true if aLayer is a user layer

Definition at line 862 of file layer_ids.h.

863 {
864  return aLayerId >= Dwgs_User && aLayerId <= Eco2_User;
865 }

References Dwgs_User, and Eco2_User.

◆ IsValidLayer()

bool IsValidLayer ( LAYER_NUM  aLayerId)
inline

Test whether a given integer is a valid layer index, i.e.

can be safely put in a PCB_LAYER_ID

Parameters
aLayerId= Layer index to test. It can be an int, so its useful during I/O
Returns
true if aLayerIndex is a valid layer index

Definition at line 786 of file layer_ids.h.

787 {
788  return unsigned( aLayerId ) < PCB_LAYER_ID_COUNT;
789 }

References PCB_LAYER_ID_COUNT.

Referenced by DRAWING_TOOL::DrawSpecificationStackup(), and LAYERS_MAP_DIALOG::OnSelectLayer().

◆ IsViaPadLayer()

bool IsViaPadLayer ( LAYER_NUM  aLayer)
inline

Definition at line 840 of file layer_ids.h.

841 {
842  return aLayer == LAYER_VIA_THROUGH
843  || aLayer == LAYER_VIA_MICROVIA
844  || aLayer == LAYER_VIA_BBLIND;
845 }
to draw micro vias
Definition: layer_ids.h:201
to draw usual through hole vias
Definition: layer_ids.h:203
to draw blind/buried vias
Definition: layer_ids.h:202

References LAYER_VIA_BBLIND, LAYER_VIA_MICROVIA, and LAYER_VIA_THROUGH.

Referenced by GetNetnameLayer(), and PCB_VIA::ViewGetLOD().

◆ IsZoneLayer()

bool IsZoneLayer ( LAYER_NUM  aLayer)
inline

Definition at line 983 of file layer_ids.h.

984 {
985  return aLayer >= LAYER_ZONE_START && aLayer <= LAYER_ZONE_END;
986 }
Virtual layers for stacking zones and tracks on a given copper layer.
Definition: layer_ids.h:253

References LAYER_ZONE_END, and LAYER_ZONE_START.

Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), and KIGFX::VIEW_GROUP::ViewDraw().

◆ LayerName()

wxString LayerName ( int  aLayer)

Returns the string equivalent of a given layer.

Parameters
aLayeris a valid layer ID

Returns the string equivalent of a given layer.

These are not the same as the canonical name in LSET::Name(), which is used in board files and cannot be translated or changed. WARNING: do not translate board physical layers names (F.Cu to User.9): because canonical names are used in files (boards and fab files), using translated names in UI create mistakes for users. Board physical layers names must be seen as proper nouns.

Definition at line 30 of file layer_id.cpp.

31 {
32  switch( aLayer )
33  {
34  // PCB_LAYER_ID
35  case F_Cu: return wxT( "F.Cu" );
36  case In1_Cu: return wxT( "In1.Cu" );
37  case In2_Cu: return wxT( "In2.Cu" );
38  case In3_Cu: return wxT( "In3.Cu" );
39  case In4_Cu: return wxT( "In4.Cu" );
40  case In5_Cu: return wxT( "In5.Cu" );
41  case In6_Cu: return wxT( "In6.Cu" );
42  case In7_Cu: return wxT( "In7.Cu" );
43  case In8_Cu: return wxT( "In8.Cu" );
44  case In9_Cu: return wxT( "In9.Cu" );
45  case In10_Cu: return wxT( "In10.Cu" );
46  case In11_Cu: return wxT( "In11.Cu" );
47  case In12_Cu: return wxT( "In12.Cu" );
48  case In13_Cu: return wxT( "In13.Cu" );
49  case In14_Cu: return wxT( "In14.Cu" );
50  case In15_Cu: return wxT( "In15.Cu" );
51  case In16_Cu: return wxT( "In16.Cu" );
52  case In17_Cu: return wxT( "In17.Cu" );
53  case In18_Cu: return wxT( "In18.Cu" );
54  case In19_Cu: return wxT( "In19.Cu" );
55  case In20_Cu: return wxT( "In20.Cu" );
56  case In21_Cu: return wxT( "In21.Cu" );
57  case In22_Cu: return wxT( "In22.Cu" );
58  case In23_Cu: return wxT( "In23.Cu" );
59  case In24_Cu: return wxT( "In24.Cu" );
60  case In25_Cu: return wxT( "In25.Cu" );
61  case In26_Cu: return wxT( "In26.Cu" );
62  case In27_Cu: return wxT( "In27.Cu" );
63  case In28_Cu: return wxT( "In28.Cu" );
64  case In29_Cu: return wxT( "In29.Cu" );
65  case In30_Cu: return wxT( "In30.Cu" );
66  case B_Cu: return wxT( "B.Cu" );
67 
68  // Technicals
69  case B_Adhes: return wxT( "B.Adhesive" );
70  case F_Adhes: return wxT( "F.Adhesive" );
71  case B_Paste: return wxT( "B.Paste" );
72  case F_Paste: return wxT( "F.Paste" );
73  case B_SilkS: return wxT( "B.Silkscreen" );
74  case F_SilkS: return wxT( "F.Silkscreen" );
75  case B_Mask: return wxT( "B.Mask" );
76  case F_Mask: return wxT( "F.Mask" );
77 
78  // Users
79  case Dwgs_User: return wxT( "User.Drawings" );
80  case Cmts_User: return wxT( "User.Comments" );
81  case Eco1_User: return wxT( "User.Eco1" );
82  case Eco2_User: return wxT( "User.Eco2" );
83  case Edge_Cuts: return wxT( "Edge.Cuts" );
84  case Margin: return wxT( "Margin" );
85 
86  // Footprint
87  case F_CrtYd: return wxT( "F.Courtyard" );
88  case B_CrtYd: return wxT( "B.Courtyard" );
89  case F_Fab: return wxT( "F.Fab" );
90  case B_Fab: return wxT( "B.Fab" );
91 
92  // User definable layers.
93  case User_1: return wxT( "User.1" );
94  case User_2: return wxT( "User.2" );
95  case User_3: return wxT( "User.3" );
96  case User_4: return wxT( "User.4" );
97  case User_5: return wxT( "User.5" );
98  case User_6: return wxT( "User.6" );
99  case User_7: return wxT( "User.7" );
100  case User_8: return wxT( "User.8" );
101  case User_9: return wxT( "User.9" );
102 
103  // Rescue
104  case Rescue: return _( "Rescue" );
105 
106  // SCH_LAYER_ID
107 
108  case LAYER_WIRE: return _( "Wires" );
109  case LAYER_BUS: return _( "Buses" );
110  case LAYER_BUS_JUNCTION: return _( "Bus junctions" );
111  case LAYER_JUNCTION: return _( "Junctions" );
112  case LAYER_LOCLABEL: return _( "Labels" );
113  case LAYER_GLOBLABEL: return _( "Global labels" );
114  case LAYER_HIERLABEL: return _( "Hierarchical labels" );
115  case LAYER_PINNUM: return _( "Pin numbers" );
116  case LAYER_PINNAM: return _( "Pin names" );
117  case LAYER_REFERENCEPART: return _( "Symbol references" );
118  case LAYER_VALUEPART: return _( "Symbol values" );
119  case LAYER_FIELDS: return _( "Symbol fields" );
120  case LAYER_DEVICE: return _( "Symbol body outlines" );
121  case LAYER_DEVICE_BACKGROUND: return _( "Symbol body fills" );
122  case LAYER_NOTES: return _( "Schematic text && graphics" );
123  case LAYER_PIN: return _( "Pins" );
124  case LAYER_SHEET: return _( "Sheet borders" );
125  case LAYER_SHEET_BACKGROUND: return _( "Sheet backgrounds" );
126  case LAYER_SHEETNAME: return _( "Sheet names" );
127  case LAYER_SHEETFIELDS: return _( "Sheet fields" );
128  case LAYER_SHEETFILENAME: return _( "Sheet file names" );
129  case LAYER_SHEETLABEL: return _( "Sheet pins" );
130  case LAYER_NOCONNECT: return _( "No-connect symbols" );
131  case LAYER_ERC_WARN: return _( "ERC warnings" );
132  case LAYER_ERC_ERR: return _( "ERC errors" );
133  case LAYER_SCHEMATIC_ANCHOR: return _( "Anchors" );
134  case LAYER_SCHEMATIC_AUX_ITEMS: return _( "Helper items" );
135  case LAYER_SCHEMATIC_GRID: return _( "Grid" );
136  case LAYER_SCHEMATIC_GRID_AXES: return _( "Axes" );
137  case LAYER_SCHEMATIC_BACKGROUND: return _( "Background" );
138  case LAYER_SCHEMATIC_CURSOR: return _( "Cursor" );
139  case LAYER_BRIGHTENED: return _( "Highlighted items" );
140  case LAYER_HIDDEN: return _( "Hidden items" );
141  case LAYER_SELECTION_SHADOWS: return _( "Selection highlight" );
142  case LAYER_SCHEMATIC_DRAWINGSHEET: return _( "Drawing sheet" );
143 
144  // GAL_LAYER_ID
145 
146  case LAYER_MOD_FR: return _( "Footprints front" );
147  case LAYER_MOD_BK: return _( "Footprints back" );
148  case LAYER_MOD_VALUES: return _( "Values" );
149  case LAYER_MOD_REFERENCES: return _( "Reference designators" );
150  case LAYER_MOD_TEXT: return _( "Footprint text" );
151  case LAYER_MOD_TEXT_INVISIBLE: return _( "Hidden text" );
152  case LAYER_PAD_FR: return _( "SMD pads front" );
153  case LAYER_PAD_BK: return _( "SMD pads back" );
154  case LAYER_PADS_TH: return _( "Through-hole pads" );
155  case LAYER_TRACKS: return _( "Tracks" );
156  case LAYER_VIA_THROUGH: return _( "Through vias" );
157  case LAYER_VIA_BBLIND: return _( "Bl/Buried vias" );
158  case LAYER_VIA_MICROVIA: return _( "Micro-vias" );
159  case LAYER_VIA_HOLES: return _( "Via holes" );
160  case LAYER_VIA_HOLEWALLS: return _( "Via hole walls" );
161  case LAYER_PAD_PLATEDHOLES: return _( "Plated holes" );
162  case LAYER_PAD_HOLEWALLS: return _( "Plated hole walls" );
163  case LAYER_NON_PLATEDHOLES: return _( "Non-plated holes" );
164  case LAYER_RATSNEST: return _( "Ratsnest" );
165  case LAYER_NO_CONNECTS: return _( "No-connects" );
166  case LAYER_DRC_WARNING: return _( "DRC warnings" );
167  case LAYER_DRC_ERROR: return _( "DRC errors" );
168  case LAYER_DRC_EXCLUSION: return _( "DRC exclusions" );
169  case LAYER_MARKER_SHADOWS: return _( "DRC marker shadows" );
170  case LAYER_ANCHOR: return _( "Anchors" );
171  case LAYER_DRAWINGSHEET: return _( "Drawing sheet" );
172  case LAYER_CURSOR: return _( "Cursor" );
173  case LAYER_AUX_ITEMS: return _( "Helper items" );
174  case LAYER_GRID: return _( "Grid" );
175  case LAYER_GRID_AXES: return _( "Grid axes" );
176  case LAYER_PCB_BACKGROUND: return _( "Background" );
177  case LAYER_SELECT_OVERLAY: return _( "Selection highlight" );
178 
179  default:
180  wxCHECK_MSG( false, wxEmptyString, wxString::Format( "Unknown layer ID %d", aLayer ) );
181  }
182 }
currently selected items overlay
Definition: layer_ids.h:226
smd pads, front layer
Definition: layer_ids.h:209
to draw micro vias
Definition: layer_ids.h:201
Auxiliary items (guides, rule, etc)
Definition: layer_ids.h:229
layer for drc markers with SEVERITY_ERROR
Definition: layer_ids.h:223
PCB cursor.
Definition: layer_ids.h:228
show footprints values (when texts are visible)
Definition: layer_ids.h:217
smd pads, back layer
Definition: layer_ids.h:210
anchor of items having an anchor point (texts, footprints)
Definition: layer_ids.h:208
show footprints on back
Definition: layer_ids.h:216
to draw via holes (pad holes do not use this layer)
Definition: layer_ids.h:222
to draw usual through hole vias
Definition: layer_ids.h:203
handle color for not plated holes (holes, not pads)
Definition: layer_ids.h:204
shadows for drc markers
Definition: layer_ids.h:244
text marked as invisible
Definition: layer_ids.h:207
show footprints on front
Definition: layer_ids.h:215
#define _(s)
drawingsheet frame and titleblock
Definition: layer_ids.h:224
show a marker on pads with no nets
Definition: layer_ids.h:214
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
show footprints references (when texts are visible)
Definition: layer_ids.h:218
multilayer pads, usually with holes
Definition: layer_ids.h:220
to draw blind/buried vias
Definition: layer_ids.h:202
layer for drc markers which have been individually excluded
Definition: layer_ids.h:243
Definition: layer_ids.h:71
layer for drc markers with SEVERITY_WARNING
Definition: layer_ids.h:242
PCB background color.
Definition: layer_ids.h:227
to draw pad holes (plated)
Definition: layer_ids.h:221

References _, B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, Cmts_User, Dwgs_User, Eco1_User, Eco2_User, Edge_Cuts, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, Format(), In10_Cu, In11_Cu, In12_Cu, In13_Cu, In14_Cu, In15_Cu, In16_Cu, In17_Cu, In18_Cu, In19_Cu, In1_Cu, In20_Cu, In21_Cu, In22_Cu, In23_Cu, In24_Cu, In25_Cu, In26_Cu, In27_Cu, In28_Cu, In29_Cu, In2_Cu, In30_Cu, In3_Cu, In4_Cu, In5_Cu, In6_Cu, In7_Cu, In8_Cu, In9_Cu, LAYER_ANCHOR, LAYER_AUX_ITEMS, LAYER_BRIGHTENED, LAYER_BUS, LAYER_BUS_JUNCTION, LAYER_CURSOR, LAYER_DEVICE, LAYER_DEVICE_BACKGROUND, LAYER_DRAWINGSHEET, LAYER_DRC_ERROR, LAYER_DRC_EXCLUSION, LAYER_DRC_WARNING, LAYER_ERC_ERR, LAYER_ERC_WARN, LAYER_FIELDS, LAYER_GLOBLABEL, LAYER_GRID, LAYER_GRID_AXES, LAYER_HIDDEN, LAYER_HIERLABEL, LAYER_JUNCTION, LAYER_LOCLABEL, LAYER_MARKER_SHADOWS, LAYER_MOD_BK, LAYER_MOD_FR, LAYER_MOD_REFERENCES, LAYER_MOD_TEXT, LAYER_MOD_TEXT_INVISIBLE, LAYER_MOD_VALUES, LAYER_NO_CONNECTS, LAYER_NOCONNECT, LAYER_NON_PLATEDHOLES, LAYER_NOTES, LAYER_PAD_BK, LAYER_PAD_FR, LAYER_PAD_HOLEWALLS, LAYER_PAD_PLATEDHOLES, LAYER_PADS_TH, LAYER_PCB_BACKGROUND, LAYER_PIN, LAYER_PINNAM, LAYER_PINNUM, LAYER_RATSNEST, LAYER_REFERENCEPART, LAYER_SCHEMATIC_ANCHOR, LAYER_SCHEMATIC_AUX_ITEMS, LAYER_SCHEMATIC_BACKGROUND, LAYER_SCHEMATIC_CURSOR, LAYER_SCHEMATIC_DRAWINGSHEET, LAYER_SCHEMATIC_GRID, LAYER_SCHEMATIC_GRID_AXES, LAYER_SELECT_OVERLAY, LAYER_SELECTION_SHADOWS, LAYER_SHEET, LAYER_SHEET_BACKGROUND, LAYER_SHEETFIELDS, LAYER_SHEETFILENAME, LAYER_SHEETLABEL, LAYER_SHEETNAME, LAYER_TRACKS, LAYER_VALUEPART, LAYER_VIA_BBLIND, LAYER_VIA_HOLES, LAYER_VIA_HOLEWALLS, LAYER_VIA_MICROVIA, LAYER_VIA_THROUGH, LAYER_WIRE, Margin, Rescue, User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.

Referenced by DIALOG_IMPORTED_LAYERS::AddMappings(), PANEL_SETUP_LAYERS::addUserDefinedLayer(), AUTOPLACE_TOOL::autoplace(), PANEL_FP_EDITOR_COLOR_SETTINGS::createSwatches(), PANEL_PCBNEW_COLOR_SETTINGS::createSwatches(), PANEL_EESCHEMA_COLOR_SETTINGS::createSwatches(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_IMPORTED_LAYERS::GetSelectedLayerID(), BOARD::GetStandardLayerName(), DIALOG_IMPORTED_LAYERS::OnAutoMatchLayersClicked(), and DRC_TEST_PROVIDER_MISC::testDisabledLayers().

◆ operator+()

GAL_LAYER_ID operator+ ( const GAL_LAYER_ID a,
int  b 
)
inline

Used for via types.

Definition at line 280 of file layer_ids.h.

281 {
282  GAL_LAYER_ID t = GAL_LAYER_ID( int( a ) + b );
283  wxASSERT( t <= GAL_LAYER_ID_END );
284  return t;
285 }
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition: layer_ids.h:196

References GAL_LAYER_ID_END.

◆ operator++() [1/2]

GAL_LAYER_ID operator++ ( GAL_LAYER_ID a)
inline

Definition at line 267 of file layer_ids.h.

268 {
269  a = GAL_LAYER_ID( int( a ) + 1 );
270  return a;
271 }
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition: layer_ids.h:196

◆ operator++() [2/2]

SCH_LAYER_ID operator++ ( SCH_LAYER_ID a)
inline

Definition at line 383 of file layer_ids.h.

384 {
385  a = SCH_LAYER_ID( int( a ) + 1 );
386  return a;
387 }
SCH_LAYER_ID
Eeschema drawing layers.
Definition: layer_ids.h:335

◆ ToGalLayer()

GAL_LAYER_ID ToGalLayer ( int  aInteger)
inline

Definition at line 273 of file layer_ids.h.

274 {
275  wxASSERT( aInteger >= GAL_LAYER_ID_START && aInteger <= GAL_LAYER_ID_END );
276  return static_cast<GAL_LAYER_ID>( aInteger );
277 }

References GAL_LAYER_ID_END, and GAL_LAYER_ID_START.

Referenced by APPEARANCE_CONTROLS::rebuildObjects(), and APPEARANCE_CONTROLS::syncObjectSettings().

◆ ToLAYER_ID()

PCB_LAYER_ID ToLAYER_ID ( int  aLayer)

Definition at line 914 of file lset.cpp.

915 {
916  wxASSERT( aLayer < GAL_LAYER_ID_END );
917  return PCB_LAYER_ID( aLayer );
918 }
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:65

References GAL_LAYER_ID_END.

Referenced by PNS_KICAD_IFACE::AddItem(), GRID_CELL_LAYER_SELECTOR::BeginEdit(), BOARD::BOARD(), DSN::SPECCTRA_DB::buildLayerMaps(), CN_ANCHOR::ConnectedItemsCount(), BOARD_ADAPTER::createLayers(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), GRID_CELL_LAYER_RENDERER::Draw(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCB_LAYER_VALUE::EqualTo(), existsOnLayer(), GENDRILL_WRITER_BASE::GenDrillReportFile(), GetGerberFileFunctionAttribute(), BOARD::GetLayerID(), PCB_LAYER_SELECTOR::getLayerName(), PCB_LAYER_BOX_SELECTOR::getLayerName(), DIALOG_IMPORTED_LAYERS::GetSelectedLayerID(), GRID_CELL_LAYER_SELECTOR::GetValue(), DRC_RTREE::Insert(), CONNECTIVITY_DATA::IsConnectedOnLayer(), CN_ANCHOR::IsDangling(), PCB_LAYER_BOX_SELECTOR::isLayerEnabled(), PCB_CONTROL::LayerNext(), PCB_CONTROL::LayerPrev(), PCAD2KICAD::PCB::MapLayer(), APPEARANCE_CONTROLS::onLayerLeftClick(), DIALOG_NON_COPPER_ZONES_EDITOR::OnLayerSelection(), DIALOG_RULE_AREA_PROPERTIES::OnLayerSelection(), DIALOG_COPPER_ZONE::OnLayerSelection(), PLOT_CONTROLLER::OpenPlotfile(), DRC_RULES_PARSER::parseLayer(), ROUTER_TOOL::performRouting(), LENGTH_TUNER_TOOL::performTuning(), PLOT_CONTROLLER::PlotLayer(), ROUTER_TOOL::prepareInteractive(), PCB_EDIT_FRAME::Process_Special_Functions(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), PCB_SELECTION_TOOL::Selectable(), FOOTPRINT_EDIT_FRAME::SelectLayer(), PCB_BASE_FRAME::SelectOneLayer(), DIALOG_GLOBAL_DELETION::SetCurrentLayer(), APPEARANCE_CONTROLS::SetLayerVisible(), FP_TEXT_GRID_TABLE::SetValueAsLong(), PNS_KICAD_IFACE_BASE::StackupHeight(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow(), and PNS_KICAD_IFACE::UpdateItem().

Variable Documentation

◆ GAL_LAYER_ID_COUNT

constexpr int GAL_LAYER_ID_COUNT = GAL_LAYER_ID_END - GAL_LAYER_ID_START

Definition at line 265 of file layer_ids.h.