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

Collect all BOARD_ITEM objects on a given layer. More...

#include <collectors.h>

Inheritance diagram for PCB_LAYER_COLLECTOR:
PCB_COLLECTOR COLLECTOR

Public Types

using ITER = std::vector< EDA_ITEM * >::iterator
 
using CITER = std::vector< EDA_ITEM * >::const_iterator
 

Public Member Functions

 PCB_LAYER_COLLECTOR (PCB_LAYER_ID aLayerId=UNDEFINED_LAYER)
 
void SetLayerId (PCB_LAYER_ID aLayerId)
 
INSPECT_RESULT Inspect (EDA_ITEM *testItem, void *testData) override
 The examining function within the INSPECTOR which is passed to the iterate function.
 
void Collect (BOARD_ITEM *aBoard, const std::vector< KICAD_T > &aTypes)
 Test a BOARD_ITEM using this class's Inspector method, which does the collection.
 
BOARD_ITEMoperator[] (int ndx) const override
 Overload the COLLECTOR::operator[](int) to return a BOARD_ITEM instead of an EDA_ITEM.
 
ITER begin ()
 
CITER begin () const
 
ITER end ()
 
CITER end () const
 
int GetCount () const
 Return the number of objects in the list.
 
void Empty ()
 Clear the list.
 
void Append (EDA_ITEM *item)
 Add an item to the end of the list.
 
void Remove (int aIndex)
 Remove the item at aIndex (first position is 0).
 
void Remove (const EDA_ITEM *aItem)
 Remove the item aItem (if exists in the collector).
 
bool HasAdditionalItems ()
 Test if the collector has heuristic backup items.
 
void Combine ()
 Re-combine the backup list into the main list of the collector.
 
void Transfer (int aIndex)
 Move the item at aIndex (first position is 0) to the backup list.
 
void Transfer (EDA_ITEM *aItem)
 Move aItem (if exists in the collector) to the backup list.
 
bool HasItem (const EDA_ITEM *aItem) const
 Tests if aItem has already been collected.
 
void SetScanTypes (const std::vector< KICAD_T > &aTypes)
 Record the list of KICAD_T types to consider for collection by the Inspect() function.
 
void SetRefPos (const VECTOR2I &aRefPos)
 
int CountType (KICAD_T aType)
 Count the number of items matching aType.
 

Public Attributes

int m_Threshold
 
wxString m_MenuTitle
 
bool m_MenuCancelled
 

Protected Attributes

std::vector< EDA_ITEM * > m_list
 
std::vector< EDA_ITEM * > m_backupList
 
std::vector< KICAD_Tm_scanTypes
 
INSPECTOR_FUNC m_inspector
 
VECTOR2I m_refPos
 

Private Attributes

PCB_LAYER_ID m_layer_id
 

Detailed Description

Collect all BOARD_ITEM objects on a given layer.

This only uses the primary object layer for comparison.

Definition at line 538 of file collectors.h.

Member Typedef Documentation

◆ CITER

using COLLECTOR::CITER = std::vector<EDA_ITEM*>::const_iterator
inherited

Definition at line 71 of file collector.h.

◆ ITER

using COLLECTOR::ITER = std::vector<EDA_ITEM*>::iterator
inherited

Definition at line 70 of file collector.h.

Constructor & Destructor Documentation

◆ PCB_LAYER_COLLECTOR()

PCB_LAYER_COLLECTOR::PCB_LAYER_COLLECTOR ( PCB_LAYER_ID  aLayerId = UNDEFINED_LAYER)
inline

Definition at line 541 of file collectors.h.

Member Function Documentation

◆ Append()

◆ begin() [1/2]

ITER COLLECTOR::begin ( )
inlineinherited

Definition at line 73 of file collector.h.

References COLLECTOR::m_list.

◆ begin() [2/2]

CITER COLLECTOR::begin ( ) const
inlineinherited

Definition at line 75 of file collector.h.

References COLLECTOR::m_list.

◆ Collect()

void PCB_LAYER_COLLECTOR::Collect ( BOARD_ITEM aBoard,
const std::vector< KICAD_T > &  aTypes 
)

Test a BOARD_ITEM using this class's Inspector method, which does the collection.

Parameters
aBoardThe BOARD_ITEM to scan.
aTypesThe KICAD_Ts to gather up.

Definition at line 536 of file collectors.cpp.

