![]() |
KiCad PCB EDA Suite
|
#include <ee_collectors.h>
Public Types | |
using | ITER = std::vector< EDA_ITEM * >::iterator |
using | CITER = std::vector< EDA_ITEM * >::const_iterator |
Public Member Functions | |
EE_COLLECTOR (const KICAD_T *aScanTypes=EE_COLLECTOR::AllItems) | |
SCH_ITEM * | operator[] (int aIndex) const override |
Overload COLLECTOR::operator[](int) to return a SCH_ITEM instead of an EDA_ITEM. More... | |
SEARCH_RESULT | Inspect (EDA_ITEM *aItem, void *aTestData) override |
void | Collect (SCH_SCREEN *aScreen, const KICAD_T aFilterList[], const wxPoint &aPos, int aUnit=0, int aConvert=0) |
Scan a EDA_ITEM using this class's Inspector method which does the collection. More... | |
void | Collect (LIB_ITEMS_CONTAINER &aItems, const KICAD_T aFilterList[], const wxPoint &aPos, int aUnit=0, int aConvert=0) |
Scan an EDA_ITEM using this class's Inspector method which does the collection. More... | |
bool | IsCorner () const |
Test if the collected items form a corner of two line segments. 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_Unit |
int | m_Convert |
int | m_Threshold |
wxString | m_MenuTitle |
bool | m_MenuCancelled |
Static Public Attributes | |
static const KICAD_T | AllItems [] |
static const KICAD_T | EditableItems [] |
static const KICAD_T | MovableItems [] |
static const KICAD_T | SymbolsOnly [] |
static const KICAD_T | SheetsOnly [] |
static const KICAD_T | WiresOnly [] |
static const KICAD_T | FieldOwners [] |
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 |
Definition at line 39 of file ee_collectors.h.
|
inherited |
Definition at line 72 of file collector.h.
|
inherited |
Definition at line 71 of file collector.h.
|
inline |
Definition at line 50 of file ee_collectors.h.
References COLLECTOR::SetScanTypes().
|
inlineinherited |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 100 of file collector.h.
References COLLECTOR::m_list.
Referenced by GENERAL_COLLECTOR::Collect(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), Inspect(), GERBER_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), PCB_TYPE_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), ROUTER_TOOL::NeighboringSegmentFilter(), POSITION_RELATIVE_TOOL::PositionRelative(), PCB_SELECTION_TOOL::RequestSelection(), PCB_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), and GERBVIEW_SELECTION_TOOL::selectPoint().
|
inlineinherited |
|
inlineinherited |
void EE_COLLECTOR::Collect | ( | SCH_SCREEN * | aScreen, |
const KICAD_T | aFilterList[], | ||
const wxPoint & | aPos, | ||
int | aUnit = 0 , |
||
int | aConvert = 0 |
||
) |
Scan a EDA_ITEM using this class's Inspector method which does the collection.
aScreen | The eeschema screen to use for scanning |
aFilterList | A list of KICAD_T types with a terminating EOT, that determines what is to be collected and the priority order of the resulting collection. |
aPos | are the coordinates to use in hit testing. |
aUnit | is the symbol unit filter (for symbol editor). |
aConvert | is the DeMorgan filter (for symbol editor) |
Definition at line 135 of file ee_collectors.cpp.
References COLLECTOR::Empty(), SCH_SCREEN::Items(), m_Convert, COLLECTOR::m_inspector, COLLECTOR::m_scanTypes, COLLECTOR::m_Threshold, m_Unit, EE_RTREE::Overlapping(), SCH_LOCATE_ANY_T, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().
Referenced by EE_SELECTION_TOOL::CollectHits(), SCH_EDIT_TOOL::DeleteItemCursor(), and EE_SELECTION_TOOL::GetNode().
void EE_COLLECTOR::Collect | ( | LIB_ITEMS_CONTAINER & | aItems, |
const KICAD_T | aFilterList[], | ||
const wxPoint & | aPos, | ||
int | aUnit = 0 , |
||
int | aConvert = 0 |
||
) |
Scan an EDA_ITEM using this class's Inspector method which does the collection.
aItems | is a LIB_SYMBOL multivector holding the symbol items. |
aFilterList | is a list of KICAD_T types with a terminating EOT, that determines what is to be collected and the priority order of the resulting collection. |
aPos | are the coordinates to use in hit testing. |
aUnit | is the symbol unit filter (for symbol editor). |
aConvert | is the DeMorgan filter (for symbol editor). |
Definition at line 155 of file ee_collectors.cpp.
References COLLECTOR::Empty(), m_Convert, COLLECTOR::m_inspector, COLLECTOR::m_scanTypes, m_Unit, QUIT, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().
|
inlineinherited |
Re-combine the backup list into the main list of the collector.
Definition at line 141 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 228 of file collector.h.
References COLLECTOR::m_list.
Referenced by ROUTER_TOOL::NeighboringSegmentFilter().
|
inlineinherited |
Clear the list.
Definition at line 90 of file collector.h.
References COLLECTOR::m_list.
Referenced by 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().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Return the number of objects in the list.
Definition at line 82 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(), CONVERT_TOOL::CreateLines(), CONVERT_TOOL::CreatePolys(), SCH_EDIT_TOOL::DeleteItemCursor(), PCB_CONTROL::DeleteItemCursor(), GERBVIEW_SELECTION_TOOL::disambiguationMenu(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), EDIT_TOOL::Drag(), PAD_TOOL::EnumeratePads(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectedItems(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), 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(), IsCorner(), EE_SELECTION_TOOL::Main(), DSN::SPECCTRA_DB::makeIMAGE(), EE_SELECTION_TOOL::narrowSelection(), ROUTER_TOOL::NeighboringSegmentFilter(), GERBER_COLLECTOR::operator[](), operator[](), COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), EDIT_TOOL::PadFilter(), POSITION_RELATIVE_TOOL::PositionRelative(), 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().
|
inlineinherited |
Test if the collector has heuristic backup items.
Definition at line 133 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 196 of file collector.h.
References COLLECTOR::m_list.
Referenced by EDIT_TOOL::copyToClipboard(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), and POSITION_RELATIVE_TOOL::PositionRelative().
|
overridevirtual |
Reimplemented from COLLECTOR.
Definition at line 109 of file ee_collectors.cpp.
References COLLECTOR::Append(), CONTINUE, LIB_ITEM::GetConvert(), LIB_ITEM::GetUnit(), EDA_ITEM::HitTest(), LIB_PIN_T, m_Convert, COLLECTOR::m_refPos, COLLECTOR::m_Threshold, m_Unit, and EDA_ITEM::Type().
bool EE_COLLECTOR::IsCorner | ( | ) | const |
Test if the collected items form a corner of two line segments.
Definition at line 175 of file ee_collectors.cpp.
References COLLECTOR::GetCount(), COLLECTOR::m_list, and SCH_LINE_T.
|
inlineoverridevirtual |
Overload COLLECTOR::operator[](int) to return a SCH_ITEM instead of an EDA_ITEM.
aIndex | The index into the list. |
Reimplemented from COLLECTOR.
Definition at line 63 of file ee_collectors.h.
References COLLECTOR::GetCount(), and COLLECTOR::m_list.
|
inlineinherited |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 110 of file collector.h.
References COLLECTOR::m_list.
Referenced by EDIT_TOOL::ChangeTrackWidth(), connectedItemFilter(), EDIT_TOOL::copyToClipboard(), CONVERT_TOOL::CreateLines(), CONVERT_TOOL::CreatePolys(), PCB_CONTROL::DeleteItemCursor(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), EDIT_TOOL::Drag(), EDIT_TOOL::FilletTracks(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), EDIT_TOOL::FootprintFilter(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), GROUP_TOOL::Group(), BOARD_INSPECTION_TOOL::highlightNet(), EE_SELECTION_TOOL::narrowSelection(), EDIT_TOOL::PadFilter(), POSITION_RELATIVE_TOOL::PositionRelative(), 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 120 of file collector.h.
References alg::delete_if(), and COLLECTOR::m_list.
|
inlineinherited |
Definition at line 218 of file collector.h.
References COLLECTOR::m_refPos.
Referenced by Collect(), GERBER_COLLECTOR::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 213 of file collector.h.
References COLLECTOR::m_scanTypes.
Referenced by Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), EE_COLLECTOR(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR::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 152 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 163 of file collector.h.
References COLLECTOR::m_backupList, and COLLECTOR::m_list.
|
static |
Definition at line 42 of file ee_collectors.h.
Referenced by EE_SELECTION_TOOL::disambiguateCursor(), and EE_SELECTION_TOOL::Main().
|
static |
Definition at line 43 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::Properties().
|
static |
Definition at line 48 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::AutoplaceFields(), and SCH_EDIT_TOOL::Init().
|
protectedinherited |
Definition at line 248 of file collector.h.
Referenced by COLLECTOR::Combine(), COLLECTOR::HasAdditionalItems(), and COLLECTOR::Transfer().
int EE_COLLECTOR::m_Convert |
Definition at line 110 of file ee_collectors.h.
|
protectedinherited |
Definition at line 251 of file collector.h.
Referenced by Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), PCB_TYPE_COLLECTOR::Collect(), and PCB_LAYER_COLLECTOR::Collect().
|
protectedinherited |
Definition at line 247 of file collector.h.
Referenced by COLLECTOR::Append(), COLLECTOR::begin(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), COLLECTOR::Combine(), COLLECTOR::CountType(), COLLECTOR::Empty(), COLLECTOR::end(), COLLECTOR::GetCount(), COLLECTOR::HasItem(), IsCorner(), GERBER_COLLECTOR::operator[](), operator[](), COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), COLLECTOR::Remove(), and COLLECTOR::Transfer().
|
inherited |
Definition at line 244 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 243 of file collector.h.
Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), and PCB_SELECTION_TOOL::doSelectionMenu().
|
protectedinherited |
Definition at line 253 of file collector.h.
Referenced by COLLECTOR::GetBoundingBox().
|
protectedinherited |
Definition at line 252 of file collector.h.
Referenced by Inspect(), GERBER_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), and COLLECTOR::SetRefPos().
|
protectedinherited |
Definition at line 250 of file collector.h.
Referenced by Collect(), GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), and COLLECTOR::SetScanTypes().
|
inherited |
Definition at line 241 of file collector.h.
Referenced by Collect(), EE_SELECTION_TOOL::CollectHits(), SCH_EDIT_TOOL::DeleteItemCursor(), PCB_CONTROL::DeleteItemCursor(), EE_SELECTION_TOOL::GetNode(), Inspect(), and EE_SELECTION_TOOL::narrowSelection().
int EE_COLLECTOR::m_Unit |
Definition at line 109 of file ee_collectors.h.
|
static |
Definition at line 44 of file ee_collectors.h.
Referenced by SCH_MOVE_TOOL::AlignElements(), and SCH_MOVE_TOOL::Main().
|
static |
Definition at line 46 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::CleanupSheetPins(), SCH_EDIT_TOOL::EditPageNumber(), SCH_NAVIGATE_TOOL::EnterSheet(), SCH_EDITOR_CONTROL::EnterSheet(), and SCH_DRAWING_TOOLS::TwoClickPlace().
|
static |
Definition at line 45 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::ChangeSymbols(), SCH_EDIT_TOOL::ConvertDeMorgan(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), and EE_INSPECTION_TOOL::ShowDatasheet().
|
static |
Definition at line 47 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::BreakWire().