KiCad PCB EDA Suite
Loading...
Searching...
No Matches
EE_COLLECTOR Class Reference

#include <ee_collectors.h>

Inheritance diagram for EE_COLLECTOR:
COLLECTOR

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_ITEMoperator[] (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_TEditableItems
 
static const std::vector< KICAD_TMovableItems
 
static const std::vector< KICAD_TFieldOwners
 

Protected Attributes

std::vector< EDA_ITEM * > m_list
 
std::vector< EDA_ITEM * > m_backupList
 
std::vector< KICAD_Tm_scanTypes
 
INSPECTOR_FUNC m_inspector
 
VECTOR2I m_refPos
 

Detailed Description

Definition at line 39 of file ee_collectors.h.

Member Typedef Documentation

◆ CITER

using COLLECTOR::CITER = std::vector<EDA_ITEM*>::const_iterator
inherited

Definition at line 71 of file collector.h.

◆ ITER

using COLLECTOR::ITER = std::vector<EDA_ITEM*>::iterator
inherited

Definition at line 70 of file collector.h.

Constructor & Destructor Documentation

◆ EE_COLLECTOR()

EE_COLLECTOR::EE_COLLECTOR ( const std::vector< KICAD_T > &  aScanTypes = SCH_LOCATE_ANY_T })
inline

Definition at line 46 of file ee_collectors.h.

References SCH_LOCATE_ANY_T.

Member Function Documentation

◆ Append()

◆ begin() [1/2]

ITER COLLECTOR::begin ( )
inlineinherited

Definition at line 73 of file collector.h.

References COLLECTOR::m_list.

◆ begin() [2/2]

CITER COLLECTOR::begin ( ) const
inlineinherited

Definition at line 75 of file collector.h.

References COLLECTOR::m_list.

◆ Collect() [1/2]

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.

Parameters
aItemsis a LIB_SYMBOL multivector holding the symbol items.
aScanTypesis a list of KICAD_T types that determines what is to be collected and the priority order of the resulting collection.
aPosare the coordinates to use in hit testing.
aUnitis the symbol unit filter (for symbol editor).
aConvertis 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().

◆ Collect() [2/2]

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.

Parameters
aScreenThe eeschema screen to use for scanning
aScanTypesA list of KICAD_T types that determines what is to be collected and the priority order of the resulting collection.
aPosare the coordinates to use in hit testing.
aUnitis the symbol unit filter (for symbol editor).
aConvertis 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().

◆ Combine()

void COLLECTOR::Combine ( )
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().

◆ CountType()

int COLLECTOR::CountType ( KICAD_T  aType)
inlineinherited

Count the number of items matching aType.

Parameters
aTypetype we are interested in.
Returns
number of occurrences.

Definition at line 221 of file collector.h.

References COLLECTOR::m_list.

Referenced by ROUTER_TOOL::NeighboringSegmentFilter().

◆ Empty()

◆ end() [1/2]

ITER COLLECTOR::end ( )
inlineinherited

Definition at line 74 of file collector.h.

References COLLECTOR::m_list.

◆ end() [2/2]

CITER COLLECTOR::end ( ) const
inlineinherited

Definition at line 76 of file collector.h.

References COLLECTOR::m_list.

◆ GetCount()

int COLLECTOR::GetCount ( ) const
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().

◆ HasAdditionalItems()

bool COLLECTOR::HasAdditionalItems ( )
inlineinherited

Test if the collector has heuristic backup items.

Returns
true if Combine() can run to bring secondary items into the list.

Definition at line 132 of file collector.h.

References COLLECTOR::m_backupList.

Referenced by SELECTION_TOOL::doSelectionMenu().

◆ HasItem()

bool COLLECTOR::HasItem ( const EDA_ITEM aItem) const
inlineinherited

Tests if aItem has already been collected.

Parameters
aItemThe EDA_ITEM* to be tested.
Returns
True if aItem is already collected.

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().

◆ Inspect()

◆ IsCorner()

bool EE_COLLECTOR::IsCorner ( ) const

Test if the collected items form a corner of two line segments.

Returns
True 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.

◆ operator[]()

SCH_ITEM * EE_COLLECTOR::operator[] ( int  aIndex) const
inlineoverridevirtual

Overload COLLECTOR::operator[](int) to return a SCH_ITEM instead of an EDA_ITEM.

Parameters
aIndexThe index into the list.
Returns
SCH_ITEM* at aIndex or NULL.

Reimplemented from COLLECTOR.

Definition at line 60 of file ee_collectors.h.

References COLLECTOR::GetCount(), and COLLECTOR::m_list.

◆ Remove() [1/2]

