KiCad PCB EDA Suite
SCH_COLLECTOR Class Reference

Class SCH_COLLECTOR. More...

#include <sch_collectors.h>

Inheritance diagram for SCH_COLLECTOR:
COLLECTOR SCH_TYPE_COLLECTOR

Public Types

using ITER = std::vector< EDA_ITEM * >::iterator
 
using CITER = std::vector< EDA_ITEM * >::const_iterator
 

Public Member Functions

 SCH_COLLECTOR (const KICAD_T *aScanTypes=SCH_COLLECTOR::AllItems)
 Constructor SCH_COLLECTOR. More...
 
SCH_ITEMoperator[] (int aIndex) const
 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_ITEM *aItem, const KICAD_T aFilterList[], const wxPoint &aPosition)
 Function Collect scans a SCH_ITEM using this class's Inspector method, which does the collection. More...
 
bool IsCorner () const
 Function IsCorner tests if the collected items forms as corner of two line segments. More...
 
bool IsNode (bool aIncludePins=true) const
 Function IsNode tests if the collected items form a node. More...
 
bool IsDraggableJunction () const
 Function IsDraggableJunction tests to see if the collected items form a draggable junction. More...
 
ITER begin ()
 
CITER begin () const
 
ITER end ()
 
CITER end () const
 
bool IsValidIndex (int aIndex)
 Function IsValidIndex tests if aIndex is with the limits of the list of collected items. More...
 
int GetCount () const
 Function GetCount returns the number of objects in the list. More...
 
void Empty ()
 Function Empty sets the list to empty. More...
 
void Append (EDA_ITEM *item)
 Function Append adds an item to the end of the list. More...
 
void Remove (int aIndex)
 Function Remove removes the item at aIndex (first position is 0);. More...
 
void Remove (const EDA_ITEM *aItem)
 Function Remove removes the item aItem (if exists in the collector). More...
 
EDA_ITEM *const * BasePtr () const
 Function BasePtr returns the address of the first element in the array. More...
 
bool HasItem (const EDA_ITEM *aItem) const
 Function HasItem tests if aItem has already been collected. More...
 
void SetScanTypes (const KICAD_T *scanTypes)
 Function SetScanTypes records the list of KICAD_T types to consider for collection by the Inspect() function. More...
 
void SetTimeNow ()
 
timestamp_t GetTime ()
 
void SetRefPos (const wxPoint &aRefPos)
 
const wxPointGetRefPos () const
 
void SetBoundingBox (const EDA_RECT &aRefBox)
 
const EDA_RECTGetBoundingBox () const
 
bool IsSimilarPointAndTime (const wxPoint &aRefPos)
 Function IsSimilarPointAndTime returns true if the given reference point is "similar" (defined here) to the internal reference point and the current time is within a few seconds of the internal m_TimeAtCollection. More...
 
int CountType (KICAD_T aType)
 Function CountType counts the number of items matching aType. More...
 

Static Public Attributes

static const KICAD_T AllItems []
 A scan list for all schematic items. More...
 
static const KICAD_T EditableItems []
 A scan list for all editable schematic items. More...
 
static const KICAD_T CmpFieldValueOnly []
 A scan list for a specific editable field: Value. More...
 
static const KICAD_T CmpFieldReferenceOnly []
 A scan list for a specific editable field: Reference. More...
 
static const KICAD_T CmpFieldFootprintOnly []
 A scan list for a specific editable field: Footprint. More...
 
static const KICAD_T CmpFieldDatasheetOnly []
 A scan list for a specific editable field: Datasheet. More...
 
static const KICAD_T MovableItems []
 A scan list for all movable schematic items. More...
 
static const KICAD_T DraggableItems []
 A scan list for all draggable schematic items. More...
 
static const KICAD_T RotatableItems []
 A scan list for all rotatable schematic items. More...
 
static const KICAD_T ParentItems []
 A scan list for only parent schematic items. More...
 
static const KICAD_T AllItemsButPins []
 A scan list for all schematic items except pins. More...
 
static const KICAD_T ComponentsOnly []
 A scan list for schematic component items only. More...
 
static const KICAD_T SheetsOnly []
 A scan list for schematic sheet items only. More...
 
static const KICAD_T SheetsAndSheetLabels []
 A scan list for schematic sheet and sheet label items. More...
 
static const KICAD_T OrientableItems []
 A scan list for schematic items that can be mirrored. More...
 
static const KICAD_T CopyableItems []
 A scan list for schematic items that can be copied/duplicated. More...
 
static const KICAD_T DoubleClickItems []
 A scan list for schematic items that react to a double-click. More...
 

Protected Attributes

INSPECTOR_FUNC m_inspector
 a class common bridge into the polymorphic Inspect() More...
 
const KICAD_Tm_ScanTypes
 Which object types to scan. More...
 
std::vector< EDA_ITEM * > m_List
 A place to hold collected objects without taking ownership of their memory. More...
 
wxPoint m_RefPos
 A point to test against, and that was used to make the collection. More...
 
EDA_RECT m_RefBox
 A bounding box to test against, and that was used to make the collection. More...
 
timestamp_t m_TimeAtCollection
 The time at which the collection was made. More...
 

Detailed Description

Class SCH_COLLECTOR.

Definition at line 42 of file sch_collectors.h.

Member Typedef Documentation

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

Definition at line 90 of file collector.h.

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

Definition at line 89 of file collector.h.

Constructor & Destructor Documentation

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

Constructor SCH_COLLECTOR.

Definition at line 134 of file sch_collectors.h.

References COLLECTOR::SetScanTypes().

135  {
136  SetScanTypes( aScanTypes );
137  }
void SetScanTypes(const KICAD_T *scanTypes)
Function SetScanTypes records the list of KICAD_T types to consider for collection by the Inspect() f...
Definition: collector.h:215

Member Function Documentation

void COLLECTOR::Append ( EDA_ITEM item)
inlineinherited

Function Append adds an item to the end of the list.

Parameters
itemAn EDA_ITEM* to add.

Definition at line 133 of file collector.h.

Referenced by GENERAL_COLLECTOR::Collect(), DIALOG_DRC_CONTROL::doSelectionMenu(), EditToolSelectionFilter(), SELECTION_TOOL::guessSelectionCandidates(), GERBER_COLLECTOR::Inspect(), LIB_COLLECTOR::Inspect(), Inspect(), GENERAL_COLLECTOR::Inspect(), SCH_FIND_COLLECTOR::Inspect(), SCH_TYPE_COLLECTOR::Inspect(), PCB_TYPE_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), ROUTER_TOOL::NeighboringSegmentFilter(), and SELECTION_TOOL::RequestSelection().

134  {
135  m_List.push_back( item );
136  }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
EDA_ITEM* const* COLLECTOR::BasePtr ( ) const
inlineinherited

Function BasePtr returns the address of the first element in the array.

Only call this if there is at least one element in the vector m_List, otherwise a C++ exception should get thrown.

Definition at line 185 of file collector.h.

186  {
187  return &m_List[0];
188  }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
ITER COLLECTOR::begin ( )
inlineinherited

Definition at line 92 of file collector.h.

Referenced by SELECTION_TOOL::RequestSelection().

92 { return m_List.begin(); }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
CITER COLLECTOR::begin ( ) const
inlineinherited

Definition at line 94 of file collector.h.

94 { return m_List.cbegin(); }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
void SCH_COLLECTOR::Collect ( SCH_ITEM aItem,
const KICAD_T  aFilterList[],
const wxPoint aPosition 
)

Function Collect scans a SCH_ITEM using this class's Inspector method, which does the collection.

Parameters
aItemA SCH_ITEM to scan.
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.
aPositionA wxPoint to use in hit-testing.

Definition at line 264 of file sch_collectors.cpp.

References COLLECTOR::Empty(), EDA_ITEM::IterateForward(), COLLECTOR::m_inspector, COLLECTOR::m_ScanTypes, COLLECTOR::SetRefPos(), and COLLECTOR::SetScanTypes().

Referenced by SCH_FIND_COLLECTOR::IsSearchRequired(), SCH_EDIT_FRAME::LocateItem(), and operator[]().

