KiCad PCB EDA Suite
Loading...
Searching...
No Matches
sch_item.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2004 Jean-Pierre Charras, [email protected]
5 * Copyright (C) 2004-2024 KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, you may find one here:
19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20 * or you may search the http://www.gnu.org website for the version 2 license,
21 * or you may write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 */
24
25#ifndef SCH_ITEM_H
26#define SCH_ITEM_H
27
28#include <unordered_map>
29#include <map>
30#include <set>
31
32#include <eda_item.h>
33#include <default_values.h>
34#include <sch_sheet_path.h>
35#include <netclass.h>
36#include <stroke_params.h>
37#include <layer_ids.h>
38
40class SCH_CONNECTION;
41class SCH_SHEET_PATH;
42class SCHEMATIC;
43class LINE_READER;
44class SCH_EDIT_FRAME;
45class PLOTTER;
47class NETLIST_OBJECT_LIST;
48class PLOTTER;
49
50namespace KIFONT
51{
52class METRICS;
53}
54
56
57
59{
63};
64
65
67{
78};
79
80
86{
87public:
88 DANGLING_END_ITEM( DANGLING_END_T aType, EDA_ITEM* aItem, const VECTOR2I& aPosition )
89 {
90 m_item = aItem;
91 m_type = aType;
92 m_pos = aPosition;
93 m_parent = aItem;
94 }
95
96 DANGLING_END_ITEM( DANGLING_END_T aType, EDA_ITEM* aItem, const VECTOR2I& aPosition,
97 const EDA_ITEM* aParent )
98 {
99 m_item = aItem;
100 m_type = aType;
101 m_pos = aPosition;
102 m_parent = aParent;
103 }
104
105 bool operator==( const DANGLING_END_ITEM& aB ) const
106 {
107 return GetItem() == aB.GetItem()
108 && GetPosition() == aB.GetPosition()
109 && GetType() == aB.GetType()
110 && GetParent() == aB.GetParent();
111 }
112
113 bool operator!=( const DANGLING_END_ITEM& aB ) const
114 {
115 return GetItem() != aB.GetItem()
116 || GetPosition() != aB.GetPosition()
117 || GetType() != aB.GetType()
118 || GetParent() != aB.GetParent();;
119 }
120
121 bool operator<( const DANGLING_END_ITEM& rhs ) const
122 {
123 return( m_pos.x < rhs.m_pos.x || ( m_pos.x == rhs.m_pos.x && m_pos.y < rhs.m_pos.y )
124 || ( m_pos == rhs.m_pos && m_item < rhs.m_item ) );
125 }
126
127 VECTOR2I GetPosition() const { return m_pos; }
128 EDA_ITEM* GetItem() const { return m_item; }
129 const EDA_ITEM* GetParent() const { return m_parent; }
130 DANGLING_END_T GetType() const { return m_type; }
131
132private:
137};
138
139
141{
142public:
143 static std::vector<DANGLING_END_ITEM>::iterator
144 get_lower_pos( std::vector<DANGLING_END_ITEM>& aItemListByPos, const VECTOR2I& aPos );
145
146 static std::vector<DANGLING_END_ITEM>::iterator
147 get_lower_type( std::vector<DANGLING_END_ITEM>& aItemListByType, const DANGLING_END_T& aType );
148
150 static void sort_dangling_end_items( std::vector<DANGLING_END_ITEM>& aItemListByType,
151 std::vector<DANGLING_END_ITEM>& aItemListByPos );
152};
153
154typedef std::vector<SCH_ITEM*> SCH_ITEM_SET;
155
156
164class SCH_ITEM : public EDA_ITEM
165{
166public:
167 SCH_ITEM( EDA_ITEM* aParent, KICAD_T aType );
168
169 SCH_ITEM( const SCH_ITEM& aItem );
170
171 SCH_ITEM& operator=( const SCH_ITEM& aPin );
172
173 virtual ~SCH_ITEM();
174
175 virtual wxString GetClass() const override
176 {
177 return wxT( "SCH_ITEM" );
178 }
179
180 bool IsType( const std::vector<KICAD_T>& aScanTypes ) const override
181 {
182 if( EDA_ITEM::IsType( aScanTypes ) )
183 return true;
184
185 for( KICAD_T scanType : aScanTypes )
186 {
187 if( scanType == SCH_ITEM_LOCATE_WIRE_T && m_layer == LAYER_WIRE )
188 return true;
189
190 if ( scanType == SCH_ITEM_LOCATE_BUS_T && m_layer == LAYER_BUS )
191 return true;
192
193 if ( scanType == SCH_ITEM_LOCATE_GRAPHIC_LINE_T
194 && Type() == SCH_LINE_T && m_layer == LAYER_NOTES )
195 {
196 return true;
197 }
198 }
199
200 return false;
201 }
202
208 virtual void SwapData( SCH_ITEM* aItem );
209
213 void SwapFlags( SCH_ITEM* aItem );
214
222 SCH_ITEM* Duplicate( bool doClone = false ) const;
223
224 virtual void SetExcludedFromSim( bool aExclude ) { }
225 virtual bool GetExcludedFromSim() const { return false; }
226
233 virtual bool IsMovableFromAnchorPoint() const { return true; }
234
236 void SetStoredPos( const VECTOR2I& aPos ) { m_storedPos = aPos; }
237
250 SCHEMATIC* Schematic() const;
251
255 virtual bool IsLocked() const { return false; }
256
260 virtual void SetLocked( bool aLocked ) {}
261
265 virtual bool IsHypertext() const { return false; }
266
267 virtual void DoHypertextAction( EDA_DRAW_FRAME* aFrame ) const { }
268
272 SCH_LAYER_ID GetLayer() const { return m_layer; }
273
279 void SetLayer( SCH_LAYER_ID aLayer ) { m_layer = aLayer; }
280
284 void ViewGetLayers( int aLayers[], int& aCount ) const override;
285
289 virtual int GetPenWidth() const { return 0; }
290
291 const wxString& GetDefaultFont() const;
292
293 const KIFONT::METRICS& GetFontMetrics() const;
294
295 bool RenderAsBitmap( double aWorldScale ) const override;
296
303 virtual double Similarity( const SCH_ITEM& aItem ) const = 0;
304 virtual bool operator==( const SCH_ITEM& aOtherItem ) const = 0;
305
314 virtual void Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset ) = 0;
315
323 virtual void PrintBackground( const RENDER_SETTINGS* aSettings, const VECTOR2I& aOffset ) {};
324
328 virtual void Move( const VECTOR2I& aMoveVector ) = 0;
329
333 virtual void MirrorHorizontally( int aCenter ) = 0;
334
338 virtual void MirrorVertically( int aCenter ) = 0;
339
343 virtual void Rotate( const VECTOR2I& aCenter ) = 0;
344
355 virtual void GetEndPoints( std::vector< DANGLING_END_ITEM >& aItemList ) {}
356
375 virtual bool UpdateDanglingState( std::vector<DANGLING_END_ITEM>& aItemListByType,
376 std::vector<DANGLING_END_ITEM>& aItemListByPos,
377 const SCH_SHEET_PATH* aPath = nullptr )
378 {
379 return false;
380 }
381
382 virtual bool IsDangling() const { return false; }
383
384 virtual bool CanConnect( const SCH_ITEM* aItem ) const { return m_layer == aItem->GetLayer(); }
385
389 virtual bool IsConnectable() const { return false; }
390
395 virtual bool IsPointClickableAnchor( const VECTOR2I& aPos ) const { return false; }
396
404 virtual std::vector<VECTOR2I> GetConnectionPoints() const { return {}; }
405
412 void ClearConnections() { m_connections.clear(); }
413
420 bool IsConnected( const VECTOR2I& aPoint ) const;
421
427 SCH_CONNECTION* Connection( const SCH_SHEET_PATH* aSheet = nullptr ) const;
428
433
437 void AddConnectionTo( const SCH_SHEET_PATH& aPath, SCH_ITEM* aItem );
438
445
447
451 virtual bool ConnectionPropagatesTo( const EDA_ITEM* aItem ) const { return true; }
452
454
455 void SetConnectivityDirty( bool aDirty = true ) { m_connectivity_dirty = aDirty; }
456
472 virtual bool HasConnectivityChanges( const SCH_ITEM* aItem,
473 const SCH_SHEET_PATH* aInstance = nullptr ) const
474 {
475 return false;
476 }
477
479 void SetConnectionGraph( CONNECTION_GRAPH* aGraph );
480
481 virtual bool HasCachedDriverName() const { return false; }
482 virtual const wxString& GetCachedDriverName() const;
483
484 virtual void SetLastResolvedState( const SCH_ITEM* aItem ) { }
485
486 std::shared_ptr<NETCLASS> GetEffectiveNetClass( const SCH_SHEET_PATH* aSheet = nullptr ) const;
487
492
495
504 {
505 if( GetFieldsAutoplaced() )
507 }
508
509 virtual void AutoplaceFields( SCH_SCREEN* aScreen, bool aManual ) { }
510
511 virtual void RunOnChildren( const std::function<void( SCH_ITEM* )>& aFunction ) { }
512
513 virtual void ClearCaches();
514
522 virtual bool HasLineStroke() const { return false; }
523
524 virtual STROKE_PARAMS GetStroke() const { wxCHECK( false, STROKE_PARAMS() ); }
525
526 virtual void SetStroke( const STROKE_PARAMS& aStroke ) { wxCHECK( false, /* void */ ); }
527
535 virtual void Plot( PLOTTER* aPlotter, bool aBackground,
536 const SCH_PLOT_SETTINGS& aPlotSettings ) const;
537
538 virtual bool operator <( const SCH_ITEM& aItem ) const;
539
540private:
541 friend class CONNECTION_GRAPH;
542
556 virtual bool doIsConnected( const VECTOR2I& aPosition ) const { return false; }
557
558protected:
560 EDA_ITEMS m_connections; // List of items connected to this item.
561 FIELDS_AUTOPLACED m_fieldsAutoplaced; // indicates status of field autoplacement
562 VECTOR2I m_storedPos; // a temporary variable used in some move commands
563 // to store a initial pos of the item or mouse cursor
564
566 std::map<SCH_SHEET_PATH, SCH_ITEM_SET, SHEET_PATH_CMP> m_connected_items;
567
569 std::unordered_map<SCH_SHEET_PATH, SCH_CONNECTION*> m_connection_map;
570
572};
573
574#ifndef SWIG
576#endif
577
578#endif /* SCH_ITEM_H */
Calculate the connectivity of a schematic and generates netlists.
static std::vector< DANGLING_END_ITEM >::iterator get_lower_type(std::vector< DANGLING_END_ITEM > &aItemListByType, const DANGLING_END_T &aType)
Definition: sch_item.cpp:423
static std::vector< DANGLING_END_ITEM >::iterator get_lower_pos(std::vector< DANGLING_END_ITEM > &aItemListByPos, const VECTOR2I &aPos)
Definition: sch_item.cpp:412
static void sort_dangling_end_items(std::vector< DANGLING_END_ITEM > &aItemListByType, std::vector< DANGLING_END_ITEM > &aItemListByPos)
Both contain the same information.
Definition: sch_item.cpp:433
Helper class used to store the state of schematic items that can be connected to other schematic item...
Definition: sch_item.h:86
const EDA_ITEM * m_parent
The type of connection of m_item.
Definition: sch_item.h:136
bool operator==(const DANGLING_END_ITEM &aB) const
Definition: sch_item.h:105
DANGLING_END_T m_type
The position of the connection point.
Definition: sch_item.h:135
bool operator!=(const DANGLING_END_ITEM &aB) const
Definition: sch_item.h:113
DANGLING_END_ITEM(DANGLING_END_T aType, EDA_ITEM *aItem, const VECTOR2I &aPosition)
Definition: sch_item.h:88
DANGLING_END_T GetType() const
Definition: sch_item.h:130
bool operator<(const DANGLING_END_ITEM &rhs) const
Definition: sch_item.h:121
DANGLING_END_ITEM(DANGLING_END_T aType, EDA_ITEM *aItem, const VECTOR2I &aPosition, const EDA_ITEM *aParent)
Definition: sch_item.h:96
VECTOR2I m_pos
A pointer to the connectable object.
Definition: sch_item.h:134
const EDA_ITEM * GetParent() const
Definition: sch_item.h:129
EDA_ITEM * GetItem() const
Definition: sch_item.h:128
EDA_ITEM * m_item
Definition: sch_item.h:133
VECTOR2I GetPosition() const
Definition: sch_item.h:127
The base class for create windows for drawing purpose.
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:85
KICAD_T Type() const
Returns the type of object.
Definition: eda_item.h:97
virtual bool IsType(const std::vector< KICAD_T > &aScanTypes) const
Check whether the item is one of the listed types.
Definition: eda_item.h:172
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
An abstract class from which implementation specific LINE_READERs may be derived to read single lines...
Definition: richio.h:93
Base plotter engine class.
Definition: plotter.h:104
Holds all the data relating to one schematic.
Definition: schematic.h:75
Each graphical item can have a SCH_CONNECTION describing its logical connection (to a bus or net).
Schematic editor (Eeschema) main window.
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:165
virtual bool GetExcludedFromSim() const
Definition: sch_item.h:225
void SetStoredPos(const VECTOR2I &aPos)
Definition: sch_item.h:236
virtual void Print(const RENDER_SETTINGS *aSettings, const VECTOR2I &aOffset)=0
Print a schematic item.
VECTOR2I m_storedPos
Definition: sch_item.h:562
virtual bool CanConnect(const SCH_ITEM *aItem) const
Definition: sch_item.h:384
virtual bool IsConnectable() const
Definition: sch_item.h:389
virtual bool IsLocked() const
Definition: sch_item.h:255
virtual int GetPenWidth() const
Definition: sch_item.h:289
SCH_ITEM & operator=(const SCH_ITEM &aPin)
Definition: sch_item.cpp:71
EDA_ITEMS m_connections
Definition: sch_item.h:560
virtual bool doIsConnected(const VECTOR2I &aPosition) const
Provide the object specific test to see if it is connected to aPosition.
Definition: sch_item.h:556
virtual void MirrorVertically(int aCenter)=0
Mirror item vertically about aCenter.
virtual void GetEndPoints(std::vector< DANGLING_END_ITEM > &aItemList)
Add the schematic item end points to aItemList if the item has end points.
Definition: sch_item.h:355
const wxString & GetDefaultFont() const
Definition: sch_item.cpp:323
virtual bool UpdateDanglingState(std::vector< DANGLING_END_ITEM > &aItemListByType, std::vector< DANGLING_END_ITEM > &aItemListByPos, const SCH_SHEET_PATH *aPath=nullptr)
Test the schematic item to aItemList to check if it's dangling state has changed.
Definition: sch_item.h:375
virtual ~SCH_ITEM()
Definition: sch_item.cpp:81
virtual wxString GetClass() const override
Return the class name.
Definition: sch_item.h:175
virtual const wxString & GetCachedDriverName() const
Definition: sch_item.cpp:254
SCHEMATIC * Schematic() const
Searches the item hierarchy to find a SCHEMATIC.
Definition: sch_item.cpp:113
virtual void SetLastResolvedState(const SCH_ITEM *aItem)
Definition: sch_item.h:484
virtual bool IsDangling() const
Definition: sch_item.h:382
virtual bool IsPointClickableAnchor(const VECTOR2I &aPos) const
Definition: sch_item.h:395
SCH_CONNECTION * InitializeConnection(const SCH_SHEET_PATH &aPath, CONNECTION_GRAPH *aGraph)
Create a new connection object associated with this object.
Definition: sch_item.cpp:215
void ClearConnections()
Clears all of the connection items from the list.
Definition: sch_item.h:412
void AddConnectionTo(const SCH_SHEET_PATH &aPath, SCH_ITEM *aItem)
Add a connection link between this item and another.
Definition: sch_item.cpp:203
SCH_ITEM_SET & ConnectedItems(const SCH_SHEET_PATH &aPath)
Retrieve the set of items connected to this item on the given sheet.
Definition: sch_item.cpp:197
std::map< SCH_SHEET_PATH, SCH_ITEM_SET, SHEET_PATH_CMP > m_connected_items
Store pointers to other items that are connected to this one, per sheet.
Definition: sch_item.h:566
virtual void SetLocked(bool aLocked)
Set the 'lock' status to aLocked for of this item.
Definition: sch_item.h:260
virtual void MirrorHorizontally(int aCenter)=0
Mirror item horizontally about aCenter.
std::shared_ptr< NETCLASS > GetEffectiveNetClass(const SCH_SHEET_PATH *aSheet=nullptr) const
Definition: sch_item.cpp:176
virtual void PrintBackground(const RENDER_SETTINGS *aSettings, const VECTOR2I &aOffset)
Print the (optional) backaground elements if they exist.
Definition: sch_item.h:323
bool m_connectivity_dirty
Definition: sch_item.h:571
void ClearFieldsAutoplaced()
Definition: sch_item.h:494
virtual void ClearCaches()
Definition: sch_item.cpp:288
void SetLayer(SCH_LAYER_ID aLayer)
Set the layer this item is on.
Definition: sch_item.h:279
SCH_LAYER_ID GetLayer() const
Return the layer this item is on.
Definition: sch_item.h:272
virtual double Similarity(const SCH_ITEM &aItem) const =0
Return a measure of how likely the other object is to represent the same object.
FIELDS_AUTOPLACED GetFieldsAutoplaced() const
Return whether the fields have been automatically placed.
Definition: sch_item.h:491
virtual void SetStroke(const STROKE_PARAMS &aStroke)
Definition: sch_item.h:526
virtual void RunOnChildren(const std::function< void(SCH_ITEM *)> &aFunction)
Definition: sch_item.h:511
virtual void SwapData(SCH_ITEM *aItem)
Swap the internal data structures aItem with the schematic item.
Definition: sch_item.cpp:261
void SetConnectivityDirty(bool aDirty=true)
Definition: sch_item.h:455
virtual void Move(const VECTOR2I &aMoveVector)=0
Move the item by aMoveVector to a new position.
void SetFieldsAutoplaced()
Definition: sch_item.h:493
FIELDS_AUTOPLACED m_fieldsAutoplaced
Definition: sch_item.h:561
bool RenderAsBitmap(double aWorldScale) const override
Definition: sch_item.cpp:340
virtual void Plot(PLOTTER *aPlotter, bool aBackground, const SCH_PLOT_SETTINGS &aPlotSettings) const
Plot the schematic item to aPlotter.
Definition: sch_item.cpp:352
bool IsConnectivityDirty() const
Definition: sch_item.h:453
virtual void SetExcludedFromSim(bool aExclude)
Definition: sch_item.h:224
void SetConnectionGraph(CONNECTION_GRAPH *aGraph)
Updates the connection graph for all connections in this item.
Definition: sch_item.cpp:164
virtual void AutoplaceFields(SCH_SCREEN *aScreen, bool aManual)
Definition: sch_item.h:509
void SwapFlags(SCH_ITEM *aItem)
Swap the non-temp and non-edit flags.
Definition: sch_item.cpp:267
bool IsConnected(const VECTOR2I &aPoint) const
Test the item to see if it is connected to aPoint.
Definition: sch_item.cpp:138
void ViewGetLayers(int aLayers[], int &aCount) const override
Return the layers the item is drawn on (which may be more than its "home" layer)
Definition: sch_item.cpp:129
std::unordered_map< SCH_SHEET_PATH, SCH_CONNECTION * > m_connection_map
Store connectivity information, per sheet.
Definition: sch_item.h:569
virtual bool HasCachedDriverName() const
Definition: sch_item.h:481
virtual bool operator<(const SCH_ITEM &aItem) const
Definition: sch_item.cpp:308
virtual bool operator==(const SCH_ITEM &aOtherItem) const =0
virtual bool IsHypertext() const
Allow items to support hypertext actions when hovered/clicked.
Definition: sch_item.h:265
SCH_CONNECTION * GetOrInitConnection(const SCH_SHEET_PATH &aPath, CONNECTION_GRAPH *aGraph)
Definition: sch_item.cpp:239
virtual bool IsMovableFromAnchorPoint() const
Definition: sch_item.h:233
virtual bool HasConnectivityChanges(const SCH_ITEM *aItem, const SCH_SHEET_PATH *aInstance=nullptr) const
Check if aItem has connectivity changes against this object.
Definition: sch_item.h:472
SCH_CONNECTION * Connection(const SCH_SHEET_PATH *aSheet=nullptr) const
Retrieve the connection associated with this object in the given sheet.
Definition: sch_item.cpp:147
virtual void DoHypertextAction(EDA_DRAW_FRAME *aFrame) const
Definition: sch_item.h:267
VECTOR2I & GetStoredPos()
Definition: sch_item.h:235
const KIFONT::METRICS & GetFontMetrics() const
Definition: sch_item.cpp:331
virtual void Rotate(const VECTOR2I &aCenter)=0
Rotate the item around aCenter 90 degrees in the clockwise direction.
virtual STROKE_PARAMS GetStroke() const
Definition: sch_item.h:524
void AutoAutoplaceFields(SCH_SCREEN *aScreen)
Autoplace fields only if correct to do so automatically.
Definition: sch_item.h:503
SCH_LAYER_ID m_layer
Definition: sch_item.h:559
virtual bool HasLineStroke() const
Check if this schematic item has line stoke properties.
Definition: sch_item.h:522
virtual bool ConnectionPropagatesTo(const EDA_ITEM *aItem) const
Return true if this item should propagate connection info to aItem.
Definition: sch_item.h:451
virtual std::vector< VECTOR2I > GetConnectionPoints() const
Add all the connection points for this item to aPoints.
Definition: sch_item.h:404
SCH_ITEM * Duplicate(bool doClone=false) const
Routine to create a new copy of given item.
Definition: sch_item.cpp:94
bool IsType(const std::vector< KICAD_T > &aScanTypes) const override
Check whether the item is one of the listed types.
Definition: sch_item.h:180
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
Simple container to manage line stroke parameters.
Definition: stroke_params.h:81
std::vector< EDA_ITEM * > EDA_ITEMS
Define list of drawing items for screens.
Definition: eda_item.h:529
SCH_LAYER_ID
Eeschema drawing layers.
Definition: layer_ids.h:352
@ LAYER_WIRE
Definition: layer_ids.h:355
@ LAYER_NOTES
Definition: layer_ids.h:369
@ LAYER_BUS
Definition: layer_ids.h:356
#define DECLARE_ENUM_TO_WXANY(type)
Definition: property.h:719
DANGLING_END_T
Definition: sch_item.h:67
@ NO_CONNECT_END
Definition: sch_item.h:77
@ SHEET_LABEL_END
Definition: sch_item.h:76
@ LABEL_END
Definition: sch_item.h:73
@ JUNCTION_END
Definition: sch_item.h:71
@ BUS_END
Definition: sch_item.h:70
@ PIN_END
Definition: sch_item.h:72
@ BUS_ENTRY_END
Definition: sch_item.h:74
@ WIRE_END
Definition: sch_item.h:69
@ WIRE_ENTRY_END
Definition: sch_item.h:75
@ DANGLING_END_UNKNOWN
Definition: sch_item.h:68
std::vector< SCH_ITEM * > SCH_ITEM_SET
Definition: sch_item.h:154
FIELDS_AUTOPLACED
Definition: sch_item.h:59
@ FIELDS_AUTOPLACED_NO
Definition: sch_item.h:60
@ FIELDS_AUTOPLACED_AUTO
Definition: sch_item.h:61
@ FIELDS_AUTOPLACED_MANUAL
Definition: sch_item.h:62
Definition of the SCH_SHEET_PATH and SCH_SHEET_LIST classes for Eeschema.
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
Definition: typeinfo.h:78
@ SCH_LINE_T
Definition: typeinfo.h:148
@ SCH_ITEM_LOCATE_WIRE_T
Definition: typeinfo.h:174
@ SCH_ITEM_LOCATE_BUS_T
Definition: typeinfo.h:175
@ SCH_ITEM_LOCATE_GRAPHIC_LINE_T
Definition: typeinfo.h:176