References COLLECTOR::Empty(), COLLECTOR::m_inspector, and EDA_ITEM::Visit().

Referenced by PANEL_SETUP_LAYERS::getNonRemovableLayers(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), PCB_EDIT_FRAME::inferLegacyEdgeClearance(), and PANEL_SETUP_LAYERS::TransferDataFromWindow().

◆ Combine()

void COLLECTOR::Combine ( )
inlineinherited

Re-combine the backup list into the main list of the collector.

Definition at line 140 of file collector.h.

References COLLECTOR::m_backupList, and COLLECTOR::m_list.

Referenced by SELECTION_TOOL::doSelectionMenu().

◆ CountType()

int COLLECTOR::CountType ( KICAD_T  aType)
inlineinherited

Count the number of items matching aType.

Parameters
aTypetype we are interested in.
Returns
number of occurrences.

Definition at line 221 of file collector.h.

References COLLECTOR::m_list.

Referenced by ROUTER_TOOL::NeighboringSegmentFilter().

◆ Empty()

◆ end() [1/2]

ITER COLLECTOR::end ( )
inlineinherited

Definition at line 74 of file collector.h.

References COLLECTOR::m_list.

◆ end() [2/2]

CITER COLLECTOR::end ( ) const
inlineinherited

Definition at line 76 of file collector.h.

References COLLECTOR::m_list.

◆ GetCount()

int COLLECTOR::GetCount ( ) const
inlineinherited

Return the number of objects in the list.

Definition at line 81 of file collector.h.

References COLLECTOR::m_list.

Referenced by BOARD_EDITOR_CONTROL::AssignNetclass(), EDIT_TOOL::BooleanPolygons(), BuildBoardPolygonOutlines(), BuildFootprintPolygonOutlines(), EDIT_TOOL::ChangeTrackWidth(), EE_SELECTION_TOOL::CollectHits(), connectedItemFilter(), EDIT_TOOL::copyToClipboard(), FOOTPRINT::CoverageRatio(), CONVERT_TOOL::CreateLines(), BOARD_INSPECTION_TOOL::DiffFootprint(), SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectedItems(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), EDIT_TOOL::FootprintFilter(), EE_SELECTION_TOOL::GetNode(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), GENDRILL_WRITER_BASE::getUniqueLayerPairs(), GROUP_TOOL::Group(), PL_SELECTION_TOOL::guessSelectionCandidates(), EE_SELECTION_TOOL::GuessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), EDIT_TOOL::HealShapes(), BOARD_INSPECTION_TOOL::highlightNet(), PCB_EDIT_FRAME::inferLegacyEdgeClearance(), SCH_EDIT_TOOL::InteractiveDelete(), PCB_CONTROL::InteractiveDelete(), EE_COLLECTOR::IsCorner(), EE_SELECTION_TOOL::Main(), PCB_SELECTION_TOOL::Main(), DSN::SPECCTRA_DB::makeIMAGE(), EDIT_TOOL::ModifyLines(), EE_SELECTION_TOOL::narrowSelection(), ROUTER_TOOL::NeighboringSegmentFilter(), COLLECTOR::operator[](), EE_COLLECTOR::operator[](), GERBER_COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), CONVERT_TOOL::OutsetItems(), EDIT_TOOL::PackAndMoveFootprints(), EDIT_TOOL::PadFilter(), DRAWING_TOOL::PlaceTuningPattern(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), GENERATOR_TOOL::RegenerateSelected(), CONVERT_TOOL::SegmentToArc(), PCB_SELECTION_TOOL::selectMultiple(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), PL_SELECTION_TOOL::SelectPoint(), PCB_SELECTION_TOOL::selectPoint(), EE_SELECTION_TOOL::selectPoint(), EDIT_TOOL::SimplifyPolygons(), SCH_EDITOR_CONTROL::SimProbe(), SCH_EDITOR_CONTROL::SimTune(), EDIT_TOOL::Swap(), TestBoardOutlinesGraphicItems(), and PANEL_SETUP_LAYERS::TransferDataFromWindow().

◆ HasAdditionalItems()

bool COLLECTOR::HasAdditionalItems ( )
inlineinherited

Test if the collector has heuristic backup items.

Returns
true if Combine() can run to bring secondary items into the list.

Definition at line 132 of file collector.h.

References COLLECTOR::m_backupList.