266 {
267  Empty(); // empty the collection just in case
268 
269  SetScanTypes( aFilterList );
270 
271  // remember where the snapshot was taken from and pass refPos to the Inspect() function.
272  SetRefPos( aPosition );
273 
275 }
void Empty()
Function Empty sets the list to empty.
Definition: collector.h:123
static SEARCH_RESULT IterateForward(EDA_ITEM *listStart, INSPECTOR inspector, void *testData, const KICAD_T scanTypes[])
Function IterateForward walks through the object tree calling the inspector() on each object type req...
void SetScanTypes(const KICAD_T *scanTypes)
Function SetScanTypes records the list of KICAD_T types to consider for collection by the Inspect() f...
Definition: collector.h:215
INSPECTOR_FUNC m_inspector
a class common bridge into the polymorphic Inspect()
Definition: collector.h:59
void SetRefPos(const wxPoint &aRefPos)
Definition: collector.h:230
const KICAD_T * m_ScanTypes
Which object types to scan.
Definition: collector.h:62
int COLLECTOR::CountType ( KICAD_T  aType)
inlineinherited

Function CountType counts the number of items matching aType.

Parameters
aTypetype we are interested in
Returns
number of occurences

Definition at line 265 of file collector.h.

References i.

Referenced by SELECTION_TOOL::guessSelectionCandidates(), and ROUTER_TOOL::NeighboringSegmentFilter().

266  {
267  int cnt = 0;
268  for( size_t i = 0; i < m_List.size(); i++ )
269  {
270  if( m_List[i]->Type() == aType )
271  cnt++;
272  }
273  return cnt;
274  }
size_t i
Definition: json11.cpp:597
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
void COLLECTOR::Empty ( )
inlineinherited
ITER COLLECTOR::end ( )
inlineinherited

Definition at line 93 of file collector.h.

Referenced by SELECTION_TOOL::RequestSelection().

93 { return m_List.end(); }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
CITER COLLECTOR::end ( ) const
inlineinherited

Definition at line 95 of file collector.h.

95 { return m_List.cend(); }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
const EDA_RECT& COLLECTOR::GetBoundingBox ( ) const
inlineinherited

Definition at line 234 of file collector.h.

References COLLECTOR::m_RefBox.

234 { return m_RefBox; }
EDA_RECT m_RefBox
A bounding box to test against, and that was used to make the collection.
Definition: collector.h:71
int COLLECTOR::GetCount ( ) const
inlineinherited

Function GetCount returns the number of objects in the list.

Definition at line 114 of file collector.h.

Referenced by AllAreModulesAndReturnSmallestIfSo(), SCH_EDIT_FRAME::AppendSchematic(), BuildBoardPolygonOutlines(), calcMaxArea(), connectedItemFilter(), connectedTrackFilter(), MODULE::CoverageRatio(), GERBVIEW_SELECTION_TOOL::disambiguationMenu(), SELECTION_TOOL::doSelectionMenu(), EditToolSelectionFilter(), MODULE_EDITOR_TOOLS::EnumeratePads(), EDIT_TOOL::FootprintFilter(), DSN::SPECCTRA_DB::FromBOARD(), SCH_FIND_COLLECTOR::GetItem(), PANEL_SETUP_LAYERS::getNonRemovableLayers(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), SCH_FIND_COLLECTOR::GetText(), GENDRILL_WRITER_BASE::getUniqueLayerPairs(), SELECTION_TOOL::guessSelectionCandidates(), highlightNet(), SCH_EDIT_FRAME::importFile(), IsCorner(), LIB_EDIT_FRAME::locateItem(), SCH_EDIT_FRAME::LocateItem(), DSN::SPECCTRA_DB::makeIMAGE(), ROUTER_TOOL::NeighboringSegmentFilter(), SCH_EDIT_FRAME::OnFindSchematicItem(), LIB_EDIT_FRAME::OnSelectItem(), GERBER_COLLECTOR::operator[](), operator[](), COLLECTOR::operator[](), SCH_FIND_COLLECTOR::PassedEnd(), PCB_BASE_FRAME::PcbGeneralLocateAndDisplay(), SELECTION_TOOL::pickSmallestComponent(), SCH_COMPONENT::ResolveAll(), PCB_EDIT_FRAME::SelectHighLight(), GERBVIEW_SELECTION_TOOL::selectPoint(), SELECTION_TOOL::selectPoint(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), SCH_COMPONENT::UpdateAllPinCaches(), and SCH_FIND_COLLECTOR::UpdateIndex().

115  {
116  return (int) m_List.size();
117  }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
const wxPoint& COLLECTOR::GetRefPos ( ) const
inlineinherited

Definition at line 231 of file collector.h.

References COLLECTOR::m_RefPos.

