KiCad PCB EDA Suite
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 KICAD_T *aScanTypes=EE_COLLECTOR::AllItems)
 
SCH_ITEMoperator[] (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_RECTGetBoundingBox () 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_Tm_scanTypes
 
INSPECTOR_FUNC m_inspector
 
wxPoint m_refPos
 
EDA_RECT m_refBox
 

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 77 of file collector.h.

◆ ITER

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

Definition at line 76 of file collector.h.

Constructor & Destructor Documentation

◆ EE_COLLECTOR()

EE_COLLECTOR::EE_COLLECTOR ( const KICAD_T aScanTypes = EE_COLLECTOR::AllItems)
inline

Definition at line 50 of file ee_collectors.h.

50  :
51  m_Unit( 0 ),
52  m_Convert( 0 )
53  {
54  SetScanTypes( aScanTypes );
55  }
void SetScanTypes(const KICAD_T *scanTypes)
Record the list of KICAD_T types to consider for collection by the Inspect() function.
Definition: collector.h:220

References COLLECTOR::SetScanTypes().

Member Function Documentation

◆ Append()

◆ begin() [1/2]

ITER COLLECTOR::begin ( )
inlineinherited

Definition at line 79 of file collector.h.

79 { return m_list.begin(); }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

◆ begin() [2/2]

CITER COLLECTOR::begin ( ) const
inlineinherited

Definition at line 81 of file collector.h.

81 { return m_list.cbegin(); }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

◆ Collect() [1/2]

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.

Parameters
aScreenThe eeschema screen to use for scanning
aFilterListA list of KICAD_T types with a terminating EOT, 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 135 of file ee_collectors.cpp.

137 {
138  Empty(); // empty the collection just in case
139 
140  SetScanTypes( aFilterList );
141  m_Unit = aUnit;
142  m_Convert = aConvert;
143 
144  // remember where the snapshot was taken from and pass refPos to the Inspect() function.
145  SetRefPos( aPos );
146 
147  if( aScreen )
148  {
149  // Symbols and sheets own their own children so have to be visited even if
150  // they're not in the filter list
151  bool symbolsVisited = false;
152  bool sheetsVisited = false;
153  bool globalLabelsVisited = false;
154 
155  EE_RTREE& items = aScreen->Items();
156 
157  for( const KICAD_T *filter = aFilterList; *filter != EOT; ++filter )
158  {
159  for( SCH_ITEM *item : items.Overlapping( *filter, aPos, m_Threshold ) )
160  {
161  if( *filter == SCH_SYMBOL_T || *filter == SCH_LOCATE_ANY_T )
162  symbolsVisited = true;
163 
164  if( *filter == SCH_SHEET_T || *filter == SCH_LOCATE_ANY_T )
165  sheetsVisited = true;
166 
168  globalLabelsVisited = true;
169 
170  item->Visit( m_inspector, nullptr, m_scanTypes );
171  }
172  }
173 
174  if( !symbolsVisited )
175  {
176  for( SCH_ITEM *item : items.Overlapping( SCH_SYMBOL_T, aPos, m_Threshold ) )
177  item->Visit( m_inspector, nullptr, m_scanTypes );
178  }
179 
180  if( !sheetsVisited )
181  {
182  for( SCH_ITEM *item : items.Overlapping( SCH_SHEET_T, aPos, m_Threshold ) )
183  item->Visit( m_inspector, nullptr, m_scanTypes );
184  }
185 
186  if( !globalLabelsVisited )
187  {
188  for( SCH_ITEM *item : items.Overlapping( SCH_GLOBAL_LABEL_T, aPos, m_Threshold ) )
189  item->Visit( m_inspector, nullptr, m_scanTypes );
190  }
191  }
192 }
void Empty()
Clear the list.
Definition: collector.h:95
int m_Threshold
Definition: collector.h:248
void SetScanTypes(const KICAD_T *scanTypes)
Record the list of KICAD_T types to consider for collection by the Inspect() function.
Definition: collector.h:220
Implements an R-tree for fast spatial and type indexing of schematic items.
Definition: sch_rtree.h:40
search types array terminator (End Of Types)
Definition: typeinfo.h:81
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
Definition: typeinfo.h:77
INSPECTOR_FUNC m_inspector
Definition: collector.h:258
void SetRefPos(const wxPoint &aRefPos)
Definition: collector.h:225
const KICAD_T * m_scanTypes
Definition: collector.h:257
EE_TYPE Overlapping(const EDA_RECT &aRect) const
Definition: sch_rtree.h:221
EE_RTREE & Items()
Gets the full RTree, usually for iterating.
Definition: sch_screen.h:110
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:193

References COLLECTOR::Empty(), EOT, filter, SCH_SCREEN::Items(), m_Convert, COLLECTOR::m_inspector, COLLECTOR::m_scanTypes, COLLECTOR::m_Threshold, m_Unit, EE_RTREE::Overlapping(), SCH_GLOBAL_LABEL_T, SCH_LOCATE_ANY_T, SCH_SHEET_T, SCH_SYMBOL_T, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().

Referenced by EE_SELECTION_TOOL::CollectHits(), SCH_EDIT_TOOL::DeleteItemCursor(), and EE_SELECTION_TOOL::GetNode().

◆ Collect() [2/2]

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.

Parameters
aItemsis a LIB_SYMBOL multivector holding the symbol items.
aFilterListis 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.
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 195 of file ee_collectors.cpp.

197 {
198  Empty(); // empty the collection just in case
199 
200  SetScanTypes( aFilterList );
201  m_Unit = aUnit;
202  m_Convert = aConvert;
203 
204  // remember where the snapshot was taken from and pass refPos to the Inspect() function.
205  SetRefPos( aPos );
206 
207  for( LIB_ITEM& item : aItems )
208  {
209  if( item.Visit( m_inspector, nullptr, m_scanTypes ) == SEARCH_RESULT::QUIT )
210  break;
211  }
212 }
void Empty()
Clear the list.
Definition: collector.h:95
void SetScanTypes(const KICAD_T *scanTypes)
Record the list of KICAD_T types to consider for collection by the Inspect() function.
Definition: collector.h:220
The base class for drawable items used by schematic library symbols.
Definition: lib_item.h:61
INSPECTOR_FUNC m_inspector
Definition: collector.h:258
void SetRefPos(const wxPoint &aRefPos)
Definition: collector.h:225
const KICAD_T * m_scanTypes
Definition: collector.h:257

References COLLECTOR::Empty(), m_Convert, COLLECTOR::m_inspector, COLLECTOR::m_scanTypes, m_Unit, QUIT, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().

◆ Combine()

void COLLECTOR::Combine ( )
inlineinherited

Re-combine the backup list into the main list of the collector.

Definition at line 148 of file collector.h.

149  {
150  std::copy( m_backupList.begin(), m_backupList.end(), std::back_inserter( m_list ) );
151  m_backupList.clear();
152  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
std::vector< EDA_ITEM * > m_backupList
Definition: collector.h:255

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

Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_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 235 of file collector.h.

236  {
237  int cnt = 0;
238 
239  for( size_t i = 0; i < m_list.size(); i++ )
240  {
241  if( m_list[i]->Type() == aType )
242  cnt++;
243  }
244 
245  return cnt;
246  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

Referenced by ROUTER_TOOL::NeighboringSegmentFilter().

◆ Empty()

◆ end() [1/2]

ITER COLLECTOR::end ( )
inlineinherited

Definition at line 80 of file collector.h.

80 { return m_list.end(); }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

◆ end() [2/2]

CITER COLLECTOR::end ( ) const
inlineinherited

Definition at line 82 of file collector.h.

82 { return m_list.cend(); }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

◆ GetBoundingBox()

const EDA_RECT& COLLECTOR::GetBoundingBox ( ) const
inlineinherited

Definition at line 227 of file collector.h.

227 { return m_refBox; }
EDA_RECT m_refBox
Definition: collector.h:260

References COLLECTOR::m_refBox.

◆ GetCount()

int COLLECTOR::GetCount ( ) const
inlineinherited

Return the number of objects in the list.

Definition at line 87 of file collector.h.

88  {
89  return (int) m_list.size();
90  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

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(), 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::FilterCollectorForHierarchy(), 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(), EDIT_TOOL::MoveExact(), 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().

◆ 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 140 of file collector.h.

141  {
142  return !m_backupList.empty();
143  }
std::vector< EDA_ITEM * > m_backupList
Definition: collector.h:255

References COLLECTOR::m_backupList.

Referenced by EE_SELECTION_TOOL::doSelectionMenu(), and PCB_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 203 of file collector.h.

204  {
205  for( size_t i = 0; i < m_list.size(); i++ )
206  {
207  if( m_list[i] == aItem )
208  return true;
209  }
210 
211  return false;
212  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254

References COLLECTOR::m_list.

Referenced by EDIT_TOOL::copyToClipboard(), EDIT_TOOL::doMoveSelection(), EDIT_TOOL::Drag(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), and POSITION_RELATIVE_TOOL::PositionRelative().

◆ Inspect()

SEARCH_RESULT EE_COLLECTOR::Inspect ( EDA_ITEM aItem,
void *  aTestData 
)
overridevirtual

Reimplemented from COLLECTOR.

Definition at line 109 of file ee_collectors.cpp.

110 {
111  if( aItem->Type() == LIB_PIN_T )
112  {
113  // Special selection rules apply to pins of different units when edited in
114  // synchronized pins mode. Leave it to EE_SELECTION_TOOL::Selectable() to
115  // decide what to do with them.
116  }
117  else if( m_Unit || m_Convert )
118  {
119  LIB_ITEM* lib_item = dynamic_cast<LIB_ITEM*>( aItem );
120 
121  if( m_Unit && lib_item && lib_item->GetUnit() && lib_item->GetUnit() != m_Unit )
123 
124  if( m_Convert && lib_item && lib_item->GetConvert() && lib_item->GetConvert() != m_Convert )
126  }
127 
128  if( aItem->HitTest( m_refPos, m_Threshold ) )
129  Append( aItem );
130 
132 }
int m_Threshold
Definition: collector.h:248
The base class for drawable items used by schematic library symbols.
Definition: lib_item.h:61
void Append(EDA_ITEM *item)
Add an item to the end of the list.
Definition: collector.h:105
virtual bool HitTest(const wxPoint &aPosition, int aAccuracy=0) const
Test if aPosition is contained within or on the bounding box of an item.
Definition: eda_item.h:225
int GetUnit() const
Definition: lib_item.h:272
wxPoint m_refPos
Definition: collector.h:259
int GetConvert() const
Definition: lib_item.h:275
KICAD_T Type() const
Returns the type of object.
Definition: eda_item.h:113

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

◆ 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 215 of file ee_collectors.cpp.

216 {
217  if( GetCount() != 2 )
218  return false;
219 
220  bool is_busentry0 = ( dynamic_cast<SCH_BUS_ENTRY_BASE*>( m_list[0] ) != nullptr );
221  bool is_busentry1 = ( dynamic_cast<SCH_BUS_ENTRY_BASE*>( m_list[1] ) != nullptr );
222 
223  if(( m_list[0]->Type() == SCH_LINE_T) && ( m_list[1]->Type() == SCH_LINE_T) )
224  return ( ( SCH_LINE* ) m_list[0])->GetLayer() == ( ( SCH_LINE* ) m_list[1])->GetLayer();
225 
226  if(( m_list[0]->Type() == SCH_LINE_T) && is_busentry1 )
227  return true;
228 
229  if( is_busentry0 && ( m_list[1]->Type() == SCH_LINE_T) )
230  return true;
231 
232  return false;
233 }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
int GetCount() const
Return the number of objects in the list.
Definition: collector.h:87
Segment description base class to describe items which have 2 end points (track, wire,...
Definition: sch_line.h:37

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 63 of file ee_collectors.h.

64  {
65  if( (unsigned)aIndex < (unsigned)GetCount() )
66  return (SCH_ITEM*) m_list[ aIndex ];
67 
68  return nullptr;
69  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
int GetCount() const
Return the number of objects in the list.
Definition: collector.h:87
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:193

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

◆ Remove() [1/2]

◆ Remove() [2/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 125 of file collector.h.

126  {
127  m_list.erase( std::remove_if( m_list.begin(), m_list.end(),
128  [&aItem]( const EDA_ITEM* aCandidate )
129  {
130  return aCandidate == aItem;
131  } ),
132  m_list.end() );
133  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:100

References COLLECTOR::m_list.

◆ SetRefPos()

void COLLECTOR::SetRefPos ( const wxPoint &  aRefPos)
inlineinherited

Definition at line 225 of file collector.h.

225 { m_refPos = aRefPos; }
wxPoint m_refPos
Definition: collector.h:259

References COLLECTOR::m_refPos.

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

◆ SetScanTypes()

void COLLECTOR::SetScanTypes ( const KICAD_T scanTypes)
inlineinherited

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

Parameters
scanTypesAn 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.

221  {
222  m_scanTypes = scanTypes;
223  }
const KICAD_T * m_scanTypes
Definition: collector.h:257

References COLLECTOR::m_scanTypes.

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

◆ Transfer() [1/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 159 of file collector.h.

160  {
161  m_backupList.push_back( m_list[aIndex] );
162  m_list.erase( m_list.begin() + aIndex );
163  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
std::vector< EDA_ITEM * > m_backupList
Definition: collector.h:255

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

Referenced by PL_SELECTION_TOOL::guessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), and EE_SELECTION_TOOL::GuessSelectionCandidates().

◆ Transfer() [2/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 170 of file collector.h.

171  {
172  for( size_t i = 0; i < m_list.size(); i++ )
173  {
174  if( m_list[i] == aItem )
175  {
176  m_list.erase( m_list.begin() + i );
177  m_backupList.push_back( aItem );
178  return;
179  }
180  }
181  }
std::vector< EDA_ITEM * > m_list
Definition: collector.h:254
std::vector< EDA_ITEM * > m_backupList
Definition: collector.h:255

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

Member Data Documentation

◆ AllItems

const KICAD_T EE_COLLECTOR::AllItems
static
Initial value:

Definition at line 42 of file ee_collectors.h.

Referenced by EE_SELECTION_TOOL::disambiguateCursor(), and EE_SELECTION_TOOL::Main().

◆ EditableItems

◆ FieldOwners

const KICAD_T EE_COLLECTOR::FieldOwners
static

◆ m_backupList

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

◆ m_Convert

int EE_COLLECTOR::m_Convert

Definition at line 110 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

◆ m_refBox

EDA_RECT COLLECTOR::m_refBox
protectedinherited

Definition at line 260 of file collector.h.

Referenced by COLLECTOR::GetBoundingBox().

◆ m_refPos

wxPoint COLLECTOR::m_refPos
protectedinherited

◆ m_scanTypes

const KICAD_T* COLLECTOR::m_scanTypes
protectedinherited

◆ m_Threshold

◆ m_Unit

int EE_COLLECTOR::m_Unit

Definition at line 109 of file ee_collectors.h.

Referenced by Collect(), and Inspect().

◆ MovableItems

◆ SheetsOnly

◆ SymbolsOnly

◆ WiresOnly

const KICAD_T EE_COLLECTOR::WiresOnly
static
Initial value:

Definition at line 47 of file ee_collectors.h.

Referenced by SCH_EDIT_TOOL::BreakWire().


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