KiCad PCB EDA Suite
Loading...
Searching...
No Matches
LSET Class Reference

LSET is a set of PCB_LAYER_IDs. More...

#include <layer_ids.h>

Inheritance diagram for LSET:

Public Member Functions

 LSET ()
 Create an empty (cleared) set.
 
 LSET (const BASE_SET &aOther)
 
 LSET (PCB_LAYER_ID aLayer)
 Take a PCB_LAYER_ID and sets that bit.
 
 LSET (const PCB_LAYER_ID *aArray, unsigned aCount)
 Create an array or LSEQ.
 
 LSET (unsigned aIdCount, int aFirst,...)
 Take one or more PCB_LAYER_IDs in the argument list to construct the set.
 
 LSET (const LSEQ &aSeq)
 
bool Contains (PCB_LAYER_ID aLayer)
 See if the layer set contains a PCB layer.
 
LSEQ CuStack () const
 Return a sequence of copper layers in starting from the front/top and extending to the back/bottom.
 
LSEQ Technicals (LSET aSubToOmit=LSET()) const
 Return a sequence of technical layers.
 
LSEQ Users () const
 *_User layers.
 
LSEQ TechAndUserUIOrder () const
 Returns the technical and user layers in the order shown in layer widget.
 
LSEQ UIOrder () const
 
LSEQ Seq (const PCB_LAYER_ID *aWishListSequence, unsigned aCount) const
 Return an LSEQ from the union of this LSET and a desired sequence.
 
LSEQ Seq (const LSEQ &aSequence) const
 
LSEQ Seq () const
 Return a LSEQ from this LSET in ascending PCB_LAYER_ID order.
 
LSEQ SeqStackupTop2Bottom (PCB_LAYER_ID aSelectedLayer=UNDEFINED_LAYER) const
 Generate a sequence of layers that represent a top to bottom stack of this set of layers.
 
LSEQ SeqStackupForPlotting () const
 Return the sequence that is typical for a bottom-to-top stack-up.
 
std::string FmtHex () const
 Return a hex string showing contents of this LSEQ.
 
int ParseHex (const char *aStart, int aCount)
 Convert the output of FmtHex() and replaces this set's values with those given in the input string.
 
std::string FmtBin () const
 Return a binary string showing contents of this LSEQ.
 
PCB_LAYER_ID ExtractLayer () const
 Find the first set PCB_LAYER_ID.
 

Static Public Member Functions

static const wxChar * Name (PCB_LAYER_ID aLayerId)
 Return the fixed name association with aLayerId.
 
static LSET InternalCuMask ()
 Return a complete set of internal copper layers which is all Cu layers except F_Cu and B_Cu.
 
static LSET FrontAssembly ()
 Return a complete set of all top assembly layers which is all F_SilkS and F_Mask.
 
static LSET BackAssembly ()
 Return a complete set of all bottom assembly layers which is all B_SilkS and B_Mask.
 
static LSET AllCuMask (int aCuLayerCount=MAX_CU_LAYERS)
 Return a mask holding the requested number of Cu PCB_LAYER_IDs.
 
static LSET ExternalCuMask ()
 Return a mask holding the Front and Bottom layers.
 
static LSET AllNonCuMask ()
 Return a mask holding all layer minus CU layers.
 
static LSET AllLayersMask ()
 
static LSET FrontTechMask ()
 Return a mask holding all technical layers (no CU layer) on front side.
 
static LSET FrontBoardTechMask ()
 Return a mask holding technical layers used in a board fabrication (no CU layer) on front side.
 
static LSET BackTechMask ()
 Return a mask holding all technical layers (no CU layer) on back side.
 
static LSET BackBoardTechMask ()
 Return a mask holding technical layers used in a board fabrication (no CU layer) on Back side.
 
static LSET AllTechMask ()
 Return a mask holding all technical layers (no CU layer) on both side.
 
static LSET AllBoardTechMask ()
 Return a mask holding board technical layers (no CU layer) on both side.
 
static LSET FrontMask ()
 Return a mask holding all technical layers and the external CU layer on front side.
 
static LSET BackMask ()
 Return a mask holding all technical layers and the external CU layer on back side.
 