Referenced by PCB_EDIT_FRAME::OnRightClick().

231 { return m_RefPos; }
wxPoint m_RefPos
A point to test against, and that was used to make the collection.
Definition: collector.h:68
timestamp_t COLLECTOR::GetTime ( )
inlineinherited

Definition at line 225 of file collector.h.

References COLLECTOR::m_TimeAtCollection.

226  {
227  return m_TimeAtCollection;
228  }
timestamp_t m_TimeAtCollection
The time at which the collection was made.
Definition: collector.h:74
bool COLLECTOR::HasItem ( const EDA_ITEM aItem) const
inlineinherited

Function HasItem tests if aItem has already been collected.

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

Definition at line 197 of file collector.h.

References i.

Referenced by EditToolSelectionFilter().

198  {
199  for( size_t i = 0; i < m_List.size(); i++ )
200  {
201  if( m_List[i] == aItem )
202  return true;
203  }
204 
205  return false;
206  }
size_t i
Definition: json11.cpp:597
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
SEARCH_RESULT SCH_COLLECTOR::Inspect ( EDA_ITEM aItem,
void *  aTestData 
)
overridevirtual

Implements COLLECTOR.

Reimplemented in SCH_TYPE_COLLECTOR.

Definition at line 234 of file sch_collectors.cpp.

References COLLECTOR::Append(), SCH_COMPONENT::GetPosition(), SCH_COMPONENT::GetTransform(), EDA_ITEM::HitTest(), TRANSFORM::InverseTransform(), LIB_PIN_T, COLLECTOR::m_RefPos, SCH_COMPONENT_T, SEARCH_CONTINUE, TRANSFORM::TransformCoordinate(), EDA_ITEM::Type(), and wxPoint::y.

Referenced by SCH_FIND_COLLECTOR::IsSearchRequired(), and operator[]().

