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 std::vector< 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
 Return the technical and user layers in the order shown in layer widget.
 
LSEQ UIOrder () const
 Return 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.
 
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
 
std::string FmtBin () const
 Return a binary string showing contents of this set.
 
std::string FmtHex () const
 Return a hex string showing contents of this set.
 
int ParseHex (const std::string &str)
 Convert the output of FmtHex() and replaces this set's values with those given in the input string.
 
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.
 
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 36 of file lset.h.

Constructor & Destructor Documentation

◆ LSET() [1/7]

LSET::LSET ( )
inline

Create an empty (cleared) set.

Definition at line 43 of file lset.h.

Referenced by AllLayersMask(), and AllNonCuMask().

◆ LSET() [2/7]

LSET::LSET ( const BASE_SET aOther)
inline

Definition at line 45 of file lset.h.

◆ LSET() [3/7]

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

Definition at line 44 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [4/7]

LSET::LSET ( const std::vector< PCB_LAYER_ID > &  aList)

Definition at line 54 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [5/7]

LSET::LSET ( const LSEQ aSeq)

Definition at line 65 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [6/7]

LSET::LSET ( const LAYER_RANGE aRange)

Definition at line 76 of file lset.cpp.

References BASE_SET::set().

◆ LSET() [7/7]

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 629 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 562 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(), DSN::SPECCTRA_DB::buildLayerMaps(), EXPORTER_STEP::buildZones3DShape(), FOOTPRINT::CheckShortingPads(), TRACKS_CLEANER::cleanup(), HYPERLYNX_EXPORTER::collectNetObjects(), compute_pad_access_code(), EXPORTER_PCB_VRML::ComputeLayer3D_Zpos(), ODB_NET_LIST::ComputePadAccessSide(), PCB_PLOTTER::copperLayerShouldBeSkipped(), 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(), DSN::SPECCTRA_DB::FromBOARD(), 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(), 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(), SELECT_LAYER_DIALOG::SELECT_LAYER_DIALOG(), 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(), PCB_VIA::ViewGetLayers(), GBR_TO_PCB_EXPORTER::writePcbHeader(), and HYPERLYNX_EXPORTER::writeSinglePadStack().

◆ AllLayersMask()

LSET LSET::AllLayersMask ( )
static

Definition at line 587 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 544 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 601 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 594 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 106 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 309 of file lset.h.

◆ compare()

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

◆ Contains()

◆ copper_layers_begin()

◆ copper_layers_end()

◆ CuStack()

◆ end() [1/2]

iterator BASE_SET::end ( )
inlineinherited

Definition at line 107 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 310 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 516 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 170 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 467 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 BOOST_AUTO_TEST_CASE(), and PAD::Flip().

◆ flip() [2/2]

BASE_SET & BASE_SET::flip ( size_t  pos)
inlineinherited

Definition at line 160 of file base_set.h.

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

◆ FmtBin()

std::string BASE_SET::FmtBin ( ) const
inlineinherited

Return a binary string showing contents of this set.

Definition at line 222 of file base_set.h.

Referenced by ViaSort().

◆ FmtHex()

std::string BASE_SET::FmtHex ( ) const
inlineinherited

Return a hex string showing contents of this set.

Definition at line 248 of file base_set.h.

References arrayDim().

Referenced by BOOST_AUTO_TEST_CASE(), 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 681 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 537 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 615 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 608 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.

This takes into account the direction of the layers and the fact that B_Cu comes before In*_Cu.

Definition at line 169 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 86 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 188 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(), GBR_TO_PCB_EXPORTER::export_non_copper_arc(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), GBR_TO_PCB_EXPORTER::export_segarc_copper_item(), GBR_TO_PCB_EXPORTER::export_via(), 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(), LAYERS_MAP_DIALOG::initDialog(), LoadBoard(), CADSTAR_PCB_ARCHIVE_LOADER::logBoardStackupMessage(), CADSTAR_PCB_ARCHIVE_LOADER::logBoardStackupWarning(), FOOTPRINT_EDITOR_SETTINGS::MigrateFromLegacy(), PCBNEW_SETTINGS::MigrateFromLegacy(), PCB_EDIT_FRAME::onBoardLoaded(), LAYERS_MAP_DIALOG::OnGetSetup(), LAYERS_MAP_DIALOG::OnSelectLayer(), CLI::PCB_EXPORT_BASE_COMMAND::PCB_EXPORT_BASE_COMMAND(), PCB_SHAPE_DESC::PCB_SHAPE_DESC(), SELECT_LAYER_DIALOG::SELECT_LAYER_DIALOG(), JOB_PARAM_LSEQ::ToJson(), TRACK_VIA_DESC::TRACK_VIA_DESC(), PCB_PROPERTIES_PANEL::updateLists(), PCB_EDIT_FRAME::UpdateUserInterface(), GBR_TO_PCB_EXPORTER::writeCopperLineItem(), WriteDRCReport(), GBR_TO_PCB_EXPORTER::writePcbFilledCircle(), GBR_TO_PCB_EXPORTER::writePcbHeader(), GBR_TO_PCB_EXPORTER::writePcbPolygon(), GBR_TO_PCB_EXPORTER::writePcbZoneItem(), and ZONE_DESC::ZONE_DESC().

◆ NameToLayer()

int LSET::NameToLayer ( wxString &  aName)
static

◆ non_copper_layers_begin()

◆ non_copper_layers_end()

◆ operator&=()

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

Definition at line 187 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 201 of file base_set.h.

◆ operator|=()

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

Definition at line 194 of file base_set.h.

◆ operator~()

BASE_SET BASE_SET::operator~ ( ) const
inlineinherited

Definition at line 179 of file base_set.h.

References BASE_SET::flip().

◆ ParseHex() [1/2]

int BASE_SET::ParseHex ( const char *  aStart,
int  aCount 
)
inlineinherited

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
number of bytes consumed.

Definition at line 308 of file base_set.h.

References BASE_SET::set().

◆ ParseHex() [2/2]

int BASE_SET::ParseHex ( const std::string &  str)
inlineinherited

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
the number of bytes consumed.

Definition at line 294 of file base_set.h.

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 644 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 153 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 309 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 295 of file lset.cpp.

Referenced by 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(), 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

Return the sequence that is typical for a bottom-to-top stack-up.

For instance, to plot multiple layers in a single image, the top layers output last.

Definition at line 386 of file lset.cpp.

References B_Adhes, B_CrtYd, B_Cu, 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(), and User_1.

Referenced by DIALOG_PLOT::DIALOG_PLOT(), CLI::FP_EXPORT_SVG_COMMAND::doPerform(), PCBNEW_JOBS_HANDLER::JobExportGerbers(), PlotLayerOutlines(), and PlotStandardLayer().

◆ 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 325 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 136 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 116 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(), PCB_SHAPE::GetLayerSet(), PCB_TRACK::GetLayerSet(), PCB_VIA::GetLayerSet(), PANEL_SETUP_LAYERS::GetUILayerMask(), APPEARANCE_CONTROLS::getVisibleLayers(), BOARD_ADAPTER::GetVisibleLayers(), ROUTER_TOOL::handleLayerSwitch(), API_HANDLER_PCB::handleSetVisibleLayers(), 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(), BASE_SET::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 126 of file base_set.h.

◆ set_bits_begin()

set_bits_iterator BASE_SET::set_bits_begin ( ) const
inlineinherited

Definition at line 447 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 448 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 450 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 454 of file base_set.h.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SideSpecificMask()

LSET LSET::SideSpecificMask ( )
static

Definition at line 674 of file lset.cpp.

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

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

◆ TechAndUserUIOrder()

LSEQ LSET::TechAndUserUIOrder ( ) const

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

Definition at line 258 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: