![]() |
KiCad PCB EDA Suite
|
GERBER_COLLECTOR is intended for use when the right click button is pressed, or when the plain "arrow" tool is in effect. More...
#include <gerber_collectors.h>
Public Types | |
using | ITER = std::vector< EDA_ITEM * >::iterator |
using | CITER = std::vector< EDA_ITEM * >::const_iterator |
Public Member Functions | |
GERBER_COLLECTOR () | |
void | Empty2nd () |
EDA_ITEM * | operator[] (int ndx) const override |
Function SetGuide records which COLLECTORS_GUIDE to use. More... | |
int | GetPrimaryCount () |
Function GetPrimaryCount. More... | |
SEARCH_RESULT | Inspect (EDA_ITEM *testItem, void *testData) override |
Function Inspect is the examining function within the INSPECTOR which is passed to the Iterate function. More... | |
void | Collect (EDA_ITEM *aItem, const KICAD_T aScanList[], const wxPoint &aRefPos) |
Function Collect scans an EDA_ITEM using this class's Inspector method, which does the collection. More... | |
ITER | begin () |
CITER | begin () const |
ITER | end () |
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... | |
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 |
Static Public Attributes | |
static const KICAD_T | AllItems [] |
A scan list for all selectable gerber items. More... | |
Protected Attributes | |
std::vector< EDA_ITEM * > | m_List2nd |
A place to hold collected objects which don't match precisely the search criteria, but would be acceptable if nothing else is found. More... | |
int | m_PrimaryLength |
Determines which items are to be collected by Inspect() More... | |
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 |
GERBER_COLLECTOR is intended for use when the right click button is pressed, or when the plain "arrow" tool is in effect.
Definition at line 30 of file gerber_collectors.h.
|
inherited |
Definition at line 77 of file collector.h.
|
inherited |
Definition at line 76 of file collector.h.
|
inline |
Definition at line 62 of file gerber_collectors.h.
References AllItems, m_PrimaryLength, and COLLECTOR::SetScanTypes().
|
inlineinherited |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 105 of file collector.h.
References COLLECTOR::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(), 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().
|
inlineinherited |
|
inlineinherited |
void GERBER_COLLECTOR::Collect | ( | EDA_ITEM * | aItem, |
const KICAD_T | aScanList[], | ||
const wxPoint & | aRefPos | ||
) |
Function Collect scans an EDA_ITEM using this class's Inspector method, which does the collection.
aItem | An EDA_ITEM to scan |
aScanList | A list of KICAD_Ts with a terminating EOT, that specs what is to be collected and the priority order of the resultant collection in "m_list". |
aRefPos | A wxPoint to use in hit-testing. |
aGuide | The COLLECTORS_GUIDE to use in collecting items. |
Definition at line 49 of file gerber_collectors.cpp.
References COLLECTOR::Empty(), COLLECTOR::m_inspector, COLLECTOR::m_list, m_PrimaryLength, COLLECTOR::m_scanTypes, NULL, COLLECTOR::SetRefPos(), COLLECTOR::SetScanTypes(), and EDA_ITEM::Visit().
Referenced by GERBVIEW_SELECTION_TOOL::selectPoint().
|
inlineinherited |
Re-combine the backup list into the main list of the collector.
Definition at line 148 of file collector.h.
References COLLECTOR::m_backupList, and COLLECTOR::m_list.
Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
inlineinherited |
Count the number of items matching aType.
aType | type we are interested in. |
Definition at line 235 of file collector.h.
References COLLECTOR::m_list.
Referenced by ROUTER_TOOL::NeighboringSegmentFilter().
|
inlineinherited |
Clear the list.
Definition at line 95 of file collector.h.
References COLLECTOR::m_list.
Referenced by EE_COLLECTOR::Collect(), 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 |
Definition at line 69 of file gerber_collectors.h.
References m_List2nd.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Return the number of objects in the list.
Definition at line 87 of file collector.h.
References COLLECTOR::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[](), operator[](), COLLECTOR::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 |
Function GetPrimaryCount.
Definition at line 106 of file gerber_collectors.h.
References m_PrimaryLength.
|
inlineinherited |
Test if the collector has heuristic backup items.
Definition at line 140 of file collector.h.
References COLLECTOR::m_backupList.
Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
inlineinherited |
Tests if aItem has already been collected.
aItem | The EDA_ITEM* to be tested. |
Definition at line 203 of file collector.h.
References COLLECTOR::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().
|
overridevirtual |
Function Inspect is the examining function within the INSPECTOR which is passed to the Iterate function.
testItem | An EDA_ITEM to examine. |
testData | is not used in this class. |
testItem | An EDA_ITEM to examine. |
testData | not used here. |
Reimplemented from COLLECTOR.
Definition at line 40 of file gerber_collectors.cpp.
References COLLECTOR::Append(), CONTINUE, EDA_ITEM::HitTest(), and COLLECTOR::m_refPos.
|
inlineoverridevirtual |
Function SetGuide records which COLLECTORS_GUIDE to use.
aGuide | Which guide to use in the collection.Function operator[int] overloads COLLECTOR::operator[](int) to return a EDA_ITEM* instead of an EDA_ITEM* type. |
ndx | The index into the list. |
Reimplemented from COLLECTOR.
Definition at line 95 of file gerber_collectors.h.
References COLLECTOR::GetCount(), COLLECTOR::m_list, and NULL.
|
inlineinherited |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 115 of file collector.h.
References COLLECTOR::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().
|
inlineinherited |
Remove the item aItem (if exists in the collector).
aItem | the item to be removed. |
Definition at line 125 of file collector.h.
References COLLECTOR::m_list.
|
inlineinherited |
Definition at line 225 of file collector.h.
References COLLECTOR::m_refPos.
Referenced by EE_COLLECTOR::Collect(), Collect(), and GENERAL_COLLECTOR::Collect().
|
inlineinherited |
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 COLLECTOR::m_scanTypes.
Referenced by EE_COLLECTOR::Collect(), Collect(), GENERAL_COLLECTOR::Collect(), EE_COLLECTOR::EE_COLLECTOR(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR().
|
inlineinherited |
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 COLLECTOR::m_backupList, and COLLECTOR::m_list.
Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and EE_SELECTION_TOOL::GuessSelectionCandidates().
|
inlineinherited |
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 COLLECTOR::m_backupList, and COLLECTOR::m_list.
|
static |
A scan list for all selectable gerber items.
Definition at line 60 of file gerber_collectors.h.
Referenced by GERBER_COLLECTOR(), and GERBVIEW_SELECTION_TOOL::selectPoint().
|
protectedinherited |
Definition at line 255 of file collector.h.
Referenced by COLLECTOR::Combine(), COLLECTOR::HasAdditionalItems(), and COLLECTOR::Transfer().
|
protectedinherited |
Definition at line 258 of file collector.h.
Referenced by EE_COLLECTOR::Collect(), Collect(), GENERAL_COLLECTOR::Collect(), PCB_TYPE_COLLECTOR::Collect(), and PCB_LAYER_COLLECTOR::Collect().
|
protectedinherited |
Definition at line 254 of file collector.h.
Referenced by COLLECTOR::Append(), COLLECTOR::begin(), Collect(), GENERAL_COLLECTOR::Collect(), COLLECTOR::Combine(), COLLECTOR::CountType(), COLLECTOR::Empty(), COLLECTOR::end(), COLLECTOR::GetCount(), COLLECTOR::HasItem(), EE_COLLECTOR::IsCorner(), EE_COLLECTOR::operator[](), operator[](), COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), COLLECTOR::Remove(), and COLLECTOR::Transfer().
|
protected |
A place to hold collected objects which don't match precisely the search criteria, but would be acceptable if nothing else is found.
"2nd" choice, which will be appended to the end of COLLECTOR's prime "list" at the end of the search.
Definition at line 39 of file gerber_collectors.h.
Referenced by Empty2nd().
|
inherited |
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().
|
inherited |
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 |
Determines which items are to be collected by Inspect()
The number of items that were originally in the primary list before the m_List2nd was concatenated onto the end of it.
Definition at line 52 of file gerber_collectors.h.
Referenced by Collect(), GERBER_COLLECTOR(), and GetPrimaryCount().
|
protectedinherited |
Definition at line 260 of file collector.h.
Referenced by COLLECTOR::GetBoundingBox().
|
protectedinherited |
Definition at line 259 of file collector.h.
Referenced by EE_COLLECTOR::Inspect(), Inspect(), GENERAL_COLLECTOR::Inspect(), and COLLECTOR::SetRefPos().
|
protectedinherited |
Definition at line 257 of file collector.h.
Referenced by EE_COLLECTOR::Collect(), Collect(), GENERAL_COLLECTOR::Collect(), and COLLECTOR::SetScanTypes().
|
inherited |
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().