KiCad PCB EDA Suite
|
An abstract class that will find and hold all the objects according to an inspection done by the Inspect() function which must be implemented by any derived class. More...
#include <collector.h>
Public Types | |
using | ITER = std::vector< EDA_ITEM * >::iterator |
using | CITER = std::vector< EDA_ITEM * >::const_iterator |
Public Member Functions | |
COLLECTOR () | |
virtual | ~COLLECTOR () |
virtual INSPECT_RESULT | Inspect (EDA_ITEM *aTestItem, void *aTestData) |
ITER | begin () |
ITER | end () |
CITER | begin () const |
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. | |
virtual EDA_ITEM * | operator[] (int aIndex) const |
Used for read only access and returns the object at aIndex. | |
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_T > | m_scanTypes |
INSPECTOR_FUNC | m_inspector |
VECTOR2I | m_refPos |
An abstract class that will find and hold all the objects according to an inspection done by the Inspect() function which must be implemented by any derived class.
When Inspect() finds an object that it wants to collect, i.e. one that it "likes", then it only has to do an Append( testItem )on it to add it to its collection, but in all cases for the scan to continue, Inspect() must return SEARCH_CONTINUE. Later, after collection, the user can iterate through all the objects in the remembered collection using GetCount() and the [int] operator.
Definition at line 47 of file collector.h.
using COLLECTOR::CITER = std::vector<EDA_ITEM*>::const_iterator |
Definition at line 71 of file collector.h.
using COLLECTOR::ITER = std::vector<EDA_ITEM*>::iterator |
Definition at line 70 of file collector.h.
|
inline |
Definition at line 50 of file collector.h.
|
inlinevirtual |
Definition at line 63 of file collector.h.
|
inline |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 99 of file collector.h.
References m_list.
Referenced by GENERAL_COLLECTOR::Collect(), EE_SELECTION_TOOL::CollectHits(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), EE_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), PCB_TYPE_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), ROUTER_TOOL::NeighboringSegmentFilter(), PCB_SELECTION_TOOL::RequestSelection(), PCB_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectMultiple(), and PL_SELECTION_TOOL::SelectPoint().
|
inline |
Definition at line 73 of file collector.h.
References m_list.
|
inline |
Definition at line 75 of file collector.h.
References m_list.
|
inline |
Re-combine the backup list into the main list of the collector.
Definition at line 140 of file collector.h.
References m_backupList, and m_list.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
inline |
Count the number of items matching aType.
aType | type we are interested in. |
Definition at line 221 of file collector.h.
References m_list.
Referenced by ROUTER_TOOL::NeighboringSegmentFilter().
|
inline |
Clear the list.
Definition at line 89 of file collector.h.
References m_list.
Referenced by PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), EE_COLLECTOR::Collect(), SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and ROUTER_TOOL::NeighboringSegmentFilter().
|
inline |
Definition at line 74 of file collector.h.
References m_list.
|
inline |
Definition at line 76 of file collector.h.
References m_list.
|
inline |
Return the number of objects in the list.
Definition at line 81 of file collector.h.
References 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(), 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().
|
inline |
Test if the collector has heuristic backup items.
Definition at line 132 of file collector.h.
References m_backupList.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
inline |
Tests if aItem has already been collected.
aItem | The EDA_ITEM* to be tested. |
Definition at line 195 of file collector.h.
References m_list.
Referenced by EE_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), and PCB_SELECTION_TOOL::FilterCollectorForTableCells().
|
inlinevirtual |
Reimplemented in EE_COLLECTOR, GENERAL_COLLECTOR, GERBER_COLLECTOR, PCB_TYPE_COLLECTOR, and PCB_LAYER_COLLECTOR.
Definition at line 65 of file collector.h.
|
inlinevirtual |
Used for read only access and returns the object at aIndex.
aIndex | The index into the list. |
Reimplemented in EE_COLLECTOR, GERBER_COLLECTOR, and PCB_COLLECTOR.
Definition at line 181 of file collector.h.
References GetCount(), and m_list.
|
inline |
Remove the item aItem (if exists in the collector).
aItem | the item to be removed. |
Definition at line 119 of file collector.h.
References alg::delete_if(), and m_list.
|
inline |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 109 of file collector.h.
References m_list.
Referenced by BOARD_EDITOR_CONTROL::AssignNetclass(), EDIT_TOOL::BooleanPolygons(), connectedItemFilter(), 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(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), GROUP_TOOL::Group(), EDIT_TOOL::HealShapes(), PCB_CONTROL::InteractiveDelete(), EDIT_TOOL::ModifyLines(), EE_SELECTION_TOOL::narrowSelection(), CONVERT_TOOL::OutsetItems(), EDIT_TOOL::PadFilter(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), GENERATOR_TOOL::RegenerateSelected(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::selectPoint(), and EDIT_TOOL::SimplifyPolygons().
|
inline |
Definition at line 213 of file collector.h.
References m_refPos.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and EE_COLLECTOR::Collect().
|
inline |
Record the list of KICAD_T types to consider for collection by the Inspect() function.
aScanTypes | A list of KICAD_Ts. |
Definition at line 211 of file collector.h.
References m_scanTypes.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), EE_COLLECTOR::Collect(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR::GERBER_COLLECTOR().
|
inline |
Move aItem (if exists in the collector) to the backup list.
aItem | the item to be moved. |
Definition at line 162 of file collector.h.
References m_backupList, and m_list.
|
inline |
Move the item at aIndex (first position is 0) to the backup list.
aIndex | The index into the list. |
Definition at line 151 of file collector.h.
References m_backupList, and m_list.
Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), EE_SELECTION_TOOL::GuessSelectionCandidates(), and PCB_SELECTION_TOOL::GuessSelectionCandidates().
|
protected |
Definition at line 241 of file collector.h.
Referenced by Combine(), HasAdditionalItems(), and Transfer().
|
protected |
Definition at line 244 of file collector.h.
Referenced by PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and EE_COLLECTOR::Collect().
|
protected |
Definition at line 240 of file collector.h.
Referenced by Append(), begin(), Combine(), CountType(), Empty(), end(), GetCount(), HasItem(), EE_COLLECTOR::IsCorner(), operator[](), EE_COLLECTOR::operator[](), GERBER_COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), Remove(), and Transfer().
bool COLLECTOR::m_MenuCancelled |
Definition at line 237 of file collector.h.
Referenced by SELECTION_TOOL::SelectionMenu(), GERBVIEW_SELECTION_TOOL::selectPoint(), PL_SELECTION_TOOL::SelectPoint(), and EE_SELECTION_TOOL::selectPoint().
wxString COLLECTOR::m_MenuTitle |
Definition at line 236 of file collector.h.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
protected |
Definition at line 246 of file collector.h.
Referenced by EE_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), and SetRefPos().
|
protected |
Definition at line 243 of file collector.h.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), EE_COLLECTOR::Collect(), and SetScanTypes().
int COLLECTOR::m_Threshold |
Definition at line 234 of file collector.h.
Referenced by EE_COLLECTOR::Collect(), EE_SELECTION_TOOL::CollectHits(), EE_SELECTION_TOOL::GetNode(), EE_SELECTION_TOOL::GuessSelectionCandidates(), EE_COLLECTOR::Inspect(), SCH_EDIT_TOOL::InteractiveDelete(), PCB_CONTROL::InteractiveDelete(), DRAWING_TOOL::PlaceTuningPattern(), EE_SELECTION_TOOL::selectPoint(), SCH_EDITOR_CONTROL::SimProbe(), and SCH_EDITOR_CONTROL::SimTune().