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 48 of file collector.h.
using COLLECTOR::CITER = std::vector<EDA_ITEM*>::const_iterator |
Definition at line 73 of file collector.h.
using COLLECTOR::ITER = std::vector<EDA_ITEM*>::iterator |
Definition at line 72 of file collector.h.
|
inline |
Definition at line 51 of file collector.h.
|
inlinevirtual |
Definition at line 65 of file collector.h.
|
inline |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 101 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), GENERAL_COLLECTOR::Collect(), SCH_SELECTION_TOOL::CollectHits(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), SCH_SELECTION_TOOL::filterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), SCH_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), TEST_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), PCB_TYPE_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), ROUTER_TOOL::NeighboringSegmentFilter(), PCB_SELECTION_TOOL::RequestSelection(), SCH_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::SelectMultiple(), and PL_SELECTION_TOOL::SelectPoint().
|
inline |
Definition at line 75 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), SCH_SELECTION_TOOL::selectMultiple(), and PCB_SELECTION_TOOL::SelectMultiple().
|
inline |
Definition at line 77 of file collector.h.
References m_list.
|
inline |
Re-combine the backup list into the main list of the collector.
Definition at line 142 of file collector.h.
References m_backupList, and m_list.
Referenced by BOOST_AUTO_TEST_CASE(), and SELECTION_TOOL::doSelectionMenu().
|
inline |
Count the number of items matching aType.
aType | type we are interested in. |
Definition at line 223 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), and ROUTER_TOOL::NeighboringSegmentFilter().
|
inline |
Clear the list.
Definition at line 91 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), SCH_COLLECTOR::Collect(), SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and ROUTER_TOOL::NeighboringSegmentFilter().
|
inline |
Definition at line 76 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), SCH_SELECTION_TOOL::selectMultiple(), and PCB_SELECTION_TOOL::SelectMultiple().
|
inline |
Definition at line 78 of file collector.h.
References m_list.
|
inline |
Return the number of objects in the list.
Definition at line 83 of file collector.h.
References m_list.
Referenced by BOARD_EDITOR_CONTROL::AssignNetclass(), EDIT_TOOL::BooleanPolygons(), BOOST_AUTO_TEST_CASE(), BuildBoardPolygonOutlines(), BuildFootprintPolygonOutlines(), EDIT_TOOL::ChangeTrackLayer(), EDIT_TOOL::ChangeTrackWidth(), SCH_SELECTION_TOOL::CollectHits(), connectedItemFilter(), FOOTPRINT::CoverageRatio(), CONVERT_TOOL::CreateLines(), BOARD_INSPECTION_TOOL::DiffFootprint(), SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectedItems(), SCH_SELECTION_TOOL::filterCollectedItems(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), SCH_SELECTION_TOOL::filterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), EDIT_TOOL::FootprintFilter(), SCH_SELECTION_TOOL::GetNode(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), GENDRILL_WRITER_BASE::getUniqueLayerPairs(), PCB_GROUP_TOOL::Group(), PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), EDIT_TOOL::HealShapes(), BOARD_INSPECTION_TOOL::highlightNet(), PCB_EDIT_FRAME::inferLegacyEdgeClearance(), SCH_EDIT_TOOL::InteractiveDelete(), PCB_CONTROL::InteractiveDelete(), SCH_COLLECTOR::IsCorner(), SCH_SELECTION_TOOL::Main(), PCB_SELECTION_TOOL::Main(), DSN::SPECCTRA_DB::makeIMAGE(), EDIT_TOOL::ModifyLines(), SCH_SELECTION_TOOL::narrowSelection(), ROUTER_TOOL::NeighboringSegmentFilter(), operator[](), SCH_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(), SCH_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::SelectMultiple(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), PL_SELECTION_TOOL::SelectPoint(), PCB_SELECTION_TOOL::selectPoint(), SCH_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 134 of file collector.h.
References m_backupList.
Referenced by BOOST_AUTO_TEST_CASE(), and SELECTION_TOOL::doSelectionMenu().
|
inline |
Tests if aItem has already been collected.
aItem | The EDA_ITEM* to be tested. |
Definition at line 197 of file collector.h.
References m_list.
Referenced by BOOST_AUTO_TEST_CASE(), SCH_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), SCH_SELECTION_TOOL::filterCollectorForHierarchy(), and PCB_SELECTION_TOOL::FilterCollectorForTableCells().
|
inlinevirtual |
Reimplemented in SCH_COLLECTOR, GENERAL_COLLECTOR, TEST_COLLECTOR, GERBER_COLLECTOR, PCB_TYPE_COLLECTOR, and PCB_LAYER_COLLECTOR.
Definition at line 67 of file collector.h.
|
inlinevirtual |
Used for read only access and returns the object at aIndex.
aIndex | The index into the list. |
Reimplemented in SCH_COLLECTOR, GERBER_COLLECTOR, and PCB_COLLECTOR.
Definition at line 183 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 121 of file collector.h.
References m_list.
|
inline |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 111 of file collector.h.
References m_list.
Referenced by BOARD_EDITOR_CONTROL::AssignNetclass(), EDIT_TOOL::BooleanPolygons(), BOOST_AUTO_TEST_CASE(), connectedItemFilter(), PCB_SELECTION_TOOL::FilterCollectedItems(), SCH_SELECTION_TOOL::filterCollectedItems(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), SCH_SELECTION_TOOL::filterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), EDIT_TOOL::FootprintFilter(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), PCB_GROUP_TOOL::Group(), EDIT_TOOL::HealShapes(), PCB_CONTROL::InteractiveDelete(), EDIT_TOOL::ModifyLines(), SCH_SELECTION_TOOL::narrowSelection(), CONVERT_TOOL::OutsetItems(), EDIT_TOOL::PadFilter(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), GENERATOR_TOOL::RegenerateSelected(), CONVERT_TOOL::SegmentToArc(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::selectPoint(), and EDIT_TOOL::SimplifyPolygons().
|
inline |
Definition at line 215 of file collector.h.
References m_refPos.
Referenced by BOOST_AUTO_TEST_CASE(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and SCH_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 213 of file collector.h.
References m_scanTypes.
Referenced by BOOST_AUTO_TEST_CASE(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), SCH_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 164 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 153 of file collector.h.
References m_backupList, and m_list.
Referenced by BOOST_AUTO_TEST_CASE(), PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and SCH_SELECTION_TOOL::GuessSelectionCandidates().
|
protected |
Definition at line 243 of file collector.h.
Referenced by Combine(), HasAdditionalItems(), and Transfer().
|
protected |
Definition at line 246 of file collector.h.
Referenced by PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and SCH_COLLECTOR::Collect().
|
protected |
Definition at line 242 of file collector.h.
Referenced by Append(), begin(), Combine(), CountType(), Empty(), end(), GetCount(), HasItem(), SCH_COLLECTOR::IsCorner(), operator[](), SCH_COLLECTOR::operator[](), GERBER_COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), Remove(), and Transfer().
bool COLLECTOR::m_MenuCancelled |
Definition at line 239 of file collector.h.
Referenced by BOOST_AUTO_TEST_CASE(), SELECTION_TOOL::SelectionMenu(), GERBVIEW_SELECTION_TOOL::selectPoint(), PL_SELECTION_TOOL::SelectPoint(), and SCH_SELECTION_TOOL::selectPoint().
wxString COLLECTOR::m_MenuTitle |
Definition at line 238 of file collector.h.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
protected |
Definition at line 248 of file collector.h.
Referenced by SCH_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), and SetRefPos().
|
protected |
Definition at line 245 of file collector.h.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), SCH_COLLECTOR::Collect(), TEST_COLLECTOR::Inspect(), and SetScanTypes().
int COLLECTOR::m_Threshold |
Definition at line 236 of file collector.h.
Referenced by BOOST_AUTO_TEST_CASE(), SCH_COLLECTOR::Collect(), SCH_SELECTION_TOOL::CollectHits(), SCH_SELECTION_TOOL::GetNode(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), SCH_COLLECTOR::Inspect(), SCH_EDIT_TOOL::InteractiveDelete(), PCB_CONTROL::InteractiveDelete(), DRAWING_TOOL::PlaceTuningPattern(), SCH_SELECTION_TOOL::selectPoint(), SCH_EDITOR_CONTROL::SimProbe(), and SCH_EDITOR_CONTROL::SimTune().