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

LSET is a set of PCB_LAYER_IDs. More...

#include <lset.h>

Inheritance diagram for LSET:
BASE_SET

Classes

class  all_set_layers_iterator
 
class  copper_layers_iterator
 
class  non_copper_layers_iterator
 

Public Member Functions

 LSET ()
 Create an empty (cleared) set.
 
 LSET (const BASE_SET &aOther)
 
 LSET (std::initializer_list< PCB_LAYER_ID > aList)
 
 LSET (const LSEQ &aSeq)
 
 LSET (const LAYER_RANGE &aRange)
 
 LSET (unsigned long __val)=delete
 
bool Contains (PCB_LAYER_ID aLayer) const
 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 TechAndUserUIOrder () const
 Returns the technical and user layers in the order shown in layer widget.
 
LSEQ UIOrder () const
 Returns the copper, technical and user layers in the order shown in layer widget.
 
LSEQ Seq (const LSEQ &aSequence) const
 Return an LSEQ from the union of this LSET and a desired sequence.
 
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.
 
void RunOnLayers (const std::function< void(PCB_LAYER_ID)> &aFunction) const
 Execute a function on each layer of the LSET.
 
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.
 
int ParseHex (const std::string &str)
 
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.
 
LSETFlip (int aCopperLayersCount=0)
 Flip the layers in this set.
 
all_set_layers_iterator begin () const
 
all_set_layers_iterator end () const
 
copper_layers_iterator copper_layers_begin () const
 
copper_layers_iterator copper_layers_end () const
 
non_copper_layers_iterator non_copper_layers_begin () const
 
non_copper_layers_iterator non_copper_layers_end () const
 
iterator begin ()
 
iterator end ()
 
BASE_SETset (size_t pos)
 
BASE_SETset (size_t pos, bool value)
 
BASE_SETset ()
 
BASE_SETreset (size_t pos)
 
BASE_SETreset ()
 
BASE_SETflip (size_t pos)
 
BASE_SETflip ()
 
BASE_SET operator~ () const
 
BASE_SEToperator&= (const BASE_SET &other)
 
BASE_SEToperator|= (const BASE_SET &other)
 
BASE_SEToperator^= (const BASE_SET &other)
 
int compare (const BASE_SET &other) const
 
bool operator< (const BASE_SET &other) const
 
set_bits_iterator set_bits_begin () const
 
set_bits_iterator set_bits_end () const
 
set_bits_reverse_iterator set_bits_rbegin () const
 
set_bits_reverse_iterator set_bits_rend () const
 

Static Public Member Functions

static wxString Name (PCB_LAYER_ID aLayerId)
 Return the fixed name association with aLayerId.
 
static int NameToLayer (wxString &aName)
 Return the layer number from a layer name.
 
static bool IsBetween (PCB_LAYER_ID aStart, PCB_LAYER_ID aEnd, PCB_LAYER_ID aLayer)
 Return true if aLayer is between aStart and aEnd, inclusive.
 
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.
 
static int LayerCount (PCB_LAYER_ID aStart, PCB_LAYER_ID aEnd, int aCopperLayerCount)
 Return the number of layers between aStart and aEnd, inclusive.
 

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 35 of file lset.h.

Constructor & Destructor Documentation

◆ LSET() [1/6]

LSET::LSET ( )
inline

Create an empty (cleared) set.

Definition at line 42 of file lset.h.

Referenced by AllLayersMask(), and AllNonCuMask().

◆ LSET() [2/6]

LSET::LSET ( const BASE_SET aOther)
inline

Definition at line 44 of file lset.h.

◆ LSET() [3/6]

LSET::LSET ( std::initializer_list< PCB_LAYER_ID aList)

Definition at line 44 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [4/6]

LSET::LSET ( const LSEQ aSeq)

Definition at line 55 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [5/6]

LSET::LSET ( const LAYER_RANGE aRange)

Definition at line 66 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [6/6]

LSET::LSET ( unsigned long  __val)
delete

Member Function Documentation

◆ AllBoardTechMask()

LSET LSET::AllBoardTechMask ( )
static

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

Definition at line 741 of file lset.cpp.

References BackBoardTechMask(), and FrontBoardTechMask().

Referenced by CADSTAR_PCB_ARCHIVE_LOADER::getKiCadLayerSet(), PhysicalLayersMask(), CADSTAR_PCB_ARCHIVE_LOADER::remapUnsureLayers(), and ALTIUM_PCB::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 676 of file lset.cpp.

References B_Cu, F_Cu, and BASE_SET::set().

Referenced by PCAD2KICAD::PCAD_PAD::AddToFootprint(), DIALOG_PAD_PROPERTIES::afterPadstackModeChanged(), DIALOG_TRACK_VIA_PROPERTIES::afterPadstackModeChanged(), DIALOG_PLOT::applyPlotSettings(), MULTICHANNEL_TOOL::AutogenerateRuleAreas(), CN_CONNECTIVITY_ALGO::Build(), EXPORTER_STEP::buildZones3DShape(), FOOTPRINT::CheckShortingPads(), TRACKS_CLEANER::cleanup(), HYPERLYNX_EXPORTER::collectNetObjects(), compute_pad_access_code(), EXPORTER_PCB_VRML::ComputeLayer3D_Zpos(), ODB_NET_LIST::ComputePadAccessSide(), 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(), DRAWING_TOOL::DrawVia(), PADSTACK::EffectiveLayerFor(), ZONE_FILLER::Fill(), fmt_mask(), PCB_IO_KICAD_SEXPR::formatLayers(), GENDRILL_WRITER_BASE::GenDrillReportFile(), BOARD_ADAPTER::GetBoardEditorCopperLayerColors(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadLayerSet(), 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_CONTROL::LayerNext(), PCB_CONTROL::LayerPrev(), 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::parseLayersForCuItemWithSoldermask(), 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::PlotDrillMarks(), BRDITEMS_PLOTTER::PlotPad(), BRDITEMS_PLOTTER::PlotShape(), 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(), 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(), DIALOG_PAD_PROPERTIES::transferDataToPad(), DIALOG_SWAP_LAYERS::TransferDataToWindow(), PCB_PROPERTIES_PANEL::updateLists(), PCB_CONTROL::UpdateMessagePanel(), DIALOG_PAD_PROPERTIES::updatePadLayersList(), RATSNEST_VIEW_ITEM::ViewDraw(), PAD::ViewGetLayers(), and HYPERLYNX_EXPORTER::writeSinglePadStack().

◆ AllLayersMask()

LSET LSET::AllLayersMask ( )
static

Definition at line 701 of file lset.cpp.

References LSET().

Referenced by PCB_GRID_HELPER::BestSnapAnchor(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), BOARD_ITEM::BoardLayerSet(), 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(), LoadBoard(), CADSTAR_PCB_ARCHIVE_LOADER::loadBoardStackup(), PCB_EDIT_FRAME::onBoardLoaded(), DIALOG_DRC::OnDRCItemSelected(), PCB_POINT_EDITOR::OnSelectionChange(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), padNeedsUpdate(), DRC_RULES_PARSER::parseDRC_RULE(), CLI::PCB_EXPORT_BASE_COMMAND::PCB_EXPORT_BASE_COMMAND(), PCB_SHAPE_DESC::PCB_SHAPE_DESC(), EDIT_TOOL::pickReferencePoint(), PAD_TOOL::PlacePad(), 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 658 of file lset.cpp.

References 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 714 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 708 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().

◆ begin() [1/2]

iterator BASE_SET::begin ( )
inlineinherited

Definition at line 105 of file base_set.h.

Referenced by BASE_SET::compare(), and BASE_SET::operator<().

◆ begin() [2/2]

all_set_layers_iterator LSET::begin ( ) const
inline

Definition at line 312 of file lset.h.

◆ compare()

int BASE_SET::compare ( const BASE_SET other) const
inlineinherited

◆ Contains()

◆ copper_layers_begin()

LSET::copper_layers_iterator LSET::copper_layers_begin ( ) const

◆ copper_layers_end()

LSET::copper_layers_iterator LSET::copper_layers_end ( ) const

◆ CuStack()

◆ end() [1/2]

iterator BASE_SET::end ( )
inlineinherited

Definition at line 106 of file base_set.h.

Referenced by BASE_SET::compare(), and BASE_SET::operator<().

◆ end() [2/2]

all_set_layers_iterator LSET::end ( ) const
inline

Definition at line 313 of file lset.h.

Referenced by IsBetween(), and LayerCount().

◆ ExternalCuMask()

LSET LSET::ExternalCuMask ( )
static

◆ 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 630 of file lset.cpp.

References UNDEFINED_LAYER, and UNSELECTED_LAYER.

Referenced by BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::Draw(), and PCBNEW_PRINTOUT::OnPrintPage().

◆ flip() [1/2]

BASE_SET & BASE_SET::flip ( )
inlineinherited

Definition at line 169 of file base_set.h.

◆ Flip()

LSET & LSET::Flip ( int  aCopperLayersCount = 0)

Flip the layers in this set.

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 581 of file lset.cpp.

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, InternalCuMask(), BASE_SET::reset(), and BASE_SET::set().

Referenced by PAD::Flip().

◆ flip() [2/2]

BASE_SET & BASE_SET::flip ( size_t  pos)
inlineinherited

Definition at line 159 of file base_set.h.

Referenced by BASE_SET::operator~(), and DRC_TEST_PROVIDER_MISC::testDisabledLayers().

◆ FmtBin()

std::string LSET::FmtBin ( ) const

Return a binary string showing contents of this LSEQ.

Definition at line 290 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 314 of file lset.cpp.

References arrayDim().

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

◆ ForbiddenFootprintLayers()

LSET LSET::ForbiddenFootprintLayers ( )
static

Layers which are not allowed within footprint definitions.

Currently internal copper layers and Margin.

Definition at line 792 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 651 of file lset.cpp.

References 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 727 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 720 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()

◆ IsBetween()

bool LSET::IsBetween ( PCB_LAYER_ID  aStart,
PCB_LAYER_ID  aEnd,
PCB_LAYER_ID  aLayer 
)
static

Return true if aLayer is between aStart and aEnd, inclusive.

Takes into account the direction of the layers and the fact that B_Cu comes before In*_Cu

Definition at line 159 of file lset.cpp.

References B_Cu, and end().

◆ LayerCount()

int LSET::LayerCount ( PCB_LAYER_ID  aStart,
PCB_LAYER_ID  aEnd,
int  aCopperLayerCount 
)
static

Return the number of layers between aStart and aEnd, inclusive.

Definition at line 76 of file lset.cpp.

References B_Cu, end(), F_Cu, and IsCopperLayer().

◆ Name()

wxString 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 183 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, Margin, and Rescue.

Referenced by PANEL_SETUP_LAYERS::addUserDefinedLayer(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), BOOST_AUTO_TEST_CASE(), 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().

◆ NameToLayer()

int LSET::NameToLayer ( wxString &  aName)
static

Return the layer number from a layer name.

Definition at line 107 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, In1_Cu, Margin, Rescue, and User_1.

Referenced by BOOST_AUTO_TEST_CASE(), and PCB_IO_KICAD_SEXPR_PARSER::parseLayers().

◆ non_copper_layers_begin()

LSET::non_copper_layers_iterator LSET::non_copper_layers_begin ( ) const

Definition at line 972 of file lset.cpp.

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

◆ non_copper_layers_end()

LSET::non_copper_layers_iterator LSET::non_copper_layers_end ( ) const

Definition at line 977 of file lset.cpp.

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

◆ operator&=()

BASE_SET & BASE_SET::operator&= ( const BASE_SET other)
inlineinherited

Definition at line 186 of file base_set.h.

◆ operator<()

bool BASE_SET::operator< ( const BASE_SET other) const
inlineinherited

◆ operator^=()

BASE_SET & BASE_SET::operator^= ( const BASE_SET other)
inlineinherited

Definition at line 200 of file base_set.h.

◆ operator|=()

BASE_SET & BASE_SET::operator|= ( const BASE_SET other)
inlineinherited

Definition at line 193 of file base_set.h.

◆ operator~()

BASE_SET BASE_SET::operator~ ( ) const
inlineinherited

Definition at line 178 of file base_set.h.

References BASE_SET::flip().

◆ ParseHex() [1/2]

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 358 of file lset.cpp.

References BASE_SET::set().

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

◆ ParseHex() [2/2]

int LSET::ParseHex ( const std::string &  str)

Definition at line 352 of file lset.cpp.

References ParseHex().

◆ 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 756 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().

◆ reset() [1/2]

BASE_SET & BASE_SET::reset ( )
inlineinherited

Definition at line 152 of file base_set.h.

Referenced by Flip().

◆ reset() [2/2]

◆ RunOnLayers()

◆ Seq() [1/2]

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 424 of file lset.cpp.

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

◆ Seq() [2/2]

LSEQ LSET::Seq ( const LSEQ aSequence) 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.

Definition at line 410 of file lset.cpp.

Referenced by PANE_ZONE_VIEWER::ActivateSelectedZone(), STEP_PCB_MODEL::AddPadShape(), PCB_IO_IPC2581::addPadStack(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildBoard3DShapes(), PCB_NET_INSPECTOR_PANEL::buildColumns(), EXPORTER_STEP::buildFootprint3DShapes(), EXPORTER_STEP::buildTrack3DShape(), EXPORTER_STEP::buildZones3DShape(), PCB_GRID_HELPER::computeAnchors(), GENCAD_EXPORTER::CreatePadsShapesSection(), APPEARANCE_CONTROLS::doApplyLayerPreset(), DRAWING_TOOL::DrawVia(), DIALOG_EXPORT_SVG::ExportSVGFile(), ZONE_FILLER::Fill(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), PAD::FlashLayer(), PCB_IO_KICAD_SEXPR::format(), GENDRILL_WRITER_BASE::GenDrillReportFile(), PCB_IO_IPC2581::generateCadLayers(), PCB_IO_IPC2581::generateLayerFeatures(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), ZONE::GetFirstLayer(), 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(), ODB_MATRIX_ENTITY::InitMatrixLayerData(), 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(), ODB_STEP_ENTITY::MakeLayerEntity(), DIALOG_DRC::OnDRCItemSelected(), APPEARANCE_CONTROLS::OnLayerContextMenu(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), BOARD_ITEM::ptr_cmp::operator()(), KI_TEST::kitest_cmp_drawings::operator()(), FOOTPRINT::cmp_pads::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_TEST_PROVIDER_CONNECTION_WIDTH::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), DRC_TEST_PROVIDER_SLIVER_CHECKER::Run(), DRC_TEST_PROVIDER_ZONE_CONNECTIONS::Run(), PCB_SELECTION_TOOL::Selectable(), PAD::SetAttribute(), BOARD_ITEM::SetLayerSet(), GERBVIEW_PRINTOUT::setupViewLayers(), PCBNEW_PRINTOUT::setupViewLayers(), GLOBAL_EDIT_TOOL::swapBoardItem(), DRC_TEST_PROVIDER_MISC::testDisabledLayers(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), PCB_EDIT_FRAME::UpdateUserInterface(), PAD::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 440 of file lset.cpp.

References B_Adhes, B_CrtYd, B_Fab, B_Mask, B_Paste, B_SilkS, Cmts_User, copper_layers_begin(), copper_layers_end(), Dwgs_User, Eco1_User, Eco2_User, Edge_Cuts, F_Adhes, F_CrtYd, F_Fab, F_Mask, F_Paste, F_SilkS, Margin, non_copper_layers_begin(), non_copper_layers_end(), Seq(), UNDEFINED_LAYER, and User_1.

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

◆ set() [1/3]

BASE_SET & BASE_SET::set ( )
inlineinherited

Definition at line 135 of file base_set.h.

Referenced by Flip(), and LSET().

◆ set() [2/3]

BASE_SET & BASE_SET::set ( size_t  pos)
inlineinherited

Definition at line 115 of file base_set.h.

Referenced by SCOPED_LAYERSET::Add(), AllCuMask(), DIALOG_PLOT::applyPlotSettings(), BackMask(), BOARD::BOARD(), BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS(), BOARD_PRINTOUT_SETTINGS::BOARD_PRINTOUT_SETTINGS(), BOOST_AUTO_TEST_CASE(), AR_AUTOPLACER::buildFpAreas(), BOARD::ComputeBoundingBox(), ALTIUM_PCB::ConvertFills6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItemOnLayer(), ZONE_CREATE_HELPER::createNewZone(), CONVERT_TOOL::CreatePolys(), PCB_IO_EAGLE::defaultKicadLayer(), FOOTPRINT::Deserialize(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), PCBEXPR_LAYER_VALUE::EqualTo(), existsOnLayerFunc(), EXPORTER_STEP::Export(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), FrontMask(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), DIALOG_EXPORT_SVG::getCheckBoxSelectedLayers(), PCB_SHAPE::GetLayerSet(), PCB_TRACK::GetLayerSet(), PCB_VIA::GetLayerSet(), PANEL_SETUP_LAYERS::GetUILayerMask(), APPEARANCE_CONTROLS::getVisibleLayers(), BOARD_ADAPTER::GetVisibleLayers(), ROUTER_TOOL::handleLayerSwitch(), ALTIUM_PCB::HelperSetZoneLayers(), intersectsAreaFunc(), PARAM_LAYER_PRESET::jsonToPresets(), PCB_IO_KICAD_LEGACY::leg_mask2new(), BOARD_PRINTOUT_SETTINGS::Load(), FABMASTER::loadLayers(), DIALOG_DRC::OnDRCItemSelected(), DIALOG_COPPER_ZONE::OnLayerSelection(), DIALOG_NON_COPPER_ZONES_EDITOR::OnLayerSelection(), DIALOG_RULE_AREA_PROPERTIES::OnLayerSelection(), APPEARANCE_CONTROLS::onLayerVisibilityToggled(), PCBNEW_PRINTOUT::OnPrintPage(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), PCB_PLOT_PARAMS_PARSER::Parse(), PCB_IO_EASYEDAPRO_PARSER::ParseBoard(), PCB_IO_KICAD_SEXPR_PARSER::parseBOARD_unchecked(), PCB_IO_KICAD_SEXPR_PARSER::parseFOOTPRINT_unchecked(), ParseHex(), DRC_RULES_PARSER::parseLayer(), PCB_IO_KICAD_SEXPR_PARSER::parseLayers(), DRAWING_TOOL::PlaceCharacteristics(), DRAWING_TOOL::PlaceStackup(), PRIVATE_LAYERS_GRID_TABLE::PRIVATE_LAYERS_GRID_TABLE(), PADSTACK::RelevantShapeLayers(), GERBVIEW_FRAME::RemapLayers(), PCB_SELECTION_CONDITIONS::sameLayerFunc(), PCB_SELECTION_TOOL::Selectable(), PAD::SetAttribute(), BOARD_DESIGN_SETTINGS::SetEnabledLayers(), ZONE::SetFillFlag(), DIALOG_PRINT_GERBVIEW::setLayerSetFromList(), DIALOG_PRINT_PCBNEW::setLayerSetFromList(), APPEARANCE_CONTROLS::SetLayerVisible(), GENERAL_COLLECTORS_GUIDE::SetLayerVisible(), ZONE_SETTINGS::SetupLayersList(), GLOBAL_EDIT_TOOL::swapBoardItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::transferDataToPad(), kiapi::board::UnpackLayerSet(), PANEL_SETUP_BOARD_STACKUP::updateCopperLayerCount(), RATSNEST_VIEW_ITEM::ViewDraw(), and ZONE_SETTINGS::ZONE_SETTINGS().

◆ set() [3/3]

BASE_SET & BASE_SET::set ( size_t  pos,
bool  value 
)
inlineinherited

Definition at line 125 of file base_set.h.

◆ set_bits_begin()

set_bits_iterator BASE_SET::set_bits_begin ( ) const
inlineinherited

Definition at line 305 of file base_set.h.

Referenced by BOOST_AUTO_TEST_CASE().

◆ set_bits_end()

set_bits_iterator BASE_SET::set_bits_end ( ) const
inlineinherited

Definition at line 306 of file base_set.h.

Referenced by BOOST_AUTO_TEST_CASE().

◆ set_bits_rbegin()

set_bits_reverse_iterator BASE_SET::set_bits_rbegin ( ) const
inlineinherited

Definition at line 308 of file base_set.h.

Referenced by BOOST_AUTO_TEST_CASE().

◆ set_bits_rend()

set_bits_reverse_iterator BASE_SET::set_bits_rend ( ) const
inlineinherited

Definition at line 312 of file base_set.h.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SideSpecificMask()

LSET LSET::SideSpecificMask ( )
static

Definition at line 785 of file lset.cpp.

References AllCuMask(), BackTechMask(), and FrontTechMask().

Referenced by FOOTPRINT::GetSide(), and BOARD_ITEM::IsSideSpecific().

◆ TechAndUserUIOrder()

LSEQ LSET::TechAndUserUIOrder ( ) const

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

Definition at line 253 of file lset.cpp.

References 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, non_copper_layers_begin(), non_copper_layers_end(), Seq(), and User_1.

Referenced by PCB_IO_KICAD_SEXPR::formatBoardLayers(), and UIOrder().

◆ UIOrder()

◆ UserDefinedLayers()

◆ UserMask()


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