void COLLECTOR::Remove ( const EDA_ITEM aItem)
inlineinherited

Remove the item aItem (if exists in the collector).

Parameters
aItemthe item to be removed.

Definition at line 119 of file collector.h.

References alg::delete_if(), and COLLECTOR::m_list.

◆ Remove() [2/2]

◆ SetRefPos()

void COLLECTOR::SetRefPos ( const VECTOR2I aRefPos)
inlineinherited

Definition at line 213 of file collector.h.

References COLLECTOR::m_refPos.

Referenced by GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), and Collect().

◆ SetScanTypes()

void COLLECTOR::SetScanTypes ( const std::vector< KICAD_T > &  aTypes)
inlineinherited

Record the list of KICAD_T types to consider for collection by the Inspect() function.

Parameters
aScanTypesA 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().

◆ Transfer() [1/2]

void COLLECTOR::Transfer ( EDA_ITEM aItem)
inlineinherited

Move aItem (if exists in the collector) to the backup list.

Parameters
aItemthe item to be moved.

Definition at line 162 of file collector.h.

References COLLECTOR::m_backupList, and COLLECTOR::m_list.

◆ Transfer() [2/2]

void COLLECTOR::Transfer ( int  aIndex)
inlineinherited

Move the item at aIndex (first position is 0) to the backup list.

Parameters
aIndexThe 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().

Member Data Documentation

◆ EditableItems

const std::vector< KICAD_T > EE_COLLECTOR::EditableItems
static
Initial value:
= {
}
@ SCH_LINE_T
Definition: typeinfo.h:163
@ SCH_SYMBOL_T
Definition: typeinfo.h:172
@ SCH_TABLECELL_T
Definition: typeinfo.h:166
@ SCH_FIELD_T
Definition: typeinfo.h:150
@ SCH_DIRECTIVE_LABEL_T
Definition: typeinfo.h:171
@ SCH_LABEL_T
Definition: typeinfo.h:167
@ SCH_SHEET_T
Definition: typeinfo.h:174
@ SCH_SHAPE_T
Definition: typeinfo.h:149
@ SCH_RULE_AREA_T
Definition: typeinfo.h:170
@ SCH_HIER_LABEL_T
Definition: typeinfo.h:169
@ SCH_SHEET_PIN_T
Definition: typeinfo.h:173
@ SCH_TEXT_T
Definition: typeinfo.h:151
@ SCH_BUS_WIRE_ENTRY_T
Definition: typeinfo.h:161
@ SCH_BITMAP_T
Definition: typeinfo.h:164
@ SCH_TEXTBOX_T
Definition: typeinfo.h:152
@ SCH_GLOBAL_LABEL_T
Definition: typeinfo.h:168
@ SCH_JUNCTION_T
Definition: typeinfo.h:159

Definition at line 42 of file ee_collectors.h.

Referenced by SCH_EDIT_TABLE_TOOL::EditTable().

◆ FieldOwners

const std::vector< KICAD_T > EE_COLLECTOR::FieldOwners
static
Initial value:

Definition at line 44 of file ee_collectors.h.

Referenced by SCH_EDIT_TOOL::AutoplaceFields(), and SCH_EDIT_TOOL::Init().

◆ m_backupList

std::vector<EDA_ITEM*> COLLECTOR::m_backupList
protectedinherited

◆ m_BodyStyle

int EE_COLLECTOR::m_BodyStyle

Definition at line 105 of file ee_collectors.h.

Referenced by Collect(), and Inspect().

◆ m_inspector

INSPECTOR_FUNC COLLECTOR::m_inspector
protectedinherited

◆ m_list

◆ m_MenuCancelled

bool COLLECTOR::m_MenuCancelled
inherited

◆ m_MenuTitle

wxString COLLECTOR::m_MenuTitle
inherited

Definition at line 236 of file collector.h.

Referenced by SELECTION_TOOL::doSelectionMenu().

◆ m_refPos

VECTOR2I COLLECTOR::m_refPos
protectedinherited

◆ m_scanTypes

std::vector<KICAD_T> COLLECTOR::m_scanTypes
protectedinherited

◆ m_ShowPinElectricalTypes

bool EE_COLLECTOR::m_ShowPinElectricalTypes

Definition at line 107 of file ee_collectors.h.

Referenced by EE_SELECTION_TOOL::CollectHits(), and Inspect().

◆ m_Threshold

◆ m_Unit

int EE_COLLECTOR::m_Unit

Definition at line 104 of file ee_collectors.h.

Referenced by Collect(), and Inspect().

◆ MovableItems


The documentation for this class was generated from the following files: