KiCad PCB EDA Suite
class_track.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, jaen-pierre.charras@gipsa-lab.inpg.com
5  * Copyright (C) 1992-2017 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 
30 #ifndef CLASS_TRACK_H
31 #define CLASS_TRACK_H
32 
33 
34 #include <pcbnew.h>
35 #include <class_board_item.h>
37 #include <pcb_display_options.h>
38 
39 //#include <PolyLine.h>
40 #include <trigo.h>
41 
42 
43 class TRACK;
44 class VIA;
45 class D_PAD;
46 class MSG_PANEL_ITEM;
47 class SHAPE_POLY_SET;
48 
49 // Via types
50 // Note that this enum must be synchronized to GAL_LAYER_ID
52 {
53  VIA_THROUGH = 3, /* Always a through hole via */
54  VIA_BLIND_BURIED = 2, /* this via can be on internal layers */
55  VIA_MICROVIA = 1, /* this via which connect from an external layer
56  * to the near neighbor internal layer */
57  VIA_NOT_DEFINED = 0 /* not yet used */
58 };
59 
60 #define UNDEFINED_DRILL_DIAMETER -1 //< Undefined via drill diameter.
61 
62 #define MIN_VIA_DRAW_SIZE 4
63 
64 
80 TRACK* GetTrack( TRACK* aStartTrace, const TRACK* aEndTrace,
81  const wxPoint& aPosition, LSET aLayerMask );
82 
84 {
85 public:
86  static inline bool ClassOf( const EDA_ITEM* aItem )
87  {
88  return aItem && PCB_TRACE_T == aItem->Type();
89  }
90 
91  BOARD_CONNECTED_ITEM* start; // pointers to a connected item (pad or track)
93 
94  double m_Param; // Auxiliary variable ( used in some computations )
95 
96  TRACK( BOARD_ITEM* aParent, KICAD_T idtype = PCB_TRACE_T );
97 
98  // Do not create a copy constructor. The one generated by the compiler is adequate.
99 
100  TRACK* Next() const { return static_cast<TRACK*>( Pnext ); }
101  TRACK* Back() const { return static_cast<TRACK*>( Pback ); }
102 
103  virtual void Move( const wxPoint& aMoveVector ) override
104  {
105  m_Start += aMoveVector;
106  m_End += aMoveVector;
107  }
108 
109  virtual void Rotate( const wxPoint& aRotCentre, double aAngle ) override;
110 
111  virtual void Flip( const wxPoint& aCentre ) override;
112 
113  void SetPosition( const wxPoint& aPos ) override { m_Start = aPos; }
114  const wxPoint& GetPosition() const override { return m_Start; }
115 
116  void SetWidth( int aWidth ) { m_Width = aWidth; }
117  int GetWidth() const { return m_Width; }
118 
119  void SetEnd( const wxPoint& aEnd ) { m_End = aEnd; }
120  const wxPoint& GetEnd() const { return m_End; }
121 
122  void SetStart( const wxPoint& aStart ) { m_Start = aStart; }
123  const wxPoint& GetStart() const { return m_Start; }
124 
125 
127  const wxPoint& GetEndPoint( ENDPOINT_T aEndPoint ) const
128  {
129  if( aEndPoint == ENDPOINT_START )
130  return m_Start;
131  else
132  return m_End;
133  }
134 
135  // Virtual function
136  const EDA_RECT GetBoundingBox() const override;
137 
138  bool IsLocked() const override
139  {
140  return GetState( TRACK_LOCKED );
141  }
142 
143  void SetLocked( bool aLocked ) override
144  {
145  return SetState( TRACK_LOCKED, aLocked );
146  }
147 
156  TRACK* GetBestInsertPoint( BOARD* aPcb );
157 
158  /* Search (within the track linked list) the first segment matching the netcode
159  * ( the linked list is always sorted by net codes )
160  */
161  TRACK* GetStartNetCode( int NetCode );
162 
163  /* Search (within the track linked list) the last segment matching the netcode
164  * ( the linked list is always sorted by net codes )
165  */
166  TRACK* GetEndNetCode( int NetCode );
167 
173  double GetLength() const
174  {
175  return GetLineLength( m_Start, m_End );
176  }
177 
178  /* Display on screen: */
179  void Draw( EDA_DRAW_PANEL* panel, wxDC* DC,
180  GR_DRAWMODE aDrawMode, const wxPoint& aOffset = ZeroOffset ) override;
181 
195  int aClearanceValue,
196  int aCircleToSegmentsCount,
197  double aCorrectionFactor ) const override;
205  STATUS_FLAGS IsPointOnEnds( const wxPoint& point, int min_dist = 0 );
206 
211  bool IsNull();
212 
213  void GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) override;
214 
219  wxString ShowWidth() const;
220 
221  SEARCH_RESULT Visit( INSPECTOR inspector, void* testData, const KICAD_T scanTypes[] ) override;
222 
223  virtual bool HitTest( const wxPoint& aPosition ) const override;
224 
225  virtual bool HitTest( const EDA_RECT& aRect, bool aContained = true, int aAccuracy = 0 ) const override;
226 
235  VIA* GetVia( const wxPoint& aPosition, PCB_LAYER_ID aLayer = UNDEFINED_LAYER );
236 
247  VIA* GetVia( TRACK* aEndTrace, const wxPoint& aPosition, LSET aLayerMask );
248 
264  TRACK* GetTrack( TRACK* aStartTrace, TRACK* aEndTrace, ENDPOINT_T aEndPoint,
265  bool aSameNetOnly, bool aSequential );
266 
277  int GetEndSegments( int NbSegm, TRACK** StartTrack, TRACK** EndTrack );
278 
279  wxString GetClass() const override
280  {
281  return wxT( "TRACK" );
282  }
283 
293  virtual int GetClearance( BOARD_CONNECTED_ITEM* aItem = NULL ) const override;
294 
295  virtual wxString GetSelectMenuText() const override;
296 
297  BITMAP_DEF GetMenuImage() const override;
298 
299  virtual EDA_ITEM* Clone() const override;
300 
301  virtual void ViewGetLayers( int aLayers[], int& aCount ) const override;
302 
303  virtual unsigned int ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override;
304 
305  virtual void SwapData( BOARD_ITEM* aImage ) override;
306 
307 #if defined (DEBUG)
308  virtual void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
309 
315  static wxString ShowState( int stateBits );
316 
317 #endif
318 
319 protected:
325  virtual void GetMsgPanelInfoBase( std::vector< MSG_PANEL_ITEM >& aList );
326 
327 
330  void GetMsgPanelInfoBase_Common( std::vector< MSG_PANEL_ITEM >& aList );
331 
334  void DrawShortNetname( EDA_DRAW_PANEL* panel, wxDC* aDC, GR_DRAWMODE aDrawMode,
335  COLOR4D aBgColor );
336 
337  int m_Width;
340 
341 private:
342  // make SetNext() and SetBack() private so that they may not be called from anywhere.
343  // list management is done on TRACKs using DLIST<TRACK> only.
344  void SetNext( EDA_ITEM* aNext ) { Pnext = aNext; }
345  void SetBack( EDA_ITEM* aBack ) { Pback = aBack; }
346 };
347 
348 
349 class SEGZONE : public TRACK
350 {
351 public:
352  SEGZONE( BOARD_ITEM* aParent );
353 
354  // Do not create a copy constructor. The one generated by the compiler is adequate.
355 
356  wxString GetClass() const override
357  {
358  return wxT( "ZONE" );
359  }
360 
361 
362  SEGZONE* Next() const { return static_cast<SEGZONE*>( Pnext ); }
363 
364  wxString GetSelectMenuText() const override;
365 
366  void Draw( EDA_DRAW_PANEL* panel, wxDC* DC,
367  GR_DRAWMODE aDrawMode, const wxPoint& aOffset = ZeroOffset ) override;
368 
369  BITMAP_DEF GetMenuImage() const override;
370 
371  EDA_ITEM* Clone() const override;
372 
373 protected:
374  virtual void GetMsgPanelInfoBase( std::vector< MSG_PANEL_ITEM >& aList ) override;
375 };
376 
377 
378 class VIA : public TRACK
379 {
380 public:
381  VIA( BOARD_ITEM* aParent );
382 
383  static inline bool ClassOf( const EDA_ITEM *aItem )
384  {
385  return aItem && PCB_VIA_T == aItem->Type();
386  }
387 
388  // Do not create a copy constructor. The one generated by the compiler is adequate.
389 
390  void Draw( EDA_DRAW_PANEL* panel, wxDC* DC,
391  GR_DRAWMODE aDrawMode, const wxPoint& aOffset = ZeroOffset ) override;
392 
393  bool IsOnLayer( PCB_LAYER_ID aLayer ) const override;
394 
395  virtual LSET GetLayerSet() const override;
396 
404  void SetLayerPair( PCB_LAYER_ID aTopLayer, PCB_LAYER_ID aBottomLayer );
405 
413  void LayerPair( PCB_LAYER_ID* top_layer, PCB_LAYER_ID* bottom_layer ) const;
414 
415  const wxPoint& GetPosition() const override { return m_Start; }
416  void SetPosition( const wxPoint& aPoint ) override { m_Start = aPoint; m_End = aPoint; }
417 
418  virtual bool HitTest( const wxPoint& aPosition ) const override;
419 
420  virtual bool HitTest( const EDA_RECT& aRect, bool aContained = true, int aAccuracy = 0 ) const override;
421 
422  wxString GetClass() const override
423  {
424  return wxT( "VIA" );
425  }
426 
427  wxString GetSelectMenuText() const override;
428 
429  BITMAP_DEF GetMenuImage() const override;
430 
431  EDA_ITEM* Clone() const override;
432 
433  virtual void ViewGetLayers( int aLayers[], int& aCount ) const override;
434 
435  virtual unsigned int ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override;
436 
437  virtual void Flip( const wxPoint& aCentre ) override;
438 
439 #if defined (DEBUG)
440  virtual void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
441 #endif
442 
443  VIATYPE_T GetViaType() const { return m_ViaType; }
444  void SetViaType( VIATYPE_T aViaType ) { m_ViaType = aViaType; }
445 
451  void SetDrill( int aDrill ) { m_Drill = aDrill; }
452 
458  int GetDrill() const { return m_Drill; }
459 
466  int GetDrillValue() const;
467 
473 
478  bool IsDrillDefault() const { return m_Drill <= 0; }
479 
480  virtual void SwapData( BOARD_ITEM* aImage ) override;
481 
482 protected:
483  virtual void GetMsgPanelInfoBase( std::vector< MSG_PANEL_ITEM >& aList ) override;
484 
485 private:
488 
489  VIATYPE_T m_ViaType; // Type of via
490 
491  int m_Drill; // for vias: via drill (- 1 for default value)
492 };
493 
494 
496 inline VIA* GetFirstVia( TRACK* aTrk, const TRACK* aStopPoint = NULL )
497 {
498  while( aTrk && (aTrk != aStopPoint) && (aTrk->Type() != PCB_VIA_T) )
499  aTrk = aTrk->Next();
500 
501  // It could stop because of the stop point, not on a via
502  if( aTrk && (aTrk->Type() == PCB_VIA_T) )
503  return static_cast<VIA*>( aTrk );
504  else
505  return NULL;
506 }
507 
508 
510 inline TRACK* GetFirstTrack( TRACK* aTrk, const TRACK* aStopPoint = NULL )
511 {
512  while( aTrk && ( aTrk != aStopPoint ) && ( aTrk->Type() != PCB_TRACE_T ) )
513  aTrk = aTrk->Next();
514 
515  // It could stop because of the stop point, not on a via
516  if( aTrk && ( aTrk->Type() == PCB_TRACE_T ) )
517  return static_cast<TRACK*>( aTrk );
518  else
519  return NULL;
520 }
521 
522 #endif // CLASS_TRACK_H
bool IsLocked() const override
Function IsLocked.
Definition: class_track.h:138
KICAD_T Type() const
Function Type()
Definition: base_struct.h:225
Class BOARD_CONNECTED_ITEM.
TRACK * GetTrack(TRACK *aStartTrace, TRACK *aEndTrace, ENDPOINT_T aEndPoint, bool aSameNetOnly, bool aSequential)
Function GetTrack returns the trace segment connected to the segment at aEndPoint from aStartTrace to...
EDA_ITEM * Pback
previous in linked list
Definition: base_struct.h:192
bool IsNull()
Function IsNull returns true if segment length is zero.
wxPoint m_Start
Line start point.
Definition: class_track.h:338
double GetLineLength(const wxPoint &aPointA, const wxPoint &aPointB)
Function GetLineLength returns the length of a line segment defined by aPointA and aPointB...
Definition: trigo.h:191
VIATYPE_T m_ViaType
Definition: class_track.h:489
virtual void SwapData(BOARD_ITEM *aImage) override
Swap data between aItem and aImage.
PNG memory record (file in memory).
Definition: bitmap_types.h:38
static bool ClassOf(const EDA_ITEM *aItem)
Definition: class_track.h:86
virtual LSET GetLayerSet() const override
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
void SetViaType(VIATYPE_T aViaType)
Definition: class_track.h:444
wxString GetSelectMenuText() const override
Function GetSelectMenuText returns the text to display to be used in the selection clarification cont...
void SetPosition(const wxPoint &aPoint) override
Definition: class_track.h:416
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class...
void SetEnd(const wxPoint &aEnd)
Definition: class_track.h:119
Classes BOARD_ITEM and BOARD_CONNECTED_ITEM.
virtual void Flip(const wxPoint &aCentre) override
Function Flip Flip this object, i.e.
STATUS_FLAGS IsPointOnEnds(const wxPoint &point, int min_dist=0)
Function IsPointOnEnds returns STARTPOINT if point if near (dist = min_dist) start point...
TRACK * GetTrack(TRACK *aStartTrace, const TRACK *aEndTrace, const wxPoint &aPosition, LSET aLayerMask)
Function GetTrack is a helper function to locate a trace segment having an end point at aPosition on ...
Definition: class_track.cpp:68
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
virtual void ViewGetLayers(int aLayers[], int &aCount) const override
Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on...
wxString GetClass() const override
Function GetClass returns the class name.
Definition: class_track.h:356
virtual EDA_ITEM * Clone() const override
Function Clone creates a duplicate of this item with linked list members set to NULL.
int GetEndSegments(int NbSegm, TRACK **StartTrack, TRACK **EndTrack)
Function GetEndSegments get the segments connected to the end point of the track. ...
void GetMsgPanelInfo(std::vector< MSG_PANEL_ITEM > &aList) override
Function GetMsgPanelInfo populates aList of MSG_PANEL_ITEM objects with it's internal state for displ...
VIATYPE_T
Definition: class_track.h:51
VIA(BOARD_ITEM *aParent)
virtual void Rotate(const wxPoint &aRotCentre, double aAngle) override
Function Rotate Rotate this object.
int GetState(int type) const
Definition: base_struct.h:264
Class BOARD_CONNECTED_ITEM is a base class derived from BOARD_ITEM for items that can be connected an...
TRACK * Back() const
Definition: class_track.h:101
int GetDrill() const
Function GetDrill returns the local drill setting for this VIA.
Definition: class_track.h:458
const wxPoint & GetEnd() const
Definition: class_track.h:120
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:78
static wxPoint ZeroOffset
A value of wxPoint(0,0) which can be passed to the Draw() functions.
class TRACK, a track segment (segment on a copper layer)
Definition: typeinfo.h:95
double m_Param
Definition: class_track.h:94
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:337
void SetWidth(int aWidth)
Definition: class_track.h:116
ENDPOINT_T
Flag used in locate routines (from which endpoint work)
Definition: pcbnew.h:54
SEGZONE * Next() const
Definition: class_track.h:362
virtual void GetMsgPanelInfoBase(std::vector< MSG_PANEL_ITEM > &aList) override
Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the fu...
virtual unsigned int ViewGetLOD(int aLayer, KIGFX::VIEW *aView) const override
Function ViewGetLOD() Returns the level of detail (LOD) of the item.
const wxPoint & GetPosition() const override
Definition: class_track.h:114
const INSPECTOR_FUNC & INSPECTOR
Definition: base_struct.h:118
VIA * GetVia(const wxPoint &aPosition, PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
Function GetVia finds the first VIA object at aPosition on aLayer starting at the trace...
void SetLocked(bool aLocked) override
Function SetLocked modifies 'lock' status for of the item.
Definition: class_track.h:143
static bool ClassOf(const EDA_ITEM *aItem)
Definition: class_track.h:383
PCB_LAYER_ID
A quick note on layer IDs:
virtual bool HitTest(const wxPoint &aPosition) const override
Function HitTest tests if aPosition is contained within or on the bounding area of an item...
BITMAP_DEF GetMenuImage() const override
Function GetMenuImage returns a pointer to an image to be used in menus.
Class LSET is a set of PCB_LAYER_IDs.
VIATYPE_T GetViaType() const
Definition: class_track.h:443
BITMAP_DEF GetMenuImage() const override
Function GetMenuImage returns a pointer to an image to be used in menus.
GR_DRAWMODE
Drawmode. Compositing mode plus a flag or two.
Definition: gr_basic.h:41
Class SHAPE_POLY_SET.
virtual bool HitTest(const wxPoint &aPosition) const override
Function HitTest tests if aPosition is contained within or on the bounding area of an item...
const wxPoint & GetStart() const
Definition: class_track.h:123
virtual void Flip(const wxPoint &aCentre) override
Function Flip Flip this object, i.e.
wxPoint m_End
Line end point.
Definition: class_track.h:339
int m_Drill
Definition: class_track.h:491
void DrawShortNetname(EDA_DRAW_PANEL *panel, wxDC *aDC, GR_DRAWMODE aDrawMode, COLOR4D aBgColor)
Helper for drawing the short netname in tracks.
const wxPoint & GetEndPoint(ENDPOINT_T aEndPoint) const
Return the selected endpoint (start or end)
Definition: class_track.h:127
void TransformShapeWithClearanceToPolygon(SHAPE_POLY_SET &aCornerBuffer, int aClearanceValue, int aCircleToSegmentsCount, double aCorrectionFactor) const override
Function TransformShapeWithClearanceToPolygon Convert the track shape to a closed polygon Used in fil...
unsigned STATUS_FLAGS
Definition: base_struct.h:158
SEARCH_RESULT Visit(INSPECTOR inspector, void *testData, const KICAD_T scanTypes[]) override
Function Visit may be re-implemented for each derived class in order to handle all the types given by...
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:487
virtual unsigned int ViewGetLOD(int aLayer, KIGFX::VIEW *aView) const override
Function ViewGetLOD() Returns the level of detail (LOD) of the item.
TRACK * GetEndNetCode(int NetCode)
#define TRACK_LOCKED
Pcbnew: track locked: protected from global deletion.
Definition: base_struct.h:142
virtual void Move(const wxPoint &aMoveVector) override
Function Move move this object.
Definition: class_track.h:103
void SetLayerPair(PCB_LAYER_ID aTopLayer, PCB_LAYER_ID aBottomLayer)
Function SetLayerPair For a via m_Layer contains the top layer, the other layer is in m_BottomLayer...
#define UNDEFINED_DRILL_DIAMETER
Definition: class_track.h:60
virtual int GetClearance(BOARD_CONNECTED_ITEM *aItem=NULL) const override
Function GetClearance returns the clearance in internal units.
virtual wxString GetSelectMenuText() const override
Function GetSelectMenuText returns the text to display to be used in the selection clarification cont...
virtual void SwapData(BOARD_ITEM *aImage) override
Swap data between aItem and aImage.
SEGZONE(BOARD_ITEM *aParent)
void Draw(EDA_DRAW_PANEL *panel, wxDC *DC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset) override
Function Draw BOARD_ITEMs have their own color information.
void SetDrillDefault()
Function SetDrillDefault sets the drill value for vias to the default value UNDEFINED_DRILL_DIAMETER...
Definition: class_track.h:472
void LayerPair(PCB_LAYER_ID *top_layer, PCB_LAYER_ID *bottom_layer) const
Function LayerPair Return the 2 layers used by the via (the via actually uses all layers between thes...
void Draw(EDA_DRAW_PANEL *panel, wxDC *DC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset) override
Function Draw BOARD_ITEMs have their own color information.
wxString GetSelectMenuText() const override
Function GetSelectMenuText returns the text to display to be used in the selection clarification cont...
void Draw(EDA_DRAW_PANEL *panel, wxDC *DC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset) override
Function Draw BOARD_ITEMs have their own color information.
virtual void ViewGetLayers(int aLayers[], int &aCount) const override
Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on...
wxString ShowWidth() const
Function ShowWidth returns the width of the track in displayable user units.
TRACK * GetBestInsertPoint(BOARD *aPcb)
Function GetBestInsertPoint searches the "best" insertion point within the track linked list...
BITMAP_DEF GetMenuImage() const override
Function GetMenuImage returns a pointer to an image to be used in menus.
wxString GetClass() const override
Function GetClass returns the class name.
Definition: class_track.h:422
TRACK * Next() const
Definition: class_track.h:100
void SetState(int type, int state)
Definition: base_struct.h:269
EDA_ITEM * Clone() const override
Function Clone creates a duplicate of this item with linked list members set to NULL.
TRACK * GetStartNetCode(int NetCode)
void SetBack(EDA_ITEM *aBack)
Definition: class_track.h:345
int GetDrillValue() const
Function GetDrillValue "calculates" the drill value for vias (m-Drill if > 0, or default drill value ...
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
void GetMsgPanelInfoBase_Common(std::vector< MSG_PANEL_ITEM > &aList)
Helper function for the common panel info.
int GetWidth() const
Definition: class_track.h:117
void SetPosition(const wxPoint &aPos) override
Definition: class_track.h:113
Class EDA_RECT handles the component boundary box.
void SetDrill(int aDrill)
Function SetDrill sets the drill value for vias.
Definition: class_track.h:451
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:178
const wxPoint & GetPosition() const override
Definition: class_track.h:415
virtual void GetMsgPanelInfoBase(std::vector< MSG_PANEL_ITEM > &aList)
Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the fu...
double GetLength() const
Function GetLength returns the length of the track using the hypotenuse calculation.
Definition: class_track.h:173
void SetStart(const wxPoint &aStart)
Definition: class_track.h:122
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
TRACK(BOARD_ITEM *aParent, KICAD_T idtype=PCB_TRACE_T)
Definition: class_track.cpp:96
bool IsOnLayer(PCB_LAYER_ID aLayer) const override
Function IsOnLayer tests to see if this object is on the given layer.
Class EDA_MSG_ITEM is used EDA_MSG_PANEL as the item type for displaying messages.
Definition: msgpanel.h:53
Class VIEW.
Definition: view.h:58
void SetNext(EDA_ITEM *aNext)
Definition: class_track.h:344
SEARCH_RESULT
Definition: base_struct.h:82
BOARD_CONNECTED_ITEM * end
Definition: class_track.h:92
virtual void GetMsgPanelInfoBase(std::vector< MSG_PANEL_ITEM > &aList) override
Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the fu...
Definition of PCB_DISPLAY_OPTIONS class.
BOARD_CONNECTED_ITEM * start
Definition: class_track.h:91
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:191
bool IsDrillDefault() const
Function IsDrillDefault.
Definition: class_track.h:478
EDA_ITEM * Clone() const override
Function Clone creates a duplicate of this item with linked list members set to NULL.
TRACK * GetFirstTrack(TRACK *aTrk, const TRACK *aStopPoint=NULL)
Scan a track list for the first TRACK object. Returns NULL if not found (or NULL passed) ...
Definition: class_track.h:510
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
wxString GetClass() const override
Function GetClass returns the class name.
Definition: class_track.h:279
VIA * GetFirstVia(TRACK *aTrk, const TRACK *aStopPoint=NULL)
Scan a track list for the first VIA o NULL if not found (or NULL passed)
Definition: class_track.h:496