KiCad PCB EDA Suite
VIA Class Reference

#include <class_track.h>

Inheritance diagram for VIA:
TRACK BOARD_CONNECTED_ITEM BOARD_ITEM EDA_ITEM KIGFX::VIEW_ITEM

Public Member Functions

 VIA (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. More...
 
bool IsOnLayer (PCB_LAYER_ID aLayer) const override
 Function IsOnLayer tests to see if this object is on the given layer. More...
 
virtual LSET GetLayerSet () const override
 Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segment or VIA physically resides. More...
 
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. More...
 
void SetBottomLayer (PCB_LAYER_ID aLayer)
 
void SetTopLayer (PCB_LAYER_ID aLayer)
 
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 these 2 layers) More...
 
PCB_LAYER_ID TopLayer () const
 
PCB_LAYER_ID BottomLayer () const
 
void SanitizeLayers ()
 Function SanitizeLayers Check so that the layers are correct dependin on the type of via, and so that the top actually is on top. More...
 
const wxPoint GetPosition () const override
 
void SetPosition (const wxPoint &aPoint) override
 
bool HitTest (const wxPoint &aPosition, int aAccuracy=0) const override
 Function HitTest tests if aPosition is contained within or on the bounding box of an item. More...
 
bool HitTest (const EDA_RECT &aRect, bool aContained, int aAccuracy=0) const override
 Function HitTest tests if aRect intersects or is contained within the bounding box of an item. More...
 
wxString GetClass () const override
 Function GetClass returns the class name. More...
 
wxString GetSelectMenuText (EDA_UNITS_T aUnits) const override
 Function GetSelectMenuText returns the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position. More...
 
BITMAP_DEF GetMenuImage () const override
 Function GetMenuImage returns a pointer to an image to be used in menus. More...
 
EDA_ITEMClone () const override
 Function Clone creates a duplicate of this item with linked list members set to NULL. More...
 
virtual void ViewGetLayers (int aLayers[], int &aCount) const override
 Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on. More...
 
virtual unsigned int ViewGetLOD (int aLayer, KIGFX::VIEW *aView) const override
 Function ViewGetLOD() Returns the level of detail (LOD) of the item. More...
 
virtual void Flip (const wxPoint &aCentre) override
 Function Flip Flip this object, i.e. More...
 
VIATYPE_T GetViaType () const
 
void SetViaType (VIATYPE_T aViaType)
 
void SetDrill (int aDrill)
 Function SetDrill sets the drill value for vias. More...
 
int GetDrill () const
 Function GetDrill returns the local drill setting for this VIA. More...
 
int GetDrillValue () const
 Function GetDrillValue "calculates" the drill value for vias (m-Drill if > 0, or default drill value for the board. More...
 
void SetDrillDefault ()
 Function SetDrillDefault sets the drill value for vias to the default value UNDEFINED_DRILL_DIAMETER. More...
 
bool IsDrillDefault () const
 Function IsDrillDefault. More...
 
virtual void SwapData (BOARD_ITEM *aImage) override
 Swap data between aItem and aImage. More...
 
TRACKNext () const
 
TRACKBack () const
 
virtual void Move (const wxPoint &aMoveVector) override
 Function Move move this object. More...
 
void Move (const VECTOR2I &aMoveVector)
 
virtual void Rotate (const wxPoint &aRotCentre, double aAngle) override
 Function Rotate Rotate this object. More...
 
void Rotate (const VECTOR2I &aRotCentre, double aAngle)
 
void Flip (const VECTOR2I &aCentre)
 
void SetWidth (int aWidth)
 
int GetWidth () const
 
void SetEnd (const wxPoint &aEnd)
 
const wxPoint & GetEnd () const
 
void SetStart (const wxPoint &aStart)
 
const wxPoint & GetStart () const
 
const wxPoint & GetEndPoint (ENDPOINT_T aEndPoint) const
 Return the selected endpoint (start or end) More...
 
const EDA_RECT GetBoundingBox () const override
 Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes. More...
 
bool IsLocked () const override
 Function IsLocked. More...
 
void SetLocked (bool aLocked) override
 Function SetLocked modifies 'lock' status for of the item. More...
 
TRACKGetBestInsertPoint (BOARD *aPcb)
 Function GetBestInsertPoint searches the "best" insertion point within the track linked list. More...
 
TRACKGetStartNetCode (int NetCode)
 
TRACKGetEndNetCode (int NetCode)
 
double GetLength () const
 Function GetLength returns the length of the track using the hypotenuse calculation. More...
 
void TransformShapeWithClearanceToPolygon (SHAPE_POLY_SET &aCornerBuffer, int aClearanceValue, int aCircleToSegmentsCount, double aCorrectionFactor, bool ignoreLineWidth=false) const override
 Function TransformShapeWithClearanceToPolygon Convert the track shape to a closed polygon Used in filling zones calculations Circles (vias) and arcs (ends of tracks) are approximated by segments. More...
 
STATUS_FLAGS IsPointOnEnds (const wxPoint &point, int min_dist=0)
 Function IsPointOnEnds returns STARTPOINT if point if near (dist = min_dist) start point, ENDPOINT if point if near (dist = min_dist) end point,STARTPOINT|ENDPOINT if point if near (dist = min_dist) both ends, or 0 if none of the above. More...
 
bool IsNull ()
 Function IsNull returns true if segment length is zero. More...
 
void GetMsgPanelInfo (EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM > &aList) override
 Function GetMsgPanelInfo populates aList of MSG_PANEL_ITEM objects with it's internal state for display purposes. More...
 
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 its member data. More...
 
VIAGetVia (const wxPoint &aPosition, PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
 Function GetVia finds the first VIA object at aPosition on aLayer starting at the trace. More...
 
VIAGetVia (TRACK *aEndTrace, const wxPoint &aPosition, LSET aLayerMask)
 Function GetVia finds the first VIA object at aPosition on aLayer starting at the trace and ending at aEndTrace. More...
 
TRACKGetTrack (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 aEndTrace. More...
 
int GetEndSegments (int NbSegm, TRACK **StartTrack, TRACK **EndTrack)
 Function GetEndSegments get the segments connected to the end point of the track. More...
 
virtual int GetClearance (BOARD_CONNECTED_ITEM *aItem=NULL) const override
 Function GetClearance returns the clearance in internal units. More...
 
const BOX2I ViewBBox () const override
 Function ViewBBox() returns the bounding box of the item covering all its layers. More...
 
bool IsConnected () const override
 

More...
 
NETINFO_ITEMGetNet () const
 Function GetNet Returns NET_INFO object for a given item. More...
 
void SetNet (NETINFO_ITEM *aNetInfo)
 Function SetNet Sets a NET_INFO object for the item. More...
 
int GetNetCode () const
 Function GetNetCode. More...
 
bool SetNetCode (int aNetCode, bool aNoAssert=false)
 Function SetNetCode sets net using a net code. More...
 
const wxString & GetNetname () const
 Function GetNetname. More...
 
wxString GetNetnameMsg () const
 Function GetNetnameMsg. More...
 
const wxString & GetShortNetname () const
 Function GetShortNetname. More...
 
std::shared_ptr< NETCLASSGetNetClass () const
 Function GetNetClass returns the NETCLASS for this item. More...
 
wxString GetNetClassName () const
 Function GetNetClassName returns a pointer to the netclass of the zone. More...
 
void SetLocalRatsnestVisible (bool aVisible)
 
bool GetLocalRatsnestVisible () const
 
virtual const wxPoint GetCenter () const
 Function GetCenter() More...
 
BOARD_ITEM_CONTAINERGetParent () const
 
virtual PCB_LAYER_ID GetLayer () const
 Function GetLayer returns the primary layer this item is on. More...
 
virtual void SetLayer (PCB_LAYER_ID aLayer)
 Function SetLayer sets the layer this item is on. More...
 
bool IsTrack () const
 Function IsTrack tests to see if this object is a track or via (or microvia). More...
 
virtual void UnLink ()
 Function UnLink detaches this object from its owner. More...
 
void DeleteStructure ()
 Function DeleteStructure deletes this object after UnLink()ing it from its owner if it has one. More...
 
virtual BOARDGetBoard () const
 Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none. More...
 
wxString GetLayerName () const
 Function GetLayerName returns the name of the PCB layer on which the item resides. More...
 
KICAD_T Type () const
 Function Type() More...
 
void SetTimeStamp (timestamp_t aNewTimeStamp)
 
timestamp_t GetTimeStamp () const
 
DHEADGetList () const
 
void SetParent (EDA_ITEM *aParent)
 
void SetList (DHEAD *aList)
 
bool IsNew () const
 
bool IsModified () const
 
bool IsMoving () const
 
bool IsDragging () const
 
bool IsWireImage () const
 
bool IsSelected () const
 
bool IsResized () const
 
bool IsHighlighted () const
 
bool IsBrightened () const
 
void SetWireImage ()
 
void SetSelected ()
 
void SetHighlighted ()
 
void SetBrightened ()
 
void ClearSelected ()
 
void ClearHighlighted ()
 
void ClearBrightened ()
 
void SetModified ()
 
int GetState (int type) const
 
void SetState (int type, int state)
 
STATUS_FLAGS GetStatus () const
 
void SetStatus (STATUS_FLAGS aStatus)
 
void SetFlags (STATUS_FLAGS aMask)
 
void ClearFlags (STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
 
STATUS_FLAGS GetFlags () const
 
STATUS_FLAGS GetEditFlags () const
 
void ClearTempFlags ()
 
void ClearEditFlags ()
 
virtual bool IsType (const KICAD_T aScanTypes[])
 Function IsType Checks whether the item is one of the listed types. More...
 
void SetForceVisible (bool aEnable)
 Function SetForceVisible is used to set and cleag force visible flag used to force the item to be drawn even if it's draw attribute is set to not visible. More...
 
virtual bool Matches (wxFindReplaceData &aSearchData, void *aAuxData, wxPoint *aFindLocation)
 Function Matches compares the item against the search criteria in aSearchData. More...
 
bool Replace (wxFindReplaceData &aSearchData, wxString &aText)
 Helper function used in search and replace dialog Function Replace performs a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace. More...
 
virtual bool Replace (wxFindReplaceData &aSearchData, void *aAuxData=NULL)
 Function Replace performs a text replace using the find and replace criteria in aSearchData on items that support text find and replace. More...
 
virtual bool IsReplaceable () const
 Function IsReplaceable. More...
 
bool operator< (const EDA_ITEM &aItem) const
 Test if another item is less than this object. More...
 
virtual void ViewDraw (int aLayer, VIEW *aView) const
 Function ViewDraw() Draws the parts of the object belonging to layer aLayer. More...
 
VIEW_ITEM_DATA * viewPrivData () const
 
void ClearViewPrivData ()
 

Static Public Member Functions

static bool ClassOf (const EDA_ITEM *aItem)
 
static wxString ShowShape (STROKE_T aShape)
 Function ShowShape converts the enum STROKE_T integer value to a wxString. More...
 
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 requested in scanTypes. More...
 
static bool Sort (const EDA_ITEM *aLeft, const EDA_ITEM *aRight)
 Function Sort is a helper function to be used by the C++ STL sort algorithm for sorting a STL container of EDA_ITEM pointers. More...
 

Public Attributes

BOARD_CONNECTED_ITEMstart
 
BOARD_CONNECTED_ITEMend
 
double m_Param
 

Static Public Attributes

static wxPoint ZeroOffset
 A value of wxPoint(0,0) which can be passed to the Draw() functions. More...
 

Protected Member Functions

void GetMsgPanelInfoBase (EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM > &aList) override
 Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the full track length. More...
 
void GetMsgPanelInfoBase_Common (EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM > &aList)
 Helper function for the common panel info. More...
 
void DrawShortNetname (EDA_DRAW_PANEL *panel, wxDC *aDC, GR_DRAWMODE aDrawMode, COLOR4D aBgColor)
 Helper for drawing the short netname in tracks. More...
 
bool Matches (const wxString &aText, wxFindReplaceData &aSearchData)
 Function Matches compares aText against search criteria in aSearchData. More...
 

Static Protected Member Functions

static int getNextNumberInSequence (const std::set< int > &aSeq, bool aFillSequenceGaps)
 

Protected Attributes

int m_Width
 Thickness of track, or via diameter. More...
 
wxPoint m_Start
 Line start point. More...
 
wxPoint m_End
 Line end point. More...
 
NETINFO_ITEMm_netinfo
 Stores all informations about the net that item belongs to. More...
 
PCB_LAYER_ID m_Layer
 
EDA_ITEMPnext
 next in linked list More...
 
EDA_ITEMPback
 previous in linked list More...
 
DHEADm_List
 which DLIST I am on. More...
 
EDA_ITEMm_Parent
 Linked list: Link (parent struct) More...
 
timestamp_t m_TimeStamp
 Time stamp used for logical links. More...
 
bool m_forceVisible
 Set to true to override the visibility setting of the item. More...
 
STATUS_FLAGS m_Flags
 Flag bits for editing and other uses. More...
 

Private Attributes

PCB_LAYER_ID m_BottomLayer
 The bottom layer of the via (the top layer is in m_Layer) More...
 
VIATYPE_T m_ViaType
 
int m_Drill
 

Detailed Description

Definition at line 360 of file class_track.h.

Constructor & Destructor Documentation

◆ VIA()

VIA::VIA ( BOARD_ITEM aParent)

Definition at line 111 of file class_track.cpp.

111  :
112  TRACK( aParent, PCB_VIA_T )
113 {
116  SetDrillDefault();
117 }
void SetViaType(VIATYPE_T aViaType)
Definition: class_track.h:438
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481
void SetDrillDefault()
Function SetDrillDefault sets the drill value for vias to the default value UNDEFINED_DRILL_DIAMETER.
Definition: class_track.h:466
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

References B_Cu, m_BottomLayer, SetDrillDefault(), SetViaType(), and VIA_THROUGH.

Referenced by Clone().

Member Function Documentation

◆ Back()

TRACK* TRACK::Back ( ) const
inlineinherited

Definition at line 111 of file class_track.h.

111 { return static_cast<TRACK*>( Pback ); }
EDA_ITEM * Pback
previous in linked list
Definition: base_struct.h:171

References EDA_ITEM::Pback.

Referenced by PCB_EDIT_FRAME::Add45DegreeSegment(), ComputeBreakPoint(), TRACK::GetBestInsertPoint(), TRACK::GetMsgPanelInfo(), TRACK::GetTrack(), and Magnetize().

◆ BottomLayer()

PCB_LAYER_ID VIA::BottomLayer ( ) const

Definition at line 410 of file class_track.cpp.

411 {
412  return m_BottomLayer;
413 }
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481

References m_BottomLayer.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES().

◆ ClassOf()

static bool VIA::ClassOf ( const EDA_ITEM aItem)
inlinestatic

Definition at line 365 of file class_track.h.

366  {
367  return aItem && PCB_VIA_T == aItem->Type();
368  }
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References PCB_VIA_T, and EDA_ITEM::Type().

◆ ClearBrightened()

void EDA_ITEM::ClearBrightened ( )
inlineinherited

Definition at line 239 of file base_struct.h.

239 { ClearFlags( BRIGHTENED ); }
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:260

References BRIGHTENED, and EDA_ITEM::ClearFlags().

Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), EE_SELECTION_TOOL::unhighlight(), and SELECTION_TOOL::unhighlight().

◆ ClearEditFlags()

void EDA_ITEM::ClearEditFlags ( )
inlineinherited

◆ ClearFlags()

void EDA_ITEM::ClearFlags ( STATUS_FLAGS  aMask = EDA_ITEM_ALL_FLAGS)
inlineinherited

Definition at line 260 of file base_struct.h.

260 { m_Flags &= ~aMask; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References EDA_ITEM::m_Flags.

Referenced by Abort_Edit_Pcb_Text(), Abort_EditEdge(), Abort_Move_ModuleOutline(), Abort_Move_Pad(), Abort_MoveOrCopyModule(), Abort_MoveTrack(), Abort_Zone_Create_Outline(), Abort_Zone_Move_Corner_Or_Outlines(), AbortMoveAndEditTarget(), AbortMoveDimensionText(), AbortMoveTextModule(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PNS_KICAD_IFACE::AddItem(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Zone(), PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Block_Flip(), PCB_EDIT_FRAME::Block_Move(), PCB_EDIT_FRAME::Change_Side_Module(), SCH_COMPONENT::ClearAllHighlightFlags(), SCH_SCREEN::ClearAnnotation(), EDA_ITEM::ClearBrightened(), EDA_ITEM::ClearEditFlags(), EDA_ITEM::ClearHighlighted(), ClearMarkItems(), clearModuleItemFlags(), EDA_ITEM::ClearSelected(), EDA_ITEM::ClearTempFlags(), SCH_EDIT_FRAME::ConvertPart(), LIB_EDIT_TOOL::Copy(), CopyMarkedItems(), MWAVE::CreateMicrowaveInductor(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), PCB_EDIT_FRAME::Delete_LastCreatedCorner(), PCB_EDIT_FRAME::Delete_Segment_Edge(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), KIGFX::SCH_PAINTER::draw(), SCH_ITEM::Duplicate(), PCB_EDIT_FRAME::EditDimension(), PCB_EDIT_FRAME::End_Edge(), FOOTPRINT_EDIT_FRAME::End_Edge_Module(), PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines(), PCB_EDIT_FRAME::End_Route(), PCB_EDIT_FRAME::End_Zone(), PCB_EDIT_FRAME::Exchange_Module(), LIB_EDIT_FRAME::GetComponentFromRedoList(), LIB_EDIT_FRAME::GetComponentFromUndoList(), SCH_MOVE_TOOL::getConnectedDragItems(), PCB_BASE_FRAME::Import_Pad_Settings(), FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD(), EDIT_POINTS_FACTORY::Make(), MarkItemsInBloc(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::Place_DrawItem(), FOOTPRINT_EDIT_FRAME::Place_EdgeMod(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_EDIT_FRAME::PlaceDimensionText(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), PCB_BASE_FRAME::PlaceModule(), PCB_BASE_FRAME::PlacePad(), PCB_EDIT_FRAME::PlaceTarget(), DRAWING_TOOL::PlaceText(), PCB_BASE_FRAME::PlaceTexteModule(), FOOTPRINT_EDIT_FRAME::Process_Special_Functions(), BOARD_COMMIT::Push(), SCH_EDIT_TOOL::RepeatDrawItem(), LIB_PIN_TOOL::RepeatPin(), BOARD_COMMIT::Revert(), LIB_EDIT_FRAME::RollbackPartFromUndo(), PCB_BASE_FRAME::Rotate_Module(), SCH_EDIT_FRAME::SaveCopyForRepeatItem(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_LEGACY_PLUGIN_CACHE::savePin(), SCH_EDIT_FRAME::SelectUnit(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveModule(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), and DIALOG_PAD_PROPERTIES::TransferDataFromWindow().

◆ ClearHighlighted()

void EDA_ITEM::ClearHighlighted ( )
inlineinherited

Definition at line 238 of file base_struct.h.

238 { ClearFlags( HIGHLIGHTED ); }
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:260

References EDA_ITEM::ClearFlags(), and HIGHLIGHTED.

◆ ClearSelected()

void EDA_ITEM::ClearSelected ( )
inlineinherited

◆ ClearTempFlags()

void EDA_ITEM::ClearTempFlags ( )
inlineinherited

Definition at line 271 of file base_struct.h.

272  {
274  }
#define IS_LINKED
Used in calculation to mark linked items (temporary use)
Definition: base_struct.h:111
#define SKIP_STRUCT
flag indicating that the structure should be ignored
Definition: base_struct.h:125
#define CANDIDATE
flag indicating that the structure is connected
Definition: base_struct.h:124
#define ENDPOINT
ends. (Used to support dragging.)
Definition: base_struct.h:120
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:260
#define DO_NOT_DRAW
Used to disable draw function.
Definition: base_struct.h:126
#define STARTPOINT
When a line is selected, these flags indicate which.
Definition: base_struct.h:119

References CANDIDATE, EDA_ITEM::ClearFlags(), DO_NOT_DRAW, ENDPOINT, IS_LINKED, SKIP_STRUCT, and STARTPOINT.

Referenced by SCH_EDIT_FRAME::PutDataInPreviousState().

◆ ClearViewPrivData()

void KIGFX::VIEW_ITEM::ClearViewPrivData ( )
inlineinherited

Definition at line 153 of file view_item.h.

154  {
155  m_viewPrivData = NULL;
156  }
VIEW_ITEM_DATA * m_viewPrivData
Definition: view_item.h:161

References KIGFX::VIEW_ITEM::m_viewPrivData.

Referenced by KIGFX::VIEW::OnDestroy().

◆ Clone()

EDA_ITEM * VIA::Clone ( ) const
overridevirtual

Function Clone creates a duplicate of this item with linked list members set to NULL.

The default version will return NULL in release builds and likely crash the program. In debug builds, a warning message indicating the derived class has not implemented cloning. This really should be a pure virtual function. Due to the fact that there are so many objects derived from EDA_ITEM, the decision was made to return NULL until all the objects derived from EDA_ITEM implement cloning. Once that happens, this function should be made pure.

Returns
A clone of the item.

Reimplemented from TRACK.

Definition at line 120 of file class_track.cpp.

121 {
122  return new VIA( *this );
123 }
VIA(BOARD_ITEM *aParent)

References VIA().

◆ DeleteStructure()

◆ Draw()

void VIA::Draw ( EDA_DRAW_PANEL panel,
wxDC *  DC,
GR_DRAWMODE  aDrawMode,
const wxPoint &  offset = ZeroOffset 
)
overridevirtual

Function Draw BOARD_ITEMs have their own color information.

Reimplemented from TRACK.

Definition at line 696 of file class_track.cpp.

697 {
698  wxCHECK_RET( panel != NULL, wxT( "VIA::Draw panel cannot be NULL." ) );
699 
700  int radius;
701  PCB_LAYER_ID curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer;
702 
703  int fillvia = 0;
704  PCB_BASE_FRAME* frame = (PCB_BASE_FRAME*) panel->GetParent();
705  PCB_SCREEN* screen = frame->GetScreen();
706  auto displ_opts = (PCB_DISPLAY_OPTIONS*)( frame->GetDisplayOptions() );
707 
708  if( displ_opts->m_DisplayViaFill == FILLED )
709  fillvia = 1;
710 
711  GRSetDrawMode( aDC, aDrawMode );
712 
713  BOARD * brd = GetBoard();
715 
716  if( brd->IsElementVisible( LAYER_VIAS + GetViaType() ) == false
717  && !( aDrawMode & GR_HIGHLIGHT ) )
718  return;
719 
720  // Only draw the via if at least one of the layers it crosses is being displayed
721  if( !( brd->GetVisibleLayers() & GetLayerSet() ).any() )
722  return;
723 
724  if( displ_opts->m_ContrastModeDisplay )
725  {
726  if( !IsOnLayer( curr_layer ) )
728  }
729 
730  if( ( aDrawMode & GR_HIGHLIGHT ) && !( aDrawMode & GR_AND ) )
731  color.SetToLegacyHighlightColor();
732 
733  color.a = 0.588;
734 
735 
736  radius = m_Width >> 1;
737  // for small via size on screen (radius < 4 pixels) draw a simplified shape
738 
739  int radius_in_pixels = aDC->LogicalToDeviceXRel( radius );
740 
741  bool fast_draw = false;
742 
743  // Vias are drawn as a filled circle or a double circle. The hole will be drawn later
744  int drill_radius = GetDrillValue() / 2;
745 
746  int inner_radius = radius - aDC->DeviceToLogicalXRel( 2 );
747 
748  if( radius_in_pixels < MIN_VIA_DRAW_SIZE )
749  {
750  fast_draw = true;
751  fillvia = false;
752  }
753 
754  if( fillvia )
755  {
756  GRFilledCircle( panel->GetClipBox(), aDC, m_Start + aOffset, radius, color );
757  }
758  else
759  {
760  GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, radius, 0, color );
761 
762  if ( fast_draw )
763  return;
764 
765  GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, inner_radius, 0, color );
766  }
767 
768  if( fillvia )
769  {
770  bool blackpenstate = false;
771 
772  if( screen->m_IsPrinting )
773  {
774  blackpenstate = GetGRForceBlackPenState();
775  GRForceBlackPen( false );
776  color = WHITE;
777  }
778  else
779  {
780  color = BLACK; // or DARKGRAY;
781  }
782 
783  if( (aDrawMode & GR_XOR) == 0)
784  GRSetDrawMode( aDC, GR_COPY );
785 
786  // Draw hole if the radius is > 1pixel.
787  if( aDC->LogicalToDeviceXRel( drill_radius ) > 1 )
788  GRFilledCircle( panel->GetClipBox(), aDC, m_Start.x + aOffset.x,
789  m_Start.y + aOffset.y, drill_radius, 0, color, color );
790 
791  if( screen->m_IsPrinting )
792  GRForceBlackPen( blackpenstate );
793  }
794  else
795  {
796  if( drill_radius < inner_radius ) // We can show the via hole
797  GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, drill_radius, 0, color );
798  }
799 
800  if( ShowClearance( displ_opts, this ) )
801  {
802  GRCircle( panel->GetClipBox(), aDC, m_Start + aOffset, radius + GetClearance(), 0, color );
803  }
804 
805  // for Micro Vias, draw a partial cross : X on component layer, or + on copper layer
806  // (so we can see 2 superimposed microvias ):
807  if( GetViaType() == VIA_MICROVIA )
808  {
809  int ax, ay, bx, by;
810 
811  if( IsOnLayer( B_Cu ) )
812  {
813  ax = radius; ay = 0;
814  bx = drill_radius; by = 0;
815  }
816  else
817  {
818  ax = ay = (radius * 707) / 1000;
819  bx = by = (drill_radius * 707) / 1000;
820  }
821 
822  // lines '|' or '\'
823  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x - ax,
824  m_Start.y + aOffset.y - ay,
825  m_Start.x + aOffset.x - bx,
826  m_Start.y + aOffset.y - by, 0, color );
827  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x + bx,
828  m_Start.y + aOffset.y + by,
829  m_Start.x + aOffset.x + ax,
830  m_Start.y + aOffset.y + ay, 0, color );
831 
832  // lines - or '/'
833  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x + ay,
834  m_Start.y + aOffset.y - ax,
835  m_Start.x + aOffset.x + by,
836  m_Start.y + aOffset.y - bx, 0, color );
837  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x - by,
838  m_Start.y + aOffset.y + bx,
839  m_Start.x + aOffset.x - ay,
840  m_Start.y + aOffset.y + ax, 0, color );
841  }
842 
843  // for Buried Vias, draw a partial line : orient depending on layer pair
844  // (so we can see superimposed buried vias ):
845  if( GetViaType() == VIA_BLIND_BURIED )
846  {
847  int ax = 0, ay = radius, bx = 0, by = drill_radius;
848  PCB_LAYER_ID layer_top, layer_bottom;
849 
850  LayerPair( &layer_top, &layer_bottom );
851 
852  // lines for the top layer
853  RotatePoint( &ax, &ay, layer_top * 3600.0 / brd->GetCopperLayerCount( ) );
854  RotatePoint( &bx, &by, layer_top * 3600.0 / brd->GetCopperLayerCount( ) );
855  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x - ax,
856  m_Start.y + aOffset.y - ay,
857  m_Start.x + aOffset.x - bx,
858  m_Start.y + aOffset.y - by, 0, color );
859 
860  // lines for the bottom layer
861  ax = 0; ay = radius; bx = 0; by = drill_radius;
862  RotatePoint( &ax, &ay, layer_bottom * 3600.0 / brd->GetCopperLayerCount( ) );
863  RotatePoint( &bx, &by, layer_bottom * 3600.0 / brd->GetCopperLayerCount( ) );
864  GRLine( panel->GetClipBox(), aDC, m_Start.x + aOffset.x - ax,
865  m_Start.y + aOffset.y - ay,
866  m_Start.x + aOffset.x - bx,
867  m_Start.y + aOffset.y - by, 0, color );
868  }
869 
870  // Display the short netname:
872  return;
873 
874  if( displ_opts->m_DisplayNetNamesMode == 0 || displ_opts->m_DisplayNetNamesMode == 1 )
875  return;
876 
877  NETINFO_ITEM* net = GetNet();
878 
879  if( net == NULL )
880  return;
881 
882  wxString text = UnescapeString( net->GetShortNetname() );
883  int len = text.Len();
884 
885  if( len > 0 )
886  {
887  // calculate a good size for the text
888  int tsize = m_Width / len;
889 
890  if( aDC->LogicalToDeviceXRel( tsize ) >= MIN_TEXT_SIZE )
891  {
892  tsize = (tsize * 7) / 10; // small reduction to give a better look, inside via
893 
894  if( (aDrawMode & GR_XOR) == 0 )
895  GRSetDrawMode( aDC, GR_COPY );
896 
897  EDA_RECT* clipbox = panel->GetClipBox();
898  DrawGraphicHaloText( clipbox, aDC, m_Start,
899  color, WHITE, BLACK,
900  text, 0, wxSize( tsize, tsize ),
902  tsize / 7, false, false );
903  }
904  }
905 }
virtual BASE_SCREEN * GetScreen()=0
#define MIN_VIA_DRAW_SIZE
Definition: class_track.h:68
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...
int GetNetCode() const
Function GetNetCode.
wxPoint m_Start
Line start point.
Definition: class_track.h:349
void GRSetDrawMode(wxDC *DC, GR_DRAWMODE draw_mode)
Definition: gr_basic.cpp:223
virtual LSET GetLayerSet() const override
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
NETINFO_ITEM * GetNet() const
Function GetNet Returns NET_INFO object for a given item.
int color
Definition: DXF_plotter.cpp:62
LSET GetVisibleLayers() const
Function GetVisibleLayers is a proxy function that calls the correspondent function in m_BoardSetting...
static bool ShowClearance(PCB_DISPLAY_OPTIONS *aDisplOpts, const TRACK *aTrack)
Function ShowClearance tests to see if the clearance border is drawn on the given track.
Definition: class_track.cpp:55
virtual EDA_RECT * GetClipBox()
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:216
void GRFilledCircle(EDA_RECT *ClipBox, wxDC *DC, int x, int y, int r, int width, COLOR4D Color, COLOR4D BgColor)
Definition: gr_basic.cpp:778
void DrawGraphicHaloText(EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aPos, const COLOR4D aBgColor, COLOR4D aColor1, COLOR4D aColor2, const wxString &aText, double aOrient, const wxSize &aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, void(*aCallback)(int x0, int y0, int xf, int yf, void *aData), void *aCallbackData, PLOTTER *aPlotter)
Draw graphic text with a border, so that it can be read on different backgrounds.
const wxString & GetShortNetname() const
Function GetShortNetname.
Definition: netinfo.h:241
void * GetDisplayOptions() override
Function GetDisplayOptions returns the display options current in use Display options are relative to...
#define MIN_TEXT_SIZE
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
COLOR4D GetItemColor(int aItemIdx) const
Function GetItemColor.
virtual EDA_DRAW_FRAME * GetParent() const =0
Class PCB_DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
PCB_LAYER_ID
A quick note on layer IDs:
int GetDrillValue() const
Function GetDrillValue "calculates" the drill value for vias (m-Drill if > 0, or default drill value ...
void GRForceBlackPen(bool flagforce)
Function GRForceBlackPen.
Definition: gr_basic.cpp:204
PCB_GENERAL_SETTINGS & Settings()
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
VIATYPE_T GetViaType() const
Definition: class_track.h:437
virtual int GetClearance(BOARD_CONNECTED_ITEM *aItem=NULL) const override
Function GetClearance returns the clearance in internal units.
void GRLine(EDA_RECT *ClipBox, wxDC *DC, int x1, int y1, int x2, int y2, int width, COLOR4D Color, wxPenStyle aStyle)
Definition: gr_basic.cpp:285
bool m_IsPrinting
Definition: base_screen.h:220
COLORS_DESIGN_SETTINGS & Colors()
bool IsElementVisible(GAL_LAYER_ID aLayer) const
Function IsElementVisible tests whether a given element category is visible.
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
wxString UnescapeString(const wxString &aSource)
Definition: string.cpp:123
void GRCircle(EDA_RECT *ClipBox, wxDC *DC, int xc, int yc, int r, int width, COLOR4D Color)
Definition: gr_basic.cpp:755
int GetCopperLayerCount() const
Function GetCopperLayerCount.
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
PCB_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
Definition: colors.h:49
bool IsOnLayer(PCB_LAYER_ID aLayer) const override
Function IsOnLayer tests to see if this object is on the given layer.
Definition: colors.h:45
bool GetGRForceBlackPenState(void)
Function GetGRForceBlackPenState.
Definition: gr_basic.cpp:214
static const int UNCONNECTED
Constant that holds the "unconnected net" number (typically 0) all items "connected" to this net are ...
Definition: netinfo.h:465
class PCB_BASE_FRAME basic PCB main window class for Pcbnew, Gerbview, and CvPcb footprint viewer.
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39

References B_Cu, BLACK, color, PCB_GENERAL_SETTINGS::Colors(), DARKDARKGRAY, DrawGraphicHaloText(), FILLED, BOARD_ITEM::GetBoard(), TRACK::GetClearance(), EDA_DRAW_PANEL::GetClipBox(), BOARD::GetCopperLayerCount(), PCB_BASE_FRAME::GetDisplayOptions(), GetDrillValue(), GetGRForceBlackPenState(), COLORS_DESIGN_SETTINGS::GetItemColor(), GetLayerSet(), BOARD_CONNECTED_ITEM::GetNet(), BOARD_CONNECTED_ITEM::GetNetCode(), EDA_DRAW_PANEL::GetParent(), EDA_DRAW_PANEL::GetScreen(), PCB_BASE_FRAME::GetScreen(), NETINFO_ITEM::GetShortNetname(), GetViaType(), BOARD::GetVisibleLayers(), GR_AND, GR_COPY, GR_HIGHLIGHT, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, GR_XOR, GRCircle(), GRFilledCircle(), GRForceBlackPen(), GRLine(), GRSetDrawMode(), BOARD::IsElementVisible(), IsOnLayer(), LAYER_VIAS, LayerPair(), BASE_SCREEN::m_IsPrinting, TRACK::m_Start, TRACK::m_Width, MIN_TEXT_SIZE, MIN_VIA_DRAW_SIZE, RotatePoint(), PCB_BASE_FRAME::Settings(), ShowClearance(), NETINFO_LIST::UNCONNECTED, UnescapeString(), VIA_BLIND_BURIED, VIA_MICROVIA, and WHITE.

◆ DrawShortNetname()

void TRACK::DrawShortNetname ( EDA_DRAW_PANEL panel,
wxDC *  aDC,
GR_DRAWMODE  aDrawMode,
COLOR4D  aBgColor 
)
protectedinherited

Helper for drawing the short netname in tracks.

Definition at line 506 of file class_track.cpp.

508 {
509  if( ! panel )
510  return;
511 
512  /* we must filter tracks, to avoid a lot of texts.
513  * - only tracks with a length > 10 * thickness are eligible
514  * and, of course, if we are not printing the board
515  */
516  auto displ_opts = (PCB_DISPLAY_OPTIONS*)( panel->GetDisplayOptions() );
517 
518  if( displ_opts->m_DisplayNetNamesMode == 0 || displ_opts->m_DisplayNetNamesMode == 1 )
519  return;
520 
521  #define THRESHOLD 10
522 
523  int len = KiROUND( GetLineLength( m_Start, m_End ) );
524 
525  if( len < THRESHOLD * m_Width )
526  return;
527 
528  // no room to display a text inside track
529  if( aDC->LogicalToDeviceXRel( m_Width ) < MIN_TEXT_SIZE )
530  return;
531 
533  return;
534 
535  NETINFO_ITEM* net = GetNet();
536 
537  if( net == NULL )
538  return;
539 
540  wxString text = UnescapeString( net->GetShortNetname() );
541  int textlen = text.Len();
542 
543  if( textlen > 0 )
544  {
545  // calculate a good size for the text
546  int tsize = std::min( m_Width, len / textlen );
547  int dx = m_End.x - m_Start.x ;
548  int dy = m_End.y - m_Start.y ;
549  wxPoint tpos = m_Start + m_End;
550  tpos.x /= 2;
551  tpos.y /= 2;
552 
553  // Calculate angle: if the track segment is vertical, angle = 90 degrees
554  // If horizontal 0 degrees, otherwise compute it
555  double angle; // angle is in 0.1 degree
556 
557  if( dy == 0 ) // Horizontal segment
558  {
559  angle = 0;
560  }
561  else
562  {
563  if( dx == 0 ) // Vertical segment
564  {
565  angle = 900;
566  }
567  else
568  {
569  /* atan2 is *not* the solution here, since it can give upside
570  down text. We want to work only in the first and fourth quadrant */
571  angle = RAD2DECIDEG( -atan( double( dy ) / double( dx ) ) );
572  }
573  }
574 
575  PCB_LAYER_ID curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer;
576 
577  if( ( aDC->LogicalToDeviceXRel( tsize ) >= MIN_TEXT_SIZE )
578  && ( !(!IsOnLayer( curr_layer )&& displ_opts->m_ContrastModeDisplay) ) )
579  {
580  if( (aDrawMode & GR_XOR) == 0 )
581  GRSetDrawMode( aDC, GR_COPY );
582 
583  tsize = (tsize * 7) / 10; // small reduction to give a better look
584  DrawGraphicHaloText( panel->GetClipBox(), aDC, tpos,
585  aBgColor, BLACK, WHITE,
586  text, angle, wxSize( tsize, tsize ),
588  tsize / 7, false, false );
589  }
590  }
591 }
virtual BASE_SCREEN * GetScreen()=0
int GetNetCode() const
Function GetNetCode.
wxPoint m_Start
Line start point.
Definition: class_track.h:349
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:200
void GRSetDrawMode(wxDC *DC, GR_DRAWMODE draw_mode)
Definition: gr_basic.cpp:223
static int KiROUND(double v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: common.h:118
NETINFO_ITEM * GetNet() const
Function GetNet Returns NET_INFO object for a given item.
double RAD2DECIDEG(double rad)
Definition: trigo.h:213
virtual EDA_RECT * GetClipBox()
void DrawGraphicHaloText(EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aPos, const COLOR4D aBgColor, COLOR4D aColor1, COLOR4D aColor2, const wxString &aText, double aOrient, const wxSize &aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, void(*aCallback)(int x0, int y0, int xf, int yf, void *aData), void *aCallbackData, PLOTTER *aPlotter)
Draw graphic text with a border, so that it can be read on different backgrounds.
const wxString & GetShortNetname() const
Function GetShortNetname.
Definition: netinfo.h:241
#define MIN_TEXT_SIZE
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
#define THRESHOLD
Class PCB_DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
PCB_LAYER_ID
A quick note on layer IDs:
virtual bool IsOnLayer(PCB_LAYER_ID aLayer) const
Function IsOnLayer tests to see if this object is on the given layer.
wxPoint m_End
Line end point.
Definition: class_track.h:350
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
wxString UnescapeString(const wxString &aSource)
Definition: string.cpp:123
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
Definition: colors.h:49
Definition: colors.h:45
virtual void * GetDisplayOptions()
Function GetDisplayOptions A way to pass info to draw functions.
static const int UNCONNECTED
Constant that holds the "unconnected net" number (typically 0) all items "connected" to this net are ...
Definition: netinfo.h:465
#define min(a, b)
Definition: auxiliary.h:85

References PNS::angle(), BLACK, DrawGraphicHaloText(), EDA_DRAW_PANEL::GetClipBox(), EDA_DRAW_PANEL::GetDisplayOptions(), GetLineLength(), BOARD_CONNECTED_ITEM::GetNet(), BOARD_CONNECTED_ITEM::GetNetCode(), EDA_DRAW_PANEL::GetScreen(), NETINFO_ITEM::GetShortNetname(), GR_COPY, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, GR_XOR, GRSetDrawMode(), BOARD_ITEM::IsOnLayer(), KiROUND(), TRACK::m_End, TRACK::m_Start, TRACK::m_Width, min, MIN_TEXT_SIZE, RAD2DECIDEG(), THRESHOLD, NETINFO_LIST::UNCONNECTED, UnescapeString(), and WHITE.

Referenced by TRACK::Draw().

◆ Flip() [1/2]

void BOARD_ITEM::Flip ( const VECTOR2I aCentre)
inlineinherited

Definition at line 270 of file class_board_item.h.

271  {
272  Flip( wxPoint( aCentre.x, aCentre.y ) );
273  }
virtual void Flip(const wxPoint &aCentre)
Function Flip Flip this object, i.e.

References BOARD_ITEM::Flip(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ Flip() [2/2]

void VIA::Flip ( const wxPoint &  aCentre)
overridevirtual

Function Flip Flip this object, i.e.

change the board side for this object

Parameters
aCentre- the rotation point.

Reimplemented from TRACK.

Definition at line 291 of file class_track.cpp.

292 {
293  m_Start.y = aCentre.y - (m_Start.y - aCentre.y);
294  m_End.y = aCentre.y - (m_End.y - aCentre.y);
295 
296  if( GetViaType() != VIA_THROUGH )
297  {
298  int copperLayerCount = GetBoard()->GetCopperLayerCount();
299  PCB_LAYER_ID top_layer;
300  PCB_LAYER_ID bottom_layer;
301  LayerPair( &top_layer, &bottom_layer );
302  top_layer = FlipLayer( top_layer, copperLayerCount );
303  bottom_layer = FlipLayer( bottom_layer, copperLayerCount );
304  SetLayerPair( top_layer, bottom_layer );
305  }
306 }
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...
wxPoint m_Start
Line start point.
Definition: class_track.h:349
PCB_LAYER_ID FlipLayer(PCB_LAYER_ID aLayerId, int aCopperLayersCount)
Function FlippedLayerNumber.
Definition: lset.cpp:475
PCB_LAYER_ID
A quick note on layer IDs:
wxPoint m_End
Line end point.
Definition: class_track.h:350
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
VIATYPE_T GetViaType() const
Definition: class_track.h:437
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.
int GetCopperLayerCount() const
Function GetCopperLayerCount.

References FlipLayer(), BOARD_ITEM::GetBoard(), BOARD::GetCopperLayerCount(), GetViaType(), LayerPair(), TRACK::m_End, TRACK::m_Start, SetLayerPair(), and VIA_THROUGH.

◆ GetBestInsertPoint()

TRACK * TRACK::GetBestInsertPoint ( BOARD aPcb)
inherited

Function GetBestInsertPoint searches the "best" insertion point within the track linked list.

The best point is currently the end of the corresponding net code section. (The BOARD::m_Track and BOARD::m_Zone lists are sorted by netcode.)

Parameters
aPcbThe BOARD to search for the insertion point.
Returns
TRACK* - the insertion point in the linked list. this is the next item after the last item having my net code. therefore the track to insert must be inserted before the insertion point. if the best insertion point is the end of list, the returned value is NULL

Definition at line 429 of file class_track.cpp.

430 {
431  // When reading from a file most of the items will already be in the correct order.
432  // Searching from the back therefore takes us from n^2 to essentially 0.
433 
434  for( TRACK* track = aPcb->m_Track.GetLast(); track; track = track->Back() )
435  {
436  if( GetNetCode() >= track->GetNetCode() )
437  return track->Next();
438  }
439 
440  return aPcb->m_Track.GetFirst();
441 }
int GetNetCode() const
Function GetNetCode.
T * GetLast() const
Function GetLast returns the last T* in the list without removing it, or NULL if the list is empty.
Definition: dlist.h:170
T * GetFirst() const
Function GetFirst returns the first T* in the list without removing it, or NULL if the list is empty.
Definition: dlist.h:163
DLIST< TRACK > m_Track
Definition: class_board.h:249
TRACK * Back() const
Definition: class_track.h:111

References TRACK::Back(), DLIST< T >::GetFirst(), DLIST< T >::GetLast(), BOARD_CONNECTED_ITEM::GetNetCode(), BOARD::m_Track, and TRACK::Next().

Referenced by BOARD::Add().

◆ GetBoard()

BOARD * BOARD_ITEM::GetBoard ( ) const
virtualinherited

Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.

Definition at line 64 of file class_board_item.cpp.

65 {
66  if( Type() == PCB_T )
67  return (BOARD*) this;
68 
69  BOARD_ITEM* parent = GetParent();
70 
71  if( parent )
72  return parent->GetBoard();
73 
74  return NULL;
75 }
Definition: typeinfo.h:85
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class,...
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
BOARD_ITEM_CONTAINER * GetParent() const
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParent(), PCB_T, and EDA_ITEM::Type().

Referenced by DeleteMarkedItems(), TEXTE_PCB::Draw(), PCB_TARGET::Draw(), ZONE_CONTAINER::Draw(), EDGE_MODULE::Draw(), TEXTE_MODULE::Draw(), TRACK::Draw(), DIMENSION::Draw(), DRAWSEGMENT::Draw(), MODULE::Draw(), Draw(), D_PAD::Draw(), MODULE::DrawAncre(), ZONE_CONTAINER::DrawFilledArea(), TEXTE_PCB::Flip(), TRACK::Flip(), Flip(), ZONE_CONTAINER::Flip(), BOARD_ITEM::GetBoard(), MODULE::GetBoundingPoly(), BOARD_ITEM::GetLayerName(), PCB_DRAW_PANEL_GAL::GetMsgPanelInfo(), TRACK::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), D_PAD::GetMsgPanelInfo(), TRACK::GetMsgPanelInfoBase(), GetMsgPanelInfoBase(), TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetClass(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), GetSelectMenuText(), D_PAD::GetSelectMenuText(), D_PAD::GetSolderMaskMargin(), D_PAD::GetSolderPasteMargin(), EAGLE_PLUGIN::packageWire(), PushTrack(), BOARD_CONNECTED_ITEM::SetNet(), BOARD_CONNECTED_ITEM::SetNetCode(), MODULE::ViewBBox(), ViewGetLOD(), and D_PAD::ViewGetLOD().

◆ GetBoundingBox()

const EDA_RECT TRACK::GetBoundingBox ( ) const
overridevirtualinherited

Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes.

This box should be an enclosing perimeter for visible components of this object, and the units should be in the pcb or schematic coordinate system. It is OK to overestimate the size by a few counts.

Reimplemented from EDA_ITEM.

Definition at line 239 of file class_track.cpp.

240 {
241  // end of track is round, this is its radius, rounded up
242  int radius = ( m_Width + 1 ) / 2;
243  int ymax, xmax, ymin, xmin;
244 
245  if( Type() == PCB_VIA_T )
246  {
247  ymax = m_Start.y;
248  xmax = m_Start.x;
249 
250  ymin = m_Start.y;
251  xmin = m_Start.x;
252  }
253  else
254  {
255  ymax = std::max( m_Start.y, m_End.y );
256  xmax = std::max( m_Start.x, m_End.x );
257 
258  ymin = std::min( m_Start.y, m_End.y );
259  xmin = std::min( m_Start.x, m_End.x );
260  }
261 
262  ymax += radius;
263  xmax += radius;
264 
265  ymin -= radius;
266  xmin -= radius;
267 
268  // return a rectangle which is [pos,dim) in nature. therefore the +1
269  EDA_RECT ret( wxPoint( xmin, ymin ), wxSize( xmax - xmin + 1, ymax - ymin + 1 ) );
270 
271  return ret;
272 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
wxPoint m_End
Line end point.
Definition: class_track.h:350
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204
#define min(a, b)
Definition: auxiliary.h:85

References TRACK::m_End, TRACK::m_Start, TRACK::m_Width, max, min, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by PCB_EDIT_FRAME::Delete_Segment(), DRAWING_TOOL::DrawVia(), and TRACK::ViewBBox().

◆ GetCenter()

virtual const wxPoint BOARD_ITEM::GetCenter ( ) const
inlinevirtualinherited

Function GetCenter()

This defaults to the same point as returned by GetPosition(), unless overridden

Returns
centre point of the item

Reimplemented in DRAWSEGMENT.

Definition at line 96 of file class_board_item.h.

96 { return GetPosition(); }
virtual const wxPoint GetPosition() const =0

References BOARD_ITEM::GetPosition().

Referenced by BOARD::chainMarkedSegments(), and LEGACY_ARRAY_CREATOR::getRotationCentre().

◆ GetClass()

wxString VIA::GetClass ( ) const
inlineoverridevirtual

Function GetClass returns the class name.

Returns
wxString

Reimplemented from TRACK.

Definition at line 416 of file class_track.h.

417  {
418  return wxT( "VIA" );
419  }

◆ GetClearance()

int TRACK::GetClearance ( BOARD_CONNECTED_ITEM aItem = NULL) const
overridevirtualinherited

Function GetClearance returns the clearance in internal units.

If aItem is not NULL then the returned clearance is the greater of this object's clearance and aItem's clearance. If aItem is NULL, then this objects clearance is returned.

Parameters
aItemis another BOARD_CONNECTED_ITEM or NULL
Returns
int - the clearance in internal units.

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 175 of file class_track.cpp.

176 {
177  // Currently tracks have no specific clearance parameter on a per track or per
178  // segment basis. The NETCLASS clearance is used.
179  return BOARD_CONNECTED_ITEM::GetClearance( aItem );
180 }
virtual int GetClearance(BOARD_CONNECTED_ITEM *aItem=NULL) const
Function GetClearance returns the clearance in internal units.

References BOARD_CONNECTED_ITEM::GetClearance().

Referenced by DRC::doTrackDrc(), TRACK::Draw(), KIGFX::PCB_PAINTER::draw(), Draw(), LocateIntrusion(), PushTrack(), and TRACK::ViewBBox().

◆ GetDrill()

int VIA::GetDrill ( ) const
inline

Function GetDrill returns the local drill setting for this VIA.

If you want the calculated value, use GetDrillValue() instead.

Definition at line 452 of file class_track.h.

452 { return m_Drill; }
int m_Drill
Definition: class_track.h:485

References m_Drill.

Referenced by PCB_IO::format(), EAGLE_PLUGIN::loadSignals(), and PCB_EDIT_FRAME::SetTrackSegmentWidth().

◆ GetDrillValue()

int VIA::GetDrillValue ( ) const

Function GetDrillValue "calculates" the drill value for vias (m-Drill if > 0, or default drill value for the board.

Returns
real drill_value

Definition at line 183 of file class_track.cpp.

184 {
185  if( m_Drill > 0 ) // Use the specific value.
186  return m_Drill;
187 
188  // Use the default value from the Netclass
189  NETCLASSPTR netclass = GetNetClass();
190 
191  if( GetViaType() == VIA_MICROVIA )
192  return netclass->GetuViaDrill();
193 
194  return netclass->GetViaDrill();
195 }
int m_Drill
Definition: class_track.h:485
VIATYPE_T GetViaType() const
Definition: class_track.h:437
std::shared_ptr< NETCLASS > GetNetClass() const
Function GetNetClass returns the NETCLASS for this item.

References BOARD_CONNECTED_ITEM::GetNetClass(), GetViaType(), m_Drill, and VIA_MICROVIA.

Referenced by build_via_testpoints(), CINFO3D_VISU::createLayers(), CreatePadsShapesSection(), CreateRoutesSection(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRC::doTrackDrc(), KIGFX::PCB_PAINTER::draw(), Draw(), export_vrml_via(), C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads(), KIGFX::PCB_PAINTER::getDrillSize(), GetMsgPanelInfoBase(), HYPERLYNX_PAD_STACK::HYPERLYNX_PAD_STACK(), C3D_RENDER_RAYTRACING::insert3DViaHole(), BRDITEMS_PLOTTER::PlotDrillMarks(), PlotLayerOutlines(), PCB_EDIT_FRAME::SetTrackSegmentWidth(), PNS_KICAD_IFACE::syncVia(), DRC::testDrilledHoles(), and ViaSort().

◆ GetEditFlags()

STATUS_FLAGS EDA_ITEM::GetEditFlags ( ) const
inlineinherited

Definition at line 263 of file base_struct.h.

264  {
268  return m_Flags & mask;
269  }
#define END_ONPAD
Pcbnew: flag set for track segment ending on a pad.
Definition: base_struct.h:133
#define BEGIN_ONPAD
Pcbnew: flag set for track segment starting on a pad.
Definition: base_struct.h:132
#define EDA_ITEM_ALL_FLAGS
Definition: base_struct.h:148
#define SELECTED
Definition: base_struct.h:121
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
#define DP_COUPLED
item is coupled with another item making a differential pair
Definition: base_struct.h:139
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
#define IS_DANGLING
indicates a pin is dangling
Definition: base_struct.h:143
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181
#define ENDPOINT
ends. (Used to support dragging.)
Definition: base_struct.h:120
#define STARTPOINT
When a line is selected, these flags indicate which.
Definition: base_struct.h:119

References BEGIN_ONPAD, BRIGHTENED, DP_COUPLED, EDA_ITEM_ALL_FLAGS, END_ONPAD, ENDPOINT, HIGHLIGHTED, IS_DANGLING, EDA_ITEM::m_Flags, SELECTED, and STARTPOINT.

Referenced by AbortMoveAndEditTarget(), SCH_EDIT_TOOL::ChangeShape(), EDA_ITEM::ClearEditFlags(), SCH_EDIT_FRAME::ConvertTextType(), PCB_EDIT_FRAME::createPopUpMenuForFootprints(), PCB_EDIT_FRAME::createPopUpMenuForFpPads(), PCB_EDIT_FRAME::createPopUpMenuForFpTexts(), PCB_EDIT_FRAME::createPopUpMenuForTexts(), PCB_EDIT_FRAME::createPopupMenuForTracks(), PCB_EDIT_FRAME::createPopUpMenuForZones(), PCB_EDIT_FRAME::Delete_Segment_Edge(), SCH_EDIT_FRAME::DeleteJunction(), PCB_BASE_FRAME::DeleteTextModule(), BOARD::Draw(), PCB_EDIT_FRAME::Edit_TrackSegm_Width(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_FRAME::EditImage(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), PCB_EDIT_FRAME::FlipTextePcb(), LIB_VIEW_FRAME::GeneralControl(), FOOTPRINT_EDIT_FRAME::OnHotKey(), PCB_EDIT_FRAME::OnHotKey(), PCB_EDIT_FRAME::OnHotkeyBeginRoute(), PCB_EDIT_FRAME::OnHotkeyCopyItem(), PCB_EDIT_FRAME::OnHotkeyDeleteItem(), PCB_EDIT_FRAME::OnHotkeyDuplicateOrArrayItem(), PCB_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyFlipItem(), PCB_EDIT_FRAME::OnHotkeyMoveItem(), PCB_EDIT_FRAME::OnHotkeyPlaceItem(), PCB_EDIT_FRAME::OnHotkeyRotateItem(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), FOOTPRINT_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::OnLeftDClick(), EDA_DRAW_PANEL::OnMouseEvent(), FOOTPRINT_EDIT_FRAME::OnRightClick(), GERBVIEW_FRAME::OnRightClick(), PCB_EDIT_FRAME::OnRightClick(), PCB_EDIT_FRAME::PlaceTarget(), FOOTPRINT_EDIT_FRAME::PrepareItemForHotkey(), TRACKS_CLEANER::removeDuplicatesOfTrack(), PCB_BASE_FRAME::Rotate_Module(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), PCB_BASE_FRAME::RotateTextModule(), SCH_EDIT_FRAME::SchematicCleanUp(), SCH_EDIT_FRAME::SelectUnit(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), DIALOG_TARGET_PROPERTIES::TransferDataFromWindow(), DIALOG_LABEL_EDITOR::TransferDataFromWindow(), and DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataFromWindow().

◆ GetEnd()

const wxPoint& TRACK::GetEnd ( ) const
inlineinherited

Definition at line 130 of file class_track.h.

130 { return m_End; }
wxPoint m_End
Line end point.
Definition: class_track.h:350

References TRACK::m_End.

Referenced by CN_LIST::Add(), PCB_EDIT_FRAME::Add45DegreeSegment(), PCB_EDIT_FRAME::Begin_Route(), BOARD::chainMarkedSegments(), Collect_TrackSegmentsToDrag(), GRID_HELPER::computeAnchors(), ComputeBreakPoint(), BOARD::CreateLockPoint(), CINFO3D_VISU::createNewTrack(), CreateRoutesSection(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRC::doTrackDrc(), DRC::doTrackKeepoutDrc(), DRAG_SEGM_PICKER::DRAG_SEGM_PICKER(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::EraseRedundantTrack(), find_vias_and_tracks_at(), FindBestGridPointOnTrack(), PCB_IO::format(), DSN::SPECCTRA_DB::FromBOARD(), TRACK::HitTest(), InitialiseDragParameters(), Magnetize(), BOARD::MarkTrace(), TRACKS_CLEANER::mergeCollinearSegments(), ROUTER_TOOL::NeighboringSegmentFilter(), DRC_MARKER_FACTORY::NewMarker(), OrCell_Trace(), otherEnd(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), PushTrack(), TRACKS_CLEANER::removeDuplicatesOfTrack(), DRAG_SEGM_PICKER::SetAuxParameters(), Show_Drag_Track_Segment_With_Cte_Slope(), Show_MoveNode(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), PNS_KICAD_IFACE::syncTrack(), AR_MATRIX::TraceSegmentPcb(), TraceSegmentPcb(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), updateConn(), and PCB_BRIGHT_BOX::ViewDraw().

◆ GetEndNetCode()

TRACK * TRACK::GetEndNetCode ( int  NetCode)
inherited

Definition at line 473 of file class_track.cpp.

474 {
475  TRACK* NextS, * Track = this;
476  int ii = 0;
477 
478  if( Track == NULL )
479  return NULL;
480 
481  if( NetCode == -1 )
482  NetCode = GetNetCode();
483 
484  while( Track != NULL )
485  {
486  NextS = (TRACK*) Track->Pnext;
487 
488  if( Track->GetNetCode() == NetCode )
489  ii++;
490 
491  if( NextS == NULL )
492  break;
493 
494  if( NextS->GetNetCode() > NetCode )
495  break;
496 
497  Track = NextS;
498  }
499 
500  if( ii )
501  return Track;
502  else
503  return NULL;
504 }
int GetNetCode() const
Function GetNetCode.
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:170

References BOARD_CONNECTED_ITEM::GetNetCode(), and EDA_ITEM::Pnext.

Referenced by PCB_EDIT_FRAME::EraseRedundantTrack().

◆ GetEndPoint()

const wxPoint& TRACK::GetEndPoint ( ENDPOINT_T  aEndPoint) const
inlineinherited

Return the selected endpoint (start or end)

Definition at line 137 of file class_track.h.

138  {
139  if( aEndPoint == ENDPOINT_START )
140  return m_Start;
141  else
142  return m_End;
143  }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
wxPoint m_End
Line end point.
Definition: class_track.h:350

References ENDPOINT_START, TRACK::m_End, and TRACK::m_Start.

Referenced by BOARD::GetPad(), TRACK::GetTrack(), and TRACKS_CLEANER::testTrackEndpointDangling().

◆ GetEndSegments()

int TRACK::GetEndSegments ( int  NbSegm,
TRACK **  StartTrack,
TRACK **  EndTrack 
)
inherited

Function GetEndSegments get the segments connected to the end point of the track.

return 1 if OK, 0 when a track is a closed loop and the beginning and the end of the track in *StartTrack and *EndTrack Modify *StartTrack en *EndTrack : (*StartTrack)->m_Start coordinate is the beginning of the track (*EndTrack)->m_End coordinate is the end of the track Segments connected must be consecutive in list

Definition at line 1345 of file class_track.cpp.

1346 {
1347  TRACK* Track, * via, * segm, * TrackListEnd;
1348  int NbEnds, ii, ok = 0;
1349  LSET layerMask;
1350 
1351  if( aCount <= 1 )
1352  {
1353  *aStartTrace = *aEndTrace = this;
1354  return 1;
1355  }
1356 
1357  // Calculation of the limit analysis.
1358  *aStartTrace = *aEndTrace = NULL;
1359  TrackListEnd = Track = this;
1360  ii = 0;
1361 
1362  for( ; ( Track != NULL ) && ( ii < aCount ); ii++, Track = Track->Next() )
1363  {
1364  TrackListEnd = Track;
1365  Track->m_Param = 0;
1366  }
1367 
1368  // Calculate the extremes.
1369  NbEnds = 0;
1370  Track = this;
1371  ii = 0;
1372 
1373  for( ; ( Track != NULL ) && ( ii < aCount ); ii++, Track = Track->Next() )
1374  {
1375  if( Track->Type() == PCB_VIA_T )
1376  continue;
1377 
1378  layerMask = Track->GetLayerSet();
1379  via = GetVia( TrackListEnd, Track->m_Start, layerMask );
1380 
1381  if( via )
1382  {
1383  layerMask |= via->GetLayerSet();
1384  via->SetState( BUSY, true );
1385  }
1386 
1387  Track->SetState( BUSY, true );
1388  segm = ::GetTrack( this, TrackListEnd, Track->m_Start, layerMask );
1389  Track->SetState( BUSY, false );
1390 
1391  if( via )
1392  via->SetState( BUSY, false );
1393 
1394  if( segm == NULL )
1395  {
1396  switch( NbEnds )
1397  {
1398  case 0:
1399  *aStartTrace = Track; NbEnds++;
1400  break;
1401 
1402  case 1:
1403  int BeginPad, EndPad;
1404  *aEndTrace = Track;
1405 
1406  // Swap ox, oy with fx, fy
1407  BeginPad = Track->GetState( BEGIN_ONPAD );
1408  EndPad = Track->GetState( END_ONPAD );
1409 
1410  Track->SetState( BEGIN_ONPAD | END_ONPAD, false );
1411 
1412  if( BeginPad )
1413  Track->SetState( END_ONPAD, true );
1414 
1415  if( EndPad )
1416  Track->SetState( BEGIN_ONPAD, true );
1417 
1418  std::swap( Track->m_Start, Track->m_End );
1419  std::swap( Track->start, Track->end );
1420  ok = 1;
1421  return ok;
1422  }
1423  }
1424 
1425  layerMask = Track->GetLayerSet();
1426  via = GetVia( TrackListEnd, Track->m_End, layerMask );
1427 
1428  if( via )
1429  {
1430  layerMask |= via->GetLayerSet();
1431  via->SetState( BUSY, true );
1432  }
1433 
1434  Track->SetState( BUSY, true );
1435  segm = ::GetTrack( this, TrackListEnd, Track->m_End, layerMask );
1436  Track->SetState( BUSY, false );
1437 
1438  if( via )
1439  via->SetState( BUSY, false );
1440 
1441  if( segm == NULL )
1442  {
1443  switch( NbEnds )
1444  {
1445  case 0:
1446  int BeginPad, EndPad;
1447  *aStartTrace = Track;
1448  NbEnds++;
1449 
1450  // Swap ox, oy with fx, fy
1451  BeginPad = Track->GetState( BEGIN_ONPAD );
1452  EndPad = Track->GetState( END_ONPAD );
1453 
1454  Track->SetState( BEGIN_ONPAD | END_ONPAD, false );
1455 
1456  if( BeginPad )
1457  Track->SetState( END_ONPAD, true );
1458 
1459  if( EndPad )
1460  Track->SetState( BEGIN_ONPAD, true );
1461 
1462  std::swap( Track->m_Start, Track->m_End );
1463  std::swap( Track->start, Track->end );
1464  break;
1465 
1466  case 1:
1467  *aEndTrace = Track;
1468  ok = 1;
1469  return ok;
1470  }
1471  }
1472  }
1473 
1474  return ok;
1475 }
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...
#define END_ONPAD
Pcbnew: flag set for track segment ending on a pad.
Definition: base_struct.h:133
#define BUSY
Pcbnew: flag indicating that the structure has.
Definition: base_struct.h:134
#define BEGIN_ONPAD
Pcbnew: flag set for track segment starting on a pad.
Definition: base_struct.h:132
double m_Param
Definition: class_track.h:104
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.
Class LSET is a set of PCB_LAYER_IDs.
void SetState(int type, int state)
Definition: base_struct.h:248
TRACK * Next() const
Definition: class_track.h:110
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
virtual LSET GetLayerSet() const
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...

References BEGIN_ONPAD, BUSY, END_ONPAD, BOARD_ITEM::GetLayerSet(), EDA_ITEM::GetState(), TRACK::GetTrack(), TRACK::GetVia(), TRACK::m_End, TRACK::m_Param, TRACK::m_Start, TRACK::Next(), PCB_VIA_T, and EDA_ITEM::SetState().

Referenced by PCB_EDIT_FRAME::EraseRedundantTrack().

◆ GetFlags()

◆ GetLayer()

virtual PCB_LAYER_ID BOARD_ITEM::GetLayer ( ) const
inlinevirtualinherited

Function GetLayer returns the primary layer this item is on.

Reimplemented in ZONE_CONTAINER.

Definition at line 123 of file class_board_item.h.

123 { return m_Layer; }
PCB_LAYER_ID m_Layer

References BOARD_ITEM::m_Layer.

Referenced by Abort_MoveOrCopyModule(), DIALOG_GLOBAL_DELETION::AcceptPcbDelete(), CN_CONNECTIVITY_ALGO::Add(), CN_LIST::Add(), CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), DIMENSION::AdjustDimensionDetails(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), AR_AUTOPLACER::buildFpAreas(), PCB_EDIT_FRAME::Change_Side_Module(), checkConnectedTo(), MODULE::CopyNetlistSettings(), CreateBoardSection(), MWAVE::CreateMicrowaveInductor(), CreateRoutesSection(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), PCB_EDIT_FRAME::DoGenFootprintsPositionFile(), DRC::doTrackKeepoutDrc(), TEXTE_MODULE::Draw(), DRAWSEGMENT::Draw(), KIGFX::PCB_PAINTER::draw(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Width(), export_vrml_drawsegment(), export_vrml_edge_module(), export_vrml_module(), export_vrml_pcbtext(), export_vrml_text_module(), PCB_EDIT_FRAME::ExportToGenCAD(), TEXTE_PCB::Flip(), PCB_TARGET::Flip(), EDGE_MODULE::Flip(), TEXTE_MODULE::Flip(), TRACK::Flip(), DIMENSION::Flip(), MODULE::Flip(), DRAWSEGMENT::Flip(), PCB_IO::FootprintSave(), FootprintWriteShape(), PCB_IO::formatLayer(), DSN::SPECCTRA_DB::FromBOARD(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), BOARD::GetFootprint(), ZONE_CONTAINER::GetLayer(), AR_AUTOPLACER::getOptimalModulePlacement(), BOARD::GetPad(), TEXT_MOD_GRID_TABLE::GetValueAsLong(), BOARD::GetVisibleTrack(), SELECTION_TOOL::guessSelectionCandidates(), idf_export_module(), GENERAL_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), D_PAD::IsFlipped(), MODULE::IsFlipped(), EDGE_MODULE::IsParentFlipped(), TEXTE_MODULE::IsParentFlipped(), itemIsIncludedByFilter(), FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD(), BOARD::MarkTrace(), DIALOG_FOOTPRINT_FP_EDITOR::OnAddField(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAddField(), PCB_EDIT_FRAME::OnRightClick(), EAGLE_PLUGIN::packagePad(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), BRDITEMS_PLOTTER::Plot_Edges_Modules(), BRDITEMS_PLOTTER::PlotAllTextsModule(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotDrawSegment(), BRDITEMS_PLOTTER::PlotPcbTarget(), BRDITEMS_PLOTTER::PlotTextePcb(), processBoardItem(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), processTextItem(), TRACKS_CLEANER::removeDuplicatesOfTrack(), PCB_BASE_FRAME::ResetTextSize(), SELECTION_TOOL::selectable(), TEXT_MOD_GRID_TABLE::SetValueAsLong(), ShowClearance(), PNS_KICAD_IFACE::syncGraphicalItem(), PNS_KICAD_IFACE::syncTrack(), DRC::testCopperDrawItem(), DRC::testCopperTextAndGraphics(), DRC::testCopperTextItem(), DRC::testDisabledLayers(), AR_AUTOPLACER::testModuleOnBoard(), TEXTE_MODULE::TEXTE_MODULE(), AR_MATRIX::TraceSegmentPcb(), TraceSegmentPcb(), TrackListSortByNetcode(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_MODULE::ViewGetLayers(), TRACK::ViewGetLayers(), TEXTE_MODULE::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().

◆ GetLayerName()

wxString BOARD_ITEM::GetLayerName ( ) const
inherited

Function GetLayerName returns the name of the PCB layer on which the item resides.

Returns
wxString containing the layer name associated with this item.

Definition at line 78 of file class_board_item.cpp.

79 {
80  BOARD* board = GetBoard();
81 
82  if( board )
83  return board->GetLayerName( m_Layer );
84 
85  // If no parent, return standard name
87 }
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
PCB_LAYER_ID m_Layer
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
static wxString GetStandardLayerName(PCB_LAYER_ID aLayerId)
Function GetStandardLayerName returns an "English Standard" name of a PCB layer when given aLayerNumb...
Definition: class_board.h:654

References BOARD_ITEM::GetBoard(), BOARD::GetLayerName(), BOARD::GetStandardLayerName(), and BOARD_ITEM::m_Layer.

Referenced by PCB_IO::format(), PCB_IO::formatLayer(), TEXTE_PCB::GetMsgPanelInfo(), ZONE_CONTAINER::GetMsgPanelInfo(), TEXTE_MODULE::GetMsgPanelInfo(), DRAWSEGMENT::GetMsgPanelInfo(), TEXTE_PCB::GetSelectMenuText(), EDGE_MODULE::GetSelectMenuText(), TEXTE_MODULE::GetSelectMenuText(), DIMENSION::GetSelectMenuText(), DRAWSEGMENT::GetSelectMenuText(), TRACK::GetSelectMenuText(), MODULE::GetSelectMenuText(), ZONE_CONTAINER::GetSelectMenuText(), and TEXT_MOD_GRID_TABLE::GetValue().

◆ GetLayerSet()

LSET VIA::GetLayerSet ( ) const
overridevirtual

Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segment or VIA physically resides.

Returns
int - a layer mask, see layers_id_colors_visibility.h.

Reimplemented from BOARD_ITEM.

Definition at line 340 of file class_track.cpp.

341 {
342  if( GetViaType() == VIA_THROUGH )
343  return LSET::AllCuMask();
344 
345  // VIA_BLIND_BURIED or VIA_MICRVIA:
346 
347  LSET layermask;
348 
349  wxASSERT( m_Layer <= m_BottomLayer );
350 
351  // PCB_LAYER_IDs are numbered from front to back, this is top to bottom.
352  for( LAYER_NUM id = m_Layer; id <= m_BottomLayer; ++id )
353  {
354  layermask.set( id );
355  }
356 
357  return layermask;
358 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:676
PCB_LAYER_ID m_Layer
Class LSET is a set of PCB_LAYER_IDs.
VIATYPE_T GetViaType() const
Definition: class_track.h:437
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481
int LAYER_NUM
Type LAYER_NUM can be replaced with int and removed.

References LSET::AllCuMask(), GetViaType(), m_BottomLayer, BOARD_ITEM::m_Layer, and VIA_THROUGH.

Referenced by CreatePadsShapesSection(), CreateRoutesSection(), Draw(), DRAWING_TOOL::DrawVia(), BOARD::MarkTrace(), PlotSolderMaskLayer(), PlotStandardLayer(), SELECTION_TOOL::selectable(), ViaSort(), and ViewGetLOD().

◆ GetLength()

double TRACK::GetLength ( ) const
inlineinherited

Function GetLength returns the length of the track using the hypotenuse calculation.

Returns
double - the length of the track

Definition at line 186 of file class_track.h.

187  {
188  return GetLineLength( m_Start, m_End );
189  }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
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:200
wxPoint m_End
Line end point.
Definition: class_track.h:350

References GetLineLength(), TRACK::m_End, and TRACK::m_Start.

Referenced by DIALOG_SELECT_NET_FROM_LIST::buildNetsList(), calcArea(), TRACK::GetMsgPanelInfoBase(), TRACK::GetSelectMenuText(), and ShowNewTrackWhenMovingCursor().

◆ GetList()

DHEAD* EDA_ITEM::GetList ( ) const
inlineinherited

◆ GetLocalRatsnestVisible()

bool BOARD_CONNECTED_ITEM::GetLocalRatsnestVisible ( ) const
inlineinherited

Definition at line 189 of file board_connected_item.h.

190  {
191  return m_localRatsnestVisible;
192  }

References BOARD_CONNECTED_ITEM::m_localRatsnestVisible.

◆ GetMenuImage()

BITMAP_DEF VIA::GetMenuImage ( ) const
overridevirtual

Function GetMenuImage returns a pointer to an image to be used in menus.

The default version returns the right arrow image. Override this function to provide object specific menu images.

Returns
The menu image associated with the item.

Reimplemented from TRACK.

Definition at line 169 of file class_track.cpp.

170 {
171  return via_xpm;
172 }

◆ GetMsgPanelInfo()

void TRACK::GetMsgPanelInfo ( EDA_UNITS_T  aUnits,
std::vector< MSG_PANEL_ITEM > &  aList 
)
overridevirtualinherited

Function GetMsgPanelInfo populates aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.

Note
This method replaces DisplayInfo() so that KiCad objects no longer have any knowledge of wxWidgets UI objects.
Parameters
aListis the list to populate.

Reimplemented from EDA_ITEM.

Definition at line 960 of file class_track.cpp.

961 {
962  wxString msg;
963  BOARD* board = GetBoard();
964 
965  // Display basic infos
966  GetMsgPanelInfoBase( aUnits, aList );
967 
968  // Display full track length (in Pcbnew)
969  if( board )
970  {
971  double trackLen = 0;
972  double lenPadToDie = 0;
973 
974  // Find the beginning of the track buffer containing this, because it is not
975  // always the track list on board, but can be a "private" list
976  TRACK* track_buffer_start = this;
977 
978  while( track_buffer_start->Back() )
979  track_buffer_start = track_buffer_start->Back();
980 
981  board->MarkTrace( track_buffer_start, this, NULL, &trackLen, &lenPadToDie, false );
982  msg = MessageTextFromValue( aUnits, trackLen );
983  aList.push_back( MSG_PANEL_ITEM( _( "Length" ), msg, DARKCYAN ) );
984 
985  if( lenPadToDie != 0 )
986  {
987  msg = MessageTextFromValue( aUnits, trackLen + lenPadToDie );
988  aList.push_back( MSG_PANEL_ITEM( _( "Full Length" ), msg, DARKCYAN ) );
989 
990  msg = MessageTextFromValue( aUnits, lenPadToDie, true );
991  aList.push_back( MSG_PANEL_ITEM( _( "Pad To Die Length" ), msg, DARKCYAN ) );
992  }
993  }
994 
995  NETCLASSPTR netclass = GetNetClass();
996 
997  if( netclass )
998  {
999  aList.push_back( MSG_PANEL_ITEM( _( "NC Name" ), netclass->GetName(), DARKMAGENTA ) );
1000 
1001  msg = MessageTextFromValue( aUnits, netclass->GetClearance(), true );
1002  aList.push_back( MSG_PANEL_ITEM( _( "NC Clearance" ), msg, DARKMAGENTA ) );
1003 
1004  msg = MessageTextFromValue( aUnits, netclass->GetTrackWidth(), true );
1005  aList.push_back( MSG_PANEL_ITEM( _( "NC Width" ), msg, DARKMAGENTA ) );
1006 
1007  msg = MessageTextFromValue( aUnits, netclass->GetViaDiameter(), true );
1008  aList.push_back( MSG_PANEL_ITEM( _( "NC Via Size" ), msg, DARKMAGENTA ) );
1009 
1010  msg = MessageTextFromValue( aUnits, netclass->GetViaDrill(), true );
1011  aList.push_back( MSG_PANEL_ITEM( _( "NC Via Drill"), msg, DARKMAGENTA ) );
1012  }
1013 }
wxString MessageTextFromValue(EDA_UNITS_T aUnits, int aValue, bool aUseMils)
Definition: base_units.cpp:125
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
virtual void GetMsgPanelInfoBase(EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM > &aList)
Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the fu...
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
std::shared_ptr< NETCLASS > GetNetClass() const
Function GetNetClass returns the NETCLASS for this item.
Class EDA_MSG_ITEM is used EDA_MSG_PANEL as the item type for displaying messages.
Definition: msgpanel.h:53
TRACK * MarkTrace(TRACK *aTrackList, TRACK *aTrace, int *aCount, double *aTraceLength, double *aInPackageLength, bool aReorder)
Function MarkTrace marks a chain of trace segments, connected to aTrace.
TRACK * Back() const
Definition: class_track.h:111

References TRACK::Back(), DARKCYAN, DARKMAGENTA, BOARD_ITEM::GetBoard(), TRACK::GetMsgPanelInfoBase(), BOARD_CONNECTED_ITEM::GetNetClass(), BOARD::MarkTrace(), and MessageTextFromValue().

Referenced by PCB_EDIT_FRAME::Attribut_Segment().

◆ GetMsgPanelInfoBase()

void VIA::GetMsgPanelInfoBase ( EDA_UNITS_T  aUnits,
std::vector< MSG_PANEL_ITEM > &  aList 
)
overrideprotectedvirtual

Function GetMsgPanelInfoBase Display info about the track segment only, and does not calculate the full track length.

Parameters
aListA list of MSG_PANEL_ITEM objects to add status information.

Reimplemented from TRACK.

Definition at line 1102 of file class_track.cpp.

1103 {
1104  wxString msg;
1105  BOARD* board = GetBoard();
1106 
1107  switch( GetViaType() )
1108  {
1109  default:
1110  case VIA_NOT_DEFINED:
1111  msg = wxT( "???" ); // Not used yet, does not exist currently
1112  break;
1113 
1114  case VIA_MICROVIA:
1115  msg = _( "Micro Via" ); // from external layer (TOP or BOTTOM) from
1116  // the near neighbor inner layer only
1117  break;
1118 
1119  case VIA_BLIND_BURIED:
1120  msg = _( "Blind/Buried Via" ); // from inner or external to inner
1121  // or external layer (no restriction)
1122  break;
1123 
1124  case VIA_THROUGH:
1125  msg = _( "Through Via" ); // Usual via (from TOP to BOTTOM layer only )
1126  break;
1127  }
1128 
1129  aList.push_back( MSG_PANEL_ITEM( _( "Type" ), msg, DARKCYAN ) );
1130 
1131  GetMsgPanelInfoBase_Common( aUnits, aList );
1132 
1133 
1134  // Display layer pair
1135  PCB_LAYER_ID top_layer, bottom_layer;
1136 
1137  LayerPair( &top_layer, &bottom_layer );
1138 
1139  if( board )
1140  msg = board->GetLayerName( top_layer ) + wxT( "/" )
1141  + board->GetLayerName( bottom_layer );
1142  else
1143  msg.Printf( wxT( "%d/%d" ), top_layer, bottom_layer );
1144 
1145  aList.push_back( MSG_PANEL_ITEM( _( "Layers" ), msg, BROWN ) );
1146 
1147  // Display width
1148  msg = MessageTextFromValue( aUnits, m_Width, true );
1149 
1150  // Display diameter value:
1151  aList.push_back( MSG_PANEL_ITEM( _( "Diameter" ), msg, DARKCYAN ) );
1152 
1153  // Display drill value
1154  msg = MessageTextFromValue( aUnits, GetDrillValue() );
1155 
1156  wxString title = _( "Drill" );
1157  title += wxT( " " );
1158 
1159  bool drl_specific = true;
1160 
1161  if( GetBoard() )
1162  {
1163  NETINFO_ITEM* net = GetNet();
1164  int drill_class_value = 0;
1165 
1166  if( net )
1167  {
1168  if( GetViaType() == VIA_MICROVIA )
1169  drill_class_value = net->GetMicroViaDrillSize();
1170  else
1171  drill_class_value = net->GetViaDrillSize();
1172  }
1173 
1174  drl_specific = GetDrillValue() != drill_class_value;
1175  }
1176 
1177 
1178  if( drl_specific )
1179  title += _( "(Specific)" );
1180  else
1181  title += _( "(NetClass)" );
1182 
1183  aList.push_back( MSG_PANEL_ITEM( title, msg, RED ) );
1184 }
void GetMsgPanelInfoBase_Common(EDA_UNITS_T aUnits, std::vector< MSG_PANEL_ITEM > &aList)
Helper function for the common panel info.
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...
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
NETINFO_ITEM * GetNet() const
Function GetNet Returns NET_INFO object for a given item.
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
wxString MessageTextFromValue(EDA_UNITS_T aUnits, int aValue, bool aUseMils)
Definition: base_units.cpp:125
PCB_LAYER_ID
A quick note on layer IDs:
int GetDrillValue() const
Function GetDrillValue "calculates" the drill value for vias (m-Drill if > 0, or default drill value ...
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
VIATYPE_T GetViaType() const
Definition: class_track.h:437
Definition: colors.h:60
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
int GetMicroViaDrillSize()
Function GetViaDrillSize returns the size of via drills used to route this net.
Definition: netinfo.h:182
Class EDA_MSG_ITEM is used EDA_MSG_PANEL as the item type for displaying messages.
Definition: msgpanel.h:53
int GetViaDrillSize()
Function GetViaDrillSize returns the size of via drills used to route this net.
Definition: netinfo.h:172
Definition: colors.h:62

References BROWN, DARKCYAN, BOARD_ITEM::GetBoard(), GetDrillValue(), BOARD::GetLayerName(), NETINFO_ITEM::GetMicroViaDrillSize(), TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNet(), NETINFO_ITEM::GetViaDrillSize(), GetViaType(), LayerPair(), TRACK::m_Width, MessageTextFromValue(), RED, VIA_BLIND_BURIED, VIA_MICROVIA, VIA_NOT_DEFINED, and VIA_THROUGH.

◆ GetMsgPanelInfoBase_Common()

void TRACK::GetMsgPanelInfoBase_Common ( EDA_UNITS_T  aUnits,
std::vector< MSG_PANEL_ITEM > &  aList 
)
protectedinherited

Helper function for the common panel info.

Definition at line 1015 of file class_track.cpp.

1016 {
1017  wxString msg;
1018 
1019  // Display Net Name
1020  if( GetBoard() )
1021  {
1022  NETINFO_ITEM* net = GetNet();
1023 
1024  if( net )
1025  msg = UnescapeString( net->GetNetname() );
1026  else
1027  msg = wxT( "<no name>" );
1028 
1029  aList.push_back( MSG_PANEL_ITEM( _( "NetName" ), msg, RED ) );
1030 
1031  // Display net code : (useful in test or debug)
1032  msg.Printf( wxT( "%d" ), GetNetCode() );
1033  aList.push_back( MSG_PANEL_ITEM( _( "NetCode" ), msg, RED ) );
1034  }
1035 
1036 #if defined(DEBUG)
1037 
1038  // Display the flags
1039  msg.Printf( wxT( "0x%08X" ), m_Flags );
1040  aList.push_back( MSG_PANEL_ITEM( wxT( "Flags" ), msg, BLUE ) );
1041 
1042 #if 0
1043  // Display start and end pointers:
1044  msg.Printf( wxT( "%p" ), start );
1045  aList.push_back( MSG_PANEL_ITEM( wxT( "start ptr" ), msg, BLUE ) );
1046  msg.Printf( wxT( "%p" ), end );
1047  aList.push_back( MSG_PANEL_ITEM( wxT( "end ptr" ), msg, BLUE ) );
1048  // Display this ptr
1049  msg.Printf( wxT( "%p" ), this );
1050  aList.push_back( MSG_PANEL_ITEM( wxT( "this" ), msg, BLUE ) );
1051 #endif
1052 
1053 #if 0
1054  // Display start and end positions:
1055  msg.Printf( wxT( "%d %d" ), m_Start.x, m_Start.y );
1056  aList.push_back( MSG_PANEL_ITEM( wxT( "Start pos" ), msg, BLUE ) );
1057  msg.Printf( wxT( "%d %d" ), m_End.x, m_End.y );
1058  aList.push_back( MSG_PANEL_ITEM( wxT( "End pos" ), msg, BLUE ) );
1059 #endif
1060 
1061 #endif // defined(DEBUG)
1062 
1063  // Display the State member
1064  msg = wxT( ". . " );
1065 
1066  if( GetState( TRACK_LOCKED ) )
1067  msg[0] = 'L';
1068 
1069  if( GetState( TRACK_AR ) )
1070  msg[2] = 'A';
1071 
1072  aList.push_back( MSG_PANEL_ITEM( _( "Status" ), msg, MAGENTA ) );
1073 }
Definition: colors.h:57
int GetNetCode() const
Function GetNetCode.
wxPoint m_Start
Line start point.
Definition: class_track.h:349
NETINFO_ITEM * GetNet() const
Function GetNet Returns NET_INFO object for a given item.
Definition: colors.h:61
wxPoint m_End
Line end point.
Definition: class_track.h:350
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
const wxString & GetNetname() const
Function GetNetname.
Definition: netinfo.h:235
#define TRACK_LOCKED
Pcbnew: track locked: protected from global deletion.
Definition: base_struct.h:128
Definition: colors.h:60
#define TRACK_AR
Pcbnew: autorouted track.
Definition: base_struct.h:129
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
wxString UnescapeString(const wxString &aSource)
Definition: string.cpp:123
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181
Class EDA_MSG_ITEM is used EDA_MSG_PANEL as the item type for displaying messages.
Definition: msgpanel.h:53
BOARD_CONNECTED_ITEM * end
Definition: class_track.h:102
int GetState(int type) const
Definition: base_struct.h:243
BOARD_CONNECTED_ITEM * start
Definition: class_track.h:101

References BLUE, TRACK::end, BOARD_ITEM::GetBoard(), BOARD_CONNECTED_ITEM::GetNet(), BOARD_CONNECTED_ITEM::GetNetCode(), NETINFO_ITEM::GetNetname(), EDA_ITEM::GetState(), TRACK::m_End, EDA_ITEM::m_Flags, TRACK::m_Start, MAGENTA, RED, TRACK::start, TRACK_AR, TRACK_LOCKED, and UnescapeString().

Referenced by TRACK::GetMsgPanelInfoBase(), and GetMsgPanelInfoBase().

◆ GetNet()

NETINFO_ITEM* BOARD_CONNECTED_ITEM::GetNet ( ) const
inlineinherited

◆ GetNetClass()

NETCLASSPTR BOARD_CONNECTED_ITEM::GetNetClass ( ) const
inherited

Function GetNetClass returns the NETCLASS for this item.

Definition at line 108 of file board_connected_item.cpp.

109 {
110  // It is important that this be implemented without any sequential searching.
111  // Simple array lookups should be fine, performance-wise.
112  BOARD* board = GetBoard();
113 
114  // DO NOT use wxASSERT, because GetNetClass is called inside an OnPaint event
115  // and a call to wxASSERT can crash the application.
116 
117  if( board == NULL ) // Should not occur
118  {
119  wxLogTrace( traceMask, "%s: NULL board,type %d", __func__, Type() );
120 
121  return NETCLASSPTR();
122  }
123 
124  NETCLASSPTR netclass;
125  NETINFO_ITEM* net = board->FindNet( GetNetCode() );
126 
127  if( net )
128  {
129  netclass = net->GetNetClass();
130 
131  //DBG( if(!netclass) printf( "%s: NULL netclass,type %d", __func__, Type() );)
132  }
133 
134  if( netclass )
135  return netclass;
136  else
137  return board->GetDesignSettings().GetDefault();
138 }
NETINFO_ITEM * FindNet(int aNetcode) const
Function FindNet searches for a net with the given netcode.
int GetNetCode() const
Function GetNetCode.
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:534
const wxChar *const traceMask
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
NETCLASSPTR GetDefault() const
Function GetDefault.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
NETCLASSPTR GetNetClass()
Definition: netinfo.h:122
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References BOARD::FindNet(), BOARD_ITEM::GetBoard(), BOARD_DESIGN_SETTINGS::GetDefault(), BOARD::GetDesignSettings(), NETINFO_ITEM::GetNetClass(), BOARD_CONNECTED_ITEM::GetNetCode(), traceMask, and EDA_ITEM::Type().

Referenced by DRC::doTrackDrc(), ZONE_CONTAINER::GetClearance(), BOARD_CONNECTED_ITEM::GetClearance(), GetDrillValue(), TRACK::GetMsgPanelInfo(), BOARD_CONNECTED_ITEM::GetNetClassName(), ROUTER_TOOL::prepareInteractive(), and DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ GetNetClassName()

wxString BOARD_CONNECTED_ITEM::GetNetClassName ( ) const
inherited

Function GetNetClassName returns a pointer to the netclass of the zone.

If the net is not found (can happen when a netlist is reread, and the net name does not exist, return the default net class (should not return a null pointer).

Returns
the Net Class name of this item

Definition at line 141 of file board_connected_item.cpp.

142 {
143  wxString name;
144  NETCLASSPTR myclass = GetNetClass();
145 
146  if( myclass )
147  name = myclass->GetName();
148  else
150 
151  return name;
152 }
static const char Default[]
the name of the default NETCLASS
Definition: netclass.h:80
const char * name
Definition: DXF_plotter.cpp:61
std::shared_ptr< NETCLASS > GetNetClass() const
Function GetNetClass returns the NETCLASS for this item.

References NETCLASS::Default, BOARD_CONNECTED_ITEM::GetNetClass(), and name.

Referenced by PCB_EDIT_FRAME::createPopUpMenuForFpPads(), PCB_EDIT_FRAME::createPopupMenuForTracks(), and DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem().

◆ GetNetCode()

int BOARD_CONNECTED_ITEM::GetNetCode ( ) const
inlineinherited

Function GetNetCode.

Returns
int - the net code.

Definition at line 104 of file board_connected_item.h.

105  {
106  return m_netinfo->GetNet();
107  }
int GetNet() const
Function GetNet.
Definition: netinfo.h:227
NETINFO_ITEM * m_netinfo
Stores all informations about the net that item belongs to.

References NETINFO_ITEM::GetNet(), and BOARD_CONNECTED_ITEM::m_netinfo.

Referenced by PCB_EDIT_FRAME::Attribut_net(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Begin_Zone(), ZONE_FILLER::buildUnconnectedThermalStubsPolygonList(), ZONE_FILLER::buildZoneFeatureHoleList(), Collect_TrackSegmentsToDrag(), BOARD::CombineAllAreasInNet(), ZONE_FILLER::computeRawFilledAreas(), connectedItemFilter(), D_PAD::CopyNetlistSettings(), CreateRoutesSection(), CreateSignalsSection(), PCB_EDIT_FRAME::Delete_net(), PCB_EDIT_FRAME::Delete_Segment(), DRC::doEdgeZoneDrc(), DRC::doPadToPadsDrc(), DRC::doTrackDrc(), KIGFX::PCB_PAINTER::draw(), Draw(), BOARD::DrawHighLight(), D_PAD::DrawShape(), TRACK::DrawShortNetname(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::duplicateZone(), PCB_EDIT_FRAME::End_Zone(), PCB_EDIT_FRAME::EraseRedundantTrack(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), PNS::NODE::FindItemByParent(), PCB_IO::format(), DSN::SPECCTRA_DB::FromBOARD(), TRACK::GetBestInsertPoint(), CONNECTIVITY_DATA::GetConnectedItems(), TRACK::GetEndNetCode(), ZONE_CONTAINER::GetMsgPanelInfo(), TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetClass(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), TRACK::GetStartNetCode(), TRACK::GetTrack(), hash_eda(), DIALOG_PAD_PROPERTIES::initValues(), ZONE_CONTAINER::IsSame(), LocateIntrusion(), Magnetize(), DSN::SPECCTRA_DB::makeIMAGE(), AR_AUTOPLACER::nearestPad(), CONNECTIVITY_DATA::NearestUnconnectedTargets(), ROUTER_TOOL::NeighboringSegmentFilter(), CN_ITEM::Net(), BOARD::NormalizeAreaPolygon(), BOARD::OnAreaPolygonModified(), ZONE_SETTINGS::operator<<(), DIALOG_PAD_PROPERTIES::PadTypeSelected(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), PCB_EDIT_FRAME::Process_Special_Functions(), PushTrack(), PCB_EDIT_FRAME::Remove_One_Track(), PCB_EDIT_FRAME::Remove_Zone_Corner(), TRACKS_CLEANER::removeDuplicatesOfTrack(), PCB_SELECTION_CONDITIONS::sameNetFunc(), SaveCopyOfZones(), BOARD::SetAreasNetCodesFromNetNames(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::Start_Move_Zone_Corner(), PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge(), PCB_EDIT_FRAME::Start_Move_Zone_Outlines(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), PNS_KICAD_IFACE::syncPad(), PNS_KICAD_IFACE::syncTrack(), PNS_KICAD_IFACE::syncVia(), BOARD::TestAreaIntersections(), DRC::testZones(), DRC::TestZoneToZoneOutline(), TrackListSortByNetcode(), BOARD::TracksInNet(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), NETINFO_MAPPING::Update(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), ZONE_CONTAINER::ZONE_CONTAINER(), and PCB_EDITOR_CONTROL::ZoneMerge().

◆ GetNetname()

const wxString& BOARD_CONNECTED_ITEM::GetNetname ( ) const
inlineinherited

Function GetNetname.

Returns
wxString - the full netname

Definition at line 123 of file board_connected_item.h.

124  {
125  return m_netinfo->GetNetname();
126  }
const wxString & GetNetname() const
Function GetNetname.
Definition: netinfo.h:235
NETINFO_ITEM * m_netinfo
Stores all informations about the net that item belongs to.

References NETINFO_ITEM::GetNetname(), and BOARD_CONNECTED_ITEM::m_netinfo.

Referenced by KIGFX::PCB_PAINTER::draw(), PCB_IO::format(), DSN::SPECCTRA_DB::FromBOARD(), D_PAD::GetMsgPanelInfo(), BOARD_NETLIST_UPDATER::getNetname(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), CN_CLUSTER::OriginNetName(), BRDITEMS_PLOTTER::PlotFilledAreas(), BRDITEMS_PLOTTER::PlotPad(), PlotStandardLayer(), and BOARD_NETLIST_UPDATER::updateCopperZoneNets().

◆ GetNetnameMsg()

wxString BOARD_CONNECTED_ITEM::GetNetnameMsg ( ) const
inlineinherited

Function GetNetnameMsg.

Returns
wxString - the full netname or "<no net>" in square braces, followed by "(Not Found)" if the netcode is undefined.

Definition at line 133 of file board_connected_item.h.

134  {
135  if( !GetBoard() )
136  return wxT( "[** NO BOARD DEFINED **]" );
137 
138  wxString netname = GetNetname();
139 
140  if( !netname.length() )
141  return wxT( "[<no net>]" );
142  else if( GetNetCode() < 0 )
143  return wxT( "[" + UnescapeString( netname ) + "](" + _( "Not Found" ) + ")" );
144  else
145  return wxT( "[" + UnescapeString( netname ) + "]" );
146  }
int GetNetCode() const
Function GetNetCode.
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
const wxString & GetNetname() const
Function GetNetname.
wxString UnescapeString(const wxString &aSource)
Definition: string.cpp:123

References BOARD_ITEM::GetBoard(), BOARD_CONNECTED_ITEM::GetNetCode(), BOARD_CONNECTED_ITEM::GetNetname(), and UnescapeString().

Referenced by TRACK::GetSelectMenuText(), GetSelectMenuText(), and ZONE_CONTAINER::GetSelectMenuText().

◆ getNextNumberInSequence()

int BOARD_ITEM::getNextNumberInSequence ( const std::set< int > &  aSeq,
bool  aFillSequenceGaps 
)
staticprotectedinherited

Definition at line 98 of file class_board_item.cpp.

99 {
100  if( aSeq.empty() )
101  return 1;
102 
103  // By default go to the end of the sequence
104  int candidate = *aSeq.rbegin();
105 
106  // Filling in gaps in pad numbering
107  if( aFillSequenceGaps )
108  {
109  // start at the beginning
110  candidate = *aSeq.begin();
111 
112  for( auto it : aSeq )
113  {
114  if( it - candidate > 1 )
115  break;
116 
117  candidate = it;
118  }
119  }
120 
121  ++candidate;
122 
123  return candidate;
124 }

Referenced by MODULE::GetNextPadName().

◆ GetParent()

BOARD_ITEM_CONTAINER* BOARD_ITEM::GetParent ( void  ) const
inlineinherited

Definition at line 117 of file class_board_item.h.

117 { return (BOARD_ITEM_CONTAINER*) m_Parent; }
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:174
Abstract interface for BOARD_ITEMs capable of storing other items inside.

References EDA_ITEM::m_Parent.

Referenced by Abort_Move_ModuleOutline(), AbortMoveTextModule(), POINT_EDITOR::addCorner(), ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), PCB_EDIT_FRAME::createPopUpMenuForFpTexts(), FOOTPRINT_EDIT_FRAME::Delete_Edge_Module(), BOARD_ITEM::DeleteStructure(), PCB_BASE_FRAME::DeleteTextModule(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), KIGFX::PCB_PAINTER::draw(), TEXTE_MODULE::DrawUmbilical(), PCB_EDIT_FRAME::duplicateItems(), EditToolSelectionFilter(), PCB_IO::format(), FormatProbeItem(), BOARD_ITEM::GetBoard(), LEGACY_ARRAY_CREATOR::getModule(), EDGE_MODULE::GetMsgPanelInfo(), EDGE_MODULE::GetSelectMenuText(), TEXTE_MODULE::GetSelectMenuText(), TEXTE_MODULE::GetShownText(), SELECTION_TOOL::guessSelectionCandidates(), GENERAL_COLLECTOR::Inspect(), ARRAY_CREATOR::Invoke(), EDGE_MODULE::IsParentFlipped(), TEXTE_MODULE::IsParentFlipped(), LEGACY_PLUGIN::loadMODULE_TEXT(), PCB_EDIT_FRAME::moveExact(), FOOTPRINT_EDIT_FRAME::OnRightClick(), FOOTPRINT_EDIT_FRAME::Place_EdgeMod(), PCB_BASE_FRAME::PlaceTexteModule(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), BRDITEMS_PLOTTER::PlotTextModule(), PCB_EDIT_FRAME::Process_Special_Functions(), BOARD_COMMIT::Push(), PCB_BASE_FRAME::ResetTextSize(), PCB_BASE_FRAME::RotateTextModule(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), SELECTION_TOOL::select(), ShowCurrentOutlineWhileMoving(), ShowNewEdgeModule(), PCB_BASE_FRAME::StartMoveTexteModule(), SwapItemData(), DRC::testCopperDrawItem(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().

◆ GetPosition()

const wxPoint VIA::GetPosition ( ) const
inlineoverridevirtual

◆ GetSelectMenuText()

wxString VIA::GetSelectMenuText ( EDA_UNITS_T  aUnits) const
overridevirtual

Function GetSelectMenuText returns the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position.

The default version of this function raises an assertion in the debug mode and returns a string to indicate that it was not overridden to provide the object specific text.

Returns
The menu text string.

Reimplemented from TRACK.

Definition at line 126 of file class_track.cpp.

127 {
128  wxString format;
129  BOARD* board = GetBoard();
130 
131  switch( GetViaType() )
132  {
133  case VIA_BLIND_BURIED:
134  format = _( "Blind/Buried Via %s %s on %s - %s" );
135  break;
136  case VIA_MICROVIA:
137  format = _( "Micro Via %s %s on %s - %s" );
138  break;
139  // else say nothing about normal (through) vias
140  default:
141  format = _( "Via %s %s on %s - %s" );
142  break;
143  }
144 
145  if( board )
146  {
147  // say which layers, only two for now
148  PCB_LAYER_ID topLayer;
149  PCB_LAYER_ID botLayer;
150  LayerPair( &topLayer, &botLayer );
151  return wxString::Format( format.GetData(),
152  MessageTextFromValue( aUnits, m_Width ),
153  GetNetnameMsg(),
154  board->GetLayerName( topLayer ),
155  board->GetLayerName( botLayer ) );
156 
157  }
158  else
159  {
160  return wxString::Format( format.GetData(),
161  MessageTextFromValue( aUnits, m_Width ),
162  GetNetnameMsg(),
163  wxT( "??" ),
164  wxT( "??" ) );
165  }
166 }
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...
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
wxString MessageTextFromValue(EDA_UNITS_T aUnits, int aValue, bool aUseMils)
Definition: base_units.cpp:125
PCB_LAYER_ID
A quick note on layer IDs:
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
VIATYPE_T GetViaType() const
Definition: class_track.h:437
wxString GetNetnameMsg() const
Function GetNetnameMsg.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170

References Format(), BOARD_ITEM::GetBoard(), BOARD::GetLayerName(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), GetViaType(), LayerPair(), TRACK::m_Width, MessageTextFromValue(), VIA_BLIND_BURIED, and VIA_MICROVIA.

Referenced by PCB_IO::format().

◆ GetShortNetname()

const wxString& BOARD_CONNECTED_ITEM::GetShortNetname ( ) const
inlineinherited

Function GetShortNetname.

Returns
wxString - the short netname

Definition at line 152 of file board_connected_item.h.

153  {
154  return m_netinfo->GetShortNetname();
155  }
const wxString & GetShortNetname() const
Function GetShortNetname.
Definition: netinfo.h:241
NETINFO_ITEM * m_netinfo
Stores all informations about the net that item belongs to.

References NETINFO_ITEM::GetShortNetname(), and BOARD_CONNECTED_ITEM::m_netinfo.

Referenced by KIGFX::PCB_PAINTER::draw(), and D_PAD::DrawShape().

◆ GetStart()

const wxPoint& TRACK::GetStart ( ) const
inlineinherited

Definition at line 133 of file class_track.h.

133 { return m_Start; }
wxPoint m_Start
Line start point.
Definition: class_track.h:349

References TRACK::m_Start.

Referenced by CN_LIST::Add(), PCB_EDIT_FRAME::Add45DegreeSegment(), BOARD::chainMarkedSegments(), Collect_TrackSegmentsToDrag(), GRID_HELPER::computeAnchors(), ComputeBreakPoint(), CINFO3D_VISU::createLayers(), BOARD::CreateLockPoint(), CINFO3D_VISU::createNewTrack(), CreateRoutesSection(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRC::doTrackDrc(), DRC::doTrackKeepoutDrc(), DRAG_SEGM_PICKER::DRAG_SEGM_PICKER(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::EraseRedundantTrack(), export_vrml_via(), find_vias_and_tracks_at(), FindBestGridPointOnTrack(), PCB_IO::format(), DSN::SPECCTRA_DB::FromBOARD(), C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads(), TRACK::HitTest(), HitTest(), InitialiseDragParameters(), C3D_RENDER_RAYTRACING::insert3DViaHole(), LocateIntrusion(), Magnetize(), BOARD::MarkTrace(), TRACKS_CLEANER::mergeCollinearSegments(), ROUTER_TOOL::NeighboringSegmentFilter(), OrCell_Trace(), PCB_EDIT_FRAME::Other_Layer_Route(), otherEnd(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), BRDITEMS_PLOTTER::PlotDrillMarks(), PlotStandardLayer(), PushTrack(), TRACKS_CLEANER::removeDuplicatesOfTrack(), TRACKS_CLEANER::removeDuplicatesOfVia(), DRAG_SEGM_PICKER::SetAuxParameters(), Show_Drag_Track_Segment_With_Cte_Slope(), Show_MoveNode(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), PNS_KICAD_IFACE::syncTrack(), TRACKS_CLEANER::testTrackEndpointDangling(), AR_MATRIX::TraceSegmentPcb(), TraceSegmentPcb(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), updateConn(), and PCB_BRIGHT_BOX::ViewDraw().

◆ GetStartNetCode()

TRACK * TRACK::GetStartNetCode ( int  NetCode)
inherited

Definition at line 444 of file class_track.cpp.

445 {
446  TRACK* Track = this;
447  int ii = 0;
448 
449  if( NetCode == -1 )
450  NetCode = GetNetCode();
451 
452  while( Track != NULL )
453  {
454  if( Track->GetNetCode() > NetCode )
455  break;
456 
457  if( Track->GetNetCode() == NetCode )
458  {
459  ii++;
460  break;
461  }
462 
463  Track = (TRACK*) Track->Pnext;
464  }
465 
466  if( ii )
467  return Track;
468  else
469  return NULL;
470 }
int GetNetCode() const
Function GetNetCode.
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:170

References BOARD_CONNECTED_ITEM::GetNetCode(), and EDA_ITEM::Pnext.

◆ GetState()

◆ GetStatus()

STATUS_FLAGS EDA_ITEM::GetStatus ( ) const
inlineinherited

Definition at line 256 of file base_struct.h.

256 { return m_Status; }
STATUS_FLAGS m_Status
Definition: base_struct.h:167

References EDA_ITEM::m_Status.

Referenced by PCB_IO::format().

◆ GetTimeStamp()

◆ GetTrack()

TRACK * TRACK::GetTrack ( TRACK aStartTrace,
TRACK aEndTrace,
ENDPOINT_T  aEndPoint,
bool  aSameNetOnly,
bool  aSequential 
)
inherited

Function GetTrack returns the trace segment connected to the segment at aEndPoint from aStartTrace to aEndTrace.

Parameters
aStartTraceA pointer to the TRACK object to begin searching.
aEndTraceA pointer to the TRACK object to stop the search. A NULL value searches to the end of the list.
aEndPointThe start or end point of the segment to test against.
aSameNetOnlyif true stop searching when the netcode changes
aSequentialIf true, forces a forward sequential search, which is restartable; the default search can be faster but the position of the returned track in the list is unpredictable
Returns
A TRACK object pointer if found otherwise NULL.

Definition at line 1267 of file class_track.cpp.

1269 {
1270  const wxPoint& position = GetEndPoint( aEndPoint );
1271  LSET refLayers = GetLayerSet();
1272  TRACK* previousSegment;
1273  TRACK* nextSegment;
1274 
1275  if( aSequential )
1276  {
1277  // Simple sequential search: from aStartTrace forward to aEndTrace
1278  previousSegment = NULL;
1279  nextSegment = aStartTrace;
1280  }
1281  else
1282  {
1283  /* Local bidirectional search: from this backward to aStartTrace
1284  * AND forward to aEndTrace. The idea is that nearest segments
1285  * are found (on average) faster in this way. In fact same-net
1286  * segments are almost guaranteed to be found faster, in a global
1287  * search, since they are grouped together in the track list */
1288  previousSegment = this;
1289  nextSegment = this;
1290  }
1291 
1292  while( nextSegment || previousSegment )
1293  {
1294  // Terminate the search in the direction if the netcode mis-matches
1295  if( aSameNetOnly )
1296  {
1297  if( nextSegment && (nextSegment->GetNetCode() != GetNetCode()) )
1298  nextSegment = NULL;
1299  if( previousSegment && (previousSegment->GetNetCode() != GetNetCode()) )
1300  previousSegment = NULL;
1301  }
1302 
1303  if( nextSegment )
1304  {
1305  if ( (nextSegment != this) &&
1306  !nextSegment->GetState( BUSY | IS_DELETED ) &&
1307  ( refLayers & nextSegment->GetLayerSet() ).any() )
1308  {
1309  if( (position == nextSegment->m_Start) ||
1310  (position == nextSegment->m_End) )
1311  return nextSegment;
1312  }
1313 
1314  // Keep looking forward
1315  if( nextSegment == aEndTrace )
1316  nextSegment = NULL;
1317  else
1318  nextSegment = nextSegment->Next();
1319  }
1320 
1321  // Same as above, looking back. During sequential search this branch is inactive
1322  if( previousSegment )
1323  {
1324  if( (previousSegment != this) &&
1325  !previousSegment->GetState( BUSY | IS_DELETED ) &&
1326  ( refLayers & previousSegment->GetLayerSet() ).any()
1327  )
1328  {
1329  if( (position == previousSegment->m_Start) ||
1330  (position == previousSegment->m_End) )
1331  return previousSegment;
1332  }
1333 
1334  if( previousSegment == aStartTrace )
1335  previousSegment = NULL;
1336  else
1337  previousSegment = previousSegment->Back();
1338  }
1339  }
1340 
1341  return NULL;
1342 }
int GetNetCode() const
Function GetNetCode.
wxPoint m_Start
Line start point.
Definition: class_track.h:349
#define BUSY
Pcbnew: flag indicating that the structure has.
Definition: base_struct.h:134
Class LSET is a set of PCB_LAYER_IDs.
#define IS_DELETED
Definition: base_struct.h:117
wxPoint m_End
Line end point.
Definition: class_track.h:350
TRACK * Next() const
Definition: class_track.h:110
const wxPoint & GetEndPoint(ENDPOINT_T aEndPoint) const
Return the selected endpoint (start or end)
Definition: class_track.h:137
int GetState(int type) const
Definition: base_struct.h:243
virtual LSET GetLayerSet() const
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
TRACK * Back() const
Definition: class_track.h:111

References TRACK::Back(), BUSY, TRACK::GetEndPoint(), BOARD_ITEM::GetLayerSet(), BOARD_CONNECTED_ITEM::GetNetCode(), EDA_ITEM::GetState(), IS_DELETED, TRACK::m_End, TRACK::m_Start, and TRACK::Next().

Referenced by TRACK::GetEndSegments(), TRACKS_CLEANER::MergeCollinearTracks(), and PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope().

◆ GetVia() [1/2]

VIA * TRACK::GetVia ( const wxPoint &  aPosition,
PCB_LAYER_ID  aLayer = UNDEFINED_LAYER 
)
inherited

Function GetVia finds the first VIA object at aPosition on aLayer starting at the trace.

Parameters
aPositionThe wxPoint to HitTest() against.
aLayerThe layer to match, pass -1 for a don't care.
Returns
A pointer to a VIA object if found, else NULL.

Definition at line 1236 of file class_track.cpp.

1237 {
1238  for( VIA* via = GetFirstVia( this ); via; via = GetFirstVia( via->Next() ) )
1239  {
1240  if( via->HitTest( aPosition ) &&
1241  !via->GetState( BUSY | IS_DELETED ) &&
1242  ((aLayer == UNDEFINED_LAYER) || (via->IsOnLayer( aLayer ))) )
1243  return via;
1244  }
1245 
1246  return NULL;
1247 }
#define BUSY
Pcbnew: flag indicating that the structure has.
Definition: base_struct.h:134
#define IS_DELETED
Definition: base_struct.h:117
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:490

References BUSY, GetFirstVia(), IS_DELETED, and UNDEFINED_LAYER.

Referenced by BOARD::chainMarkedSegments(), and TRACK::GetEndSegments().

◆ GetVia() [2/2]

VIA * TRACK::GetVia ( TRACK aEndTrace,
const wxPoint &  aPosition,
LSET  aLayerMask 
)
inherited

Function GetVia finds the first VIA object at aPosition on aLayer starting at the trace and ending at aEndTrace.

Parameters
aEndTracePointer to the last TRACK object to end search.
aPositionThe wxPoint to HitTest() against.
aLayerMaskThe layers to match, pass -1 for a don't care.
Returns
A pointer to a VIA object if found, else NULL.

Definition at line 1250 of file class_track.cpp.

1251 {
1252  for( VIA* via = GetFirstVia( this, aEndTrace ); via; via = GetFirstVia( via->Next() ) )
1253  {
1254  if( via->HitTest( aPosition ) &&
1255  !via->GetState( BUSY | IS_DELETED ) &&
1256  ( aLayerMask & via->GetLayerSet() ).any()
1257  )
1258  {
1259  return via;
1260  }
1261  }
1262 
1263  return NULL;
1264 }
#define BUSY
Pcbnew: flag indicating that the structure has.
Definition: base_struct.h:134
#define IS_DELETED
Definition: base_struct.h:117
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:490

References BUSY, GetFirstVia(), and IS_DELETED.

◆ GetViaType()

◆ GetWidth()

◆ HitTest() [1/2]

bool VIA::HitTest ( const wxPoint &  aPosition,
int  aAccuracy = 0 
) const
overridevirtual

Function HitTest tests if aPosition is contained within or on the bounding box of an item.

Parameters
aPositionA reference to a wxPoint object containing the coordinates to test.
aAccuracyIncrease the item bounding box by this amount.
Returns
True if aPosition is within the item bounding box.

Reimplemented from TRACK.

Definition at line 1192 of file class_track.cpp.

1193 {
1194  int max_dist = aAccuracy + ( m_Width / 2 );
1195 
1196  // rel_pos is aPosition relative to m_Start (or the center of the via)
1197  wxPoint rel_pos = aPosition - m_Start;
1198  double dist = (double) rel_pos.x * rel_pos.x + (double) rel_pos.y * rel_pos.y;
1199  return dist <= (double) max_dist * max_dist;
1200 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
static const int dist[10][10]
Definition: ar_matrix.cpp:320
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348

References dist, TRACK::m_Start, and TRACK::m_Width.

◆ HitTest() [2/2]

bool VIA::HitTest ( const EDA_RECT aRect,
bool  aContained,
int  aAccuracy = 0 
) const
overridevirtual

Function HitTest tests if aRect intersects or is contained within the bounding box of an item.

Parameters
aRectA reference to a EDA_RECT object containing the rectangle to test.
aContainedSet to true to test for containment instead of an intersection.
aAccuracyIncrease aRect by this amount.
Returns
True if aRect contains or intersects the item bounding box.

Reimplemented from TRACK.

Definition at line 1216 of file class_track.cpp.

1217 {
1218  EDA_RECT box;
1219  EDA_RECT arect = aRect;
1220  arect.Inflate( aAccuracy );
1221 
1222  box.SetOrigin( GetStart() );
1223  box.Inflate( GetWidth() / 2 );
1224 
1225  if( aContained )
1226  {
1227  return arect.Contains( box );
1228  }
1229  else
1230  {
1231  return arect.IntersectsCircle( GetStart(), GetWidth() / 2 );
1232  }
1233 }
const wxPoint & GetStart() const
Definition: class_track.h:133
bool IntersectsCircle(const wxPoint &aCenter, const int aRadius) const
Function IntersectsCircle tests for a common area between a circle and this rectangle.
void SetOrigin(const wxPoint &pos)
Definition: eda_rect.h:124
bool Contains(const wxPoint &aPoint) const
Function Contains.
int GetWidth() const
Definition: class_track.h:127
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
EDA_RECT & Inflate(wxCoord dx, wxCoord dy)
Function Inflate inflates the rectangle horizontally by dx and vertically by dy.

References EDA_RECT::Contains(), TRACK::GetStart(), TRACK::GetWidth(), EDA_RECT::Inflate(), EDA_RECT::IntersectsCircle(), and EDA_RECT::SetOrigin().

◆ IsBrightened()

bool EDA_ITEM::IsBrightened ( ) const
inlineinherited

Definition at line 230 of file base_struct.h.

230 { return m_Flags & BRIGHTENED; }
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References BRIGHTENED, and EDA_ITEM::m_Flags.

Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), and KIGFX::SCH_PAINTER::getRenderColor().

◆ IsConnected()

bool BOARD_CONNECTED_ITEM::IsConnected ( ) const
inlineoverridevirtualinherited

Reimplemented from BOARD_ITEM.

Definition at line 76 of file board_connected_item.h.

77  {
78  return true;
79  }

◆ IsDragging()

bool EDA_ITEM::IsDragging ( ) const
inlineinherited

◆ IsDrillDefault()

bool VIA::IsDrillDefault ( ) const
inline

Function IsDrillDefault.

Returns
true if the drill value is default value (-1)

Definition at line 472 of file class_track.h.

472 { return m_Drill <= 0; }
int m_Drill
Definition: class_track.h:485

References m_Drill.

◆ IsHighlighted()

bool EDA_ITEM::IsHighlighted ( ) const
inlineinherited

Definition at line 229 of file base_struct.h.

229 { return m_Flags & HIGHLIGHTED; }
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References HIGHLIGHTED, and EDA_ITEM::m_Flags.

Referenced by KIGFX::SCH_PAINTER::getRenderColor().

◆ IsLocked()

bool TRACK::IsLocked ( ) const
inlineoverridevirtualinherited

Function IsLocked.

Returns
bool - true if the object is locked, else false

Reimplemented from BOARD_ITEM.

Definition at line 148 of file class_track.h.

149  {
150  return GetState( TRACK_LOCKED );
151  }
#define TRACK_LOCKED
Pcbnew: track locked: protected from global deletion.
Definition: base_struct.h:128
int GetState(int type) const
Definition: base_struct.h:243

References EDA_ITEM::GetState(), and TRACK_LOCKED.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), PNS_KICAD_IFACE::syncTrack(), and PNS_KICAD_IFACE::syncVia().

◆ IsModified()

bool EDA_ITEM::IsModified ( ) const
inlineinherited

Definition at line 223 of file base_struct.h.

223 { return m_Flags & IS_CHANGED; }
#define IS_CHANGED
std::function passed to nested users by ref, avoids copying std::function
Definition: base_struct.h:110
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References IS_CHANGED, and EDA_ITEM::m_Flags.

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

◆ IsMoving()

◆ IsNew()

bool EDA_ITEM::IsNew ( ) const
inlineinherited

Definition at line 222 of file base_struct.h.

222 { return m_Flags & IS_NEW; }
#define IS_NEW
New item, just created.
Definition: base_struct.h:114
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References IS_NEW, and EDA_ITEM::m_Flags.

Referenced by Abort_Edit_Pcb_Text(), Abort_EditEdge(), Abort_Move_ModuleOutline(), Abort_MoveOrCopyModule(), Abort_Zone_Create_Outline(), AbortBuildDimension(), AbortMoveAndEditTarget(), SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_EDIT_TOOL::AutoplaceFields(), LIB_CIRCLE::CalcEdit(), LIB_RECTANGLE::CalcEdit(), LIB_FIELD::CalcEdit(), LIB_POLYLINE::CalcEdit(), LIB_ARC::CalcEdit(), LIB_TEXT::CalcEdit(), LIB_POLYLINE::ContinueEdit(), LIB_ARC::ContinueEdit(), SCH_EDIT_TOOL::ConvertDeMorgan(), SCH_EDIT_FRAME::ConvertTextType(), PCB_EDIT_FRAME::Delete_Segment(), PCB_EDIT_FRAME::Delete_Segment_Edge(), LIB_ARC::drawGraphic(), LIB_EDIT_TOOL::Duplicate(), SCH_EDIT_TOOL::Duplicate(), LIB_PIN::EnableEditMode(), LIB_DRAWING_TOOLS::Init(), isNewSegment(), SCH_MOVE_TOOL::Main(), LIB_MOVE_TOOL::Main(), EDIT_TOOL::MoveExact(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), FOOTPRINT_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_BASE_FRAME::PlaceModule(), LIB_PIN_TOOL::PlacePin(), PCB_EDIT_FRAME::PlaceTarget(), ShowClearance(), PCB_EDIT_FRAME::StartMoveTextePcb(), PCB_EDIT_FRAME::SwitchLayer(), DIALOG_SCH_EDIT_SHEET_PIN::TransferDataFromWindow(), and DIALOG_LABEL_EDITOR::TransferDataFromWindow().

◆ IsNull()

bool TRACK::IsNull ( )
inherited

Function IsNull returns true if segment length is zero.

Definition at line 198 of file class_track.cpp.

199 {
200  if( ( Type() != PCB_VIA_T ) && ( m_Start == m_End ) )
201  return true;
202  else
203  return false;
204 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
wxPoint m_End
Line end point.
Definition: class_track.h:350
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References TRACK::m_End, TRACK::m_Start, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by ComputeBreakPoint(), and DeleteNullTrackSegments().

◆ IsOnLayer()

bool VIA::IsOnLayer ( PCB_LAYER_ID  aLayer) const
overridevirtual

Function IsOnLayer tests to see if this object is on the given layer.

Is virtual so objects like D_PAD, which reside on multiple layers can do their own form of testing.

Parameters
aLayerThe layer to test for.
Returns
bool - true if on given layer, else false.

Reimplemented from BOARD_ITEM.

Definition at line 325 of file class_track.cpp.

326 {
327  PCB_LAYER_ID bottom_layer, top_layer;
328 
329  LayerPair( &top_layer, &bottom_layer );
330 
331  wxASSERT( top_layer <= bottom_layer );
332 
333  if( top_layer <= layer_number && layer_number <= bottom_layer )
334  return true;
335  else
336  return false;
337 }
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...
PCB_LAYER_ID
A quick note on layer IDs:

References LayerPair().

Referenced by Draw(), and PlotLayerOutlines().

◆ IsPointOnEnds()

STATUS_FLAGS TRACK::IsPointOnEnds ( const wxPoint &  point,
int  min_dist = 0 
)
inherited

Function IsPointOnEnds returns STARTPOINT if point if near (dist = min_dist) start point, ENDPOINT if point if near (dist = min_dist) end point,STARTPOINT|ENDPOINT if point if near (dist = min_dist) both ends, or 0 if none of the above.

if min_dist < 0: min_dist = track_width/2

Definition at line 207 of file class_track.cpp.

208 {
209  STATUS_FLAGS result = 0;
210 
211  if( min_dist < 0 )
212  min_dist = m_Width / 2;
213 
214  if( min_dist == 0 )
215  {
216  if( m_Start == point )
217  result |= STARTPOINT;
218 
219  if( m_End == point )
220  result |= ENDPOINT;
221  }
222  else
223  {
224  double dist = GetLineLength( m_Start, point );
225 
226  if( min_dist >= KiROUND( dist ) )
227  result |= STARTPOINT;
228 
229  dist = GetLineLength( m_End, point );
230 
231  if( min_dist >= KiROUND( dist ) )
232  result |= ENDPOINT;
233  }
234 
235  return result;
236 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
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:200
static const int dist[10][10]
Definition: ar_matrix.cpp:320
static int KiROUND(double v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: common.h:118
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
wxPoint m_End
Line end point.
Definition: class_track.h:350
unsigned STATUS_FLAGS
Definition: base_struct.h:150
#define ENDPOINT
ends. (Used to support dragging.)
Definition: base_struct.h:120
#define STARTPOINT
When a line is selected, these flags indicate which.
Definition: base_struct.h:119

References dist, ENDPOINT, GetLineLength(), KiROUND(), TRACK::m_End, TRACK::m_Start, TRACK::m_Width, and STARTPOINT.

Referenced by PCB_EDIT_FRAME::createPopupMenuForTracks(), ROUTER_TOOL::NeighboringSegmentFilter(), and PCB_EDIT_FRAME::StartMoveOneNodeOrSegment().

◆ IsReplaceable()

virtual bool EDA_ITEM::IsReplaceable ( ) const
inlinevirtualinherited

Function IsReplaceable.

Override this method in any derived object that supports test find and replace.

Returns
True if the item has replaceable text that can be modified using the find and replace dialog.

Reimplemented in SCH_COMPONENT, SCH_SHEET, SCH_LABEL, SCH_FIELD, SCH_SHEET_PIN, and SCH_TEXT.

Definition at line 502 of file base_struct.h.

502 { return false; }

Referenced by EDA_ITEM::Matches(), and EDA_ITEM::Replace().

◆ IsResized()

bool EDA_ITEM::IsResized ( ) const
inlineinherited

Definition at line 228 of file base_struct.h.

228 { return m_Flags & IS_RESIZED; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181
#define IS_RESIZED
Item being resized.
Definition: base_struct.h:115

References IS_RESIZED, and EDA_ITEM::m_Flags.

Referenced by LIB_POLYLINE::CalcEdit(), and KIGFX::SCH_PAINTER::setColors().

◆ IsSelected()

◆ IsTrack()

bool BOARD_ITEM::IsTrack ( ) const
inlineinherited

Function IsTrack tests to see if this object is a track or via (or microvia).

form of testing.

Returns
bool - true if a track or via, else false.

Definition at line 184 of file class_board_item.h.

185  {
186  return ( Type() == PCB_TRACE_T ) || ( Type() == PCB_VIA_T );
187  }
class TRACK, a track segment (segment on a copper layer)
Definition: typeinfo.h:95
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References PCB_TRACE_T, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by PCB_EDIT_FRAME::OnHotKey(), and PCB_EDIT_FRAME::OnHotkeyDeleteItem().

◆ IsType()

virtual bool EDA_ITEM::IsType ( const KICAD_T  aScanTypes[])
inlinevirtualinherited

Function IsType Checks whether the item is one of the listed types.

Parameters
aScanTypesList of item types
Returns
true if the item type is contained in the list aScanTypes

Reimplemented in SCH_FIELD, and SCH_LINE.

Definition at line 287 of file base_struct.h.

288  {
289  if( aScanTypes[0] == SCH_LOCATE_ANY_T )
290  return true;
291 
292  for( const KICAD_T* p = aScanTypes; *p != EOT; ++p )
293  {
294  if( m_StructType == *p )
295  return true;
296  }
297 
298  return false;
299  }
KICAD_T m_StructType
Run time identification, keep private so it can never be changed after a constructor sets it.
Definition: base_struct.h:166
search types array terminator (End Of Types)
Definition: typeinfo.h:82
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:78

References EOT, EDA_ITEM::m_StructType, and SCH_LOCATE_ANY_T.

Referenced by SCH_SCREEN::GetItem(), SCH_WIRE_BUS_TOOL::IsDrawingBus(), SCH_WIRE_BUS_TOOL::IsDrawingLine(), SCH_WIRE_BUS_TOOL::IsDrawingWire(), SCH_LINE::IsType(), SCH_FIELD::IsType(), EE_POINT_EDITOR::Main(), EE_SELECTION_TOOL::RequestSelection(), and EDA_ITEM::Visit().

◆ IsWireImage()

bool EDA_ITEM::IsWireImage ( ) const
inlineinherited

Definition at line 226 of file base_struct.h.

226 { return m_Flags & IS_WIRE_IMAGE; }
#define IS_WIRE_IMAGE
Item to be drawn as wireframe while editing.
Definition: base_struct.h:118
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References IS_WIRE_IMAGE, and EDA_ITEM::m_Flags.

◆ IterateForward()

SEARCH_RESULT EDA_ITEM::IterateForward ( EDA_ITEM listStart,
INSPECTOR  inspector,
void *  testData,
const KICAD_T  scanTypes[] 
)
staticinherited

Function IterateForward walks through the object tree calling the inspector() on each object type requested in scanTypes.

Parameters
listStartThe first in a list of EDA_ITEMs to iterate over.
inspectorIs an INSPECTOR to call on each object that is one of the requested scanTypes.
testDataIs an aid to testFunc, and should be sufficient to allow it to fully determine if an item meets the match criteria, but it may also be used to collect output.
scanTypesA KICAD_T array that is EOT terminated, and provides both the order and interest level of of the types of objects to be iterated over.
Returns
SEARCH_RESULT SEARCH_QUIT if the called INSPECTOR returned SEARCH_QUIT, else SCAN_CONTINUE;

Definition at line 130 of file base_struct.cpp.

134 {
135  EDA_ITEM* p = listStart;
136 
137  for( ; p; p = p->Pnext )
138  {
139  if( SEARCH_QUIT == p->Visit( inspector, testData, scanTypes ) )
140  return SEARCH_QUIT;
141  }
142 
143  return SEARCH_CONTINUE;
144 }
virtual SEARCH_RESULT Visit(INSPECTOR inspector, void *testData, const KICAD_T scanTypes[])
Function Visit may be re-implemented for each derived class in order to handle all the types given by...
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:157
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:170

References EDA_ITEM::Pnext, SEARCH_CONTINUE, SEARCH_QUIT, and EDA_ITEM::Visit().

Referenced by EE_COLLECTOR::Collect(), SCH_FIND_COLLECTOR::Collect(), EE_TYPE_COLLECTOR::Collect(), SCH_FIND_COLLECTOR::GetItem(), EE_SELECTION_TOOL::RebuildSelection(), GERBER_FILE_IMAGE::Visit(), MODULE::Visit(), and BOARD::Visit().

◆ LayerPair()

void VIA::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 these 2 layers)

Parameters
top_layer= pointer to the first layer (can be null)
bottom_layer= pointer to the last layer (can be null)

Definition at line 382 of file class_track.cpp.

383 {
384  PCB_LAYER_ID t_layer = F_Cu;
385  PCB_LAYER_ID b_layer = B_Cu;
386 
387  if( GetViaType() != VIA_THROUGH )
388  {
389  b_layer = m_BottomLayer;
390  t_layer = m_Layer;
391 
392  if( b_layer < t_layer )
393  std::swap( b_layer, t_layer );
394  }
395 
396  if( top_layer )
397  *top_layer = t_layer;
398 
399  if( bottom_layer )
400  *bottom_layer = b_layer;
401 }
PCB_LAYER_ID m_Layer
PCB_LAYER_ID
A quick note on layer IDs:
VIATYPE_T GetViaType() const
Definition: class_track.h:437
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481

References B_Cu, F_Cu, GetViaType(), m_BottomLayer, BOARD_ITEM::m_Layer, and VIA_THROUGH.

Referenced by build_via_testpoints(), DRC::doTrackDrc(), KIGFX::PCB_PAINTER::draw(), Draw(), export_vrml_via(), Flip(), PCB_IO::format(), C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads(), GetMsgPanelInfoBase(), GetSelectMenuText(), GENDRILL_WRITER_BASE::getUniqueLayerPairs(), C3D_RENDER_RAYTRACING::insert3DViaHole(), IsOnLayer(), PCB_PARSER::parseBOARD_unchecked(), PCB_EDIT_FRAME::Swap_Layers(), and PNS_KICAD_IFACE::syncVia().

◆ Matches() [1/2]

virtual bool EDA_ITEM::Matches ( wxFindReplaceData &  aSearchData,
void *  aAuxData,
wxPoint *  aFindLocation 
)
inlinevirtualinherited

Function Matches compares the item against the search criteria in aSearchData.

The base class returns false since many of the objects derived from EDA_ITEM do not have any text to search.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search criteria.
aAuxDataA pointer to optional data required for the search or NULL if not used.
aFindLocationA pointer to a wxPoint object to store the location of matched item. The pointer can be NULL if it is not used.
Returns
True if the item's text matches the search criteria in aSearchData.

Reimplemented in SCH_COMPONENT, SCH_SHEET, SCH_FIELD, SCH_SHEET_PIN, SCH_TEXT, LIB_PIN, and SCH_MARKER.

Definition at line 458 of file base_struct.h.

459  {
460  return false;
461  }

Referenced by SCH_FIND_COLLECTOR::Inspect(), SCH_MARKER::Matches(), LIB_PIN::Matches(), SCH_TEXT::Matches(), SCH_SHEET_PIN::Matches(), SCH_FIELD::Matches(), and SCH_SHEET::Matches().

◆ Matches() [2/2]

bool EDA_ITEM::Matches ( const wxString &  aText,
wxFindReplaceData &  aSearchData 
)
protectedinherited

Function Matches compares aText against search criteria in aSearchData.

This is a helper function for simplify derived class logic.

Parameters
aTextA reference to a wxString object containing the string to test.
aSearchDataThe criteria to search against.
Returns
True if aText matches the search criteria in aSearchData.

Definition at line 174 of file base_struct.cpp.

175 {
176  wxString text = aText;
177  wxString searchText = aSearchData.GetFindString();
178 
179  // Don't match if searching for replaceable item and the item doesn't support text replace.
180  if( (aSearchData.GetFlags() & FR_SEARCH_REPLACE) && !IsReplaceable() )
181  return false;
182 
183  if( aSearchData.GetFlags() & wxFR_WHOLEWORD )
184  return aText.IsSameAs( searchText, aSearchData.GetFlags() & wxFR_MATCHCASE );
185 
186  if( aSearchData.GetFlags() & FR_MATCH_WILDCARD )
187  {
188  if( aSearchData.GetFlags() & wxFR_MATCHCASE )
189  return text.Matches( searchText );
190 
191  return text.MakeUpper().Matches( searchText.MakeUpper() );
192  }
193 
194  if( aSearchData.GetFlags() & wxFR_MATCHCASE )
195  return aText.Find( searchText ) != wxNOT_FOUND;
196 
197  return text.MakeUpper().Find( searchText.MakeUpper() ) != wxNOT_FOUND;
198 }
Perform search using simple wild card matching (* & ?).
Perform a search for a item that has replaceable text.
virtual bool IsReplaceable() const
Function IsReplaceable.
Definition: base_struct.h:502

References FR_MATCH_WILDCARD, FR_SEARCH_REPLACE, and EDA_ITEM::IsReplaceable().

◆ Move() [1/2]

virtual void TRACK::Move ( const wxPoint &  aMoveVector)
inlineoverridevirtualinherited

Function Move move this object.

Parameters
aMoveVector- the move vector for this object.

Reimplemented from BOARD_ITEM.

Definition at line 113 of file class_track.h.

114  {
115  m_Start += aMoveVector;
116  m_End += aMoveVector;
117  }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
wxPoint m_End
Line end point.
Definition: class_track.h:350

References TRACK::m_End, and TRACK::m_Start.

◆ Move() [2/2]

void BOARD_ITEM::Move ( const VECTOR2I aMoveVector)
inlineinherited

Definition at line 239 of file class_board_item.h.

240  {
241  Move( wxPoint( aMoveVector.x, aMoveVector.y ) );
242  }
virtual void Move(const wxPoint &aMoveVector)
Function Move move this object.

References BOARD_ITEM::Move(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ Next()

◆ operator<()

bool EDA_ITEM::operator< ( const EDA_ITEM aItem) const
inherited

Test if another item is less than this object.

Parameters
aItem- Item to compare against.
Returns
- True if aItem is less than the item.

Definition at line 231 of file base_struct.cpp.

232 {
233  wxFAIL_MSG( wxString::Format( wxT( "Less than operator not defined for item type %s." ),
234  GetChars( GetClass() ) ) );
235 
236  return false;
237 }
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:100
virtual wxString GetClass() const =0
Function GetClass returns the class name.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205

References Format(), GetChars(), and EDA_ITEM::GetClass().

◆ Replace() [1/2]

bool EDA_ITEM::Replace ( wxFindReplaceData &  aSearchData,
wxString &  aText 
)
inherited

Helper function used in search and replace dialog Function Replace performs a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search and replace criteria.
aTextA reference to a wxString object containing the text to be replaced.
Returns
True if aText was modified, otherwise false.

Definition at line 201 of file base_struct.cpp.

202 {
203  wxCHECK_MSG( IsReplaceable(), false,
204  wxT( "Attempt to replace text in <" ) + GetClass() + wxT( "> item." ) );
205 
206  wxString searchString = (aSearchData.GetFlags() & wxFR_MATCHCASE) ? aText : aText.Upper();
207 
208  int result = searchString.Find( (aSearchData.GetFlags() & wxFR_MATCHCASE) ?
209  aSearchData.GetFindString() :
210  aSearchData.GetFindString().Upper() );
211 
212  if( result == wxNOT_FOUND )
213  return false;
214 
215  wxString prefix = aText.Left( result );
216  wxString suffix;
217 
218  if( aSearchData.GetFindString().length() + result < aText.length() )
219  suffix = aText.Right( aText.length() - ( aSearchData.GetFindString().length() + result ) );
220 
221  wxLogTrace( traceFindReplace, wxT( "Replacing '%s', prefix '%s', replace '%s', suffix '%s'." ),
222  GetChars( aText ), GetChars( prefix ), GetChars( aSearchData.GetReplaceString() ),
223  GetChars( suffix ) );
224 
225  aText = prefix + aSearchData.GetReplaceString() + suffix;
226 
227  return true;
228 }
const wxChar *const traceFindReplace
Flag to enable find and replace debug tracing.
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:100
virtual wxString GetClass() const =0
Function GetClass returns the class name.
virtual bool IsReplaceable() const
Function IsReplaceable.
Definition: base_struct.h:502

References GetChars(), EDA_ITEM::GetClass(), EDA_ITEM::IsReplaceable(), and traceFindReplace.

Referenced by FOOTPRINT_INFO_GENERATOR::GetHtmlFieldRow(), SCH_TEXT::Replace(), SCH_SHEET_PIN::Replace(), SCH_FIELD::Replace(), SCH_SHEET::Replace(), and SCH_FIND_COLLECTOR::ReplaceItem().

◆ Replace() [2/2]

virtual bool EDA_ITEM::Replace ( wxFindReplaceData &  aSearchData,
void *  aAuxData = NULL 
)
inlinevirtualinherited

Function Replace performs a text replace using the find and replace criteria in aSearchData on items that support text find and replace.

This function must be overridden for items that support text replace.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search and replace criteria.
aAuxDataA pointer to optional data required for the search or NULL if not used.
Returns
True if the item text was modified, otherwise false.

Reimplemented in SCH_SHEET, SCH_FIELD, SCH_SHEET_PIN, and SCH_TEXT.

Definition at line 490 of file base_struct.h.

490 { return false; }

◆ Rotate() [1/2]

void TRACK::Rotate ( const wxPoint &  aRotCentre,
double  aAngle 
)
overridevirtualinherited

Function Rotate Rotate this object.

Parameters
aRotCentre- the rotation point.
aAngle- the rotation angle in 0.1 degree.

Reimplemented from BOARD_ITEM.

Definition at line 275 of file class_track.cpp.

276 {
277  RotatePoint( &m_Start, aRotCentre, aAngle );
278  RotatePoint( &m_End, aRotCentre, aAngle );
279 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:216
wxPoint m_End
Line end point.
Definition: class_track.h:350

References TRACK::m_End, TRACK::m_Start, and RotatePoint().

◆ Rotate() [2/2]

void BOARD_ITEM::Rotate ( const VECTOR2I aRotCentre,
double  aAngle 
)
inlineinherited

Definition at line 255 of file class_board_item.h.

256  {
257  Rotate( wxPoint( aRotCentre.x, aRotCentre.y ), aAngle );
258  }
virtual void Rotate(const wxPoint &aRotCentre, double aAngle)
Function Rotate Rotate this object.

References BOARD_ITEM::Rotate(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ SanitizeLayers()

void VIA::SanitizeLayers ( )

Function SanitizeLayers Check so that the layers are correct dependin on the type of via, and so that the top actually is on top.

Definition at line 416 of file class_track.cpp.

417 {
418  if( GetViaType() == VIA_THROUGH )
419  {
420  m_Layer = F_Cu;
422  }
423 
424  if( m_BottomLayer < m_Layer )
425  std::swap( m_BottomLayer, m_Layer );
426 }
PCB_LAYER_ID m_Layer
VIATYPE_T GetViaType() const
Definition: class_track.h:437
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481

References B_Cu, F_Cu, GetViaType(), m_BottomLayer, BOARD_ITEM::m_Layer, and VIA_THROUGH.

Referenced by SetLayerPair(), and DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ SetBottomLayer()

void VIA::SetBottomLayer ( PCB_LAYER_ID  aLayer)

Definition at line 376 of file class_track.cpp.

377 {
378  m_BottomLayer = aLayer;
379 }
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481

References m_BottomLayer.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ SetBrightened()

void EDA_ITEM::SetBrightened ( )
inlineinherited

Definition at line 235 of file base_struct.h.

235 { SetFlags( BRIGHTENED ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:259
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137

References BRIGHTENED, and EDA_ITEM::SetFlags().

Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), EE_SELECTION_TOOL::highlight(), and SELECTION_TOOL::highlight().

◆ SetDrill()

void VIA::SetDrill ( int  aDrill)
inline

◆ SetDrillDefault()

void VIA::SetDrillDefault ( )
inline

Function SetDrillDefault sets the drill value for vias to the default value UNDEFINED_DRILL_DIAMETER.

Definition at line 466 of file class_track.h.

int m_Drill
Definition: class_track.h:485
#define UNDEFINED_DRILL_DIAMETER
Definition: class_track.h:66

References m_Drill, and UNDEFINED_DRILL_DIAMETER.

Referenced by LEGACY_PLUGIN::loadTrackList(), PCB_EDIT_FRAME::SetTrackSegmentWidth(), and VIA().

◆ SetEnd()

◆ SetFlags()

void EDA_ITEM::SetFlags ( STATUS_FLAGS  aMask)
inlineinherited

Definition at line 259 of file base_struct.h.

259 { m_Flags |= aMask; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:181

References EDA_ITEM::m_Flags.

Referenced by SCH_EAGLE_PLUGIN::addBusEntries(), PCB_BASE_FRAME::AddModuleToBoard(), AddSegmentToDragList(), PCBNEW_CONTROL::AppendBoard(), PCB_EDIT_FRAME::AppendBoardFile(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Begin_Zone(), LIB_ITEM::BeginEdit(), PCB_EDIT_FRAME::BeginMoveDimensionText(), PCB_EDIT_FRAME::BeginMoveTarget(), PCB_EDIT_FRAME::Change_Side_Module(), SCH_EDIT_FRAME::ConvertPart(), SCH_EDIT_FRAME::ConvertTextType(), CopyMarkedItems(), SCH_EDIT_FRAME::CreateNewText(), LIB_PIN_TOOL::CreatePin(), SCH_EDIT_FRAME::CreateSheetPin(), PCB_EDIT_FRAME::CreateTarget(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), SCH_WIRE_BUS_TOOL::doDrawSegments(), SCH_DRAWING_TOOLS::doPlaceComponent(), SCH_DRAWING_TOOLS::doSingleClickPlace(), LIB_DRAWING_TOOLS::doTwoClickPlace(), SCH_DRAWING_TOOLS::doTwoClickPlace(), KIGFX::SCH_PAINTER::draw(), SCH_DRAWING_TOOLS::DrawSheet(), LIB_EDIT_TOOL::Duplicate(), SCH_EDIT_TOOL::Duplicate(), PCB_EDIT_FRAME::EditDimension(), PCB_EDIT_FRAME::FlipTextePcb(), LIB_EDIT_FRAME::GetComponentFromRedoList(), LIB_EDIT_FRAME::GetComponentFromUndoList(), SCH_MOVE_TOOL::getConnectedDragItems(), FOOTPRINT_EDIT_FRAME::HandleBlockEnd(), KIGFX::SCH_VIEW::HighlightItem(), PCB_BASE_FRAME::Import_Pad_Settings(), SCH_EDIT_FRAME::ImportSheetPin(), InvokeDialogImportGfxBoard(), InvokeDialogImportGfxModule(), EDIT_POINTS_FACTORY::Make(), SCH_SCREEN::MarkConnections(), MarkItemsInBloc(), SCH_MOVE_TOOL::moveItem(), LIB_MOVE_TOOL::moveItem(), KIGFX::ORIGIN_VIEWITEM::ORIGIN_VIEWITEM(), PCB_EDIT_FRAME::Other_Layer_Route(), LIB_EDIT_TOOL::Paste(), SCH_EDITOR_CONTROL::Paste(), SCH_DRAWING_TOOLS::PlaceImage(), PCB_EDITOR_CONTROL::PlaceModule(), DRAWING_TOOL::PlaceText(), SCH_EDIT_FRAME::PutDataInPreviousState(), SCH_EDIT_TOOL::RepeatDrawItem(), LIB_PIN_TOOL::RepeatPin(), PCB_BASE_FRAME::Rotate_Module(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), LIB_EDIT_FRAME::SaveCopyInUndoList(), SCH_EDIT_FRAME::SelectUnit(), EDA_ITEM::SetBrightened(), LIB_PIN::SetConversion(), BLOCK_SELECTOR::SetFlags(), EDA_ITEM::SetHighlighted(), EDA_ITEM::SetModified(), EDA_ITEM::SetSelected(), EDA_ITEM::SetWireImage(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::Start_Move_DrawItem(), FOOTPRINT_EDIT_FRAME::Start_Move_EdgeMod(), PCB_EDIT_FRAME::Start_Move_Zone_Corner(), PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge(), PCB_EDIT_FRAME::Start_Move_Zone_Outlines(), PCB_EDIT_FRAME::StartMoveModule(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), PCB_BASE_FRAME::StartMovePad(), PCB_BASE_FRAME::StartMoveTexteModule(), PCB_EDIT_FRAME::StartMoveTextePcb(), SCH_WIRE_BUS_TOOL::startSegments(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), DIALOG_TARGET_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), and UndrawAndMarkSegmentsToDrag().

◆ SetForceVisible()

void EDA_ITEM::SetForceVisible ( bool  aEnable)
inlineinherited

Function SetForceVisible is used to set and cleag force visible flag used to force the item to be drawn even if it's draw attribute is set to not visible.

Parameters
aEnableTrue forces the item to be drawn. False uses the item's visibility setting to determine if the item is to be drawn.

Definition at line 309 of file base_struct.h.

309 { m_forceVisible = aEnable; }
bool m_forceVisible
Set to true to override the visibility setting of the item.
Definition: base_struct.h:178

References EDA_ITEM::m_forceVisible.

Referenced by SCH_EDIT_FRAME::OnFindSchematicItem(), and SCH_EDIT_FRAME::updateFindReplaceView().

◆ SetHighlighted()

void EDA_ITEM::SetHighlighted ( )
inlineinherited

Definition at line 234 of file base_struct.h.

234 { SetFlags( HIGHLIGHTED ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:259
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136

References HIGHLIGHTED, and EDA_ITEM::SetFlags().

◆ SetLayer()

virtual void BOARD_ITEM::SetLayer ( PCB_LAYER_ID  aLayer)
inlinevirtualinherited

Function SetLayer sets the layer this item is on.

Parameters
aLayerThe layer number. is virtual because some items (in fact: class DIMENSION) have a slightly different initialization

Reimplemented in ZONE_CONTAINER, and DIMENSION.

Definition at line 140 of file class_board_item.h.

141  {
142  // trap any invalid layers, then go find the caller and fix it.
143  // wxASSERT( unsigned( aLayer ) < unsigned( NB_PCB_LAYERS ) );
144  m_Layer = aLayer;
145  }
PCB_LAYER_ID m_Layer

References BOARD_ITEM::m_Layer.

Referenced by PNS_KICAD_IFACE::AddItem(), PCAD2KICAD::PCB_TEXT::AddToBoard(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_ARC::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), PCAD2KICAD::PCB_MODULE::AddToBoard(), PCAD2KICAD::PCB_LINE::AddToModule(), PCAD2KICAD::PCB_ARC::AddToModule(), PCAD2KICAD::PCB_POLYGON::AddToModule(), DIMENSION::AdjustDimensionDetails(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Create_MuWavePolygonShape(), MWAVE::CreateMicrowaveInductor(), PCB_BASE_FRAME::CreateNewModule(), PCB_EDIT_FRAME::CreateTarget(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::drawSegment(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer(), TEXTE_PCB::Flip(), PCB_TARGET::Flip(), EDGE_MODULE::Flip(), TEXTE_MODULE::Flip(), TRACK::Flip(), MODULE::Flip(), DRAWSEGMENT::Flip(), LEGACY_PLUGIN::loadMODULE(), LEGACY_PLUGIN::loadMODULE_TEXT(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), DSN::SPECCTRA_DB::makeTRACK(), DIALOG_FOOTPRINT_FP_EDITOR::OnAddField(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAddField(), PCB_EDIT_FRAME::Other_Layer_Route(), EAGLE_PLUGIN::packageCircle(), EAGLE_PLUGIN::packagePolygon(), EAGLE_PLUGIN::packageRectangle(), EAGLE_PLUGIN::packageSMD(), EAGLE_PLUGIN::packageText(), EAGLE_PLUGIN::packageWire(), GPCB_FPL_CACHE::parseMODULE(), PCB_EDITOR_CONTROL::PlaceTarget(), DRAWING_TOOL::PlaceText(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), processBoardItem(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), processTextItem(), DIALOG_PAD_PROPERTIES::redraw(), DIMENSION::SetLayer(), TEXT_MOD_GRID_TABLE::SetValueAsLong(), ShowNewTrackWhenMovingCursor(), TEXTE_MODULE::TEXTE_MODULE(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), and DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow().

◆ SetLayerPair()

void VIA::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.

Parameters
aTopLayer= first layer connected by the via
aBottomLayer= last layer connected by the via

Definition at line 361 of file class_track.cpp.

362 {
363 
364  m_Layer = aTopLayer;
365  m_BottomLayer = aBottomLayer;
366  SanitizeLayers();
367 }
PCB_LAYER_ID m_Layer
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481
void SanitizeLayers()
Function SanitizeLayers Check so that the layers are correct dependin on the type of via,...

References m_BottomLayer, BOARD_ITEM::m_Layer, and SanitizeLayers().

Referenced by PNS_KICAD_IFACE::AddItem(), PCAD2KICAD::PCB_PAD::AddToBoard(), DRAWING_TOOL::DrawVia(), Flip(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), PCB_EDIT_FRAME::Other_Layer_Route(), PCB_PARSER::parseBOARD_unchecked(), and PCB_EDIT_FRAME::Swap_Layers().

◆ SetList()

void EDA_ITEM::SetList ( DHEAD aList)
inlineinherited

Definition at line 220 of file base_struct.h.

220 { m_List = aList; }
DHEAD * m_List
which DLIST I am on.
Definition: base_struct.h:172

References EDA_ITEM::m_List.

Referenced by DHEAD::append(), DHEAD::insert(), DHEAD::remove(), and SwapItemData().

◆ SetLocalRatsnestVisible()

void BOARD_CONNECTED_ITEM::SetLocalRatsnestVisible ( bool  aVisible)
inlineinherited

Definition at line 184 of file board_connected_item.h.

185  {
186  m_localRatsnestVisible = aVisible;
187  }

References BOARD_CONNECTED_ITEM::m_localRatsnestVisible.

◆ SetLocked()

void TRACK::SetLocked ( bool  aLocked)
inlineoverridevirtualinherited

Function SetLocked modifies 'lock' status for of the item.

Reimplemented from BOARD_ITEM.

Definition at line 153 of file class_track.h.

154  {
155  return SetState( TRACK_LOCKED, aLocked );
156  }
#define TRACK_LOCKED
Pcbnew: track locked: protected from global deletion.
Definition: base_struct.h:128
void SetState(int type, int state)
Definition: base_struct.h:248

References EDA_ITEM::SetState(), and TRACK_LOCKED.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ SetModified()

◆ SetNet()

void BOARD_CONNECTED_ITEM::SetNet ( NETINFO_ITEM aNetInfo)
inlineinherited

Function SetNet Sets a NET_INFO object for the item.

Definition at line 94 of file board_connected_item.h.

95  {
96  assert( aNetInfo->GetBoard() == GetBoard() );
97  m_netinfo = aNetInfo;
98  }
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
NETINFO_ITEM * m_netinfo
Stores all informations about the net that item belongs to.

References BOARD_ITEM::GetBoard(), and BOARD_CONNECTED_ITEM::m_netinfo.

◆ SetNetCode()

bool BOARD_CONNECTED_ITEM::SetNetCode ( int  aNetCode,
bool  aNoAssert = false 
)
inherited

Function SetNetCode sets net using a net code.

Parameters
aNetCodeis a net code for the new net. It has to exist in NETINFO_LIST held by BOARD.
aNoAssertif true, do not assert that the net exists. Otherwise, item is assigned to the unconnected net.
Returns
true on success, false if the net did not exist

Definition at line 50 of file board_connected_item.cpp.

51 {
52  // if aNetCode < 0 ( typically NETINFO_LIST::FORCE_ORPHANED )
53  // or no parent board,
54  // set the m_netinfo to the dummy NETINFO_LIST::ORPHANED
55 
56  BOARD* board = GetBoard();
57  //auto connectivity = board ? board->GetConnectivity() : nullptr;
58  //bool addRatsnest = false;
59 
60  //if( connectivity )
61  //addRatsnest = connectivity->Remove( this );
62 
63  if( ( aNetCode >= 0 ) && board )
64  m_netinfo = board->FindNet( aNetCode );
65  else
67 
68  if( !aNoAssert )
69  assert( m_netinfo );
70 
71  // Add only if it was previously added to the ratsnest
72  //if( addRatsnest )
73  // connectivity->Add( this );
74 
75  return ( m_netinfo != NULL );
76 }
NETINFO_ITEM * FindNet(int aNetcode) const
Function FindNet searches for a net with the given netcode.
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
static NETINFO_ITEM ORPHANED_ITEM
NETINFO_ITEM meaning that there was no net assigned for an item, as there was no board storing net li...
Definition: netinfo.h:473
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
NETINFO_ITEM * m_netinfo
Stores all informations about the net that item belongs to.

References BOARD::FindNet(), BOARD_ITEM::GetBoard(), BOARD_CONNECTED_ITEM::m_netinfo, and NETINFO_LIST::ORPHANED_ITEM.

Referenced by PNS_KICAD_IFACE::AddItem(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), PCAD2KICAD::PCB_POLYGON::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToModule(), PCB_EDIT_FRAME::Begin_Zone(), D_PAD::CopyNetlistSettings(), BOARD_NETLIST_UPDATER::deleteSinglePadNets(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::Edit_Zone_Params(), ZONE_SETTINGS::ExportSetting(), BOARD::InsertArea(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), DSN::SPECCTRA_DB::makeTRACK(), PCB_EDIT_FRAME::Other_Layer_Route(), CLIPBOARD_IO::SaveSelection(), BOARD::SetAreasNetCodesFromNetNames(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::transferDataToPad(), and ZONE_CONTAINER::ZONE_CONTAINER().

◆ SetParent()

◆ SetPosition()

void VIA::SetPosition ( const wxPoint &  aPoint)
inlineoverridevirtual

Reimplemented from TRACK.

Definition at line 411 of file class_track.h.

411 { m_Start = aPoint; m_End = aPoint; }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
wxPoint m_End
Line end point.
Definition: class_track.h:350

References TRACK::m_End, and TRACK::m_Start.

Referenced by PNS_KICAD_IFACE::AddItem(), PCAD2KICAD::PCB_PAD::AddToBoard(), EAGLE_PLUGIN::loadSignals(), PCB_EDIT_FRAME::Other_Layer_Route(), and DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ SetSelected()

void EDA_ITEM::SetSelected ( )
inlineinherited

Definition at line 233 of file base_struct.h.

233 { SetFlags( SELECTED ); }
#define SELECTED
Definition: base_struct.h:121
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:259

References SELECTED, and EDA_ITEM::SetFlags().

Referenced by EE_SELECTION_TOOL::highlight(), SELECTION_TOOL::highlight(), and GERBVIEW_SELECTION_TOOL::selectVisually().

◆ SetStart()

◆ SetState()

◆ SetStatus()

void EDA_ITEM::SetStatus ( STATUS_FLAGS  aStatus)
inlineinherited

◆ SetTimeStamp()

void EDA_ITEM::SetTimeStamp ( timestamp_t  aNewTimeStamp)
inlineinherited

Definition at line 209 of file base_struct.h.

209 { m_TimeStamp = aNewTimeStamp; }
timestamp_t m_TimeStamp
Time stamp used for logical links.
Definition: base_struct.h:175

References EDA_ITEM::m_TimeStamp.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_FRAME::AddModuleToBoard(), BOARD_NETLIST_UPDATER::addNewComponent(), PCAD2KICAD::PCB_TEXT::AddToBoard(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_ARC::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), PCAD2KICAD::PCB_POLYGON::AddToBoard(), PCAD2KICAD::PCB_MODULE::AddToBoard(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::Begin_Zone(), Diagnose(), SCH_DRAWING_TOOLS::DrawSheet(), SCH_EDIT_TOOL::Duplicate(), SCH_ITEM::Duplicate(), DIALOG_FOOTPRINT_BOARD_EDITOR::EditFootprint(), EDIT_TOOL::editFootprintInFpEditor(), PCB_EDIT_FRAME::Exchange_Module(), PCB_IO::FootprintSave(), EDA_ITEM::initVars(), BOARD::InsertArea(), LEGACY_PLUGIN::loadMODULE(), LEGACY_PLUGIN::loadPCB_TARGET(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadPolygon(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), EDA_ITEM::operator=(), EAGLE_PLUGIN::packageCircle(), EAGLE_PLUGIN::packagePolygon(), EAGLE_PLUGIN::packageRectangle(), EAGLE_PLUGIN::packageText(), PCB_PARSER::parseDIMENSION(), SCH_EDITOR_CONTROL::Paste(), PCB_EDITOR_CONTROL::PlaceModule(), PCB_EDIT_FRAME::Process_Special_Functions(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_SCREENS::ReplaceDuplicateTimeStamps(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_SHEET::SCH_SHEET(), SCH_COMPONENT::SetTimeStamp(), SimilarLabelsDiagnose(), SwapItemData(), TestDuplicateSheetNames(), DIALOG_ERC::TestErc(), and TestMultiunitFootprints().

◆ SetTopLayer()

void VIA::SetTopLayer ( PCB_LAYER_ID  aLayer)

Definition at line 370 of file class_track.cpp.

371 {
372  m_Layer = aLayer;
373 }
PCB_LAYER_ID m_Layer

References BOARD_ITEM::m_Layer.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow().

◆ SetViaType()

◆ SetWidth()

◆ SetWireImage()

void EDA_ITEM::SetWireImage ( )
inlineinherited

Definition at line 232 of file base_struct.h.

232 { SetFlags( IS_WIRE_IMAGE ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:259
#define IS_WIRE_IMAGE
Item to be drawn as wireframe while editing.
Definition: base_struct.h:118

References IS_WIRE_IMAGE, and EDA_ITEM::SetFlags().

◆ ShowShape()

wxString BOARD_ITEM::ShowShape ( STROKE_T  aShape)
staticinherited

Function ShowShape converts the enum STROKE_T integer value to a wxString.

Definition at line 39 of file class_board_item.cpp.

40 {
41  switch( aShape )
42  {
43  case S_SEGMENT: return _( "Line" );
44  case S_RECT: return _( "Rect" );
45  case S_ARC: return _( "Arc" );
46  case S_CIRCLE: return _( "Circle" );
47  case S_CURVE: return _( "Bezier Curve" );
48  case S_POLYGON: return _( "Polygon" );
49  default: return wxT( "??" );
50  }
51 }
polygon (not yet used for tracks, but could be in microwave apps)
usual segment : line with rounded ends
segment with non rounded ends
Arcs (with rounded ends)
Bezier Curve.

References S_ARC, S_CIRCLE, S_CURVE, S_POLYGON, S_RECT, and S_SEGMENT.

Referenced by ConvertOutlineToPolygon(), DRAWSEGMENT::GetCenter(), EDGE_MODULE::GetSelectMenuText(), DRAWSEGMENT::GetSelectMenuText(), DSN::SPECCTRA_DB::makeIMAGE(), and DRAWSEGMENT::Rotate().

◆ Sort()

static bool EDA_ITEM::Sort ( const EDA_ITEM aLeft,
const EDA_ITEM aRight 
)
inlinestaticinherited

Function Sort is a helper function to be used by the C++ STL sort algorithm for sorting a STL container of EDA_ITEM pointers.

Parameters
aLeftThe left hand item to compare.
aRightThe right hand item to compare.
Returns
True if aLeft is less than aRight.

Definition at line 521 of file base_struct.h.

521 { return *aLeft < *aRight; }

Referenced by PART_LIB::GetEntryTypePowerNames().

◆ SwapData()

void VIA::SwapData ( BOARD_ITEM aImage)
overridevirtual

Swap data between aItem and aImage.

aItem and aImage should have the same type Used in undo redo command to swap values between an item and its copy Only values like layer, size .. which are modified by editing are swapped, not the pointers like Pnext and Pback because aItem is not changed in the linked list

Parameters
aImage= the item image which contains data to swap

Reimplemented from TRACK.

Definition at line 1500 of file class_track.cpp.

1501 {
1502  assert( aImage->Type() == PCB_VIA_T );
1503 
1504  std::swap( *((VIA*) this), *((VIA*) aImage) );
1505 }
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References PCB_VIA_T, and EDA_ITEM::Type().

◆ TopLayer()

PCB_LAYER_ID VIA::TopLayer ( ) const

Definition at line 404 of file class_track.cpp.

405 {
406  return m_Layer;
407 }
PCB_LAYER_ID m_Layer

References BOARD_ITEM::m_Layer.

Referenced by DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES().

◆ TransformShapeWithClearanceToPolygon()

void TRACK::TransformShapeWithClearanceToPolygon ( SHAPE_POLY_SET aCornerBuffer,
int  aClearanceValue,
int  aCircleToSegmentsCount,
double  aCorrectionFactor,
bool  ignoreLineWidth = false 
) const
overridevirtualinherited

Function TransformShapeWithClearanceToPolygon Convert the track shape to a closed polygon Used in filling zones calculations Circles (vias) and arcs (ends of tracks) are approximated by segments.

Parameters
aCornerBuffer= a buffer to store the polygon
aClearanceValue= the clearance around the pad
aCircleToSegmentsCount= the number of segments to approximate a circle
aCorrectionFactor= the correction to apply to circles radius to keep clearance when the circle is approximated by segment bigger or equal to the real clearance value (usually near from 1.0)
ignoreLineWidth= used for edge cut items where the line width is only for visualization

Reimplemented from BOARD_ITEM.

Definition at line 660 of file board_items_to_polygon_shape_transform.cpp.

665 {
666  wxASSERT_MSG( !ignoreLineWidth, "IgnoreLineWidth has no meaning for tracks." );
667 
668  switch( Type() )
669  {
670  case PCB_VIA_T:
671  {
672  int radius = (m_Width / 2) + aClearanceValue;
673  radius = KiROUND( radius * aCorrectionFactor );
674  TransformCircleToPolygon( aCornerBuffer, m_Start, radius, aCircleToSegmentsCount );
675  }
676  break;
677 
678  default:
680  m_Width + ( 2 * aClearanceValue),
681  aCircleToSegmentsCount,
682  aCorrectionFactor );
683  break;
684  }
685 }
wxPoint m_Start
Line start point.
Definition: class_track.h:349
static int KiROUND(double v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: common.h:118
void TransformOvalClearanceToPolygon(SHAPE_POLY_SET &aCornerBuffer, wxPoint aStart, wxPoint aEnd, int aWidth, int aCircleToSegmentsCount, double aCorrectionFactor)
convert a oblong shape to a polygon, using multiple segments It is similar to TransformRoundedEndsSeg...
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
wxPoint m_End
Line end point.
Definition: class_track.h:350
void TransformCircleToPolygon(SHAPE_LINE_CHAIN &aBuffer, wxPoint aCenter, int aRadius, int aCircleToSegmentsCount)
Function TransformCircleToPolygon convert a circle to a polygon, using multiple straight lines.
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:96
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References KiROUND(), TRACK::m_End, TRACK::m_Start, TRACK::m_Width, PCB_VIA_T, TransformCircleToPolygon(), TransformOvalClearanceToPolygon(), and EDA_ITEM::Type().

Referenced by CINFO3D_VISU::createLayers(), and PlotSolderMaskLayer().

◆ Type()

KICAD_T EDA_ITEM::Type ( ) const
inlineinherited

Function Type()

returns the type of object. This attribute should never be changed after a constructor sets it, so there is no public "setter" method.

Returns
KICAD_T - the type of object.

Definition at line 204 of file base_struct.h.

205  {
206  return m_StructType;
207  }
KICAD_T m_StructType
Run time identification, keep private so it can never be changed after a constructor sets it.
Definition: base_struct.h:166

References EDA_ITEM::m_StructType.

Referenced by Abort_Move_ModuleOutline(), MODULE::Add(), CN_CONNECTIVITY_ALGO::Add(), BOARD::Add(), CN_CLUSTER::Add(), PCB_EDIT_FRAME::Add45DegreeSegment(), POINT_EDITOR::addCorner(), CONNECTION_SUBGRAPH::AddItem(), SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_MOVE_TOOL::addJunctionsIfNeeded(), SCH_SHEET::AddPin(), ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), CN_ITEM::AnchorCount(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Block_Duplicate(), PCB_EDIT_FRAME::Block_Flip(), PCB_EDIT_FRAME::Block_Move(), PCB_EDIT_FRAME::Block_Rotate(), CONNECTION_GRAPH::buildConnectionGraph(), HIERARCHY_NAVIG_DLG::buildHierarchyTree(), SCH_SCREENS::buildScreenList(), SCH_SHEET_LIST::BuildSheetList(), calcArea(), calcMaxArea(), POINT_EDITOR::canAddCorner(), SCH_JUNCTION::CanConnect(), SCH_NO_CONNECT::CanConnect(), SCH_BUS_WIRE_ENTRY::CanConnect(), SCH_LINE::CanConnect(), SCH_BUS_BUS_ENTRY::CanConnect(), SCH_LABEL::CanConnect(), SCH_GLOBALLABEL::CanConnect(), SCH_HIERLABEL::CanConnect(), SCH_SHEET::CanConnect(), SCH_COMPONENT::CanConnect(), ROUTER_TOOL::CanInlineDrag(), SCH_SCREENS::ChangeSymbolLibNickname(), CN_VISITOR::checkZoneItemConnection(), TEXTE_PCB::ClassOf(), EDGE_MODULE::ClassOf(), BOARD_CONNECTED_ITEM::ClassOf(), PCB_TARGET::ClassOf(), TEXTE_MODULE::ClassOf(), DRAWSEGMENT::ClassOf(), ZONE_CONTAINER::ClassOf(), MARKER_PCB::ClassOf(), DIMENSION::ClassOf(), NETINFO_ITEM::ClassOf(), TRACK::ClassOf(), MODULE::ClassOf(), SCH_COMPONENT::ClassOf(), D_PAD::ClassOf(), BOARD::ClassOf(), ClassOf(), SCH_SHEET::CleanupSheet(), EE_COLLECTOR::Collect(), Collect_TrackSegmentsToDrag(), LIB_CIRCLE::compare(), LIB_RECTANGLE::compare(), LIB_BEZIER::compare(), LIB_POLYLINE::compare(), LIB_TEXT::compare(), LIB_ARC::compare(), LIB_FIELD::compare(), LIB_PIN::compare(), SCH_SHEET::ComponentCount(), GRID_HELPER::computeAnchors(), SCH_BUS_WIRE_ENTRY::ConnectionPropagatesTo(), SCH_EDIT_FRAME::ConvertTextType(), SCH_SCREEN::CountConnectedItems(), SCH_SHEET::CountSheets(), MODULE::CoverageRatio(), CINFO3D_VISU::createLayers(), BOARD::CreateLockPoint(), SCH_EDIT_FRAME::CreateNewText(), CINFO3D_VISU::createNewTrack(), PCB_EDIT_FRAME::createPopupMenuForTracks(), CreateRoutesSection(), PCB_EDITOR_CONTROL::CrossProbeSchToPcb(), D_PAD::D_PAD(), FOOTPRINT_EDIT_FRAME::Delete_Edge_Module(), SCH_SCREENS::DeleteAllMarkers(), SCH_SCREEN::DeleteItem(), DeleteNullTrackSegments(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_ERC::DisplayERC_MarkersList(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), DRC::doTrackDrc(), DRC::doTrackKeepoutDrc(), LIB_DRAWING_TOOLS::doTwoClickPlace(), KIGFX::SCH_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::Draw(), KIGFX::PCB_PAINTER::Draw(), KIGFX::PCB_PAINTER::draw(), DrawMovingBlockOutlines(), drawPickedItems(), CN_ITEM::Dump(), SCH_ITEM::Duplicate(), BOARD::Duplicate(), MODULE::Duplicate(), PCB_EDIT_FRAME::duplicateItems(), SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_TOOL::EditField(), LIB_EDIT_TOOL::editTextProperties(), EditToolSelectionFilter(), PCB_EDIT_FRAME::EraseRedundantTrack(), CONNECTION_GRAPH::ercCheckLabels(), find_vias_and_tracks_at(), SCH_EDIT_FRAME::FindComponentAndItem(), NETLIST_EXPORTER::findNextComponent(), NETLIST_EXPORTER::findNextComponentAndCreatePinList(), SCH_SHEET_PATH::FindNextItem(), SCH_SHEET_LIST::FindNextItem(), SCH_SHEET_PATH::FindPreviousItem(), SCH_SHEET_LIST::FindPreviousItem(), EDIT_TOOL::FootprintFilter(), FootprintWriteShape(), SCH_LEGACY_PLUGIN::Format(), PCB_IO::Format(), PCB_IO::format(), FormatProbeItem(), POINT_EDITOR::get45DegConstrainer(), CN_ITEM::GetAnchor(), BOARD_ITEM::GetBoard(), TRACK::GetBoundingBox(), BOARD_CONNECTED_ITEM::GetClearance(), KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), NETLIST_OBJECT::GetComponentParent(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_TEXT::GetConnectionPoints(), CONNECTION_SUBGRAPH::GetDriverPriority(), SCH_TEXT::GetEndPoints(), SCH_SHEET::GetEndPoints(), GetFirstTrack(), GetFirstVia(), SCH_SCREEN::GetHierarchicalItems(), SCH_SCREENS::GetLibNicknames(), TEXTE_PCB::GetMsgPanelInfo(), SCH_TEXT::GetMsgPanelInfo(), CONNECTION_SUBGRAPH::GetNameForDriver(), BOARD_CONNECTED_ITEM::GetNetClass(), CONNECTIVITY_DATA::GetNetItems(), LIB_PART::GetNextDrawItem(), DRAWSEGMENT::GetParentModule(), SCH_SCREEN::GetPin(), LIB_PART::GetPin(), SCH_COMPONENT::GetPinPhysicalPosition(), getRect(), SELECTION::GetTopLeftItem(), EE_SELECTION_TOOL::guessSelectionCandidates(), SELECTION_TOOL::guessSelectionCandidates(), hash_eda(), SCH_SCREENS::HasNoFullyDefinedLibIds(), SCH_SHEET::HasUndefinedPins(), EE_SELECTION_TOOL::highlight(), SELECTION_TOOL::highlight(), KIGFX::SCH_VIEW::HighlightItem(), SCH_EDIT_FRAME::ImportSheetPin(), SCH_EDIT_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), EE_COLLECTOR::Inspect(), SCH_FIND_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), PCB_LAYER_COLLECTOR::Inspect(), ARRAY_CREATOR::Invoke(), isNewSegment(), TRACK::IsNull(), SCH_LINE::IsParallel(), SCH_SCREEN::IsTerminalPoint(), BOARD_ITEM::IsTrack(), itemIsIncludedByFilter(), CLIPBOARD_IO::Load(), PNS_PCBNEW_RULE_RESOLVER::localPadClearance(), SCH_SHEET::LocatePathOfScreen(), Magnetize(), LIB_MOVE_TOOL::Main(), EE_SELECTION_TOOL::Main(), EDIT_POINTS_FACTORY::Make(), SCH_SCREEN::MarkConnections(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), CONNECTIVITY_DATA::MarkItemNetAsDirty(), MarkItemsInBloc(), BOARD::MarkTrace(), TRACKS_CLEANER::mergeCollinearSegments(), TRACKS_CLEANER::MergeCollinearTracks(), SCH_LINE::MergeOverlap(), SCH_EDIT_TOOL::Mirror(), FOOTPRINT_EDIT_FRAME::ModeditLocateAndDisplay(), SCH_MOVE_TOOL::moveItem(), MoveMarkedItems(), MoveMarkedItemsExactly(), SCH_CONNECTION::Name(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnHotkeyCopyItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem(), PCB_EDIT_FRAME::OnHotkeyDeleteItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyDuplicateItem(), PCB_EDIT_FRAME::OnHotkeyDuplicateOrArrayItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyFlipItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem(), PCB_EDIT_FRAME::OnHotkeyMoveItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItemExact(), PCB_EDIT_FRAME::OnHotkeyPlaceItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem(), PCB_EDIT_FRAME::OnHotkeyRotateItem(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftDClick(), FOOTPRINT_EDIT_FRAME::OnRightClick(), PCB_EDIT_FRAME::OnRightClick(), POINT_EDITOR::OnSelectionChange(), SCH_LINE::operator<(), LIB_ITEM::operator<(), SCH_ITEM::operator<(), SCH_COMPONENT::operator<(), SCH_BITMAP::operator=(), SCH_SHEET::operator=(), SCH_COMPONENT::operator=(), LIB_ITEM::operator==(), OrCell_Trace(), EDIT_TOOL::PadFilter(), BOARD_COMMIT::parentObject(), SCH_EDITOR_CONTROL::Paste(), PCBNEW_CONTROL::PasteItemsFromClipboard(), PCB_BASE_FRAME::PcbGeneralLocateAndDisplay(), DRAWING_TOOL::PlaceImportedGraphics(), SCH_FIELD::Plot(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), GAL_ARRAY_CREATOR::prePushAction(), PCB_EDIT_FRAME::Process_Special_Functions(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), DIALOG_EXCHANGE_FOOTPRINTS::processMatchingModules(), LIB_EDIT_TOOL::Properties(), SCH_EDIT_TOOL::Properties(), BOARD_COMMIT::Push(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), SELECTION_TOOL::RebuildSelection(), SCH_BASE_FRAME::RefreshItem(), DIALOG_SYMBOL_REMAP::remapSymbolsToLibTable(), MODULE::Remove(), CN_CONNECTIVITY_ALGO::Remove(), BOARD::Remove(), POINT_EDITOR::removeCorner(), POINT_EDITOR::removeCornerCondition(), LIB_PART::RemoveDrawItem(), TRACKS_CLEANER::removeDuplicatesOfTrack(), SCH_SHEET::RemovePin(), FOOTPRINT_EDIT_FRAME::RemoveStruct(), PCB_EDIT_FRAME::RemoveStruct(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_SCREENS::ReplaceDuplicateTimeStamps(), SCH_SCREEN::ReplaceWires(), PCB_BASE_FRAME::ResetTextSize(), BOARD_COMMIT::Revert(), SCH_EDIT_TOOL::Rotate(), SCH_TEXT::Rotate(), SCH_LEGACY_PLUGIN_CACHE::saveArc(), SCH_LEGACY_PLUGIN_CACHE::saveBezier(), SCH_LEGACY_PLUGIN_CACHE::saveCircle(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), EE_TOOL_BASE< SCH_BASE_FRAME >::saveCopyInUndoList(), SCH_LEGACY_PLUGIN_CACHE::saveField(), SCH_LEGACY_PLUGIN_CACHE::savePin(), SCH_LEGACY_PLUGIN_CACHE::savePolyLine(), SCH_LEGACY_PLUGIN_CACHE::saveRectangle(), SCH_LEGACY_PLUGIN_CACHE::saveText(), SCH_EDIT_FRAME::SaveUndoItemInUndoList(), SCH_EDIT_FRAME::SchematicCleanUp(), SCH_SHEET::SearchHierarchy(), SELECTION_TOOL::select(), EE_SELECTION_TOOL::selectable(), SELECTION_TOOL::selectable(), PCB_EDIT_FRAME::SelectHighLight(), ITEM_PICKER::SetItem(), DIALOG_LABEL_EDITOR::SetTitle(), PCB_EDIT_FRAME::SetTrackSegmentWidth(), PCB_EDIT_FRAME::Show_1_Ratsnest(), Show_MoveNode(), ShowClearance(), ShowNewTrackWhenMovingCursor(), SortByTimeStamp(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), SCH_JUNCTION::SwapData(), SCH_NO_CONNECT::SwapData(), PCB_TARGET::SwapData(), SCH_BITMAP::SwapData(), SCH_SHEET_PIN::SwapData(), TEXTE_PCB::SwapData(), SCH_FIELD::SwapData(), DIMENSION::SwapData(), DRAWSEGMENT::SwapData(), TRACK::SwapData(), SCH_SHEET::SwapData(), SwapData(), SCH_COMPONENT::SwapData(), MODULE::SwapData(), ZONE_CONTAINER::SwapData(), D_PAD::SwapData(), SwapItemData(), PCB_EDIT_FRAME::SwitchLayer(), TestDuplicateSheetNames(), TRACKS_CLEANER::testTrackEndpointDangling(), TEXTE_MODULE::TEXTE_MODULE(), AR_MATRIX::TraceSegmentPcb(), TraceSegmentPcb(), DIALOG_LABEL_EDITOR::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_LABEL_EDITOR::TransferDataToWindow(), TRACK::TransformShapeWithClearanceToPolygon(), EE_SELECTION_TOOL::unhighlight(), SELECTION_TOOL::unhighlight(), SCH_SHEET_PATH::UpdateAllScreenReferences(), SCH_TEXT::UpdateDanglingState(), EE_POINT_EDITOR::updateItem(), POINT_EDITOR::updateItem(), CONNECTION_GRAPH::updateItemConnectivity(), EE_POINT_EDITOR::updatePoints(), POINT_EDITOR::updatePoints(), EE_TOOL_BASE< SCH_BASE_FRAME >::updateView(), PCB_BRIGHT_BOX::ViewDraw(), SCH_BUS_ENTRY_BASE::ViewGetLayers(), TRACK::Visit(), GERBER_DRAW_ITEM::Visit(), SCH_SHEET::Visit(), and SCH_COMPONENT::Visit().

◆ UnLink()

void BOARD_ITEM::UnLink ( )
virtualinherited

Function UnLink detaches this object from its owner.

This base class implementation should work for all derived classes which are held in a DLIST<>.

Definition at line 54 of file class_board_item.cpp.

55 {
57  wxASSERT( list );
58 
59  if( list )
60  list->Remove( this );
61 }
DHEAD * GetList() const
Definition: base_struct.h:215
T * Remove(T *aElement)
Function Remove removes aElement from the list, but does not delete it.
Definition: dlist.h:211

References EDA_ITEM::GetList(), and DLIST< T >::Remove().

Referenced by PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Delete_Segment_Edge(), PCB_EDIT_FRAME::Delete_Texte_Pcb(), PCB_EDIT_FRAME::DeleteDimension(), PCB_EDIT_FRAME::DeleteTarget(), and PCB_EDIT_FRAME::EraseRedundantTrack().

◆ ViewBBox()

const BOX2I TRACK::ViewBBox ( ) const
overridevirtualinherited

Function ViewBBox() returns the bounding box of the item covering all its layers.

Returns
BOX2I - the current bounding box

Reimplemented from EDA_ITEM.

Definition at line 688 of file class_track.cpp.

689 {
690  BOX2I bbox = GetBoundingBox();
691  bbox.Inflate( 2 * GetClearance() );
692  return bbox;
693 }
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes.
virtual int GetClearance(BOARD_CONNECTED_ITEM *aItem=NULL) const override
Function GetClearance returns the clearance in internal units.
BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Function Inflate inflates the rectangle horizontally by dx and vertically by dy.
Definition: box2.h:300

References TRACK::GetBoundingBox(), TRACK::GetClearance(), and BOX2< Vec >::Inflate().

◆ ViewDraw()

virtual void KIGFX::VIEW_ITEM::ViewDraw ( int  aLayer,
VIEW aView 
) const
inlinevirtualinherited

Function ViewDraw() Draws the parts of the object belonging to layer aLayer.

viewDraw() is an alternative way for drawing objects if if there is no PAINTER assigned for the view or if the PAINTER doesn't know how to paint this particular implementation of VIEW_ITEM. The preferred way of drawing is to design an appropriate PAINTER object, the method below is intended only for quick hacks and debugging purposes.

Parameters
aLayercurrent drawing layer
aViewpointer to the VIEW device we are drawing on

Reimplemented in EDIT_POINTS, KIGFX::WORKSHEET_VIEWITEM, ROUTER_PREVIEW_ITEM, KIGFX::VIEW_GROUP, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::SIMPLE_OVERLAY_ITEM, KIGFX::VIEW_OVERLAY, KIGFX::ORIGIN_VIEWITEM, BRIGHT_BOX, KIGFX::PREVIEW::RULER_ITEM, KIGFX::RATSNEST_VIEWITEM, KIGFX::PREVIEW::ARC_ASSISTANT, and PCB_BRIGHT_BOX.

Definition at line 116 of file view_item.h.

117  {}

Referenced by KIGFX::VIEW::draw(), and KIGFX::VIEW::updateItemGeometry().

◆ ViewGetLayers()

void VIA::ViewGetLayers ( int  aLayers[],
int &  aCount 
) const
overridevirtual

Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on.

For instance, a D_PAD spans zero or more copper layers and a few technical layers. ViewDraw() or PAINTER::Draw() is repeatedly called for each of the layers returned by ViewGetLayers(), depending on the rendering order.

Parameters
aLayers[]output layer index array
aCountnumber of layer indices in aLayers[]

Reimplemented from TRACK.

Definition at line 908 of file class_track.cpp.

909 {
910  aLayers[0] = LAYER_VIAS_HOLES;
911  aLayers[1] = LAYER_VIAS_NETNAMES;
912  aCount = 3;
913 
914  // Just show it on common via & via holes layers
915  switch( GetViaType() )
916  {
917  case VIA_THROUGH:
918  aLayers[2] = LAYER_VIA_THROUGH;
919  break;
920 
921  case VIA_BLIND_BURIED:
922  aLayers[2] = LAYER_VIA_BBLIND;
923  aLayers[3] = m_Layer;
924  aLayers[4] = m_BottomLayer;
925  aCount += 2;
926  break;
927 
928  case VIA_MICROVIA:
929  aLayers[2] = LAYER_VIA_MICROVIA;
930  break;
931 
932  default:
933  aLayers[2] = LAYER_GP_OVERLAY;
934  wxASSERT( false );
935  break;
936  }
937 }
to draw blind/buried vias
to draw via holes (pad holes do not use this layer)
PCB_LAYER_ID m_Layer
to draw usual through hole vias
VIATYPE_T GetViaType() const
Definition: class_track.h:437
PCB_LAYER_ID m_BottomLayer
The bottom layer of the via (the top layer is in m_Layer)
Definition: class_track.h:481

References GetViaType(), LAYER_GP_OVERLAY, LAYER_VIA_BBLIND, LAYER_VIA_MICROVIA, LAYER_VIA_THROUGH, LAYER_VIAS_HOLES, LAYER_VIAS_NETNAMES, m_BottomLayer, BOARD_ITEM::m_Layer, VIA_BLIND_BURIED, VIA_MICROVIA, and VIA_THROUGH.

◆ ViewGetLOD()

unsigned int VIA::ViewGetLOD ( int  aLayer,
KIGFX::VIEW aView 
) const
overridevirtual

Function ViewGetLOD() Returns the level of detail (LOD) of the item.

A level of detail is the minimal VIEW scale that is sufficient for an item to be shown on a given layer.

Parameters
aLayercurrent drawing layer
aViewpointer to the VIEW device we are drawing on
Returns
the level of detail. 0 always show the item, because the actual zoom level (or VIEW scale) is always > 0

Reimplemented from TRACK.

Definition at line 940 of file class_track.cpp.

941 {
942  constexpr unsigned int HIDE = std::numeric_limits<unsigned int>::max();
943 
944  // Netnames will be shown only if zoom is appropriate
945  if( IsNetnameLayer( aLayer ) )
946  return m_Width == 0 ? HIDE : ( Millimeter2iu( 10 ) / m_Width );
947 
948 
949  BOARD* board = GetBoard();
950 
951  // Only draw the via if at least one of the layers it crosses is being displayed
952  if( board && ( board->GetVisibleLayers() & GetLayerSet() ).any() )
953  return 0;
954 
955  return HIDE;
956 }
virtual LSET GetLayerSet() const override
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
LSET GetVisibleLayers() const
Function GetVisibleLayers is a proxy function that calls the correspondent function in m_BoardSetting...
int m_Width
Thickness of track, or via diameter.
Definition: class_track.h:348
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
#define max(a, b)
Definition: auxiliary.h:86
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
bool IsNetnameLayer(LAYER_NUM aLayer)
Function IsNetnameLayer tests whether a layer is a netname layer.

References BOARD_ITEM::GetBoard(), GetLayerSet(), BOARD::GetVisibleLayers(), IsNetnameLayer(), TRACK::m_Width, and max.

◆ viewPrivData()

◆ Visit()

SEARCH_RESULT TRACK::Visit ( INSPECTOR  inspector,
void *  testData,
const KICAD_T  scanTypes[] 
)
overridevirtualinherited

Function Visit may be re-implemented for each derived class in order to handle all the types given by its member data.

Implementations should call inspector->Inspect() on types in scanTypes[], and may use IterateForward() to do so on lists of such data.

Parameters
inspectorAn INSPECTOR instance to use in the inspection.
testDataArbitrary data used by the inspector.
scanTypesWhich KICAD_T types are of interest and the order is significant too, terminated by EOT.
Returns
SEARCH_RESULT SEARCH_QUIT if the Iterator is to stop the scan, else SCAN_CONTINUE, and determined by the inspector.

Reimplemented from EDA_ITEM.

Definition at line 310 of file class_track.cpp.

311 {
312  KICAD_T stype = *scanTypes;
313 
314  // If caller wants to inspect my type
315  if( stype == Type() )
316  {
317  if( SEARCH_QUIT == inspector( this, testData ) )
318  return SEARCH_QUIT;
319  }
320 
321  return SEARCH_CONTINUE;
322 }
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:78
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204

References SEARCH_CONTINUE, SEARCH_QUIT, and EDA_ITEM::Type().

Member Data Documentation

◆ end

◆ m_BottomLayer

PCB_LAYER_ID VIA::m_BottomLayer
private

The bottom layer of the via (the top layer is in m_Layer)

Definition at line 481 of file class_track.h.

Referenced by BottomLayer(), GetLayerSet(), LayerPair(), SanitizeLayers(), SetBottomLayer(), SetLayerPair(), VIA(), and ViewGetLayers().

◆ m_Drill

int VIA::m_Drill
private

Definition at line 485 of file class_track.h.

Referenced by GetDrill(), GetDrillValue(), IsDrillDefault(), SetDrill(), and SetDrillDefault().

◆ m_End

◆ m_Flags

◆ m_forceVisible

bool EDA_ITEM::m_forceVisible
protectedinherited

Set to true to override the visibility setting of the item.

Definition at line 178 of file base_struct.h.

Referenced by SCH_FIELD::Draw(), EDA_ITEM::initVars(), EDA_ITEM::operator=(), and EDA_ITEM::SetForceVisible().

◆ m_Layer

◆ m_List

DHEAD* EDA_ITEM::m_List
protectedinherited

which DLIST I am on.

Definition at line 172 of file base_struct.h.

Referenced by EDA_ITEM::GetList(), EDA_ITEM::initVars(), and EDA_ITEM::SetList().

◆ m_netinfo

NETINFO_ITEM* BOARD_CONNECTED_ITEM::m_netinfo
protectedinherited

◆ m_Param

double TRACK::m_Param
inherited

Definition at line 104 of file class_track.h.

Referenced by TRACK::GetEndSegments(), and TRACK::TRACK().

◆ m_Parent

◆ m_Start

◆ m_TimeStamp

timestamp_t EDA_ITEM::m_TimeStamp
protectedinherited

◆ m_ViaType

VIATYPE_T VIA::m_ViaType
private

Definition at line 483 of file class_track.h.

Referenced by GetViaType(), and SetViaType().

◆ m_Width

◆ Pback

◆ Pnext

◆ start

◆ ZeroOffset

wxPoint BOARD_ITEM::ZeroOffset
staticinherited

A value of wxPoint(0,0) which can be passed to the Draw() functions.

Definition at line 113 of file class_board_item.h.

Referenced by BOARD::GetPosition().


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