![]() |
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 SEARCH_RESULT | Inspect (EDA_ITEM *aItem, void *aTestData) |
ITER | begin () |
ITER | end () |
CITER | begin () const |
CITER | end () const |
int | GetCount () const |
Return the number of objects in the list. More... | |
void | Empty () |
Clear the list. More... | |
void | Append (EDA_ITEM *item) |
Add an item to the end of the list. More... | |
void | Remove (int aIndex) |
Remove the item at aIndex (first position is 0). More... | |
void | Remove (const EDA_ITEM *aItem) |
Remove the item aItem (if exists in the collector). More... | |
bool | HasAdditionalItems () |
Test if the collector has heuristic backup items. More... | |
void | Combine () |
Re-combine the backup list into the main list of the collector. More... | |
void | Transfer (int aIndex) |
Move the item at aIndex (first position is 0) to the backup list. More... | |
void | Transfer (EDA_ITEM *aItem) |
Move aItem (if exists in the collector) to the backup list. More... | |
virtual EDA_ITEM * | operator[] (int aIndex) const |
Used for read only access and returns the object at aIndex. More... | |
bool | HasItem (const EDA_ITEM *aItem) const |
Tests if aItem has already been collected. More... | |
void | SetScanTypes (const KICAD_T *scanTypes) |
Record the list of KICAD_T types to consider for collection by the Inspect() function. More... | |
void | SetRefPos (const wxPoint &aRefPos) |
const EDA_RECT & | GetBoundingBox () const |
int | CountType (KICAD_T aType) |
Count the number of items matching aType. More... | |
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 |
const KICAD_T * | m_scanTypes |
INSPECTOR_FUNC | m_inspector |
wxPoint | m_refPos |
EDA_RECT | m_refBox |
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 53 of file collector.h.
using COLLECTOR::CITER = std::vector<EDA_ITEM*>::const_iterator |
Definition at line 77 of file collector.h.
using COLLECTOR::ITER = std::vector<EDA_ITEM*>::iterator |
Definition at line 76 of file collector.h.
|
inline |
Definition at line 56 of file collector.h.
References Inspect().
|
inlinevirtual |
Definition at line 69 of file collector.h.
|
inline |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 105 of file collector.h.
References m_list.
Referenced by GENERAL_COLLECTOR::Collect(), EDIT_TOOL::CreateArray(), EDIT_TOOL::doMoveSelection(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), EDIT_TOOL::Drag(), EDIT_TOOL::Duplicate(), PCB_SELECTION_TOOL::FilterCollectorForGroups(), EDIT_TOOL::Flip(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), EE_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), PCB_TYPE_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), ROUTER_TOOL::NeighboringSegmentFilter(), POSITION_RELATIVE_TOOL::PositionRelative(), PCB_SELECTION_TOOL::RequestSelection(), EDIT_TOOL::Rotate(), PCB_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), and GERBVIEW_SELECTION_TOOL::selectPoint().
|
inline |
|
inline |
|
inline |
Re-combine the backup list into the main list of the collector.
Definition at line 148 of file collector.h.
References m_backupList, and m_list.
Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
inline |
Count the number of items matching aType.
aType | type we are interested in. |
Definition at line 235 of file collector.h.
References m_list.
Referenced by ROUTER_TOOL::NeighboringSegmentFilter().
|
inline |
Clear the list.
Definition at line 95 of file collector.h.
References m_list.
Referenced by EE_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), ROUTER_TOOL::NeighboringSegmentFilter(), and GERBVIEW_SELECTION_TOOL::selectPoint().
|
inline |
|
inline |
|
inline |
|
inline |
Return the number of objects in the list.
Definition at line 87 of file collector.h.
References m_list.
Referenced by BuildBoardPolygonOutlines(), BuildFootprintPolygonOutlines(), EDIT_TOOL::ChangeTrackWidth(), EE_SELECTION_TOOL::CollectHits(), connectedItemFilter(), EDIT_TOOL::copyToClipboard(), FOOTPRINT::CoverageRatio(), EDIT_TOOL::CreateArray(), SCH_EDIT_TOOL::DeleteItemCursor(), PCB_CONTROL::DeleteItemCursor(), GERBVIEW_SELECTION_TOOL::disambiguationMenu(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), EDIT_TOOL::doMoveSelection(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), EDIT_TOOL::Drag(), EDIT_TOOL::Duplicate(), PAD_TOOL::EnumeratePads(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectedItems(), PCB_SELECTION_TOOL::FilterCollectorForGroups(), EDIT_TOOL::Flip(), EDIT_TOOL::FootprintFilter(), DSN::SPECCTRA_DB::FromBOARD(), EE_SELECTION_TOOL::GetNode(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), GENDRILL_WRITER_BASE::getUniqueLayerPairs(), GROUP_TOOL::Group(), PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), EE_SELECTION_TOOL::GuessSelectionCandidates(), BOARD_INSPECTION_TOOL::highlightNet(), PCB_EDIT_FRAME::inferLegacyEdgeClearance(), EE_COLLECTOR::IsCorner(), CONVERT_TOOL::LinesToPoly(), EE_SELECTION_TOOL::Main(), DSN::SPECCTRA_DB::makeIMAGE(), EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), EE_SELECTION_TOOL::narrowSelection(), ROUTER_TOOL::NeighboringSegmentFilter(), EE_COLLECTOR::operator[](), GERBER_COLLECTOR::operator[](), operator[](), PCB_COLLECTOR::operator[](), EDIT_TOOL::PadFilter(), CONVERT_TOOL::PolyToLines(), POSITION_RELATIVE_TOOL::PositionRelative(), EDIT_TOOL::Rotate(), CONVERT_TOOL::SegmentToArc(), PCB_SELECTION_TOOL::selectionContains(), PL_SELECTION_TOOL::SelectPoint(), GERBVIEW_SELECTION_TOOL::selectPoint(), EE_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::selectPoint(), and PANEL_SETUP_LAYERS::TransferDataFromWindow().
|
inline |
Test if the collector has heuristic backup items.
Definition at line 140 of file collector.h.
References m_backupList.
Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
inline |
Tests if aItem has already been collected.
aItem | The EDA_ITEM* to be tested. |
Definition at line 203 of file collector.h.
References m_list.
Referenced by EDIT_TOOL::copyToClipboard(), EDIT_TOOL::CreateArray(), EDIT_TOOL::doMoveSelection(), EDIT_TOOL::Drag(), EDIT_TOOL::Duplicate(), PCB_SELECTION_TOOL::FilterCollectorForGroups(), EDIT_TOOL::Flip(), EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), POSITION_RELATIVE_TOOL::PositionRelative(), and EDIT_TOOL::Rotate().
|
inlinevirtual |
Reimplemented in PCB_LAYER_COLLECTOR, PCB_TYPE_COLLECTOR, GENERAL_COLLECTOR, GERBER_COLLECTOR, and EE_COLLECTOR.
Definition at line 71 of file collector.h.
References QUIT.
Referenced by COLLECTOR().
|
inlinevirtual |
Used for read only access and returns the object at aIndex.
aIndex | The index into the list. |
Reimplemented in PCB_COLLECTOR, GERBER_COLLECTOR, and EE_COLLECTOR.
Definition at line 189 of file collector.h.
References GetCount(), and m_list.
|
inline |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 115 of file collector.h.
References m_list.
Referenced by EDIT_TOOL::ChangeTrackWidth(), connectedItemFilter(), EDIT_TOOL::copyToClipboard(), EDIT_TOOL::CreateArray(), PCB_CONTROL::DeleteItemCursor(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), EDIT_TOOL::doMoveSelection(), EDIT_TOOL::Drag(), EDIT_TOOL::Duplicate(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectorForGroups(), EDIT_TOOL::Flip(), EDIT_TOOL::FootprintFilter(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), GROUP_TOOL::Group(), BOARD_INSPECTION_TOOL::highlightNet(), CONVERT_TOOL::LinesToPoly(), EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), EE_SELECTION_TOOL::narrowSelection(), EDIT_TOOL::PadFilter(), CONVERT_TOOL::PolyToLines(), POSITION_RELATIVE_TOOL::PositionRelative(), EDIT_TOOL::Rotate(), CONVERT_TOOL::SegmentToArc(), GERBVIEW_SELECTION_TOOL::selectPoint(), and PCB_SELECTION_TOOL::selectPoint().
|
inline |
Remove the item aItem (if exists in the collector).
aItem | the item to be removed. |
Definition at line 125 of file collector.h.
References m_list.
|
inline |
Definition at line 225 of file collector.h.
References m_refPos.
Referenced by EE_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and GENERAL_COLLECTOR::Collect().
|
inline |
Record the list of KICAD_T types to consider for collection by the Inspect() function.
scanTypes | An array of KICAD_T, terminated by EOT. No copy is is made of this array (so cannot come from caller's stack). |
Definition at line 220 of file collector.h.
References m_scanTypes.
Referenced by EE_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), EE_COLLECTOR::EE_COLLECTOR(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR::GERBER_COLLECTOR().
|
inline |
Move the item at aIndex (first position is 0) to the backup list.
aIndex | The index into the list. |
Definition at line 159 of file collector.h.
References m_backupList, and m_list.
Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and EE_SELECTION_TOOL::GuessSelectionCandidates().
|
inline |
Move aItem (if exists in the collector) to the backup list.
aItem | the item to be moved. |
Definition at line 170 of file collector.h.
References m_backupList, and m_list.
|
protected |
Definition at line 255 of file collector.h.
Referenced by Combine(), HasAdditionalItems(), and Transfer().
|
protected |
Definition at line 258 of file collector.h.
Referenced by EE_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), PCB_TYPE_COLLECTOR::Collect(), and PCB_LAYER_COLLECTOR::Collect().
|
protected |
Definition at line 254 of file collector.h.
Referenced by Append(), begin(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), Combine(), CountType(), Empty(), end(), GetCount(), HasItem(), EE_COLLECTOR::IsCorner(), EE_COLLECTOR::operator[](), GERBER_COLLECTOR::operator[](), operator[](), PCB_COLLECTOR::operator[](), Remove(), and Transfer().
bool COLLECTOR::m_MenuCancelled |
Definition at line 251 of file collector.h.
Referenced by PL_SELECTION_TOOL::SelectionMenu(), EE_SELECTION_TOOL::SelectionMenu(), PL_SELECTION_TOOL::SelectPoint(), and EE_SELECTION_TOOL::selectPoint().
wxString COLLECTOR::m_MenuTitle |
Definition at line 250 of file collector.h.
Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
protected |
Definition at line 260 of file collector.h.
Referenced by GetBoundingBox().
|
protected |
Definition at line 259 of file collector.h.
Referenced by EE_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), and SetRefPos().
|
protected |
Definition at line 257 of file collector.h.
Referenced by EE_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), and SetScanTypes().
int COLLECTOR::m_Threshold |
Definition at line 248 of file collector.h.
Referenced by EE_SELECTION_TOOL::CollectHits(), SCH_EDIT_TOOL::DeleteItemCursor(), PCB_CONTROL::DeleteItemCursor(), EE_SELECTION_TOOL::GetNode(), EE_COLLECTOR::Inspect(), and EE_SELECTION_TOOL::narrowSelection().