Referenced by SELECTION_TOOL::doSelectionMenu().

◆ HasItem()

bool COLLECTOR::HasItem ( const EDA_ITEM aItem) const
inlineinherited

Tests if aItem has already been collected.

Parameters
aItemThe EDA_ITEM* to be tested.
Returns
True if aItem is already collected.

Definition at line 195 of file collector.h.

References COLLECTOR::m_list.

Referenced by EE_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), and PCB_SELECTION_TOOL::FilterCollectorForTableCells().

◆ Inspect()

INSPECT_RESULT PCB_LAYER_COLLECTOR::Inspect ( EDA_ITEM testItem,
void *  testData 
)
overridevirtual

The examining function within the INSPECTOR which is passed to the iterate function.

Parameters
testItemAn EDA_ITEM to examine.
testDatais not used in this class.
Returns
SEARCH_QUIT if the Iterator is to stop the scan, else SCAN_CONTINUE

Reimplemented from COLLECTOR.

Definition at line 525 of file collectors.cpp.

References COLLECTOR::Append(), BOARD_ITEM::IsOnLayer(), and m_layer_id.

◆ operator[]()

BOARD_ITEM * PCB_COLLECTOR::operator[] ( int  ndx) const
inlineoverridevirtualinherited

Overload the COLLECTOR::operator[](int) to return a BOARD_ITEM instead of an EDA_ITEM.

Parameters
ndxThe index into the list.
Returns
a board item or NULL.

Reimplemented from COLLECTOR.

Definition at line 183 of file collectors.h.

References COLLECTOR::GetCount(), and COLLECTOR::m_list.

◆ Remove() [1/2]

void COLLECTOR::Remove ( const EDA_ITEM aItem)
inlineinherited

Remove the item aItem (if exists in the collector).

Parameters
aItemthe item to be removed.

Definition at line 119 of file collector.h.

References alg::delete_if(), and COLLECTOR::m_list.

◆ Remove() [2/2]

◆ SetLayerId()

◆ SetRefPos()

void COLLECTOR::SetRefPos ( const VECTOR2I aRefPos)
inlineinherited

◆ SetScanTypes()

void COLLECTOR::SetScanTypes ( const std::vector< KICAD_T > &  aTypes)
inlineinherited

Record the list of KICAD_T types to consider for collection by the Inspect() function.

Parameters
aScanTypesA list of KICAD_Ts.

Definition at line 211 of file collector.h.

References COLLECTOR::m_scanTypes.

Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), EE_COLLECTOR::Collect(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR::GERBER_COLLECTOR().

◆ Transfer() [1/2]

void COLLECTOR::Transfer ( EDA_ITEM aItem)
inlineinherited

Move aItem (if exists in the collector) to the backup list.

Parameters
aItemthe item to be moved.

Definition at line 162 of file collector.h.

References COLLECTOR::m_backupList, and COLLECTOR::m_list.

◆ Transfer() [2/2]

void COLLECTOR::Transfer ( int  aIndex)
inlineinherited

Move the item at aIndex (first position is 0) to the backup list.

Parameters
aIndexThe index into the list.

Definition at line 151 of file collector.h.

References COLLECTOR::m_backupList, and COLLECTOR::m_list.

Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), EE_SELECTION_TOOL::GuessSelectionCandidates(), and PCB_SELECTION_TOOL::GuessSelectionCandidates().

Member Data Documentation

◆ m_backupList

std::vector<EDA_ITEM*> COLLECTOR::m_backupList
protectedinherited

◆ m_inspector

INSPECTOR_FUNC COLLECTOR::m_inspector
protectedinherited

◆ m_layer_id

PCB_LAYER_ID PCB_LAYER_COLLECTOR::m_layer_id
private

Definition at line 565 of file collectors.h.

Referenced by Inspect(), and SetLayerId().

◆ m_list

◆ m_MenuCancelled

bool COLLECTOR::m_MenuCancelled
inherited

◆ m_MenuTitle

wxString COLLECTOR::m_MenuTitle
inherited

Definition at line 236 of file collector.h.

Referenced by SELECTION_TOOL::doSelectionMenu().

◆ m_refPos

VECTOR2I COLLECTOR::m_refPos
protectedinherited

◆ m_scanTypes

std::vector<KICAD_T> COLLECTOR::m_scanTypes
protectedinherited

◆ m_Threshold


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