static LSET SideSpecificMask ()
 
static LSET UserMask ()
 
static LSET PhysicalLayersMask ()
 Return a mask holding all layers which are physically realized.
 
static LSET UserDefinedLayers ()
 Return a mask with all of the allowable user defined layers.
 
static LSET ForbiddenFootprintLayers ()
 Layers which are not allowed within footprint definitions.
 

Private Member Functions

 LSET (unsigned long __val)
 Take this off the market, it may not be used because of LSET( PCB_LAYER_ID ).
 

Detailed Description

LSET is a set of PCB_LAYER_IDs.

It can be converted to numerous purpose LSEQs using the various member functions, most of which are based on Seq(). The advantage of converting to LSEQ using purposeful code, is it removes any dependency on order/sequence inherent in this set.

Definition at line 573 of file layer_ids.h.

Constructor & Destructor Documentation

◆ LSET() [1/7]

LSET::LSET ( )
inline

Create an empty (cleared) set.

Definition at line 590 of file layer_ids.h.

Referenced by AllLayersMask(), and AllNonCuMask().

◆ LSET() [2/7]

LSET::LSET ( const BASE_SET aOther)
inline

Definition at line 595 of file layer_ids.h.

◆ LSET() [3/7]

LSET::LSET ( PCB_LAYER_ID  aLayer)
inline

Take a PCB_LAYER_ID and sets that bit.

This makes the following code into a bug:

LSET s = 0;

Instead use:

LSET s;

for an empty set.

Definition at line 614 of file layer_ids.h.

◆ LSET() [4/7]

LSET::LSET ( const PCB_LAYER_ID aArray,
unsigned  aCount 
)

Create an array or LSEQ.

Definition at line 39 of file lset.cpp.

◆ LSET() [5/7]

LSET::LSET ( unsigned  aIdCount,
int  aFirst,
  ... 
)

Take one or more PCB_LAYER_IDs in the argument list to construct the set.

Typically only used in static construction.

Parameters
aIdCountis the number of PCB_LAYER_IDs which follow.
aFirstis the first included in aIdCount and must always be present, and can be followed by any number of additional PCB_LAYER_IDs so long as aIdCount accurately reflects the count.

Parameter is 'int' to avoid va_start undefined behavior.

Definition at line 47 of file lset.cpp.

References PCB_LAYER_ID_COUNT.

◆ LSET() [6/7]

LSET::LSET ( const LSEQ aSeq)

Definition at line 77 of file lset.cpp.

◆ LSET() [7/7]

LSET::LSET ( unsigned long  __val)
inlineprivate

Take this off the market, it may not be used because of LSET( PCB_LAYER_ID ).

Definition at line 844 of file layer_ids.h.

Member Function Documentation

◆ AllBoardTechMask()

LSET LSET::AllBoardTechMask ( )
static

Return a mask holding board technical layers (no CU layer) on both side.

Definition at line 938 of file lset.cpp.

References BackBoardTechMask(), and FrontBoardTechMask().

Referenced by CADSTAR_PCB_ARCHIVE_LOADER::getKiCadLayerSet(), PhysicalLayersMask(), and CADSTAR_PCB_ARCHIVE_LOADER::remapUnsureLayers().

◆ AllCuMask()

LSET LSET::AllCuMask ( int  aCuLayerCount = MAX_CU_LAYERS)
static

Return a mask holding the requested number of Cu PCB_LAYER_IDs.

Definition at line 863 of file lset.cpp.

References B_Cu, Clamp(), F_Cu, In30_Cu, InternalCuMask(), and MAX_CU_LAYERS.

