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 std::vector< KICAD_T > &aScanTypes={ SCH_LOCATE_ANY_T }) | |
SCH_ITEM * | operator[] (int aIndex) const override |
Overload COLLECTOR::operator[](int) to return a SCH_ITEM instead of an EDA_ITEM. | |
INSPECT_RESULT | Inspect (EDA_ITEM *aItem, void *aTestData) override |
void | Collect (SCH_SCREEN *aScreen, const std::vector< KICAD_T > &aScanTypes, const VECTOR2I &aPos, int aUnit=0, int aConvert=0) |
Scan a EDA_ITEM using this class's Inspector method which does the collection. | |
void | Collect (LIB_ITEMS_CONTAINER &aItems, const std::vector< KICAD_T > &aScanTypes, const VECTOR2I &aPos, int aUnit=0, int aConvert=0) |
Scan an EDA_ITEM using this class's Inspector method which does the collection. | |
bool | IsCorner () const |
Test if the collected items form a corner of two line segments. | |
ITER | begin () |
CITER | begin () const |
ITER | end () |
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. | |
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_Unit |
int | m_BodyStyle |
bool | m_ShowPinElectricalTypes |
int | m_Threshold |
wxString | m_MenuTitle |
bool | m_MenuCancelled |
Static Public Attributes | |
static const std::vector< KICAD_T > | EditableItems |
static const std::vector< KICAD_T > | MovableItems |
static const std::vector< KICAD_T > | FieldOwners |
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 |
Definition at line 39 of file ee_collectors.h.
|
inherited |
Definition at line 71 of file collector.h.
|
inherited |
Definition at line 70 of file collector.h.
|
inline |
Definition at line 46 of file ee_collectors.h.
References SCH_LOCATE_ANY_T.
|
inlineinherited |
Add an item to the end of the list.
item | An EDA_ITEM* to add. |
Definition at line 99 of file collector.h.
References COLLECTOR::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(), 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().
|
inlineinherited |
Definition at line 73 of file collector.h.
References COLLECTOR::m_list.
|
inlineinherited |
Definition at line 75 of file collector.h.
References COLLECTOR::m_list.
void EE_COLLECTOR::Collect | ( | LIB_ITEMS_CONTAINER & | aItems, |
const std::vector< KICAD_T > & | aScanTypes, | ||
const VECTOR2I & | 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. |
aScanTypes | is a list of KICAD_T types 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 143 of file ee_collectors.cpp.
References COLLECTOR::Empty(), m_BodyStyle, COLLECTOR::m_inspector, COLLECTOR::m_scanTypes, m_Unit, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().
void EE_COLLECTOR::Collect | ( | SCH_SCREEN * | aScreen, |
const std::vector< KICAD_T > & | aScanTypes, | ||
const VECTOR2I & | 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 |
aScanTypes | A list of KICAD_T types 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 123 of file ee_collectors.cpp.
References COLLECTOR::Empty(), SCH_SCREEN::Items(), m_BodyStyle, 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(), EE_SELECTION_TOOL::GetNode(), SCH_EDIT_TOOL::InteractiveDelete(), SCH_EDITOR_CONTROL::SimProbe(), and SCH_EDITOR_CONTROL::SimTune().
|
inlineinherited |
Re-combine the backup list into the main list of the collector.
Definition at line 140 of file collector.h.
References COLLECTOR::m_backupList, and COLLECTOR::m_list.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
inlineinherited |
Count the number of items matching aType.
aType | type we are interested in. |
Definition at line 221 of file collector.h.
References COLLECTOR::m_list.
Referenced by ROUTER_TOOL::NeighboringSegmentFilter().
|
inlineinherited |
Clear the list.
Definition at line 89 of file collector.h.
References COLLECTOR::m_list.
Referenced by PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), Collect(), SELECTION_TOOL::doSelectionMenu(), PAD_TOOL::EnumeratePads(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and ROUTER_TOOL::NeighboringSegmentFilter().
|
inlineinherited |
Definition at line 74 of file collector.h.
References COLLECTOR::m_list.
|
inlineinherited |
Definition at line 76 of file collector.h.
References COLLECTOR::m_list.
|
inlineinherited |
Return the number of objects in the list.
Definition at line 81 of file collector.h.
References COLLECTOR::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(), IsCorner(), EE_SELECTION_TOOL::Main(), PCB_SELECTION_TOOL::Main(), DSN::SPECCTRA_DB::makeIMAGE(), EDIT_TOOL::ModifyLines(), EE_SELECTION_TOOL::narrowSelection(), ROUTER_TOOL::NeighboringSegmentFilter(), COLLECTOR::operator[](), 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().
|
inlineinherited |
Test if the collector has heuristic backup items.
Definition at line 132 of file collector.h.
References COLLECTOR::m_backupList.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
inlineinherited |
Tests if aItem has already been collected.
aItem | The EDA_ITEM* to be tested. |
Definition at line 195 of file collector.h.
References COLLECTOR::m_list.
Referenced by EE_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), and PCB_SELECTION_TOOL::FilterCollectorForTableCells().
|
overridevirtual |
Reimplemented from COLLECTOR.
Definition at line 92 of file ee_collectors.cpp.
References COLLECTOR::Append(), EDA_ITEM::ClearFlags(), SCH_ITEM::GetBodyStyle(), SCH_ITEM::GetUnit(), EDA_ITEM::HitTest(), m_BodyStyle, COLLECTOR::m_refPos, m_ShowPinElectricalTypes, COLLECTOR::m_Threshold, m_Unit, SCH_PIN_T, EDA_ITEM::SetFlags(), SHOW_ELEC_TYPE, and EDA_ITEM::Type().
bool EE_COLLECTOR::IsCorner | ( | ) | const |
Test if the collected items form a corner of two line segments.
Definition at line 163 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 60 of file ee_collectors.h.
References COLLECTOR::GetCount(), and COLLECTOR::m_list.
|
inlineinherited |
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 COLLECTOR::m_list.
|
inlineinherited |
Remove the item at aIndex (first position is 0).
aIndex | The index into the list. |
Definition at line 109 of file collector.h.
References COLLECTOR::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().
|
inlineinherited |
Definition at line 213 of file collector.h.
References COLLECTOR::m_refPos.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and Collect().
|
inlineinherited |
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 COLLECTOR::m_scanTypes.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), Collect(), GENERAL_COLLECTOR::GENERAL_COLLECTOR(), and GERBER_COLLECTOR::GERBER_COLLECTOR().
|
inlineinherited |
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 COLLECTOR::m_backupList, and COLLECTOR::m_list.
|
inlineinherited |
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 COLLECTOR::m_backupList, and COLLECTOR::m_list.
Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), EE_SELECTION_TOOL::GuessSelectionCandidates(), and PCB_SELECTION_TOOL::GuessSelectionCandidates().
|
static |
Definition at line 42 of file ee_collectors.h.
Referenced by SCH_EDIT_TABLE_TOOL::EditTable().
|
static |
Definition at line 44 of file ee_collectors.h.
Referenced by SCH_EDIT_TOOL::AutoplaceFields(), and SCH_EDIT_TOOL::Init().
|
protectedinherited |
Definition at line 241 of file collector.h.
Referenced by COLLECTOR::Combine(), COLLECTOR::HasAdditionalItems(), and COLLECTOR::Transfer().
int EE_COLLECTOR::m_BodyStyle |
Definition at line 105 of file ee_collectors.h.
|
protectedinherited |
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 Collect().
|
protectedinherited |
Definition at line 240 of file collector.h.
Referenced by COLLECTOR::Append(), COLLECTOR::begin(), COLLECTOR::Combine(), COLLECTOR::CountType(), COLLECTOR::Empty(), COLLECTOR::end(), COLLECTOR::GetCount(), COLLECTOR::HasItem(), IsCorner(), COLLECTOR::operator[](), operator[](), GERBER_COLLECTOR::operator[](), PCB_COLLECTOR::operator[](), COLLECTOR::Remove(), and COLLECTOR::Transfer().
|
inherited |
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().
|
inherited |
Definition at line 236 of file collector.h.
Referenced by SELECTION_TOOL::doSelectionMenu().
|
protectedinherited |
Definition at line 246 of file collector.h.
Referenced by Inspect(), GENERAL_COLLECTOR::Inspect(), GERBER_COLLECTOR::Inspect(), and COLLECTOR::SetRefPos().
|
protectedinherited |
Definition at line 243 of file collector.h.
Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), Collect(), and COLLECTOR::SetScanTypes().
bool EE_COLLECTOR::m_ShowPinElectricalTypes |
Definition at line 107 of file ee_collectors.h.
Referenced by EE_SELECTION_TOOL::CollectHits(), and Inspect().
|
inherited |
Definition at line 234 of file collector.h.
Referenced by Collect(), EE_SELECTION_TOOL::CollectHits(), EE_SELECTION_TOOL::GetNode(), EE_SELECTION_TOOL::GuessSelectionCandidates(), Inspect(), SCH_EDIT_TOOL::InteractiveDelete(), PCB_CONTROL::InteractiveDelete(), DRAWING_TOOL::PlaceTuningPattern(), EE_SELECTION_TOOL::selectPoint(), SCH_EDITOR_CONTROL::SimProbe(), and SCH_EDITOR_CONTROL::SimTune().
int EE_COLLECTOR::m_Unit |
Definition at line 104 of file ee_collectors.h.
|
static |
Definition at line 43 of file ee_collectors.h.
Referenced by SCH_MOVE_TOOL::AlignToGrid(), SCH_MOVE_TOOL::doMoveSelection(), and EE_SELECTION_TOOL::Main().