235 {
236  if( aItem->Type() != LIB_PIN_T && !aItem->HitTest( m_RefPos ) )
237  return SEARCH_CONTINUE;
238 
239  // Pins have special hit testing requirements that are relative to their parent
240  // SCH_COMPONENT item.
241  if( aItem->Type() == LIB_PIN_T )
242  {
243  wxCHECK_MSG( aTestData && ( (EDA_ITEM*) aTestData )->Type() == SCH_COMPONENT_T,
244  SEARCH_CONTINUE, wxT( "Cannot inspect invalid data. Bad programmer!" ) );
245 
246  // Pin hit testing is relative to the components position and orientation in the
247  // schematic. The hit test position must be converted to library coordinates.
248  SCH_COMPONENT* component = (SCH_COMPONENT*) aTestData;
249  TRANSFORM transform = component->GetTransform().InverseTransform();
250  wxPoint position = transform.TransformCoordinate( m_RefPos - component->GetPosition() );
251 
252  position.y *= -1; // Y axis polarity in schematic is inverted from library.
253 
254  if( !aItem->HitTest( position ) )
255  return SEARCH_CONTINUE;
256  }
257 
258  Append( aItem );
259 
260  return SEARCH_CONTINUE;
261 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:201
TRANSFORM & GetTransform() const
void Append(EDA_ITEM *item)
Function Append adds an item to the end of the list.
Definition: collector.h:133
wxPoint TransformCoordinate(const wxPoint &aPoint) const
Calculate a new coordinate according to the mirror/rotation transform.
Definition: transform.cpp:41
Class for tranforming drawing coordinates for a wxDC device context.
Definition: transform.h:45
virtual bool HitTest(const wxPoint &aPosition) const
Function HitTest tests if aPosition is contained within or on the bounding area of an item...
Definition: base_struct.h:308
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
wxPoint GetPosition() const override
Function GetPosition.
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:154
wxPoint m_RefPos
A point to test against, and that was used to make the collection.
Definition: collector.h:68
TRANSFORM InverseTransform() const
Calculate the Inverse mirror/rotation transform.
Definition: transform.cpp:58
bool SCH_COLLECTOR::IsCorner ( ) const

Function IsCorner tests if the collected items forms as corner of two line segments.

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

Definition at line 278 of file sch_collectors.cpp.

References COLLECTOR::GetCount(), GetLayer(), COLLECTOR::m_List, and SCH_LINE_T.

Referenced by SCH_EDIT_FRAME::LocateItem(), SCH_EDIT_FRAME::OnDragItem(), and operator[]().

279 {
280  if( GetCount() != 2 )
281  return false;
282 
283  bool is_busentry0 = (dynamic_cast<SCH_BUS_ENTRY_BASE*>( m_List[0] ) != NULL);
284  bool is_busentry1 = (dynamic_cast<SCH_BUS_ENTRY_BASE*>( m_List[1] ) != NULL);
285 
286  if( (m_List[0]->Type() == SCH_LINE_T) && (m_List[1]->Type() == SCH_LINE_T) )
287  return ( ( SCH_LINE* ) m_List[0])->GetLayer() == ( ( SCH_LINE* ) m_List[1])->GetLayer();
288 
289  if( (m_List[0]->Type() == SCH_LINE_T) && is_busentry1 )
290  return true;
291 
292  if( is_busentry0 && (m_List[1]->Type() == SCH_LINE_T) )
293  return true;
294 
295  return false;
296 }
int GetCount() const
Function GetCount returns the number of objects in the list.
Definition: collector.h:114
Base class for a bus or wire entry.
Definition: sch_bus_entry.h:41
Segment description base class to describe items which have 2 end points (track, wire, draw line ...)
Definition: sch_line.h:41
static bool GetLayer(MODEL_VRML &aModel, LAYER_NUM layer, VRML_LAYER **vlayer)
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
bool SCH_COLLECTOR::IsDraggableJunction ( ) const

Function IsDraggableJunction tests to see if the collected items form a draggable junction.

Daggable junctions are defined as:

  • The intersection of three or more wire end points.
  • The intersection of one or more wire end point and one wire mid point.
  • The crossing of two or more wire mid points and a junction.
Returns
True if the collection is a draggable junction.

Definition at line 333 of file sch_collectors.cpp.

References i, COLLECTOR::m_List, and SCH_JUNCTION_T.

Referenced by SCH_EDIT_FRAME::addJunctionMenuEntries(), SCH_EDIT_FRAME::LocateItem(), SCH_EDIT_FRAME::OnDragItem(), and operator[]().

334 {
335  for( size_t i = 0; i < m_List.size(); i++ )
336  if( ( (SCH_ITEM*) m_List[ i ] )->Type() == SCH_JUNCTION_T )
337  return true;
338 
339  return false;
340 }
size_t i
Definition: json11.cpp:597
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
bool SCH_COLLECTOR::IsNode ( bool  aIncludePins = true) const

Function IsNode tests if the collected items form a node.

Parameters
aIncludePinsIndicate if component pin items should be included in the test.
Returns
True if the collected items form a node.

Definition at line 299 of file sch_collectors.cpp.

References SCH_ITEM::GetLayer(), i, LAYER_WIRE, LIB_PIN_T, COLLECTOR::m_List, SCH_JUNCTION_T, SCH_LINE_T, and EDA_ITEM::Type().

Referenced by SCH_EDIT_FRAME::LocateItem(), SCH_EDIT_FRAME::OnDragItem(), and operator[]().

300 {
301  for( size_t i = 0; i < m_List.size(); i++ )
302  {
303  SCH_ITEM* item = (SCH_ITEM*) m_List[ i ];
304  KICAD_T type = item->Type();
305 
306  if( type == SCH_JUNCTION_T )
307  continue;
308 
309  if( type == SCH_LINE_T )
310  {
311  if( item->GetLayer() != LAYER_WIRE )
312  return false;
313 
314  continue;
315  }
316 
317  if( type == LIB_PIN_T )
318  {
319  if( !aIncludePins )
320  return false;
321 
322  continue;
323  }
324 
325  // Any other item types indicate that this collection is not a node.
326  return false;
327  }
328 
329  return true;
330 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:201
SCH_LAYER_ID GetLayer() const
Function GetLayer returns the layer this item is on.
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:78
size_t i
Definition: json11.cpp:597
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
bool COLLECTOR::IsSimilarPointAndTime ( const wxPoint aRefPos)
inlineinherited

Function IsSimilarPointAndTime returns true if the given reference point is "similar" (defined here) to the internal reference point and the current time is within a few seconds of the internal m_TimeAtCollection.

Parameters
aRefPosA wxPoint to compare to.
Returns
bool - true if the point and time are similar, else false.

Definition at line 245 of file collector.h.

References abs, GetNewTimeStamp(), wxPoint::x, and wxPoint::y.

246  {
247  const int distMax = 2; // adjust these here
248  const timestamp_t timeMax = 3; // seconds
249 
250  int dx = abs( aRefPos.x - m_RefPos.x );
251  int dy = abs( aRefPos.y - m_RefPos.y );
252 
253  if( dx <= distMax && dy <= distMax &&
254  GetNewTimeStamp() - m_TimeAtCollection <= timeMax )
255  return true;
256  else
257  return false;
258  }
long timestamp_t
timestamp_t is our type to represent unique IDs for all kinds of elements; historically simply the ti...
Definition: common.h:52
#define abs(a)
Definition: auxiliary.h:84
timestamp_t GetNewTimeStamp()
Definition: common.cpp:212
wxPoint m_RefPos
A point to test against, and that was used to make the collection.
Definition: collector.h:68
timestamp_t m_TimeAtCollection
The time at which the collection was made.
Definition: collector.h:74
bool COLLECTOR::IsValidIndex ( int  aIndex)
inlineinherited

Function IsValidIndex tests if aIndex is with the limits of the list of collected items.

Parameters
aIndexThe index to test.
Returns
True if aIndex is with the limits of the list of collected items, otherwise false.

Definition at line 105 of file collector.h.

Referenced by SCH_FIND_COLLECTOR::GetText(), and SCH_FIND_COLLECTOR::ReplaceItem().

106  {
107  return ( (unsigned) aIndex < m_List.size() );
108  }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
SCH_ITEM* SCH_COLLECTOR::operator[] ( int  aIndex) const
inline

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.

Definition at line 145 of file sch_collectors.h.

References Collect(), COLLECTOR::GetCount(), Inspect(), IsCorner(), IsDraggableJunction(), IsNode(), and COLLECTOR::m_List.

Referenced by SCH_FIND_COLLECTOR::Empty().

146  {
147  if( (unsigned)aIndex < (unsigned)GetCount() )
148  return (SCH_ITEM*) m_List[ aIndex ];
149 
150  return NULL;
151  }
int GetCount() const
Function GetCount returns the number of objects in the list.
Definition: collector.h:114
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
void COLLECTOR::Remove ( int  aIndex)
inlineinherited

Function Remove removes the item at aIndex (first position is 0);.

Parameters
aIndexThe index into the list.

Definition at line 143 of file collector.h.

Referenced by connectedItemFilter(), connectedTrackFilter(), EditToolSelectionFilter(), EDIT_TOOL::FootprintFilter(), SELECTION_TOOL::guessSelectionCandidates(), PCB_BASE_FRAME::PcbGeneralLocateAndDisplay(), GERBVIEW_SELECTION_TOOL::selectPoint(), and SELECTION_TOOL::selectPoint().

144  {
145  m_List.erase( m_List.begin() + aIndex );
146  }
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
void COLLECTOR::Remove ( const EDA_ITEM aItem)
inlineinherited

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

Parameters
aItemthe item to be removed.

Definition at line 153 of file collector.h.

References i.

154  {
155  for( size_t i = 0; i < m_List.size(); i++ )
156  {
157  if( m_List[i] == aItem )
158  {
159  m_List.erase( m_List.begin() + i);
160  return;
161  }
162  }
163  }
size_t i
Definition: json11.cpp:597
std::vector< EDA_ITEM * > m_List
A place to hold collected objects without taking ownership of their memory.
Definition: collector.h:65
void COLLECTOR::SetBoundingBox ( const EDA_RECT aRefBox)
inlineinherited

Definition at line 233 of file collector.h.

233 { m_RefBox = aRefBox; }
EDA_RECT m_RefBox
A bounding box to test against, and that was used to make the collection.
Definition: collector.h:71
void COLLECTOR::SetRefPos ( const wxPoint aRefPos)
inlineinherited

Definition at line 230 of file collector.h.

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

230 { m_RefPos = aRefPos; }
wxPoint m_RefPos
A point to test against, and that was used to make the collection.
Definition: collector.h:68
void COLLECTOR::SetScanTypes ( const KICAD_T scanTypes)
inlineinherited

Function SetScanTypes records 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 215 of file collector.h.

Referenced by GERBER_COLLECTOR::Collect(), LIB_COLLECTOR::Collect(), Collect(), GENERAL_COLLECTOR::Collect(), SCH_TYPE_COLLECTOR::Collect(), GERBER_COLLECTOR::GERBER_COLLECTOR(), SCH_COLLECTOR(), and SCH_FIND_COLLECTOR::SCH_FIND_COLLECTOR().

216  {
217  m_ScanTypes = scanTypes;
218  }
const KICAD_T * m_ScanTypes
Which object types to scan.
Definition: collector.h:62
void COLLECTOR::SetTimeNow ( )
inlineinherited

Definition at line 220 of file collector.h.

References GetNewTimeStamp().

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

221  {
223  }
timestamp_t GetNewTimeStamp()
Definition: common.cpp:212
timestamp_t m_TimeAtCollection
The time at which the collection was made.
Definition: collector.h:74

Member Data Documentation

const KICAD_T SCH_COLLECTOR::AllItemsButPins
static
const KICAD_T SCH_COLLECTOR::CmpFieldDatasheetOnly
static
Initial value:

A scan list for a specific editable field: Datasheet.

Definition at line 74 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnEditItem().

const KICAD_T SCH_COLLECTOR::CmpFieldFootprintOnly
static
Initial value:

A scan list for a specific editable field: Footprint.

Definition at line 69 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnEditItem().

const KICAD_T SCH_COLLECTOR::CmpFieldReferenceOnly
static
Initial value:

A scan list for a specific editable field: Reference.

Definition at line 64 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnEditItem().

const KICAD_T SCH_COLLECTOR::CmpFieldValueOnly
static
Initial value:

A scan list for a specific editable field: Value.

Definition at line 59 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnEditItem().

const KICAD_T SCH_COLLECTOR::ComponentsOnly
static
const KICAD_T SCH_COLLECTOR::CopyableItems
static
Initial value:

A scan list for schematic items that can be copied/duplicated.

Definition at line 124 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnHotKey().

const KICAD_T SCH_COLLECTOR::DoubleClickItems
static
Initial value:

A scan list for schematic items that react to a double-click.

Definition at line 129 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnLeftDClick().

const KICAD_T SCH_COLLECTOR::DraggableItems
static
const KICAD_T SCH_COLLECTOR::EditableItems
static
Initial value:

A scan list for all editable schematic items.

Definition at line 54 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnEditItem().

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

A place to hold collected objects without taking ownership of their memory.

Definition at line 65 of file collector.h.

Referenced by GERBER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), SCH_FIND_COLLECTOR::Collect(), SCH_FIND_COLLECTOR::GetItem(), IsCorner(), IsDraggableJunction(), IsNode(), GERBER_COLLECTOR::operator[](), and operator[]().

EDA_RECT COLLECTOR::m_RefBox
protectedinherited

A bounding box to test against, and that was used to make the collection.

Definition at line 71 of file collector.h.

Referenced by COLLECTOR::GetBoundingBox().

wxPoint COLLECTOR::m_RefPos
protectedinherited

A point to test against, and that was used to make the collection.

Definition at line 68 of file collector.h.

Referenced by COLLECTOR::GetRefPos(), GERBER_COLLECTOR::Inspect(), LIB_COLLECTOR::Inspect(), Inspect(), and GENERAL_COLLECTOR::Inspect().

const KICAD_T* COLLECTOR::m_ScanTypes
protectedinherited
timestamp_t COLLECTOR::m_TimeAtCollection
protectedinherited

The time at which the collection was made.

Definition at line 74 of file collector.h.

Referenced by COLLECTOR::GetTime().

const KICAD_T SCH_COLLECTOR::OrientableItems
static
Initial value:

A scan list for schematic items that can be mirrored.

Definition at line 119 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnOrient().

const KICAD_T SCH_COLLECTOR::RotatableItems
static
Initial value:

A scan list for all rotatable schematic items.

Definition at line 89 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnRotate().

const KICAD_T SCH_COLLECTOR::SheetsAndSheetLabels
static
Initial value:

A scan list for schematic sheet and sheet label items.

Definition at line 114 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::OnLeftClick().

const KICAD_T SCH_COLLECTOR::SheetsOnly
static
Initial value:

A scan list for schematic sheet items only.

Definition at line 109 of file sch_collectors.h.

Referenced by SCH_EDIT_FRAME::AppendSchematic().


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