Referenced by PCAD2KICAD::PCAD_PAD::AddToFootprint(), DIALOG_PLOT::applyPlotSettings(), CN_CONNECTIVITY_ALGO::Build(), FOOTPRINT::CheckPads(), FOOTPRINT::CheckShortingPads(), TRACKS_CLEANER::cleanup(), HYPERLYNX_EXPORTER::collectNetObjects(), compute_pad_access_code(), EXPORTER_PCB_VRML::ComputeLayer3D_Zpos(), BOARD_ADAPTER::createLayers(), ZONE_CREATE_HELPER::createNewZone(), PANEL_SETUP_LAYERS::DenyChangeCheckBox(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), BOARD_COMMIT::dirtyIntersectingZones(), ZONE_FILLER::Fill(), fmt_mask(), PCB_IO_KICAD_SEXPR::formatLayers(), GENDRILL_WRITER_BASE::GenDrillReportFile(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadLayerSet(), ALTIUM_PCB::GetKicadLayersToIterate(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), PCB_VIA::GetLayerSet(), BOARD::GetPad(), PAD::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), FOOTPRINT::GetUniquePadNumbers(), ROUTER_TOOL::handleLayerSwitch(), BOARD_INSPECTION_TOOL::highlightNet(), PCB_IO_KICAD_SEXPR_PARSER::init(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), PAD::IsAperturePad(), HYPERLYNX_PAD_STACK::IsEmpty(), isMaskAperture(), PAD::IsOnCopperLayer(), ZONE::IsOnCopperLayer(), DSN::isRoundKeepout(), PCBNEW_JOBS_HANDLER::JobExportGerbers(), BOARD_ITEM::layerMaskDescribe(), PCB_IO_KICAD_LEGACY::leg_mask2new(), CADSTAR_PCB_ARCHIVE_LOADER::Load(), KIGFX::PCB_RENDER_SETTINGS::LoadColors(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), FABMASTER::loadZone(), DSN::SPECCTRA_DB::makeIMAGE(), DSN::SPECCTRA_DB::makePADSTACK(), DIALOG_PRINT_PCBNEW::onPopUpLayers(), DIALOG_PLOT::OnRightClickLayers(), DIALOG_PAD_PROPERTIES::OnUpdateUI(), DIALOG_PAD_PROPERTIES::OnUpdateUINonCopperWarning(), PCB_IO_EAGLE::packageHole(), PCB_IO_EAGLE::packagePad(), PCB_PLOT_PARAMS_PARSER::Parse(), GPCB_FPL_CACHE::parseFOOTPRINT(), DRC_RULES_PARSER::parseLayer(), PCB_IO_KICAD_SEXPR_PARSER::parsePAD(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_VIA(), CLI::PCB_EXPORT_BASE_COMMAND::PCB_EXPORT_BASE_COMMAND(), PCB_PLOT_PARAMS::PCB_PLOT_PARAMS(), PhysicalLayersMask(), DRAWING_TOOL::PlaceCharacteristics(), DRAWING_TOOL::PlaceStackup(), EXPORT_SVG::Plot(), DIALOG_PLOT::Plot(), BRDITEMS_PLOTTER::PlotPad(), PlotStandardLayer(), PRIVATE_LAYERS_GRID_TABLE::PRIVATE_LAYERS_GRID_TABLE(), PAD::PTHMask(), DRC_CACHE_GENERATOR::Run(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), DRC_TEST_PROVIDER_SLIVER_CHECKER::Run(), DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal(), PCB_SELECTION_TOOL::selectAllConnectedTracks(), PAD::SetAttribute(), BOARD_DESIGN_SETTINGS::SetCopperLayerCount(), BOARD_DESIGN_SETTINGS::SetEnabledLayers(), PCB_IO_EAGLE::setKeepoutSettingsToZone(), ZONE_CREATE_HELPER::setUniquePriority(), PCBNEW_PRINTOUT::setupViewLayers(), PANEL_SETUP_LAYERS::showLayerTypes(), SideSpecificMask(), PNS_KICAD_IFACE_BASE::syncPad(), DRC_TEST_PROVIDER_MISC::testDisabledLayers(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::testHoleAgainstHole(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadClearances(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), DIALOG_SWAP_LAYERS::TransferDataFromWindow(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::transferDataToPad(), DIALOG_SWAP_LAYERS::TransferDataToWindow(), PCB_PROPERTIES_PANEL::updateLists(), PCB_CONTROL::UpdateMessagePanel(), DIALOG_PAD_PROPERTIES::updatePadLayersList(), RATSNEST_VIEW_ITEM::ViewDraw(), and HYPERLYNX_EXPORTER::writeSinglePadStack().

◆ AllLayersMask()

LSET LSET::AllLayersMask ( )
static

Definition at line 898 of file lset.cpp.

References LSET().

Referenced by PCB_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestSnapAnchor(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), BOOST_AUTO_TEST_CASE(), CLI::FP_EXPORT_SVG_COMMAND::doPerform(), DRC_RTREE::DRC_RTREE(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), FOOTPRINT_DESC::FOOTPRINT_DESC(), GERBVIEW_FRAME::GERBVIEW_FRAME(), PCB_LAYER_BOX_SELECTOR::getEnabledLayers(), APPEARANCE_CONTROLS::getVisibleLayers(), GERBVIEW_FRAME::GetVisibleLayers(), BOARD::GetVisibleLayers(), ROUTER_TOOL::handleLayerSwitch(), LoadBoard(), CADSTAR_PCB_ARCHIVE_LOADER::loadBoardStackup(), PCB_EDIT_FRAME::onBoardLoaded(), DIALOG_DRC::OnDRCItemSelected(), PCB_POINT_EDITOR::OnSelectionChange(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), CLI::PCB_EXPORT_BASE_COMMAND::PCB_EXPORT_BASE_COMMAND(), PCB_SHAPE_DESC::PCB_SHAPE_DESC(), PROJECT_LOCAL_SETTINGS::PROJECT_LOCAL_SETTINGS(), PCB_PICKER_TOOL::reset(), PCB_LAYER_BOX_SELECTOR::Resync(), DRC_TEST_PROVIDER_DISALLOW::Run(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), DRC_TEST_PROVIDER_TEXT_DIMS::Run(), PCB_SELECTION_TOOL::Selectable(), DRAWING_TOOL::SetAnchor(), APPEARANCE_CONTROLS::setVisibleLayers(), DRC_TEST_PROVIDER_MISC::testAssertions(), DRC_TEST_PROVIDER_MISC::testDisabledLayers(), PANEL_SETUP_LAYERS::testLayerNames(), DRC_TEST_PROVIDER_MISC::testTextVars(), TRACK_VIA_DESC::TRACK_VIA_DESC(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), PCB_EDIT_FRAME::UpdateUserInterface(), PCB_VIA::ViewGetLOD(), WriteDRCReport(), and ZONE_DESC::ZONE_DESC().

◆ AllNonCuMask()

◆ AllTechMask()

◆ BackAssembly()

LSET LSET::BackAssembly ( )
static

Return a complete set of all bottom assembly layers which is all B_SilkS and B_Mask.

Definition at line 809 of file lset.cpp.

References arrayDim(), B_CrtYd, B_Fab, B_Mask, and B_SilkS.

◆ BackBoardTechMask()

LSET LSET::BackBoardTechMask ( )
static

Return a mask holding technical layers used in a board fabrication (no CU layer) on Back side.

Definition at line 911 of file lset.cpp.

References B_Adhes, B_Mask, B_Paste, and B_SilkS.

Referenced by AllBoardTechMask(), PAD::FlashLayer(), and DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem().

◆ BackMask()

◆ BackTechMask()

LSET LSET::BackTechMask ( )
static

Return a mask holding all technical layers (no CU layer) on back side.

Definition at line 905 of file lset.cpp.

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

Referenced by AllTechMask(), BackMask(), SideSpecificMask(), and PCB_VIA::ViewGetLOD().

◆ Contains()

◆ CuStack()

LSEQ LSET::CuStack ( ) const

Return a sequence of copper layers in starting from the front/top and extending to the back/bottom.

This specific sequence is depended upon in numerous places.

Definition at line 177 of file lset.cpp.

References arrayDim(), B_Cu, F_Cu, 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, and Seq().

Referenced by EXPORTER_STEP::buildFootprint3DShapes(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::formatBoardLayers(), APPEARANCE_CONTROLS::rebuildLayers(), UIOrder(), PCB_CONTROL::UpdateMessagePanel(), and HYPERLYNX_EXPORTER::writeStackupInfo().

◆ ExternalCuMask()

◆ ExtractLayer()

PCB_LAYER_ID LSET::ExtractLayer ( ) const

Find the first set PCB_LAYER_ID.

Returns UNDEFINED_LAYER if more than one is set or UNSELECTED_LAYER if none is set.

Definition at line 774 of file lset.cpp.

References UNDEFINED_LAYER, and UNSELECTED_LAYER.

Referenced by PCBNEW_PRINTOUT::OnPrintPage().

◆ FmtBin()

std::string LSET::FmtBin ( ) const

Return a binary string showing contents of this LSEQ.

Definition at line 304 of file lset.cpp.

Referenced by ViaSort().

◆ FmtHex()

std::string LSET::FmtHex ( ) const

Return a hex string showing contents of this LSEQ.

Definition at line 328 of file lset.cpp.

References arrayDim().

Referenced by PCB_PLOT_PARAMS::Format(), and PROJECT_LOCAL_SETTINGS::PROJECT_LOCAL_SETTINGS().

◆ ForbiddenFootprintLayers()

LSET LSET::ForbiddenFootprintLayers ( )
static

Layers which are not allowed within footprint definitions.

Currently internal copper layers and Margin.

Definition at line 1005 of file lset.cpp.

References InternalCuMask().

Referenced by DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), APPEARANCE_CONTROLS::onLayerLeftClick(), APPEARANCE_CONTROLS::rebuildLayers(), and FOOTPRINT_EDIT_FRAME::ReCreateHToolbar().

◆ FrontAssembly()

LSET LSET::FrontAssembly ( )
static

Return a complete set of all top assembly layers which is all F_SilkS and F_Mask.

Definition at line 795 of file lset.cpp.

References arrayDim(), F_CrtYd, F_Fab, F_Mask, and F_SilkS.

◆ FrontBoardTechMask()

LSET LSET::FrontBoardTechMask ( )
static

Return a mask holding technical layers used in a board fabrication (no CU layer) on front side.

Definition at line 924 of file lset.cpp.

References F_Adhes, F_Mask, F_Paste, and F_SilkS.

Referenced by AllBoardTechMask(), PAD::FlashLayer(), and DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem().

◆ FrontMask()

◆ FrontTechMask()

LSET LSET::FrontTechMask ( )
static

Return a mask holding all technical layers (no CU layer) on front side.

Definition at line 917 of file lset.cpp.

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

Referenced by AllTechMask(), FrontMask(), SideSpecificMask(), and PCB_VIA::ViewGetLOD().

◆ InternalCuMask()

◆ Name()

const wxChar * LSET::Name ( PCB_LAYER_ID  aLayerId)
static

Return the fixed name association with aLayerId.

NOTE: These names must not be translated or changed.

They are used as tokens in the board file format because the ordinal value of the PCB_LAYER_ID enum was not stable over time.

See also
LayerName() for what should be used to display the default name of a layer in the GUI.

Definition at line 89 of file lset.cpp.

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, 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, Margin, Rescue, User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.

Referenced by PANEL_SETUP_LAYERS::addUserDefinedLayer(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::formatBoardLayers(), BOARD_STACKUP::FormatBoardStackup(), PCB_IO_KICAD_SEXPR::formatLayer(), PCB_IO_KICAD_SEXPR::formatLayers(), PCB_IO_KICAD_SEXPR_PARSER::init(), LoadBoard(), CADSTAR_PCB_ARCHIVE_LOADER::logBoardStackupMessage(), CADSTAR_PCB_ARCHIVE_LOADER::logBoardStackupWarning(), FOOTPRINT_EDITOR_SETTINGS::MigrateFromLegacy(), PCBNEW_SETTINGS::MigrateFromLegacy(), PCB_EDIT_FRAME::onBoardLoaded(), PCB_IO_KICAD_SEXPR_PARSER::parseLayer(), CLI::PCB_EXPORT_BASE_COMMAND::PCB_EXPORT_BASE_COMMAND(), PCB_SHAPE_DESC::PCB_SHAPE_DESC(), TRACK_VIA_DESC::TRACK_VIA_DESC(), PCB_PROPERTIES_PANEL::updateLists(), PCB_EDIT_FRAME::UpdateUserInterface(), WriteDRCReport(), and ZONE_DESC::ZONE_DESC().

◆ ParseHex()

int LSET::ParseHex ( const char *  aStart,
int  aCount 
)

Convert the output of FmtHex() and replaces this set's values with those given in the input string.

Parsing stops at the first non hex ASCII byte, except that marker bytes output from FmtHex are not terminators.

Returns
int - number of bytes consumed

Definition at line 366 of file lset.cpp.

Referenced by PCB_PLOT_PARAMS_PARSER::Parse(), and PROJECT_LOCAL_SETTINGS::PROJECT_LOCAL_SETTINGS().

◆ PhysicalLayersMask()

LSET LSET::PhysicalLayersMask ( )
static

Return a mask holding all layers which are physically realized.

Equivalent to the copper layers + the board tech mask.

Definition at line 960 of file lset.cpp.

References AllBoardTechMask(), and AllCuMask().

Referenced by BOARD_COMMIT::dirtyIntersectingZones(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_OPENGL::reload(), PCB_SELECTION_TOOL::Selectable(), PAD::ViewGetLOD(), and PCB_VIA::ViewGetLOD().

◆ Seq() [1/3]

LSEQ LSET::Seq ( ) const

Return a LSEQ from this LSET in ascending PCB_LAYER_ID order.

Each LSEQ element will be in the same sequence as in PCB_LAYER_ID and only present in the resultant LSEQ if present in this set. Therefore the sequence is subject to change, use it only when enumeration and not order is important.

Definition at line 466 of file lset.cpp.

Referenced by CuStack(), SeqStackupForPlotting(), SeqStackupTop2Bottom(), TechAndUserUIOrder(), and Users().

◆ Seq() [2/3]

LSEQ LSET::Seq ( const LSEQ aSequence) const

Definition at line 452 of file lset.cpp.

◆ Seq() [3/3]

LSEQ LSET::Seq ( const PCB_LAYER_ID aWishListSequence,
unsigned  aCount 
) const

Return an LSEQ from the union of this LSET and a desired sequence.

The LSEQ element will be in the same sequence as aWishListSequence if they are present.

Parameters
aWishListSequenceestablishes the order of the returned LSEQ, and the LSEQ will only contain PCB_LAYER_IDs which are present in this set.
aCountis the length of aWishListSequence array.

Definition at line 418 of file lset.cpp.

Referenced by PANE_ZONE_VIEWER::ActivateSelectedZone(), CN_CONNECTIVITY_ALGO::Add(), STEP_PCB_MODEL::AddPadShape(), PCB_IO_IPC2581::addPadStack(), CN_CONNECTIVITY_ALGO::Build(), EXPORTER_STEP::buildBoard3DShapes(), PCB_NET_INSPECTOR_PANEL::buildColumns(), FOOTPRINT::CheckPads(), collidesWithArea(), BOARD_ADAPTER::createLayers(), GENCAD_EXPORTER::CreatePadsShapesSection(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), APPEARANCE_CONTROLS::doApplyLayerPreset(), KIGFX::PCB_PAINTER::Draw(), DRAWING_TOOL::DrawVia(), DIALOG_EXPORT_SVG::ExportSVGFile(), ZONE_FILLER::Fill(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), PAD::FlashLayer(), PCB_VIA::FlashLayer(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::formatBoardLayers(), GENDRILL_WRITER_BASE::GenDrillReportFile(), PCB_IO_IPC2581::generateCadLayers(), PCB_IO_IPC2581::generateLayerFeatures(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), ZONE::GetItemDescription(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), ZONE::GetMsgPanelInfo(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), PAD::GetPrincipalLayer(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), ZONE_SEARCH_HANDLER::getResultCell(), MODEL_ZONES_OVERVIEW_TABLE::GetValueByRow(), ROUTER_TOOL::handleLayerSwitch(), ZONE::InitDataFromSrcInCopyCtor(), GENERAL_COLLECTOR::Inspect(), BOARD_INSPECTION_TOOL::InspectClearance(), PNS_KICAD_IFACE::IsItemVisible(), CADSTAR_PCB_ARCHIVE_LOADER::loadDocumentationSymbols(), CADSTAR_PCB_ARCHIVE_LOADER::loadFigures(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryFigures(), DIALOG_DRC::OnDRCItemSelected(), APPEARANCE_CONTROLS::OnLayerContextMenu(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), CN_VISITOR::operator()(), BOARD_ITEM::ptr_cmp::operator()(), KI_TEST::kitest_cmp_drawings::operator()(), FOOTPRINT::cmp_pads::operator()(), FOOTPRINT::cmp_padstack::operator()(), FOOTPRINT::cmp_zones::operator()(), kiapi::board::PackLayerSet(), PCB_IO_KICAD_SEXPR_PARSER::parsePAD(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_VIA(), PlotLayerOutlines(), PlotStandardLayer(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), DRC_CACHE_GENERATOR::Run(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), DRC_TEST_PROVIDER_DISALLOW::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), DRC_TEST_PROVIDER_SLIVER_CHECKER::Run(), DRC_TEST_PROVIDER_ZONE_CONNECTIONS::Run(), PCB_SELECTION_TOOL::Selectable(), BOARD_ITEM::SetLayerSet(), PCB_VIA::SetLayerSet(), ZONE::SetLayerSet(), GERBVIEW_PRINTOUT::setupViewLayers(), PCBNEW_PRINTOUT::setupViewLayers(), GLOBAL_EDIT_TOOL::swapBoardItem(), Technicals(), DRC_TEST_PROVIDER_MISC::testDisabledLayers(), DRC_TEST_PROVIDER_SOLDER_MASK::testSilkToMaskClearance(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), PCB_EDIT_FRAME::UpdateUserInterface(), RATSNEST_VIEW_ITEM::ViewDraw(), ZONE::ViewGetLayers(), and HYPERLYNX_EXPORTER::writeSinglePadStack().

◆ SeqStackupForPlotting()

LSEQ LSET::SeqStackupForPlotting ( ) const

◆ SeqStackupTop2Bottom()

LSEQ LSET::SeqStackupTop2Bottom ( PCB_LAYER_ID  aSelectedLayer = UNDEFINED_LAYER) const

Generate a sequence of layers that represent a top to bottom stack of this set of layers.

Parameters
aSelectedLayeris the layer to put at the top of stack when defined.
Returns
the top to bottom layer sequence.

Definition at line 482 of file lset.cpp.

References arrayDim(), 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, 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, Margin, Seq(), UNDEFINED_LAYER, User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.

Referenced by BOOST_AUTO_TEST_CASE(), and PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates().

◆ SideSpecificMask()

LSET LSET::SideSpecificMask ( )
static

◆ TechAndUserUIOrder()

LSEQ LSET::TechAndUserUIOrder ( ) const

Returns the technical and user layers in the order shown in layer widget.

Definition at line 268 of file lset.cpp.

References arrayDim(), B_Adhes, B_CrtYd, B_Fab, B_Mask, B_Paste, B_SilkS, Cmts_User, Dwgs_User, Eco1_User, Eco2_User, Edge_Cuts, F_Adhes, F_CrtYd, F_Fab, F_Mask, F_Paste, F_SilkS, Margin, Seq(), User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.

Referenced by UIOrder().

◆ Technicals()

LSEQ LSET::Technicals ( LSET  aSubToOmit = LSET()) const

Return a sequence of technical layers.

A sequence provides a certain order.

Parameters
aSubToOmitis the subset of the technical layers to omit, defaults to none.

Definition at line 219 of file lset.cpp.

References arrayDim(), B_Adhes, B_CrtYd, B_Fab, B_Mask, B_Paste, B_SilkS, F_Adhes, F_CrtYd, F_Fab, F_Mask, F_Paste, F_SilkS, and Seq().

◆ UIOrder()

◆ UserDefinedLayers()

◆ UserMask()

LSET LSET::UserMask ( )
static

◆ Users()

LSEQ LSET::Users ( ) const

*_User layers.

Definition at line 243 of file lset.cpp.

References arrayDim(), Cmts_User, Dwgs_User, Eco1_User, Eco2_User, Edge_Cuts, Margin, Seq(), User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.


The documentation for this class was generated from the following files: