KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PAD Class Reference

#include <pad.h>

Inheritance diagram for PAD:
BOARD_CONNECTED_ITEM BOARD_ITEM EDA_ITEM KIGFX::VIEW_ITEM SERIALIZABLE INSPECTABLE

Public Types

enum  COMPARE_FLAGS : int { DRC = 0x01 }
 

Public Member Functions

 PAD (FOOTPRINT *parent)
 
 PAD (const PAD &aPad)
 
PADoperator= (const PAD &aOther)
 
void Serialize (google::protobuf::Any &aContainer) const override
 Serializes this object to the given Any message.
 
bool Deserialize (const google::protobuf::Any &aContainer) override
 Deserializes the given protobuf message into this object.
 
bool IsType (const std::vector< KICAD_T > &aScanTypes) const override
 Check whether the item is one of the listed types.
 
bool HasHole () const override
 
bool HasDrilledHole () const override
 
bool IsLocked () const override
 
void ImportSettingsFrom (const PAD &aMasterPad)
 Import the pad settings from aMasterPad.
 
bool IsFlipped () const
 
void SetNumber (const wxString &aNumber)
 Set the pad number (note that it can be alphanumeric, such as the array reference "AA12").
 
const wxString & GetNumber () const
 
bool CanHaveNumber () const
 Indicates whether or not the pad can have a number.
 
void SetPinFunction (const wxString &aName)
 Set the pad function (pin name in schematic)
 
const wxString & GetPinFunction () const
 
void SetPinType (const wxString &aType)
 Set the pad electrical type.
 
const wxString & GetPinType () const
 
bool SameLogicalPadAs (const PAD *aOther) const
 Before we had custom pad shapes it was common to have multiple overlapping pads to represent a more complex shape.
 
bool SharesNetTieGroup (const PAD *aOther) const
 
bool IsNoConnectPad () const
 
bool IsFreePad () const
 
void SetShape (PCB_LAYER_ID aLayer, PAD_SHAPE aShape)
 Set the new shape of this pad.
 
PAD_SHAPE GetShape (PCB_LAYER_ID aLayer) const
 
void SetFrontShape (PAD_SHAPE aShape)
 
PAD_SHAPE GetFrontShape () const
 
void SetPosition (const VECTOR2I &aPos) override
 
VECTOR2I GetPosition () const override
 
PAD_SHAPE GetAnchorPadShape (PCB_LAYER_ID aLayer) const
 
PADSTACK::CUSTOM_SHAPE_ZONE_MODE GetCustomShapeInZoneOpt () const
 
void SetCustomShapeInZoneOpt (PADSTACK::CUSTOM_SHAPE_ZONE_MODE aOption)
 Set the option for the custom pad shape to use as clearance area in copper zones.
 
void SetAnchorPadShape (PCB_LAYER_ID aLayer, PAD_SHAPE aShape)
 Set the shape of the anchor pad for custom shaped pads.
 
bool IsOnCopperLayer () const override
 
void SetY (int y)
 
void SetX (int x)
 
void SetSize (PCB_LAYER_ID aLayer, const VECTOR2I &aSize)
 
const VECTOR2IGetSize (PCB_LAYER_ID aLayer) const
 
void SetSizeX (const int aX)
 
int GetSizeX () const
 
void SetSizeY (const int aY)
 
int GetSizeY () const
 
void SetDelta (PCB_LAYER_ID aLayer, const VECTOR2I &aSize)
 
const VECTOR2IGetDelta (PCB_LAYER_ID aLayer) const
 
void SetDrillSize (const VECTOR2I &aSize)
 
const VECTOR2IGetDrillSize () const
 
void SetDrillSizeX (const int aX)
 
int GetDrillSizeX () const
 
void SetDrillSizeY (const int aY)
 
int GetDrillSizeY () const
 
void SetOffset (PCB_LAYER_ID aLayer, const VECTOR2I &aOffset)
 
const VECTOR2IGetOffset (PCB_LAYER_ID aLayer) const
 
VECTOR2I GetCenter () const override
 This defaults to the center of the bounding box if not overridden.
 
const PADSTACKPadstack () const
 
PADSTACKPadstack ()
 
void SetPadstack (const PADSTACK &aPadstack)
 
void AddPrimitivePoly (PCB_LAYER_ID aLayer, const SHAPE_POLY_SET &aPoly, int aThickness, bool aFilled)
 Has meaning only for custom shape pads.
 
void AddPrimitivePoly (PCB_LAYER_ID aLayer, const std::vector< VECTOR2I > &aPoly, int aThickness, bool aFilled)
 
void MergePrimitivesAsPolygon (PCB_LAYER_ID aLayer, SHAPE_POLY_SET *aMergedPolygon, ERROR_LOC aErrorLoc=ERROR_INSIDE) const
 Merge all basic shapes to a SHAPE_POLY_SET.
 
void DeletePrimitivesList (PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
 Clear the basic shapes list.
 
const std::vector< std::shared_ptr< PCB_SHAPE > > & GetPrimitives (PCB_LAYER_ID aLayer) const
 Accessor to the basic shape list for custom-shaped pads.
 
void Flip (const VECTOR2I &VECTOR2I, FLIP_DIRECTION aFlipDirection) override
 Flip this object, i.e.
 
void FlipPrimitives (FLIP_DIRECTION aFlipDirection)
 Flip (mirror) the primitives left to right or top to bottom, around the anchor position in custom pads.
 
void ReplacePrimitives (PCB_LAYER_ID aLayer, const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList)
 Clear the current custom shape primitives list and import a new list.
 
void AppendPrimitives (PCB_LAYER_ID aLayer, const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList)
 Import a custom shape primitive list (composed of basic shapes) and add items to the current list.
 
void AddPrimitive (PCB_LAYER_ID aLayer, PCB_SHAPE *aPrimitive)
 Add item to the custom shape primitives list.
 
void SetOrientation (const EDA_ANGLE &aAngle)
 Set the rotation angle of the pad.
 
void SetFPRelativeOrientation (const EDA_ANGLE &aAngle)
 
EDA_ANGLE GetOrientation () const
 Return the rotation angle of the pad.
 
EDA_ANGLE GetFPRelativeOrientation () const
 
void SetOrientationDegrees (double aOrientation)
 
double GetOrientationDegrees () const
 
void SetDrillShape (PAD_DRILL_SHAPE aShape)
 
PAD_DRILL_SHAPE GetDrillShape () const
 
bool IsDirty () const
 
void SetDirty ()
 
void SetLayerSet (const LSET &aLayers) override
 
LSET GetLayerSet () const override
 Return a std::bitset of all layers on which the item physically resides.
 
void SetAttribute (PAD_ATTRIB aAttribute)
 
PAD_ATTRIB GetAttribute () const
 
void SetProperty (PAD_PROP aProperty)
 
PAD_PROP GetProperty () const
 
bool IsAperturePad () const
 
void SetPadToDieLength (int aLength)
 
int GetPadToDieLength () const
 
std::optional< int > GetLocalClearance () const override
 Return any local clearances set in the "classic" (ie: pre-rule) system.
 
void SetLocalClearance (std::optional< int > aClearance)
 
std::optional< int > GetLocalSolderMaskMargin () const
 
void SetLocalSolderMaskMargin (std::optional< int > aMargin)
 
std::optional< int > GetLocalSolderPasteMargin () const
 
void SetLocalSolderPasteMargin (std::optional< int > aMargin)
 
std::optional< double > GetLocalSolderPasteMarginRatio () const
 
void SetLocalSolderPasteMarginRatio (std::optional< double > aRatio)
 
void SetLocalZoneConnection (ZONE_CONNECTION aType)
 
ZONE_CONNECTION GetLocalZoneConnection () const
 
int GetOwnClearance (PCB_LAYER_ID aLayer, wxString *aSource=nullptr) const override
 Return the pad's "own" clearance in internal units.
 
void TransformShapeToPolygon (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aMaxError, ERROR_LOC aErrorLoc=ERROR_INSIDE, bool ignoreLineWidth=false) const override
 Convert the pad shape to a closed polygon.
 
bool TransformHoleToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc=ERROR_INSIDE) const
 Build the corner list of the polygonal drill shape in the board coordinate system.
 
virtual std::shared_ptr< SHAPEGetEffectiveShape (PCB_LAYER_ID aLayer, FLASHING flashPTHPads=FLASHING::DEFAULT) const override
 Some pad shapes can be complex (rounded/chamfered rectangle), even without considering custom shapes.
 
const std::shared_ptr< SHAPE_POLY_SET > & GetEffectivePolygon (PCB_LAYER_ID aLayer, ERROR_LOC aErrorLoc=ERROR_INSIDE) const
 
std::shared_ptr< SHAPE_SEGMENTGetEffectiveHoleShape () const override
 Return a SHAPE_SEGMENT object representing the pad's hole.
 
int GetBoundingRadius () const
 Return the radius of a minimum sized circle which fully encloses this pad.
 
std::optional< int > GetLocalClearance (wxString *aSource) const override
 Return any local clearance overrides set in the "classic" (ie: pre-rule) system.
 
std::optional< int > GetClearanceOverrides (wxString *aSource) const override
 Return any clearance overrides set in the "classic" (ie: pre-rule) system.
 
int GetSolderMaskExpansion (PCB_LAYER_ID aLayer) const
 
VECTOR2I GetSolderPasteMargin (PCB_LAYER_ID aLayer) const
 Usually < 0 (mask shape smaller than pad)because the margin can be dependent on the pad size, the margin has a x and a y value.
 
ZONE_CONNECTION GetZoneConnectionOverrides (wxString *aSource=nullptr) const
 
void SetThermalSpokeWidth (int aWidth)
 Set the width of the thermal spokes connecting the pad to a zone.
 
int GetThermalSpokeWidth () const
 
int GetLocalSpokeWidthOverride (wxString *aSource=nullptr) const
 
void SetThermalSpokeAngle (const EDA_ANGLE &aAngle)
 The orientation of the thermal spokes.
 
EDA_ANGLE GetThermalSpokeAngle () const
 
void SetThermalSpokeAngleDegrees (double aAngle)
 
double GetThermalSpokeAngleDegrees () const
 
void SetThermalGap (int aGap)
 
int GetThermalGap () const
 
int GetLocalThermalGapOverride (wxString *aSource=nullptr) const
 
void SetRoundRectCornerRadius (PCB_LAYER_ID aLayer, double aRadius)
 Has meaning only for rounded rectangle pads.
 
int GetRoundRectCornerRadius (PCB_LAYER_ID aLayer) const
 
VECTOR2I ShapePos (PCB_LAYER_ID aLayer) const
 
void SetRoundRectRadiusRatio (PCB_LAYER_ID aLayer, double aRadiusScale)
 Has meaning only for rounded rectangle pads.
 
double GetRoundRectRadiusRatio (PCB_LAYER_ID aLayer) const
 
void SetFrontRoundRectRadiusRatio (double aRadiusScale)
 
double GetFrontRoundRectRadiusRatio () const
 
void SetChamferRectRatio (PCB_LAYER_ID aLayer, double aChamferScale)
 Has meaning only for chamfered rectangular pads.
 
double GetChamferRectRatio (PCB_LAYER_ID aLayer) const
 
void SetChamferPositions (PCB_LAYER_ID aLayer, int aPositions)
 Has meaning only for chamfered rectangular pads.
 
int GetChamferPositions (PCB_LAYER_ID aLayer) const
 
int GetSubRatsnest () const
 
void SetSubRatsnest (int aSubRatsnest)
 
void SetRemoveUnconnected (bool aSet)
 
bool GetRemoveUnconnected () const
 
void SetKeepTopBottom (bool aSet)
 
bool GetKeepTopBottom () const
 
void SetUnconnectedLayerMode (PADSTACK::UNCONNECTED_LAYER_MODE aMode)
 
PADSTACK::UNCONNECTED_LAYER_MODE GetUnconnectedLayerMode () const
 
bool ConditionallyFlashed (PCB_LAYER_ID aLayer) const
 
void GetMsgPanelInfo (EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
 Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
 
bool IsOnLayer (PCB_LAYER_ID aLayer) const override
 Test to see if this object is on the given layer.
 
bool FlashLayer (int aLayer, bool aOnlyCheckIfPermitted=false) const
 Check to see whether the pad should be flashed on the specific layer.
 
bool CanFlashLayer (int aLayer)
 
PCB_LAYER_ID GetLayer () const override
 Return the primary layer this item is on.
 
PCB_LAYER_ID GetPrincipalLayer () const
 
bool FlashLayer (LSET aLayers) const
 Check to see if the pad should be flashed to any of the layers in the set.
 
bool HitTest (const VECTOR2I &aPosition, int aAccuracy=0) const override
 Test if aPosition is inside or on the boundary of this item.
 
bool HitTest (const BOX2I &aRect, bool aContained, int aAccuracy=0) const override
 Test if aRect intersects this item.
 
std::vector< PCB_SHAPE * > Recombine (bool aIsDryRun, int aMaxError)
 Recombines the pad with other graphical shapes in the footprint.
 
wxString GetClass () const override
 Return the class name.
 
const BOX2I GetBoundingBox () const override
 The bounding box is cached, so this will be efficient most of the time.
 
void Move (const VECTOR2I &aMoveVector) override
 Move this object.
 
void Rotate (const VECTOR2I &aRotCentre, const EDA_ANGLE &aAngle) override
 Rotate this object.
 
wxString GetItemDescription (UNITS_PROVIDER *aUnitsProvider, bool aFull) const override
 Return a user-visible description string of this item.
 
BITMAPS GetMenuImage () const override
 Return a pointer to an image to be used in menus.
 
wxString ShowPadShape (PCB_LAYER_ID aLayer) const
 
wxString ShowPadAttr () const
 
EDA_ITEMClone () const override
 Create a duplicate of this item with linked list members set to NULL.
 
PADClonePad () const
 Same as Clone, but returns a PAD item.
 
void BuildEffectiveShapes () const
 Rebuild the effective shape cache (and bounding box and radius) for the pad and clears the dirty bit.
 
void BuildEffectivePolygon (ERROR_LOC aErrorLoc=ERROR_INSIDE) const
 
virtual std::vector< int > ViewGetLayers () const override
 Return the all the layers within the VIEW the object is painted on.
 
double ViewGetLOD (int aLayer, KIGFX::VIEW *aView) const override
 Return the level of detail (LOD) of the item.
 
virtual const BOX2I ViewBBox () const override
 Return the bounding box of the item covering all its layers.
 
void ClearZoneLayerOverrides ()
 
const ZONE_LAYER_OVERRIDEGetZoneLayerOverride (PCB_LAYER_ID aLayer) const
 
void SetZoneLayerOverride (PCB_LAYER_ID aLayer, ZONE_LAYER_OVERRIDE aOverride)
 
void CheckPad (UNITS_PROVIDER *aUnitsProvider, const std::function< void(int aErrorCode, const wxString &aMsg)> &aErrorHandler) const
 
double Similarity (const BOARD_ITEM &aOther) const override
 Return a measure of how likely the other object is to represent the same object.
 
bool operator== (const PAD &aOther) const
 
bool operator== (const BOARD_ITEM &aBoardItem) const override
 
bool IsConnected () const override
 Returns information if the object is derived from BOARD_CONNECTED_ITEM.
 
NETINFO_ITEMGetNet () const
 Return #NET_INFO object for a given item.
 
void SetNet (NETINFO_ITEM *aNetInfo)
 Set a NET_INFO object for the item.
 
int GetNetCode () const
 
bool SetNetCode (int aNetCode, bool aNoAssert)
 Set net using a net code.
 
void SetNetCode (int aNetCode)
 
wxString GetNetname () const
 
wxString GetNetnameMsg () const
 
const wxString & GetShortNetname () const
 
const wxString & GetDisplayNetname () const
 
virtual NETCLASSGetEffectiveNetClass () const
 Return the NETCLASS for this item.
 
wxString GetNetClassName () const
 Returns the name of the effective netclass.
 
wxString GetNetClassVariableSubstitutionName () const
 
void SetLocalRatsnestVisible (bool aVisible)
 
bool GetLocalRatsnestVisible () const
 
TEARDROP_PARAMETERSGetTeardropParams ()
 
const TEARDROP_PARAMETERSGetTeardropParams () const
 
void SetTeardropsEnabled (bool aEnable)
 
bool GetTeardropsEnabled () const
 
void SetTeardropBestLengthRatio (double aRatio)
 
double GetTeardropBestLengthRatio () const
 
void SetTeardropMaxLength (int aMaxLength)
 
int GetTeardropMaxLength () const
 
void SetTeardropBestWidthRatio (double aRatio)
 
double GetTeardropBestWidthRatio () const
 
void SetTeardropMaxWidth (int aMaxWidth)
 
int GetTeardropMaxWidth () const
 
void SetTeardropCurved (bool aCurve)
 
bool GetTeardropCurved () const
 
void SetTeardropPreferZoneConnections (bool aPrefer)
 
bool GetTeardropPreferZoneConnections () const
 
void SetTeardropAllowSpanTwoTracks (bool aAllow)
 
bool GetTeardropAllowSpanTwoTracks () const
 
void SetTeardropMaxTrackWidth (double aRatio)
 
double GetTeardropMaxTrackWidth () const
 
void SetParentGroup (PCB_GROUP *aGroup)
 
PCB_GROUPGetParentGroup () const
 
int GetX () const
 
int GetY () const
 
virtual bool IsTented (PCB_LAYER_ID aLayer) const
 Checks if the given object is tented (its copper shape is covered by solder mask) on a given side of the board.
 
virtual void RunOnChildren (const std::function< void(BOARD_ITEM *)> &aFunction) const
 Invoke a function on all children.
 
virtual void RunOnDescendants (const std::function< void(BOARD_ITEM *)> &aFunction, int aDepth=0) const
 Invoke a function on all descendants.
 
BOARD_ITEM_CONTAINERGetParent () const
 
FOOTPRINTGetParentFootprint () const
 
VECTOR2I GetFPRelativePosition () const
 
void SetFPRelativePosition (const VECTOR2I &aPos)
 
virtual bool HasLineStroke () const
 Check if this item has line stoke properties.
 
virtual STROKE_PARAMS GetStroke () const
 
virtual void SetStroke (const STROKE_PARAMS &aStroke)
 
const KIFONT::METRICSGetFontMetrics () const
 
virtual int BoardLayerCount () const
 Return the total number of layers for the board that this item resides on.
 
virtual int BoardCopperLayerCount () const
 Return the total number of copper layers for the board that this item resides on.
 
virtual LSET BoardLayerSet () const
 Return the LSET for the board that this item resides on.
 
bool IsSideSpecific () const
 
virtual void SetLayer (PCB_LAYER_ID aLayer)
 Set the layer this item is on.
 
virtual BOARD_ITEMDuplicate () const
 Create a copy of this BOARD_ITEM.
 
void SwapItemData (BOARD_ITEM *aImage)
 Swap data between aItem and aImage.
 
virtual bool IsKnockout () const
 
virtual void SetIsKnockout (bool aKnockout)
 
virtual void SetLocked (bool aLocked)
 
virtual void StyleFromSettings (const BOARD_DESIGN_SETTINGS &settings)
 
void DeleteStructure ()
 Delete this object after removing from its parent if it has one.
 
virtual void Mirror (const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection)
 Mirror this object relative to a given horizontal axis the layer is not changed.
 
virtual void Normalize ()
 Perform any normalization required after a user rotate and/or flip.
 
virtual void NormalizeForCompare ()
 Perform any normalization required to compare 2 graphics, especially if the can be rotated and/or flipped.
 
virtual const BOARDGetBoard () const
 Return the BOARD in which this BOARD_ITEM resides, or NULL if none.
 
virtual BOARDGetBoard ()
 
wxString GetParentAsString () const
 For "parent" property.
 
wxString GetLayerName () const
 Return the name of the PCB layer on which the item resides.
 
KICAD_T Type () const
 Returns the type of object.
 
virtual void SetParent (EDA_ITEM *aParent)
 
bool IsModified () const
 
bool IsNew () const
 
bool IsMoving () const
 
bool IsSelected () const
 
bool IsEntered () const
 
bool IsBrightened () const
 
bool IsRollover () const
 
void SetSelected ()
 
void SetBrightened ()
 
void ClearSelected ()
 
void ClearBrightened ()
 
void SetModified ()
 
void SetFlags (EDA_ITEM_FLAGS aMask)
 
void XorFlags (EDA_ITEM_FLAGS aMask)
 
void ClearFlags (EDA_ITEM_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
 
EDA_ITEM_FLAGS GetFlags () const
 
bool HasFlag (EDA_ITEM_FLAGS aFlag) const
 
EDA_ITEM_FLAGS GetEditFlags () const
 
virtual void ClearEditFlags ()
 
EDA_ITEM_FLAGS GetTempFlags () const
 
virtual void ClearTempFlags ()
 
virtual bool RenderAsBitmap (double aWorldScale) const
 
void SetIsShownAsBitmap (bool aBitmap)
 
bool IsShownAsBitmap () const
 
void SetForceVisible (bool aEnable)
 Set and clear force visible flag used to force the item to be drawn even if it's draw attribute is set to not visible.
 
bool IsForceVisible () const
 
virtual wxString GetFriendlyName () const
 
virtual const VECTOR2I GetFocusPosition () const
 Similar to GetPosition, but allows items to return their visual center rather than their anchor.
 
virtual VECTOR2I GetSortPosition () const
 Return the coordinates that should be used for sorting this element visually compared to other elements.
 
virtual INSPECT_RESULT Visit (INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &aScanTypes)
 May be re-implemented for each derived class in order to handle all the types given by its member data.
 
wxString GetTypeDesc () const
 Return a translated description of the type for this EDA_ITEM for display in user facing messages.
 
virtual bool Matches (const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const
 Compare the item against the search criteria in aSearchData.
 
virtual bool Replace (const EDA_SEARCH_DATA &aSearchData, void *aAuxData=nullptr)
 Perform a text replace using the find and replace criteria in aSearchData on items that support text find and replace.
 
virtual bool IsReplaceable () const
 Override this method in any derived object that supports test find and replace.
 
bool operator< (const EDA_ITEM &aItem) const
 Test if another item is less than this object.
 
virtual EMBEDDED_FILESGetEmbeddedFiles ()
 
bool IsSCH_ITEM () const
 
bool IsBOARD_ITEM () const
 
virtual void ViewDraw (int aLayer, VIEW *aView) const
 Draw the parts of the object belonging to layer aLayer.
 
VIEW_ITEM_DATA * viewPrivData () const
 
void SetForcedTransparency (double aForcedTransparency)
 
double GetForcedTransparency () const
 
bool Set (PROPERTY_BASE *aProperty, wxAny &aValue, bool aNotify=true)
 
template<typename T >
bool Set (PROPERTY_BASE *aProperty, T aValue, bool aNotify=true)
 
template<typename T >
bool Set (const wxString &aProperty, T aValue, bool aNotify=true)
 
wxAny Get (PROPERTY_BASE *aProperty) const
 
template<typename T >
Get (PROPERTY_BASE *aProperty) const
 
template<typename T >
std::optional< T > Get (const wxString &aProperty) const
 

Static Public Member Functions

static LSET PTHMask ()
 layer set for a through hole pad
 
static LSET SMDMask ()
 layer set for a SMD pad on Front layer
 
static LSET ConnSMDMask ()
 layer set for a SMD pad on Front layer used for edge board connectors
 
static LSET UnplatedHoleMask ()
 layer set for a mechanical unplated through hole pad
 
static LSET ApertureMask ()
 layer set for an aperture pad
 
static bool ClassOf (const EDA_ITEM *aItem)
 
static int Compare (const PAD *aPadRef, const PAD *aPadCmp)
 Compare two pads and return 0 if they are equal.
 
template<class T >
static INSPECT_RESULT IterateForward (std::deque< T > &aList, INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &scanTypes)
 This changes first parameter to avoid the DList and use the main queue instead.
 
template<class T >
static INSPECT_RESULT IterateForward (std::vector< T > &aList, INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &scanTypes)
 Change first parameter to avoid the DList and use std::vector instead.
 
static bool Replace (const EDA_SEARCH_DATA &aSearchData, wxString &aText)
 Perform a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace.
 
static bool Sort (const EDA_ITEM *aLeft, const EDA_ITEM *aRight)
 Helper function to be used by the C++ STL sort algorithm for sorting a STL container of EDA_ITEM pointers.
 

Public Attributes

const KIID m_Uuid
 

Static Public Attributes

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

Protected Member Functions

virtual void swapData (BOARD_ITEM *aImage) override
 
virtual wxString layerMaskDescribe () const
 Return a string (to be shown to the user) describing a layer mask.
 
bool Matches (const wxString &aText, const EDA_SEARCH_DATA &aSearchData) const
 Compare aText against search criteria in aSearchData.
 

Protected Attributes

NETINFO_ITEMm_netinfo
 Store all information about the net that item belongs to.
 
TEARDROP_PARAMETERS m_teardropParams
 Not all BOARD_CONNECTED_ITEMs support teardrops, but we want those that do to share a single section in the property inspector.
 
PCB_LAYER_ID m_layer
 
bool m_isKnockout
 
bool m_isLocked
 
PCB_GROUPm_group
 
EDA_ITEM_FLAGS m_flags
 
EDA_ITEMm_parent
 Linked list: Link (parent struct)
 
bool m_forceVisible
 

Private Types

typedef std::map< PCB_LAYER_ID, std::shared_ptr< SHAPE_COMPOUND > > LAYER_SHAPE_MAP
 
typedef std::map< PCB_LAYER_ID, std::array< std::shared_ptr< SHAPE_POLY_SET >, 2 > > LAYER_POLYGON_MAP
 

Private Member Functions

const SHAPE_COMPOUNDbuildEffectiveShape (PCB_LAYER_ID aLayer) const
 
void addPadPrimitivesToPolygon (PCB_LAYER_ID aLayer, SHAPE_POLY_SET *aMergedPolygon, int aError, ERROR_LOC aErrorLoc) const
 
void doCheckPad (PCB_LAYER_ID aLayer, UNITS_PROVIDER *aUnitsProvider, const std::function< void(int aErrorCode, const wxString &aMsg)> &aErrorHandler) const
 

Private Attributes

wxString m_number
 
wxString m_pinFunction
 
wxString m_pinType
 
VECTOR2I m_pos
 
PADSTACK m_padStack
 
bool m_shapesDirty
 
std::mutex m_shapesBuildingLock
 
BOX2I m_effectiveBoundingBox
 
LAYER_SHAPE_MAP m_effectiveShapes
 
std::shared_ptr< SHAPE_SEGMENTm_effectiveHoleShape
 
bool m_polyDirty [2]
 
std::mutex m_polyBuildingLock
 
LAYER_POLYGON_MAP m_effectivePolygons
 
int m_effectiveBoundingRadius
 
int m_subRatsnest
 
PAD_ATTRIB m_attribute = PAD_ATTRIB::PTH
 
PAD_PROP m_property
 
int m_lengthPadToDie
 
std::mutex m_zoneLayerOverridesMutex
 
std::map< PCB_LAYER_ID, ZONE_LAYER_OVERRIDEm_zoneLayerOverrides
 
bool m_localRatsnestVisible
 
KICAD_T m_structType
 Run time identification, keep private so it can never be changed after a ctor sets it.
 
bool m_isSCH_ITEM
 
bool m_isBOARD_ITEM
 
VIEW_ITEM_DATA * m_viewPrivData
 
double m_forcedTransparency
 Additional transparency for diff'ing items.
 

Detailed Description

Definition at line 53 of file pad.h.

Member Typedef Documentation

◆ LAYER_POLYGON_MAP

typedef std::map<PCB_LAYER_ID, std::array<std::shared_ptr<SHAPE_POLY_SET>, 2> > PAD::LAYER_POLYGON_MAP
private

Definition at line 928 of file pad.h.

◆ LAYER_SHAPE_MAP

typedef std::map<PCB_LAYER_ID, std::shared_ptr<SHAPE_COMPOUND> > PAD::LAYER_SHAPE_MAP
private

Definition at line 921 of file pad.h.

Member Enumeration Documentation

◆ COMPARE_FLAGS

enum BOARD_ITEM::COMPARE_FLAGS : int
inherited
Enumerator
DRC 

Definition at line 417 of file board_item.h.

Constructor & Destructor Documentation

◆ PAD() [1/2]

◆ PAD() [2/2]

PAD::PAD ( const PAD aPad)

Definition at line 111 of file pad.cpp.

References EDA_ITEM::m_Uuid, and operator=().

Member Function Documentation

◆ addPadPrimitivesToPolygon()

◆ AddPrimitive()

void PAD::AddPrimitive ( PCB_LAYER_ID  aLayer,
PCB_SHAPE aPrimitive 
)

Add item to the custom shape primitives list.

Definition at line 106 of file pad_custom_shape_functions.cpp.

References PADSTACK::AddPrimitive(), m_padStack, SetDirty(), and EDA_ITEM::SetParent().

Referenced by AppendPrimitives(), and Recombine().

◆ AddPrimitivePoly() [1/2]

void PAD::AddPrimitivePoly ( PCB_LAYER_ID  aLayer,
const SHAPE_POLY_SET aPoly,
int  aThickness,
bool  aFilled 
)

Has meaning only for custom shape pads.

add a free shape to the shape list. the shape can be

  • a polygon (outline can have a thickness)
  • a thick segment
  • a filled circle (thickness == 0) or ring
  • a filled rect (thickness == 0) or rectangular outline
  • a arc
  • a bezier curve

Definition at line 40 of file pad_custom_shape_functions.cpp.

References PADSTACK::AddPrimitive(), SHAPE_POLY_SET::Append(), SHAPE_POLY_SET::COutline(), SHAPE_POLY_SET::Fracture(), SHAPE_POLY_SET::HasHoles(), m_padStack, SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::PM_STRICTLY_SIMPLE, SetDirty(), EDA_SHAPE::SetFilled(), EDA_ITEM::SetParent(), EDA_SHAPE::SetPolyShape(), EDA_SHAPE::SetShape(), and PCB_SHAPE::SetStroke().

◆ AddPrimitivePoly() [2/2]

void PAD::AddPrimitivePoly ( PCB_LAYER_ID  aLayer,
const std::vector< VECTOR2I > &  aPoly,
int  aThickness,
bool  aFilled 
)

◆ ApertureMask()

LSET PAD::ApertureMask ( )
static

layer set for an aperture pad

Definition at line 297 of file pad.cpp.

References F_Paste.

Referenced by PAD_FIXTURE::MakeAperture(), and DIALOG_PAD_PROPERTIES::updatePadLayersList().

◆ AppendPrimitives()

void PAD::AppendPrimitives ( PCB_LAYER_ID  aLayer,
const std::vector< std::shared_ptr< PCB_SHAPE > > &  aPrimitivesList 
)

Import a custom shape primitive list (composed of basic shapes) and add items to the current list.

Copies the input, which is not altered.

Definition at line 95 of file pad_custom_shape_functions.cpp.

References AddPrimitive(), and SetDirty().

Referenced by ReplacePrimitives().

◆ BoardCopperLayerCount()

int BOARD_ITEM::BoardCopperLayerCount ( ) const
virtualinherited

◆ BoardLayerCount()

int BOARD_ITEM::BoardLayerCount ( ) const
virtualinherited

Return the total number of layers for the board that this item resides on.

Definition at line 106 of file board_item.cpp.

References BOARD_ITEM::GetBoard(), and BOARD_ITEM::GetLayerSet().

◆ BoardLayerSet()

LSET BOARD_ITEM::BoardLayerSet ( ) const
virtualinherited

Return the LSET for the board that this item resides on.

Definition at line 128 of file board_item.cpp.

References LSET::AllLayersMask(), BOARD_ITEM::GetBoard(), and BOARD_ITEM::GetLayerSet().

Referenced by PADSTACK::EffectiveLayerFor().

◆ BuildEffectivePolygon()

◆ buildEffectiveShape()

◆ BuildEffectiveShapes()

void PAD::BuildEffectiveShapes ( ) const

◆ CanFlashLayer()

bool PAD::CanFlashLayer ( int  aLayer)
inline

Definition at line 780 of file pad.h.

References FlashLayer().

◆ CanHaveNumber()

bool PAD::CanHaveNumber ( ) const

Indicates whether or not the pad can have a number.

(NPTH and SMD aperture pads can not.)

Definition at line 216 of file pad.cpp.

References GetAttribute(), and IsAperturePad().

Referenced by ImportSettingsFrom().

◆ CheckPad()

◆ ClassOf()

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

Definition at line 78 of file pad.h.

References PCB_PAD_T, and EDA_ITEM::Type().

◆ ClearBrightened()

◆ ClearEditFlags()

◆ ClearFlags()

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

Definition at line 129 of file eda_item.h.

References EDA_ITEM::m_flags.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PNS_KICAD_IFACE::AddItem(), PNS_KICAD_IFACE_GENERATOR::AddItem(), SCH_MOVE_TOOL::AlignToGrid(), SCH_EDIT_TOOL::BreakWire(), FOOTPRINT::BuildCourtyardCaches(), EDA_ITEM::ClearBrightened(), EDA_ITEM::ClearEditFlags(), EDA_ITEM::ClearSelected(), EDA_ITEM::ClearTempFlags(), ConnectBoardShapes(), SYMBOL_EDITOR_EDIT_TOOL::Copy(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), SYMBOL_EDITOR_PIN_TOOL::CreateImagePins(), MICROWAVE_TOOL::createMicrowaveInductor(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), PCB_TOOL_BASE::doInteractiveItemPlacement(), KIGFX::SCH_PAINTER::draw(), SCH_ITEM::Duplicate(), PCB_TUNING_PATTERN::EditPush(), PCB_TUNING_PATTERN::EditRevert(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_SELECTION_TOOL::ExitGroup(), SCH_IO_KICAD_SEXPR::Format(), SYMBOL_EDIT_FRAME::GetSymbolFromRedoList(), SYMBOL_EDIT_FRAME::GetSymbolFromUndoList(), EE_SELECTION_TOOL::GuessSelectionCandidates(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), DRC_INTERACTIVE_COURTYARD_CLEARANCE::Init(), EE_COLLECTOR::Inspect(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromLibrary(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), DIALOG_SYMBOL_PROPERTIES::OnUnitChoice(), FOOTPRINT_EDIT_FRAME::OpenProjectFiles(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), PCB_BASE_FRAME::PlaceFootprint(), SYMBOL_EDITOR_PIN_TOOL::PlacePin(), SCH_COMMIT::pushSchEdit(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), PCB_SELECTION_TOOL::RebuildSelection(), Recombine(), GERBVIEW_FRAME::RemapLayers(), DRC_TEST_PROVIDER_DISALLOW::Run(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_IO_KICAD_SEXPR_LIB_CACHE::savePin(), EE_SELECTION_TOOL::selectMultiple(), EDA_ITEM::SetIsShownAsBitmap(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), SCH_DRAWING_TOOLS::TwoClickPlace(), EE_SELECTION_TOOL::unhighlight(), and SCOPED_FLAGS_CLEANER::~SCOPED_FLAGS_CLEANER().

◆ ClearSelected()

◆ ClearTempFlags()

virtual void EDA_ITEM::ClearTempFlags ( )
inlinevirtualinherited

◆ ClearZoneLayerOverrides()

void PAD::ClearZoneLayerOverrides ( )

◆ Clone()

EDA_ITEM * PAD::Clone ( ) const
overridevirtual

Create 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 EDA_ITEM.

Definition at line 1594 of file pad.cpp.

References PADSTACK::ForEachUniqueLayer(), m_padStack, Padstack(), and PADSTACK::Primitives().

Referenced by ClonePad().

◆ ClonePad()

PAD * PAD::ClonePad ( ) const
inline

Same as Clone, but returns a PAD item.

Useful mainly for python scripts, because Clone returns an EDA_ITEM.

Definition at line 861 of file pad.h.

References Clone().

◆ Compare()

int PAD::Compare ( const PAD aPadRef,
const PAD aPadCmp 
)
static

Compare two pads and return 0 if they are equal.

Returns
less than 0 if left less than right, 0 if equal, or greater than 0 if left greater than right.

Definition at line 1444 of file pad.cpp.

References PADSTACK::Compare(), m_attribute, and Padstack().

Referenced by GENCAD_EXPORTER::CreatePadsShapesSection().

◆ ConditionallyFlashed()

◆ ConnSMDMask()

LSET PAD::ConnSMDMask ( )
static

layer set for a SMD pad on Front layer used for edge board connectors

Definition at line 283 of file pad.cpp.

References F_Cu, and F_Mask.

Referenced by DIALOG_PAD_PROPERTIES::updatePadLayersList().

◆ DeletePrimitivesList()

void PAD::DeletePrimitivesList ( PCB_LAYER_ID  aLayer = UNDEFINED_LAYER)

Clear the basic shapes list.

Parameters
aLayeris the layer to clear, or UNDEFINED_LAYER to clear all layers

Definition at line 116 of file pad_custom_shape_functions.cpp.

References PADSTACK::ClearPrimitives(), PADSTACK::ForEachUniqueLayer(), m_padStack, SetDirty(), and UNDEFINED_LAYER.

Referenced by PAD_TOOL::explodePad(), and ReplacePrimitives().

◆ DeleteStructure()

void BOARD_ITEM::DeleteStructure ( )
inherited

Delete this object after removing from its parent if it has one.

Definition at line 209 of file board_item.cpp.

References BOARD_ITEM::GetParent(), and BOARD_ITEM_CONTAINER::Remove().

◆ Deserialize()

bool PAD::Deserialize ( const google::protobuf::Any &  aContainer)
overridevirtual

Deserializes the given protobuf message into this object.

Parameters
aContaineris an Any which should have a concrete type matching this object
Returns
true if unpacking and deserialization succeeded

Reimplemented from SERIALIZABLE.

Definition at line 163 of file pad.cpp.

References PADSTACK::Deserialize(), m_padStack, EDA_ITEM::m_Uuid, pad, SetAttribute(), BOARD_ITEM::SetLayer(), SetLocalClearance(), BOARD_ITEM::SetLocked(), BOARD_CONNECTED_ITEM::SetNetCode(), SetNumber(), SetPosition(), PADSTACK::StartLayer(), and kiapi::common::UnpackVector2().

◆ doCheckPad()

◆ Duplicate()

◆ FlashLayer() [1/2]

bool PAD::FlashLayer ( int  aLayer,
bool  aOnlyCheckIfPermitted = false 
) const

Check to see whether the pad should be flashed on the specific layer.

Parameters
aLayerLayer to check for connectivity
aOnlyCheckIfPermittedindicates that the routine should just return whether or not a flashed connection is permitted on this layer (without checking for a connection)
Returns
true if connected by pad or track (or optionally zone)

Definition at line 340 of file pad.cpp.

References B_Cu, LSET::BackBoardTechMask(), F_Cu, LSET::FrontBoardTechMask(), GetAttribute(), BOARD_ITEM::GetBoard(), GetDrillShape(), GetDrillSize(), GetOffset(), GetShape(), GetSize(), IsCopperLayer(), IsOnLayer(), PADSTACK::KEEP_ALL, m_padStack, m_zoneLayerOverrides, PCB_ARC_T, PCB_LAYER_ID_COUNT, PCB_PAD_T, PCB_TRACE_T, PCB_VIA_T, PADSTACK::REMOVE_EXCEPT_START_AND_END, PADSTACK::UnconnectedLayerMode(), UNDEFINED_LAYER, VECTOR2< T >::x, VECTOR2< T >::y, and ZLO_FORCE_FLASHED.

Referenced by STEP_PCB_MODEL::AddPadShape(), PCB_IO_IPC2581::addPadStack(), CanFlashLayer(), KIGFX::PCB_PAINTER::draw(), FlashLayer(), GetEffectiveShape(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), and ViewGetLOD().

◆ FlashLayer() [2/2]

bool PAD::FlashLayer ( LSET  aLayers) const

Check to see if the pad should be flashed to any of the layers in the set.

Parameters
aLayersset of layers to check the via against
Returns
true if connected by pad or track (or optionally zone) on any of the associated layers

Definition at line 328 of file pad.cpp.

References FlashLayer(), and LSET::Seq().

◆ Flip()

◆ FlipPrimitives()

void PAD::FlipPrimitives ( FLIP_DIRECTION  aFlipDirection)

Flip (mirror) the primitives left to right or top to bottom, around the anchor position in custom pads.

Definition at line 955 of file pad.cpp.

References PADSTACK::ForEachUniqueLayer(), m_padStack, Padstack(), PADSTACK::Primitives(), and SetDirty().

Referenced by Flip(), and mirrorPad().

◆ Get() [1/3]

template<typename T >
std::optional< T > INSPECTABLE::Get ( const wxString &  aProperty) const
inlineinherited

◆ Get() [2/3]

◆ Get() [3/3]

template<typename T >
T INSPECTABLE::Get ( PROPERTY_BASE aProperty) const
inlineinherited

◆ GetAnchorPadShape()

PAD_SHAPE PAD::GetAnchorPadShape ( PCB_LAYER_ID  aLayer) const
inline

◆ GetAttribute()

◆ GetBoard() [1/2]

BOARD * BOARD_ITEM::GetBoard ( )
virtualinherited

◆ GetBoard() [2/2]

const BOARD * BOARD_ITEM::GetBoard ( ) const
virtualinherited

Return the BOARD in which this BOARD_ITEM resides, or NULL if none.

Definition at line 47 of file board_item.cpp.

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

Referenced by CN_CONNECTIVITY_ALGO::Add(), BOARD_ADAPTER::addShape(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), BOARD_ITEM::BoardCopperLayerCount(), BOARD_ITEM::BoardLayerCount(), BOARD_ITEM::BoardLayerSet(), CN_CONNECTIVITY_ALGO::Build(), BuildEffectivePolygon(), buildEffectiveShape(), ZONE::BuildSmoothedPoly(), collidesWithArea(), PCB_TUNING_PATTERN::CreateNew(), BOARD_INSPECTION_TOOL::DiffFootprint(), doCheckPad(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), enclosedByAreaFunc(), existsOnLayerFunc(), ZONE_FILLER::Fill(), PCB_VIA::FlashLayer(), FlashLayer(), FOOTPRINT::Flip(), PCB_DIMENSION_BASE::Flip(), PCB_GENERATOR::Flip(), PCB_SHAPE::Flip(), PCB_TABLE::Flip(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), PCB_ARC::Flip(), PCB_VIA::Flip(), ZONE::Flip(), FOOTPRINT::FootprintNeedsUpdate(), PCB_IO_KICAD_SEXPR::format(), fromToFunc(), BOARD_ITEM::GetBoard(), PCBEXPR_CONTEXT::GetBoard(), NETINFO_ITEM::GetBoundingBox(), ZONE::GetBoundingBox(), FOOTPRINT::GetBoundingBox(), FOOTPRINT::GetBoundingHull(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), PCB_BASE_EDIT_FRAME::GetContextualTextVars(), BOARD_CONNECTED_ITEM::GetDisplayNetname(), PCB_VIA::GetDrillConstraint(), BOARD_CONNECTED_ITEM::GetEffectiveNetClass(), PCB_TEXT::GetEffectiveShape(), getFieldFunc(), ZONE::GetInteractingZones(), ZONE::GetItemDescription(), FOOTPRINT::GetLayerBoundingBox(), BOARD_ITEM::GetLayerName(), PCB_VIA::GetMinAnnulus(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), PCB_VIA::GetOutermostConnectedLayers(), BOARD_CONNECTED_ITEM::GetOwnClearance(), GetOwnClearance(), PCB_MARKER::GetSeverity(), PCB_TEXT::GetShownText(), PCB_TEXTBOX::GetShownText(), FOOTPRINT::GetSide(), PCB_SHAPE::GetSolderMaskExpansion(), PCB_TRACK::GetSolderMaskExpansion(), PCB_VIA::GetSolderMaskExpansion(), GetSolderMaskExpansion(), GetSolderPasteMargin(), BOARD::GetTrackLength(), PCB_TRACK::GetWidthConstraint(), PCB_VIA::GetWidthConstraint(), inDiffPairFunc(), ROUTER_TOOL::Init(), intersectsAreaFunc(), intersectsBackCourtyardFunc(), intersectsCourtyardFunc(), intersectsFrontCourtyardFunc(), BOARD_ITEM::IsLocked(), BOARD_ITEM::IsSideSpecific(), PCB_VIA::IsTented(), BOARD_ITEM::layerMaskDescribe(), PCB_VIA::layerMaskDescribe(), MergePrimitivesAsPolygon(), ZONE::Move(), DIALOG_TEXTBOX_PROPERTIES::onBorderChecked(), PCB_IO_EAGLE::packageWire(), padNeedsUpdate(), PCB_TUNING_PATTERN::recoverBaseline(), BOARD::ResolveDRCExclusions(), FOOTPRINT::ResolveTextVar(), PCB_SHAPE::SetIsProxyItem(), BOARD_CONNECTED_ITEM::SetNetCode(), PCB_DIMENSION_BASE::SetUnitsMode(), PCB_TUNING_PATTERN::ShowPropertiesDialog(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_ASSOCIATIONS::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), ZONE::TransformSmoothedOutlineToPolygon(), BOARD::UpdateRatsnestExclusions(), FOOTPRINT::ViewBBox(), ViewBBox(), PCB_TRACK::ViewBBox(), ViewGetLayers(), ViewGetLOD(), PCB_REFERENCE_IMAGE::ViewGetLOD(), PCB_VIA::ViewGetLOD(), ZONE::ZONE(), FOOTPRINT::~FOOTPRINT(), and ZONE::~ZONE().

◆ GetBoundingBox()

const BOX2I PAD::GetBoundingBox ( ) const
overridevirtual

◆ GetBoundingRadius()

int PAD::GetBoundingRadius ( ) const

Return the radius of a minimum sized circle which fully encloses this pad.

The center is the pad position NOT THE SHAPE POS!

Definition at line 554 of file pad.cpp.

References BuildEffectivePolygon(), ERROR_OUTSIDE, m_effectiveBoundingRadius, and m_polyDirty.

Referenced by HitTest().

◆ GetCenter()

VECTOR2I PAD::GetCenter ( ) const
inlineoverridevirtual

This defaults to the center of the bounding box if not overridden.

Returns
center point of the item

Reimplemented from BOARD_ITEM.

Definition at line 321 of file pad.h.

References GetPosition().

Referenced by EDA_DATA::AddPackage().

◆ GetChamferPositions()

◆ GetChamferRectRatio()

◆ GetClass()

wxString PAD::GetClass ( ) const
inlineoverridevirtual

Return the class name.

Implements EDA_ITEM.

Definition at line 814 of file pad.h.

◆ GetClearanceOverrides()

std::optional< int > PAD::GetClearanceOverrides ( wxString *  aSource) const
overridevirtual

Return any clearance overrides set in the "classic" (ie: pre-rule) system.

Parameters
aSource[out] optionally reports the source as a user-readable string.
Returns
the clearance in internal units.

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 1044 of file pad.cpp.

References PADSTACK::Clearance(), GetLocalClearance(), BOARD_ITEM::GetParentFootprint(), and m_padStack.

◆ GetCustomShapeInZoneOpt()

PADSTACK::CUSTOM_SHAPE_ZONE_MODE PAD::GetCustomShapeInZoneOpt ( ) const
inline
Returns
the option for the custom pad shape to use as clearance area in copper zones.

Definition at line 223 of file pad.h.

References PADSTACK::CustomShapeInZoneMode(), and m_padStack.

Referenced by ZONE_FILLER::addKnockout(), PCB_IO_KICAD_SEXPR::format(), ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), padHasOverrides(), and DIALOG_PAD_PROPERTIES::TransferDataFromWindow().

◆ GetDelta()

◆ GetDisplayNetname()

const wxString & BOARD_CONNECTED_ITEM::GetDisplayNetname ( ) const
inherited

◆ GetDrillShape()

◆ GetDrillSize()

◆ GetDrillSizeX()

◆ GetDrillSizeY()

int PAD::GetDrillSizeY ( ) const
inline

◆ GetEditFlags()

◆ GetEffectiveHoleShape()

◆ GetEffectiveNetClass()

◆ GetEffectivePolygon()

◆ GetEffectiveShape()

std::shared_ptr< SHAPE > PAD::GetEffectiveShape ( PCB_LAYER_ID  aLayer,
FLASHING  flashPTHPads = FLASHING::DEFAULT 
) const
overridevirtual

Some pad shapes can be complex (rounded/chamfered rectangle), even without considering custom shapes.

This routine returns a COMPOUND shape (set of simple shapes which make up the pad for use with routing, collision determination, etc).

Note
This list can contain a SHAPE_SIMPLE (a simple single-outline non-intersecting polygon), but should never contain a SHAPE_POLY_SET (a complex polygon consisting of multiple outlines and/or holes).
Parameters
aLayerdetermines which layer to query for shape
aFlashoptional parameter allowing a caller to force the pad to be flashed (or not flashed) on the current layer (default is to honour the pad's setting and the current connections for the given layer).

Reimplemented from BOARD_ITEM.

Definition at line 488 of file pad.cpp.

References BuildEffectiveShapes(), Edge_Cuts, PADSTACK::EffectiveLayerFor(), FlashLayer(), GetAttribute(), GetEffectiveHoleShape(), m_effectiveShapes, m_shapesDirty, and Padstack().

Referenced by PCB_IO_IPC2581::addSlotCavity(), BOARD_ADAPTER::createPadWithMargin(), KIGFX::PCB_PAINTER::draw(), and PNS_KICAD_IFACE_BASE::syncPad().

◆ GetEmbeddedFiles()

virtual EMBEDDED_FILES * EDA_ITEM::GetEmbeddedFiles ( )
inlinevirtualinherited

Reimplemented in LIB_SYMBOL, SCHEMATIC, BOARD, and FOOTPRINT.

Definition at line 444 of file eda_item.h.

Referenced by PCB_IO_KICAD_SEXPR_PARSER::Parse().

◆ GetFlags()

◆ GetFocusPosition()

virtual const VECTOR2I EDA_ITEM::GetFocusPosition ( ) const
inlinevirtualinherited

Similar to GetPosition, but allows items to return their visual center rather than their anchor.

Reimplemented in BOARD, PCB_SHAPE, PCB_TRACK, and PCB_ARC.

Definition at line 250 of file eda_item.h.

References EDA_ITEM::GetPosition().

Referenced by SCH_EDIT_FRAME::FocusOnItem(), SYMBOL_EDIT_FRAME::FocusOnItem(), and DRAWING_TOOL::PlaceTuningPattern().

◆ GetFontMetrics()

◆ GetForcedTransparency()

double KIGFX::VIEW_ITEM::GetForcedTransparency ( ) const
inlineinherited

◆ GetFPRelativeOrientation()

EDA_ANGLE PAD::GetFPRelativeOrientation ( ) const

◆ GetFPRelativePosition()

◆ GetFriendlyName()

◆ GetFrontRoundRectRadiusRatio()

double PAD::GetFrontRoundRectRadiusRatio ( ) const
inline

Definition at line 659 of file pad.h.

References F_Cu, m_padStack, and PADSTACK::RoundRectRadiusRatio().

Referenced by PAD_DESC::PAD_DESC().

◆ GetFrontShape()

PAD_SHAPE PAD::GetFrontShape ( ) const
inline

Definition at line 202 of file pad.h.

References F_Cu, m_padStack, and PADSTACK::Shape().

Referenced by PAD_DESC::PAD_DESC().

◆ GetItemDescription()

wxString PAD::GetItemDescription ( UNITS_PROVIDER aUnitsProvider,
bool  aFull 
) const
overridevirtual

Return a user-visible description string of this item.

This description is used in disambiguation menus, the message panel, ERC/DRC reports, etc.

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.

Parameters
aLongindicates a long string is acceptable
Returns
The menu text string.

Reimplemented from EDA_ITEM.

Definition at line 1497 of file pad.cpp.

References _, GetAttribute(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), GetNumber(), BOARD_ITEM::GetParentFootprint(), FOOTPRINT::GetReference(), BOARD_ITEM::layerMaskDescribe(), and PCB_EDIT_FRAME_NAME.

◆ GetKeepTopBottom()

◆ GetLayer()

PCB_LAYER_ID PAD::GetLayer ( ) const
overridevirtual

Return the primary layer this item is on.

Reimplemented from BOARD_ITEM.

Definition at line 312 of file pad.cpp.

References BOARD_ITEM::GetLayer().

Referenced by DRC_TEST_PROVIDER_MISC::testDisabledLayers().

◆ GetLayerName()

◆ GetLayerSet()

◆ GetLocalClearance() [1/2]

std::optional< int > PAD::GetLocalClearance ( ) const
inlineoverridevirtual

Return any local clearances set in the "classic" (ie: pre-rule) system.

Returns
the clearance (if any is specified) in internal units.

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 457 of file pad.h.

References PADSTACK::Clearance(), and m_padStack.

Referenced by doCheckPad(), PCB_IO_KICAD_SEXPR::format(), GetClearanceOverrides(), ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), PAD_DESC::PAD_DESC(), padHasOverrides(), and Serialize().

◆ GetLocalClearance() [2/2]

std::optional< int > PAD::GetLocalClearance ( wxString *  aSource) const
overridevirtual

Return any local clearance overrides set in the "classic" (ie: pre-rule) system.

Parameters
aSource[out] optionally reports the source as a user-readable string.
Returns
the clearance in internal units.

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 1035 of file pad.cpp.

References _, PADSTACK::Clearance(), and m_padStack.

◆ GetLocalRatsnestVisible()

bool BOARD_CONNECTED_ITEM::GetLocalRatsnestVisible ( ) const
inlineinherited

◆ GetLocalSolderMaskMargin()

std::optional< int > PAD::GetLocalSolderMaskMargin ( ) const
inline

◆ GetLocalSolderPasteMargin()

std::optional< int > PAD::GetLocalSolderPasteMargin ( ) const
inline

◆ GetLocalSolderPasteMarginRatio()

std::optional< double > PAD::GetLocalSolderPasteMarginRatio ( ) const
inline

◆ GetLocalSpokeWidthOverride()

int PAD::GetLocalSpokeWidthOverride ( wxString *  aSource = nullptr) const

Definition at line 1211 of file pad.cpp.

References _, m_padStack, and PADSTACK::ThermalSpokeWidth().

◆ GetLocalThermalGapOverride()

int PAD::GetLocalThermalGapOverride ( wxString *  aSource = nullptr) const

Definition at line 1220 of file pad.cpp.

References _, m_padStack, and PADSTACK::ThermalGap().

Referenced by ZONE::GetThermalReliefGap().

◆ GetLocalZoneConnection()

ZONE_CONNECTION PAD::GetLocalZoneConnection ( ) const
inline

◆ GetMenuImage()

BITMAPS PAD::GetMenuImage ( ) const
overridevirtual

Return 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 EDA_ITEM.

Definition at line 1588 of file pad.cpp.

◆ GetMsgPanelInfo()

◆ GetNet()

◆ GetNetClassName()

wxString BOARD_CONNECTED_ITEM::GetNetClassName ( ) const
inherited

Returns the name of the effective netclass.

Primarily for the use of the property system.

Definition at line 108 of file board_connected_item.cpp.

References BOARD_CONNECTED_ITEM::GetEffectiveNetClass(), and NETCLASS::GetName().

Referenced by BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), and main().

◆ GetNetClassVariableSubstitutionName()

wxString BOARD_CONNECTED_ITEM::GetNetClassVariableSubstitutionName ( ) const
inherited

◆ GetNetCode()

int BOARD_CONNECTED_ITEM::GetNetCode ( ) const
inherited
Returns
the net code.

Definition at line 91 of file board_connected_item.cpp.

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

Referenced by ZONE_FILLER::addHatchFillTypeOnZone(), CreepageGraph::AddNetElements(), TEARDROP_MANAGER::areItemsInSameZone(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), ZONE_FILLER::buildCopperItemClearances(), KI_TEST::CheckFpZone(), connectedItemFilter(), GENCAD_EXPORTER::CreateRoutesSection(), TEARDROP_MANAGER::createTeardrop(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCBEXPR_NET_VALUE::EqualTo(), PCB_EDIT_FRAME::ExchangeFootprint(), extractDiffPairCoupledItems(), ZONE_FILLER::Fill(), PCB_IO_KICAD_SEXPR::format(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), CONNECTIVITY_DATA::GetConnectedItems(), ZONE::GetInteractingZones(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), CONNECTIVITY_DATA::GetRatsnestForItems(), CONNECTIVITY_DATA::GetRatsnestForPad(), BOARD_INSPECTION_TOOL::highlightNet(), DIALOG_PAD_PROPERTIES::initValues(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), CONNECTIVITY_DATA::IsConnectedOnLayer(), ZONE::IsIsland(), ZONE_FILLER::knockoutThermalReliefs(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), AR_AUTOPLACER::nearestPad(), ROUTER_TOOL::NeighboringSegmentFilter(), CN_ITEM::Net(), PCBEXPR_NET_VALUE::NotEqualTo(), PCB_TRACK::cmp_tracks::operator()(), ZONE_SETTINGS::operator<<(), DIALOG_PAD_PROPERTIES::PadTypeSelected(), BRDITEMS_PLOTTER::PlotShape(), process(), BOARD_EDITOR_CONTROL::RepairBoard(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal(), ZONE::SameNet(), PCB_SELECTION_CONDITIONS::sameNetFunc(), PCB_SELECTION_TOOL::selectNet(), Serialize(), PCB_SHAPE::Serialize(), PCB_TRACK::Serialize(), PCB_ARC::Serialize(), PCB_VIA::Serialize(), ZONE::Serialize(), ZONE::Similarity(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_SOLDER_MASK::testMaskItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testSingleLayerItemAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), DRC_TEST_PROVIDER_ZONE_CONNECTIONS::testZoneLayer(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), BOARD::TracksInNet(), DIALOG_GLOBAL_EDIT_TEARDROPS::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataToWindow(), NETINFO_MAPPING::Update(), PCB_CONTROL::UpdateMessagePanel(), PCB_TRACK::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TEARDROPS::visitItem(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and BOARD_EDITOR_CONTROL::ZoneMerge().

◆ GetNetname()

◆ GetNetnameMsg()

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

Definition at line 126 of file board_connected_item.cpp.

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

Referenced by GetItemDescription(), PCB_SHAPE::GetItemDescription(), PCB_TRACK::GetItemDescription(), PCB_VIA::GetItemDescription(), and ZONE::GetItemDescription().

◆ GetNumber()

◆ GetOffset()

◆ GetOrientation()

◆ GetOrientationDegrees()

double PAD::GetOrientationDegrees ( ) const
inline

Definition at line 418 of file pad.h.

References EDA_ANGLE::AsDegrees(), PADSTACK::GetOrientation(), and m_padStack.

Referenced by PAD_DESC::PAD_DESC().

◆ GetOwnClearance()

int PAD::GetOwnClearance ( PCB_LAYER_ID  aLayer,
wxString *  aSource = nullptr 
) const
overridevirtual

Return the pad's "own" clearance in internal units.

Parameters
aLayerthe layer in question.
aSource[out] optionally reports the source as a user-readable string.
Returns
the clearance in internal units.

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 1056 of file pad.cpp.

References CLEARANCE_CONSTRAINT, GetAttribute(), BOARD_ITEM::GetBoard(), BOARD::GetDesignSettings(), DRC_CONSTRAINT::GetName(), MINOPTMAX< T >::HasMin(), HOLE_CLEARANCE_CONSTRAINT, BOARD_DESIGN_SETTINGS::m_DRCEngine, MINOPTMAX< T >::Min(), and DRC_CONSTRAINT::Value().

Referenced by KIGFX::PCB_PAINTER::draw(), and GetMsgPanelInfo().

◆ GetPadToDieLength()

◆ GetParent()

◆ GetParentAsString()

wxString BOARD_ITEM::GetParentAsString ( ) const
inherited

For "parent" property.

Returns
the parent footprint's ref or the parent item's UUID.

Definition at line 373 of file board_item.cpp.

References KIID::AsString(), EDA_ITEM::m_parent, and EDA_ITEM::m_Uuid.

Referenced by BOARD_ITEM_DESC::BOARD_ITEM_DESC().

◆ GetParentFootprint()

FOOTPRINT * BOARD_ITEM::GetParentFootprint ( ) const
inherited

Definition at line 298 of file board_item.cpp.

References BOARD_ITEM::GetParent(), PCB_FOOTPRINT_T, PCB_GENERATOR_T, PCB_GROUP_T, PCB_TABLE_T, and EDA_ITEM::Type().

Referenced by CN_CONNECTIVITY_ALGO::Add(), PCB_IO_IPC2581::addPad(), FEATURES_MANAGER::AddPadShape(), STEP_PCB_MODEL::AddPadShape(), PCB_IO_IPC2581::addPadStack(), GRAPHICS_IMPORTER_PCBNEW::AddPolygon(), DRC_TEST_PROVIDER_SOLDER_MASK::checkItemMask(), DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture(), DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange(), EDIT_TOOL::DeleteItems(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), doPushPadProperties(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), EDIT_TOOL::Duplicate(), PCB_IO_KICAD_SEXPR::format(), FormatProbeItem(), PCB_IO_IPC2581::generateLayerSetNet(), GetClearanceOverrides(), PCB_BASE_EDIT_FRAME::GetContextualTextVars(), PCB_TEXT::GetDrawRotation(), GetFPRelativeOrientation(), BOARD_ITEM::GetFPRelativePosition(), GetItemDescription(), PCB_FIELD::GetItemDescription(), PCB_SHAPE::GetItemDescription(), PCB_TEXT::GetItemDescription(), PCB_SHAPE::GetMenuImage(), PCB_SHAPE::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), PCB_TEXT::GetShownText(), PCB_TEXTBOX::GetShownText(), GetSolderMaskExpansion(), GetSolderPasteMargin(), PCB_FIELDS_GRID_TABLE::GetValue(), GetZoneConnectionOverrides(), PCB_SELECTION_TOOL::grabUnconnected(), GROUP_TOOL::Group(), hash_fp_item(), ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), GENERAL_COLLECTOR::Inspect(), PCB_SHAPE::IsConnected(), IsFlipped(), PNS_PCBNEW_RULE_RESOLVER::IsInNetTie(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), DRC_ENGINE::IsNetTieExclusion(), PCB_SELECTION_TOOL::itemPassesFilter(), memberOfFootprintFunc(), memberOfSheetFunc(), BOARD::Move(), ARRAY_TOOL::onDialogClosed(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_SHAPE(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TABLE(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), PCB_IO_IPC2581::pinName(), BRDITEMS_PLOTTER::PlotPad(), BRDITEMS_PLOTTER::PlotShape(), BRDITEMS_PLOTTER::PlotTableBorders(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), BOARD_COMMIT::Push(), PAD_TOOL::pushPadSettings(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), PCB_GRID_HELPER::queryVisible(), Recombine(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), BOARD_COMMIT::Revert(), SameLogicalPadAs(), CLIPBOARD_IO::SaveSelection(), PCB_SELECTION_TOOL::Selectable(), SetFPRelativeOrientation(), BOARD_ITEM::SetFPRelativePosition(), PCB_FIELDS_GRID_TABLE::SetValue(), SharesNetTieGroup(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::transferDataToPad(), PCB_IO_EAGLE::transferPad(), PCB_POINT_EDITOR::updateItem(), PCB_FIELD::ViewGetLOD(), PCB_SHAPE::ViewGetLOD(), PCB_TEXT::ViewGetLOD(), ZONE::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem(), and ZONE::ZONE().

◆ GetParentGroup()

◆ GetPinFunction()

◆ GetPinType()

const wxString & PAD::GetPinType ( ) const
inline

◆ GetPosition()

◆ GetPrimitives()

const std::vector< std::shared_ptr< PCB_SHAPE > > & PAD::GetPrimitives ( PCB_LAYER_ID  aLayer) const
inline

◆ GetPrincipalLayer()

PCB_LAYER_ID PAD::GetPrincipalLayer ( ) const
Returns
the principal copper layer for SMD and CONN pads.

Definition at line 318 of file pad.cpp.

References GetLayerSet(), m_attribute, BOARD_ITEM::m_layer, and LSET::Seq().

Referenced by DRC_TEST_PROVIDER_FOOTPRINT_CHECKS::Run().

◆ GetProperty()

◆ GetRemoveUnconnected()

◆ GetRoundRectCornerRadius()

◆ GetRoundRectRadiusRatio()

◆ GetShape()

◆ GetShortNetname()

const wxString & BOARD_CONNECTED_ITEM::GetShortNetname ( ) const
inherited

◆ GetSize()

◆ GetSizeX()

int PAD::GetSizeX ( ) const
inline

◆ GetSizeY()

int PAD::GetSizeY ( ) const
inline

Definition at line 293 of file pad.h.

References PADSTACK::ALL_LAYERS, m_padStack, PADSTACK::Size(), and VECTOR2< T >::y.

Referenced by PAD_DESC::PAD_DESC().

◆ GetSolderMaskExpansion()

int PAD::GetSolderMaskExpansion ( PCB_LAYER_ID  aLayer) const
Returns
the expansion for the solder mask layer

Usually > 0 (mask shape bigger than pad). For pads not on copper layers, the value is the local value because there is no default shape to build. For pads also on copper layers, the value (used to build a default shape) is: 1 the local value 2 if 0, the parent footprint value 3 if 0, the global value

Definition at line 1082 of file pad.cpp.

References LSET::AllCuMask(), B_Cu, B_Mask, F_Cu, F_Mask, BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParentFootprint(), IsBackLayer(), IsFrontLayer(), PADSTACK::LayerSet(), m_padStack, PADSTACK::Size(), PADSTACK::SolderMaskMargin(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by FEATURES_MANAGER::AddPadShape(), PCB_IO_IPC2581::addShape(), KIGFX::PCB_PAINTER::draw(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), and ViewBBox().

◆ GetSolderPasteMargin()

VECTOR2I PAD::GetSolderPasteMargin ( PCB_LAYER_ID  aLayer) const

Usually < 0 (mask shape smaller than pad)because the margin can be dependent on the pad size, the margin has a x and a y value.

For pads not on copper layers, the value is the local value because there is no default shape to build. For pads also on copper layers, the value (used to build a default shape) is: 1 the local value 2 if 0, the parent footprint value 3 if 0, the global value

Returns
the margin for the solder mask layer.

Definition at line 1128 of file pad.cpp.

References LSET::AllCuMask(), B_Cu, B_Paste, F_Cu, F_Paste, BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParentFootprint(), IsBackLayer(), IsFrontLayer(), KiROUND(), PADSTACK::LayerSet(), m_padStack, PADSTACK::Shape(), PADSTACK::Size(), PADSTACK::SolderPasteMargin(), PADSTACK::SolderPasteMarginRatio(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by FEATURES_MANAGER::AddPadShape(), PCB_IO_IPC2581::addShape(), KIGFX::PCB_PAINTER::draw(), and ViewBBox().

◆ GetSortPosition()

virtual VECTOR2I EDA_ITEM::GetSortPosition ( ) const
inlinevirtualinherited

Return the coordinates that should be used for sorting this element visually compared to other elements.

For instance, for lines the midpoint might be a better sorting point than either end.

Returns
X,Y coordinate of the sort point

Reimplemented in SCH_LINE.

Definition at line 259 of file eda_item.h.

References EDA_ITEM::GetPosition().

◆ GetStroke()

STROKE_PARAMS BOARD_ITEM::GetStroke ( ) const
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 86 of file board_item.cpp.

References DEFAULT_LINE_WIDTH, EDA_ITEM::GetClass(), EDA_IU_SCALE::mmToIU(), and pcbIUScale.

Referenced by CONVERT_TOOL::CreatePolys().

◆ GetSubRatsnest()

int PAD::GetSubRatsnest ( ) const
inline
Returns
the netcode.

Definition at line 696 of file pad.h.

References m_subRatsnest.

Referenced by operator=().

◆ GetTeardropAllowSpanTwoTracks()

bool BOARD_CONNECTED_ITEM::GetTeardropAllowSpanTwoTracks ( ) const
inlineinherited

◆ GetTeardropBestLengthRatio()

double BOARD_CONNECTED_ITEM::GetTeardropBestLengthRatio ( ) const
inlineinherited

◆ GetTeardropBestWidthRatio()

double BOARD_CONNECTED_ITEM::GetTeardropBestWidthRatio ( ) const
inlineinherited

◆ GetTeardropCurved()

bool BOARD_CONNECTED_ITEM::GetTeardropCurved ( ) const
inlineinherited

◆ GetTeardropMaxLength()

int BOARD_CONNECTED_ITEM::GetTeardropMaxLength ( ) const
inlineinherited

◆ GetTeardropMaxTrackWidth()

double BOARD_CONNECTED_ITEM::GetTeardropMaxTrackWidth ( ) const
inlineinherited

◆ GetTeardropMaxWidth()

int BOARD_CONNECTED_ITEM::GetTeardropMaxWidth ( ) const
inlineinherited

◆ GetTeardropParams() [1/2]

◆ GetTeardropParams() [2/2]

const TEARDROP_PARAMETERS & BOARD_CONNECTED_ITEM::GetTeardropParams ( ) const
inlineinherited

Definition at line 197 of file board_connected_item.h.

References BOARD_CONNECTED_ITEM::m_teardropParams.

◆ GetTeardropPreferZoneConnections()

bool BOARD_CONNECTED_ITEM::GetTeardropPreferZoneConnections ( ) const
inlineinherited

◆ GetTeardropsEnabled()

bool BOARD_CONNECTED_ITEM::GetTeardropsEnabled ( ) const
inlineinherited

◆ GetTempFlags()

EDA_ITEM_FLAGS EDA_ITEM::GetTempFlags ( ) const
inlineinherited

◆ GetThermalGap()

int PAD::GetThermalGap ( ) const
inline

◆ GetThermalSpokeAngle()

EDA_ANGLE PAD::GetThermalSpokeAngle ( ) const
inline

◆ GetThermalSpokeAngleDegrees()

double PAD::GetThermalSpokeAngleDegrees ( ) const
inline

Definition at line 625 of file pad.h.

References EDA_ANGLE::AsDegrees(), m_padStack, and PADSTACK::ThermalSpokeAngle().

Referenced by PAD_DESC::PAD_DESC().

◆ GetThermalSpokeWidth()

◆ GetTypeDesc()

wxString EDA_ITEM::GetTypeDesc ( ) const
inherited

Return a translated description of the type for this EDA_ITEM for display in user facing messages.

Definition at line 323 of file eda_item.cpp.

References ENUM_MAP< T >::Instance(), and EDA_ITEM::Type().

Referenced by PCB_GROUP::AddItem(), EDIT_TOOL::doMoveSelection(), and EDA_ITEM::GetFriendlyName().

◆ GetUnconnectedLayerMode()

PADSTACK::UNCONNECTED_LAYER_MODE PAD::GetUnconnectedLayerMode ( ) const
inline

Definition at line 738 of file pad.h.

References m_padStack, and PADSTACK::UnconnectedLayerMode().

Referenced by PAD_DESC::PAD_DESC().

◆ GetX()

◆ GetY()

◆ GetZoneConnectionOverrides()

ZONE_CONNECTION PAD::GetZoneConnectionOverrides ( wxString *  aSource = nullptr) const

Definition at line 1191 of file pad.cpp.

References _, BOARD_ITEM::GetParentFootprint(), m_padStack, and PADSTACK::ZoneConnection().

◆ GetZoneLayerOverride()

const ZONE_LAYER_OVERRIDE & PAD::GetZoneLayerOverride ( PCB_LAYER_ID  aLayer) const

Definition at line 201 of file pad.cpp.

References m_zoneLayerOverrides, and ZLO_NONE.

Referenced by PCB_IO_KICAD_SEXPR::format().

◆ HasDrilledHole()

bool PAD::HasDrilledHole ( ) const
inlineoverridevirtual

Reimplemented from BOARD_ITEM.

Definition at line 109 of file pad.h.

References GetDrillSizeX(), GetDrillSizeY(), and HasHole().

Referenced by PCB_IO_IPC2581::addPadStack().

◆ HasFlag()

◆ HasHole()

◆ HasLineStroke()

virtual bool BOARD_ITEM::HasLineStroke ( ) const
inlinevirtualinherited

Check if this item has line stoke properties.

See also
STROKE_PARAMS

Reimplemented in PCB_SHAPE.

Definition at line 227 of file board_item.h.

Referenced by CONVERT_TOOL::CreatePolys().

◆ HitTest() [1/2]

bool PAD::HitTest ( const BOX2I aRect,
bool  aContained,
int  aAccuracy = 0 
) const
overridevirtual

Test if aRect intersects this item.

Parameters
aRectA reference to a BOX2I 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 EDA_ITEM.

Definition at line 1386 of file pad.cpp.

References BOX2< Vec >::Contains(), ERROR_INSIDE, PADSTACK::ForEachUniqueLayer(), GetBoundingBox(), GetEffectivePolygon(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), BOX2< Vec >::Normalize(), and Padstack().

◆ HitTest() [2/2]

bool PAD::HitTest ( const VECTOR2I aPosition,
int  aAccuracy = 0 
) const
overridevirtual

Test if aPosition is inside or on the boundary of this item.

Parameters
aPositionA reference to a VECTOR2I 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 EDA_ITEM.

Definition at line 1362 of file pad.cpp.

References delta, ERROR_INSIDE, PADSTACK::ForEachUniqueLayer(), GetBoundingRadius(), GetEffectivePolygon(), GetPosition(), Padstack(), and SEG::Square().

◆ ImportSettingsFrom()

◆ IsAperturePad()

bool PAD::IsAperturePad ( ) const
inline

◆ IsBOARD_ITEM()

◆ IsBrightened()

◆ IsConnected()

bool BOARD_CONNECTED_ITEM::IsConnected ( ) const
inlineoverridevirtualinherited

Returns information if the object is derived from BOARD_CONNECTED_ITEM.

Returns
True if the object is of BOARD_CONNECTED_ITEM type, false otherwise.

Reimplemented from BOARD_ITEM.

Reimplemented in PCB_SHAPE, and ZONE.

Definition at line 69 of file board_connected_item.h.

◆ IsDirty()

bool PAD::IsDirty ( ) const
inline

Definition at line 426 of file pad.h.

References ERROR_INSIDE, ERROR_OUTSIDE, m_polyDirty, and m_shapesDirty.

◆ IsEntered()

bool EDA_ITEM::IsEntered ( ) const
inlineinherited

Definition at line 111 of file eda_item.h.

References ENTERED, and EDA_ITEM::m_flags.

Referenced by KIGFX::PCB_PAINTER::draw().

◆ IsFlipped()

bool PAD::IsFlipped ( ) const
Returns
true if the pad has a footprint parent flipped on the back/bottom layer.

Definition at line 304 of file pad.cpp.

References B_Cu, FOOTPRINT::GetLayer(), and BOARD_ITEM::GetParentFootprint().

Referenced by ViewGetLOD().

◆ IsForceVisible()

bool EDA_ITEM::IsForceVisible ( ) const
inlineinherited

Definition at line 195 of file eda_item.h.

References EDA_ITEM::m_forceVisible.

Referenced by KIGFX::SCH_PAINTER::draw(), SCH_FIELD::Plot(), and SCH_FIELD::Print().

◆ IsFreePad()

bool PAD::IsFreePad ( ) const
Returns
true if the pad is associated with a "free" pin (not-internally-connected) and has not yet been assigned another net (ie: by being routed to).

Definition at line 262 of file pad.cpp.

References BOARD_CONNECTED_ITEM::GetShortNetname(), and m_pinType.

Referenced by CN_CLUSTER::Add(), KIGFX::PCB_PAINTER::draw(), isMaskAperture(), and PNS_KICAD_IFACE_BASE::syncPad().

◆ IsKnockout()

◆ IsLocked()

bool PAD::IsLocked ( ) const
overridevirtual

◆ IsModified()

bool EDA_ITEM::IsModified ( ) const
inlineinherited

Definition at line 106 of file eda_item.h.

References IS_CHANGED, and EDA_ITEM::m_flags.

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

◆ IsMoving()

◆ IsNew()

◆ IsNoConnectPad()

bool PAD::IsNoConnectPad ( ) const
Returns
true if the pad is associated with an "unconnected" pin (or a no-connect symbol) and has no net.

Definition at line 256 of file pad.cpp.

References m_pinType.

Referenced by KIGFX::PCB_PAINTER::draw().

◆ IsOnCopperLayer()

bool PAD::IsOnCopperLayer ( ) const
overridevirtual

◆ IsOnLayer()

bool PAD::IsOnLayer ( PCB_LAYER_ID  aLayer) const
inlineoverridevirtual

Test to see if this object is on the given layer.

Virtual so objects like PAD, which reside on multiple layers can do their own form of testing.

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

Reimplemented from BOARD_ITEM.

Definition at line 765 of file pad.h.

References PADSTACK::LayerSet(), and m_padStack.

Referenced by AR_AUTOPLACER::addPad(), STEP_PCB_MODEL::AddPadShape(), CheckPad(), PAD_TOOL::explodePad(), FlashLayer(), DSN::SPECCTRA_DB::makePADSTACK(), Recombine(), and ViewGetLayers().

◆ IsReplaceable()

virtual bool EDA_ITEM::IsReplaceable ( ) const
inlinevirtualinherited

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_FIELD, SCH_LABEL, SCH_SHEET, SCH_SHEET_PIN, SCH_SYMBOL, SCH_TEXT, and SCH_TEXTBOX.

Definition at line 415 of file eda_item.h.

Referenced by EDA_ITEM::Matches().

◆ IsRollover()

bool EDA_ITEM::IsRollover ( ) const
inlineinherited

Definition at line 114 of file eda_item.h.

References IS_MOVING, IS_ROLLOVER, and EDA_ITEM::m_flags.

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

◆ IsSCH_ITEM()

bool KIGFX::VIEW_ITEM::IsSCH_ITEM ( ) const
inlineinherited

Definition at line 99 of file view_item.h.

◆ IsSelected()

bool EDA_ITEM::IsSelected ( ) const
inlineinherited

Definition at line 110 of file eda_item.h.

References EDA_ITEM::m_flags, and SELECTED.

Referenced by ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), SCH_EDIT_TOOL::ChangeTextType(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), EDIT_TOOL::doMoveSelection(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), KIGFX::SCH_PAINTER::drawItemBoundingBox(), DS_PROXY_UNDO_ITEM::DS_PROXY_UNDO_ITEM(), SCH_EDIT_FRAME::FlipBodyStyle(), RENDER_3D_OPENGL::get3dModelsFromFootprint(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::DS_RENDER_SETTINGS::GetColor(), SCH_MOVE_TOOL::getConnectedDragItems(), KIGFX::SCH_PAINTER::getLineWidth(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), DIALOG_CHANGE_SYMBOLS::isMatch(), SCH_SCREEN::MarkConnections(), SCH_LINE::MergeOverlap(), SCH_EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), SCH_MOVE_TOOL::moveItem(), KIGFX::SCH_PAINTER::nonCached(), SCH_MOVE_TOOL::orthoLineDrag(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), BOARD_COMMIT::Push(), SCH_COMMIT::pushSchEdit(), EE_SELECTION_TOOL::RebuildSelection(), PCB_SELECTION_TOOL::RebuildSelection(), SCH_FIND_REPLACE_TOOL::ReplaceAll(), SCH_COMMIT::Revert(), SCH_EDIT_TOOL::Rotate(), EE_TOOL_BASE< T >::saveCopyInUndoList(), CLIPBOARD_IO::SaveSelection(), SCH_IO_KICAD_SEXPR::saveTable(), GERBVIEW_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::select(), PCB_TEST_SELECTION_TOOL::select(), EE_SELECTION_TOOL::SelectColumns(), PCB_SELECTION_TOOL::SelectColumns(), EE_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectMultiple(), GERBVIEW_SELECTION_TOOL::selectPoint(), EE_SELECTION_TOOL::SelectRows(), PCB_SELECTION_TOOL::SelectRows(), SCH_COMMIT::Stage(), DIALOG_TABLE_PROPERTIES::TransferDataToWindow(), GERBVIEW_SELECTION_TOOL::unselect(), SCH_FIND_REPLACE_TOOL::UpdateFind(), SCH_SYMBOL::UpdatePins(), PCB_TUNING_PATTERN::ViewDraw(), PCB_FIELD::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem(), DIALOG_GLOBAL_EDIT_TEARDROPS::visitItem(), and DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem().

◆ IsShownAsBitmap()

bool EDA_ITEM::IsShownAsBitmap ( ) const
inlineinherited

Definition at line 168 of file eda_item.h.

References IS_SHOWN_AS_BITMAP, and EDA_ITEM::m_flags.

◆ IsSideSpecific()

◆ IsTented()

virtual bool BOARD_ITEM::IsTented ( PCB_LAYER_ID  aLayer) const
inlinevirtualinherited

Checks if the given object is tented (its copper shape is covered by solder mask) on a given side of the board.

Parameters
aLayeris the layer to check tenting mode for: F_Cu and F_Mask are treated identically as are B_Cu and B_Mask
Returns
true if the object is tented on the given side

Reimplemented in PCB_VIA.

Definition at line 172 of file board_item.h.

Referenced by BOARD_INSPECTION_TOOL::InspectClearance(), and DRC_TEST_PROVIDER_SILK_CLEARANCE::Run().

◆ IsType()

bool PAD::IsType ( const std::vector< KICAD_T > &  aScanTypes) const
inlineoverridevirtual

Check 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 from EDA_ITEM.

Definition at line 83 of file pad.h.

References HasHole(), EDA_ITEM::IsType(), m_attribute, PCB_LOCATE_HOLE_T, PCB_LOCATE_NPTH_T, and PCB_LOCATE_PTH_T.

◆ IterateForward() [1/2]

template<class T >
static INSPECT_RESULT EDA_ITEM::IterateForward ( std::deque< T > &  aList,
INSPECTOR  inspector,
void *  testData,
const std::vector< KICAD_T > &  scanTypes 
)
inlinestaticinherited

This changes first parameter to avoid the DList and use the main queue instead.

Definition at line 296 of file eda_item.h.

References EDA_ITEM::Visit().

Referenced by GERBER_FILE_IMAGE::Visit().

◆ IterateForward() [2/2]

template<class T >
static INSPECT_RESULT EDA_ITEM::IterateForward ( std::vector< T > &  aList,
INSPECTOR  inspector,
void *  testData,
const std::vector< KICAD_T > &  scanTypes 
)
inlinestaticinherited

Change first parameter to avoid the DList and use std::vector instead.

Definition at line 316 of file eda_item.h.

References EDA_ITEM::Visit().

◆ layerMaskDescribe()

wxString BOARD_ITEM::layerMaskDescribe ( ) const
protectedvirtualinherited

◆ Matches() [1/2]

virtual bool EDA_ITEM::Matches ( const EDA_SEARCH_DATA aSearchData,
void *  aAuxData 
) const
inlinevirtualinherited

Compare 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.
Returns
True if the item's text matches the search criteria in aSearchData.

Reimplemented in SCH_MARKER, SCH_FIELD, SCH_LABEL_BASE, SCH_PIN, SCH_SHEET, SCH_SHEET_PIN, SCH_SYMBOL, SCH_TABLE, SCH_TEXT, SCH_TEXTBOX, NETINFO_ITEM, PCB_MARKER, PCB_TABLE, PCB_TEXT, PCB_TEXTBOX, and ZONE.

Definition at line 377 of file eda_item.h.

Referenced by SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), SCH_DRAWING_TOOLS::DrawShape(), SCH_FIND_REPLACE_TOOL::HasMatch(), SCH_MARKER::Matches(), SCH_FIELD::Matches(), SCH_LABEL_BASE::Matches(), SCH_PIN::Matches(), SCH_SHEET_PIN::Matches(), SCH_TEXT::Matches(), SCH_TEXTBOX::Matches(), NETINFO_ITEM::Matches(), PCB_MARKER::Matches(), PCB_TEXT::Matches(), PCB_TEXTBOX::Matches(), ZONE::Matches(), TEXT_SEARCH_HANDLER::Search(), SCH_DRAWING_TOOLS::TwoClickPlace(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), and SCH_FIND_REPLACE_TOOL::UpdateFind().

◆ Matches() [2/2]

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

Compare 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 126 of file eda_item.cpp.

References CTX_SEARCH, EDA_COMBINED_MATCHER::Find(), EDA_SEARCH_DATA::findString, EDA_ITEM::IsReplaceable(), isWordChar(), EDA_SEARCH_DATA::matchCase, EDA_SEARCH_DATA::matchMode, next(), EDA_SEARCH_DATA::searchAndReplace, and text.

◆ MergePrimitivesAsPolygon()

void PAD::MergePrimitivesAsPolygon ( PCB_LAYER_ID  aLayer,
SHAPE_POLY_SET aMergedPolygon,
ERROR_LOC  aErrorLoc = ERROR_INSIDE 
) const

Merge all basic shapes to a SHAPE_POLY_SET.

Note
The results are relative to the pad position, orientation 0.
Parameters
aLayeris the copper layer to merge shapes for
aMergedPolygonwill store the final polygon
aErrorLocis used when a circle (or arc) is approximated by segments = ERROR_INSIDE to build a polygon inside the arc/circle (usual shape to raw/plot) = ERROR_OUIDE to build a polygon outside the arc/circle (for instance when building a clearance area)

Definition at line 155 of file pad_custom_shape_functions.cpp.

References SHAPE_POLY_SET::AddOutline(), addPadPrimitivesToPolygon(), ARC_HIGH_DEF, GetAnchorPadShape(), BOARD_ITEM::GetBoard(), BOARD::GetDesignSettings(), GetSize(), BOARD_DESIGN_SETTINGS::m_MaxError, SHAPE_RECT::Outline(), SHAPE_POLY_SET::RemoveAllContours(), TransformCircleToPolygon(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by FEATURES_MANAGER::AddPadShape(), PCB_IO_IPC2581::addShape(), doCheckPad(), DSN::SPECCTRA_DB::makePADSTACK(), and TransformShapeToPolygon().

◆ Mirror()

void BOARD_ITEM::Mirror ( const VECTOR2I aCentre,
FLIP_DIRECTION  aFlipDirection 
)
virtualinherited

Mirror this object relative to a given horizontal axis the layer is not changed.

Parameters
aCentrethe mirror point.
aMirrorAroundXAxismirror across X axis instead of Y (the default).

Reimplemented in PCB_TUNING_PATTERN, PCB_GROUP, PCB_SHAPE, PCB_TEXT, PCB_TEXTBOX, PCB_TRACK, PCB_ARC, PCB_GENERATOR, ZONE, PCB_DIMENSION_BASE, PCB_DIM_ALIGNED, and PCB_DIM_ORTHOGONAL.

Definition at line 367 of file board_item.cpp.

References EDA_ITEM::GetClass().

◆ Move()

void PAD::Move ( const VECTOR2I aMoveVector)
inlineoverridevirtual

Move this object.

Parameters
aMoveVectorthe move vector for this object.

Reimplemented from BOARD_ITEM.

Definition at line 832 of file pad.h.

References m_pos, and SetDirty().

◆ Normalize()

virtual void BOARD_ITEM::Normalize ( )
inlinevirtualinherited

Perform any normalization required after a user rotate and/or flip.

Reimplemented in PCB_SHAPE, and PCB_TABLE.

Definition at line 373 of file board_item.h.

Referenced by EDIT_TOOL::Flip(), BOARD_ITEM::NormalizeForCompare(), and EDIT_TOOL::Rotate().

◆ NormalizeForCompare()

virtual void BOARD_ITEM::NormalizeForCompare ( )
inlinevirtualinherited

Perform any normalization required to compare 2 graphics, especially if the can be rotated and/or flipped.

Similar to Normalize(), but more changes can be made

Reimplemented in PCB_SHAPE.

Definition at line 380 of file board_item.h.

References BOARD_ITEM::Normalize().

◆ 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 252 of file eda_item.cpp.

References EDA_ITEM::GetClass().

◆ operator=()

◆ operator==() [1/2]

bool PAD::operator== ( const BOARD_ITEM aBoardItem) const
overridevirtual

Implements BOARD_ITEM.

Definition at line 2390 of file pad.cpp.

References BOARD_ITEM::GetParent(), EDA_ITEM::m_parent, EDA_ITEM::m_Uuid, and EDA_ITEM::Type().

◆ operator==() [2/2]

bool PAD::operator== ( const PAD aOther) const

Definition at line 2404 of file pad.cpp.

References GetAttribute(), GetPosition(), and Padstack().

◆ Padstack() [1/2]

PADSTACK & PAD::Padstack ( )
inline

Definition at line 324 of file pad.h.

References m_padStack.

◆ Padstack() [2/2]

◆ PTHMask()

◆ Recombine()

std::vector< PCB_SHAPE * > PAD::Recombine ( bool  aIsDryRun,
int  aMaxError 
)

◆ RenderAsBitmap()

virtual bool EDA_ITEM::RenderAsBitmap ( double  aWorldScale) const
inlinevirtualinherited

Reimplemented in SCH_ITEM.

Definition at line 158 of file eda_item.h.

◆ Replace() [1/2]

virtual bool EDA_ITEM::Replace ( const EDA_SEARCH_DATA aSearchData,
void *  aAuxData = nullptr 
)
inlinevirtualinherited

Perform 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_LABEL_BASE, SCH_PIN, SCH_TEXT, SCH_TEXTBOX, SCH_FIELD, and SCH_SHEET_PIN.

Definition at line 404 of file eda_item.h.

◆ Replace() [2/2]

bool EDA_ITEM::Replace ( const EDA_SEARCH_DATA aSearchData,
wxString &  aText 
)
staticinherited

Perform 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 189 of file eda_item.cpp.

References EDA_SEARCH_DATA::findString, isWordChar(), EDA_SEARCH_DATA::matchCase, EDA_SEARCH_DATA::matchMode, next(), EDA_SEARCH_DATA::replaceString, and text.

Referenced by EDA_TEXT::Replace(), SCH_FIELD::Replace(), SCH_FIND_REPLACE_TOOL::ReplaceAll(), and SCH_FIND_REPLACE_TOOL::ReplaceAndFindNext().

◆ ReplacePrimitives()

void PAD::ReplacePrimitives ( PCB_LAYER_ID  aLayer,
const std::vector< std::shared_ptr< PCB_SHAPE > > &  aPrimitivesList 
)

Clear the current custom shape primitives list and import a new list.

Copies the input, which is not altered.

Definition at line 81 of file pad_custom_shape_functions.cpp.

References AppendPrimitives(), DeletePrimitivesList(), and SetDirty().

Referenced by DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ Rotate()

void PAD::Rotate ( const VECTOR2I aRotCentre,
const EDA_ANGLE aAngle 
)
overridevirtual

Rotate this object.

Parameters
aRotCentrethe rotation center point.

Reimplemented from BOARD_ITEM.

Definition at line 1459 of file pad.cpp.

References PADSTACK::GetOrientation(), m_padStack, m_pos, RotatePoint(), SetDirty(), and PADSTACK::SetOrientation().

◆ RunOnChildren()

virtual void BOARD_ITEM::RunOnChildren ( const std::function< void(BOARD_ITEM *)> &  aFunction) const
inlinevirtualinherited

Invoke a function on all children.

Note
This function should not add or remove items to the parent.

Reimplemented in FOOTPRINT, PCB_GROUP, and PCB_TABLE.

Definition at line 206 of file board_item.h.

Referenced by BOARD_COMMIT::dirtyIntersectingZones(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), KIGFX::PCB_VIEW::Update(), and PCB_SELECTION::updateDrawList().

◆ RunOnDescendants()

virtual void BOARD_ITEM::RunOnDescendants ( const std::function< void(BOARD_ITEM *)> &  aFunction,
int  aDepth = 0 
) const
inlinevirtualinherited

◆ SameLogicalPadAs()

bool PAD::SameLogicalPadAs ( const PAD aOther) const
inline

Before we had custom pad shapes it was common to have multiple overlapping pads to represent a more complex shape.

Definition at line 157 of file pad.h.

References BOARD_ITEM::GetParentFootprint(), and m_number.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture().

◆ Serialize()

void PAD::Serialize ( google::protobuf::Any &  aContainer) const
overridevirtual

Serializes this object to the given Any message.

The Any message's concrete type will be specific to the object in question.

Parameters
aContainerwill be filled with a message describing this object

Reimplemented from SERIALIZABLE.

Definition at line 138 of file pad.cpp.

References KIID::AsStdString(), GetAttribute(), GetLocalClearance(), BOARD_CONNECTED_ITEM::GetNetCode(), BOARD_CONNECTED_ITEM::GetNetname(), GetNumber(), GetPosition(), IsLocked(), m_padStack, EDA_ITEM::m_Uuid, kiapi::common::PackVector2(), pad, and PADSTACK::Serialize().

◆ Set() [1/3]

template<typename T >
bool INSPECTABLE::Set ( const wxString &  aProperty,
aValue,
bool  aNotify = true 
)
inlineinherited

◆ Set() [2/3]

template<typename T >
bool INSPECTABLE::Set ( PROPERTY_BASE aProperty,
aValue,
bool  aNotify = true 
)
inlineinherited

◆ Set() [3/3]

bool INSPECTABLE::Set ( PROPERTY_BASE aProperty,
wxAny &  aValue,
bool  aNotify = true 
)
inlineinherited

◆ SetAnchorPadShape()

void PAD::SetAnchorPadShape ( PCB_LAYER_ID  aLayer,
PAD_SHAPE  aShape 
)
inline

Set the shape of the anchor pad for custom shaped pads.

Parameters
aShapeis the shape of the anchor pad shape( currently, only #PAD_SHAPE::RECTANGLE or #PAD_SHAPE::CIRCLE.

Definition at line 244 of file pad.h.

References m_padStack, PADSTACK::SetAnchorShape(), and SetDirty().

Referenced by PAD(), PCB_IO_KICAD_SEXPR_PARSER::parsePAD_option(), Recombine(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetAttribute()

◆ SetBrightened()

◆ SetChamferPositions()

void PAD::SetChamferPositions ( PCB_LAYER_ID  aLayer,
int  aPositions 
)
inline

Has meaning only for chamfered rectangular pads.

Set the position of the chamfers for orientation 0.

Parameters
aPositionsa bit-set of RECT_CHAMFER_POSITIONS.

Definition at line 683 of file pad.h.

References m_padStack, and PADSTACK::SetChamferPositions().

Referenced by PCB_IO_KICAD_SEXPR_PARSER::parsePadstack(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetChamferRectRatio()

void PAD::SetChamferRectRatio ( PCB_LAYER_ID  aLayer,
double  aChamferScale 
)

Has meaning only for chamfered rectangular pads.

Set the ratio between the smaller X or Y size and chamfered corner size. Cannot be < 0.5.

Definition at line 468 of file pad.cpp.

References m_padStack, PADSTACK::SetChamferRatio(), and SetDirty().

Referenced by DIALOG_PAD_PROPERTIES::OnPadShapeSelection(), PCB_IO_KICAD_SEXPR_PARSER::parsePadstack(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetCustomShapeInZoneOpt()

void PAD::SetCustomShapeInZoneOpt ( PADSTACK::CUSTOM_SHAPE_ZONE_MODE  aOption)
inline

Set the option for the custom pad shape to use as clearance area in copper zones.

Parameters
aOptionis the clearance area shape CUST_PAD_SHAPE_IN_ZONE option

Definition at line 233 of file pad.h.

References m_padStack, and PADSTACK::SetCustomShapeInZoneMode().

Referenced by ImportSettingsFrom(), PCB_IO_KICAD_SEXPR_PARSER::parsePAD_option(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetDelta()

void PAD::SetDelta ( PCB_LAYER_ID  aLayer,
const VECTOR2I aSize 
)
inline

◆ SetDirty()

◆ SetDrillShape()

◆ SetDrillSize()

void PAD::SetDrillSize ( const VECTOR2I aSize)
inline

◆ SetDrillSizeX()

void PAD::SetDrillSizeX ( const int  aX)

◆ SetDrillSizeY()

void PAD::SetDrillSizeY ( const int  aY)
inline

◆ SetFlags()

void EDA_ITEM::SetFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 127 of file eda_item.h.

References EDA_ITEM::m_flags.

Referenced by SCH_IO_EAGLE::addBusEntries(), PCB_BASE_FRAME::AddFootprintToBoard(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SCH_IO_ALTIUM::AddTextBox(), SCH_MOVE_TOOL::AlignToGrid(), PCB_CONTROL::AppendBoard(), SCH_EDIT_FRAME::BreakSegment(), SCH_EDIT_TOOL::BreakWire(), FOOTPRINT::BuildCourtyardCaches(), SCH_EDIT_TOOL::ChangeTextType(), GRAPHICS_CLEANER::cleanupShapes(), ConnectBoardShapes(), PCB_TUNING_PATTERN::CreateNew(), SCH_DRAWING_TOOLS::createNewText(), SCH_EDIT_FRAME::DeleteJunction(), doConvertOutlineToPolygon(), SCH_EDIT_TOOL::DoDelete(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), PCBNEW_JOBS_HANDLER::doFpExportSvg(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SCH_LINE_WIRE_BUS_TOOL::doUnfoldBus(), EDIT_TOOL::DragArcTrack(), KIGFX::SCH_PAINTER::draw(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawCircle(), DRAWING_TOOL::DrawLine(), DRAWING_TOOL::DrawRectangle(), SCH_DRAWING_TOOLS::DrawShape(), SCH_DRAWING_TOOLS::DrawSheet(), SCH_DRAWING_TOOLS::DrawTable(), DRAWING_TOOL::DrawTable(), PCB_TUNING_PATTERN::EditStart(), PCB_SELECTION_TOOL::EnterGroup(), PAD_TOOL::explodePad(), SCH_IO_KICAD_SEXPR::Format(), SCH_MOVE_TOOL::getConnectedDragItems(), SYMBOL_EDIT_FRAME::GetSymbolFromRedoList(), SYMBOL_EDIT_FRAME::GetSymbolFromUndoList(), EE_SELECTION_TOOL::GuessSelectionCandidates(), EE_COLLECTOR::Inspect(), EE_SELECTION_TOOL::Main(), BOARD_COMMIT::MakeImage(), CONVERT_TOOL::makePolysFromChainedSegs(), CONVERT_TOOL::makePolysFromClosedGraphics(), CONVERT_TOOL::makePolysFromOpenGraphics(), SCH_SCREEN::MarkConnections(), TRACKS_CLEANER::mergeCollinearSegments(), SCH_MOVE_TOOL::moveItem(), SYMBOL_EDITOR_MOVE_TOOL::moveItem(), DIALOG_SYMBOL_PROPERTIES::OnUnitChoice(), KIGFX::ORIGIN_VIEWITEM::ORIGIN_VIEWITEM(), SCH_MOVE_TOOL::orthoLineDrag(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseBus(), SCH_IO_ALTIUM::ParseBusEntry(), SCH_IO_ALTIUM::ParseHarnessPort(), SCH_IO_ALTIUM::ParseJunction(), SCH_IO_ALTIUM::ParseLabel(), SCH_IO_ALTIUM::ParseLine(), SCH_IO_ALTIUM::ParseNetLabel(), SCH_IO_ALTIUM::ParseNoERC(), SCH_IO_ALTIUM::ParsePieChart(), SCH_IO_ALTIUM::ParsePolygon(), SCH_IO_ALTIUM::ParsePolyline(), SCH_IO_ALTIUM::ParsePort(), SCH_IO_ALTIUM::ParseRectangle(), SCH_IO_ALTIUM::ParseRoundRectangle(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_IO_ALTIUM::ParseSheetSymbol(), SCH_IO_ALTIUM::ParseSignalHarness(), SCH_IO_ALTIUM::ParseWire(), SYMBOL_EDITOR_EDIT_TOOL::Paste(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PL_DRAWING_TOOLS::PlaceItem(), SCH_SYMBOL::Plot(), BACK_ANNOTATE::processNetNameChange(), BOARD_COMMIT::Push(), SYMBOL_EDIT_FRAME::PushSymbolToUndoList(), SCH_EDIT_FRAME::PutDataInPreviousState(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), PCB_SELECTION_TOOL::RebuildSelection(), GERBVIEW_FRAME::RemapLayers(), BOARD::Remove(), FOOTPRINT::Remove(), PCB_TUNING_PATTERN::Remove(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_EDIT_TOOL::Rotate(), SCH_EDIT_FRAME::SaveCopyInUndoList(), CLIPBOARD_IO::SaveSelection(), SCH_IO_KICAD_SEXPR::saveTable(), EE_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectAllConnectedShapes(), EE_SELECTION_TOOL::selectMultiple(), EDA_ITEM::SetBrightened(), EDA_ITEM::SetIsShownAsBitmap(), EDA_ITEM::SetModified(), EDA_ITEM::SetSelected(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), SCH_ITEM::SwapFlags(), DS_DATA_ITEM::SyncDrawItems(), DS_DATA_ITEM_BITMAP::SyncDrawItems(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_DIMENSION_PROPERTIES::TransferDataFromWindow(), DIALOG_TARGET_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXTBOX_PROPERTIES::TransferDataFromWindow(), SCH_DRAWING_TOOLS::TwoClickPlace(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), and ROUTER_TOOL::updateSizesAfterRouterEvent().

◆ SetForcedTransparency()

void KIGFX::VIEW_ITEM::SetForcedTransparency ( double  aForcedTransparency)
inlineinherited

◆ SetForceVisible()

void EDA_ITEM::SetForceVisible ( bool  aEnable)
inlineinherited

Set and clear 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 194 of file eda_item.h.

References EDA_ITEM::m_forceVisible.

Referenced by SCH_FIND_REPLACE_TOOL::FindNext(), and SCH_FIND_REPLACE_TOOL::UpdateFind().

◆ SetFPRelativeOrientation()

void PAD::SetFPRelativeOrientation ( const EDA_ANGLE aAngle)

◆ SetFPRelativePosition()

◆ SetFrontRoundRectRadiusRatio()

void PAD::SetFrontRoundRectRadiusRatio ( double  aRadiusScale)

Definition at line 461 of file pad.cpp.

References F_Cu, m_padStack, SetDirty(), and PADSTACK::SetRoundRectRadiusRatio().

Referenced by PAD_DESC::PAD_DESC().

◆ SetFrontShape()

void PAD::SetFrontShape ( PAD_SHAPE  aShape)
inline

Definition at line 196 of file pad.h.

References F_Cu, m_padStack, SetDirty(), and PADSTACK::SetShape().

Referenced by PAD_DESC::PAD_DESC().

◆ SetIsKnockout()

◆ SetIsShownAsBitmap()

void EDA_ITEM::SetIsShownAsBitmap ( bool  aBitmap)
inlineinherited

Definition at line 160 of file eda_item.h.

References EDA_ITEM::ClearFlags(), IS_SHOWN_AS_BITMAP, and EDA_ITEM::SetFlags().

◆ SetKeepTopBottom()

void PAD::SetKeepTopBottom ( bool  aSet)
inline
Deprecated:

Definition at line 720 of file pad.h.

References m_padStack, PADSTACK::REMOVE_ALL, PADSTACK::REMOVE_EXCEPT_START_AND_END, and PADSTACK::SetUnconnectedLayerMode().

◆ SetLayer()

virtual void BOARD_ITEM::SetLayer ( PCB_LAYER_ID  aLayer)
inlinevirtualinherited

Set the layer this item is on.

This method is virtual because some items (in fact: class DIMENSION) have a slightly different initialization.

Parameters
aLayerThe layer number.

Reimplemented in PCB_GENERATOR, PCB_GROUP, PCB_SHAPE, PCB_VIA, and ZONE.

Definition at line 288 of file board_item.h.

References BOARD_ITEM::m_layer.

Referenced by CADSTAR_PCB_ARCHIVE_LOADER::addAttribute(), PCAD2KICAD::PCAD_FOOTPRINT::AddToBoard(), PCAD2KICAD::PCAD_LINE::AddToBoard(), PCAD2KICAD::PCAD_TEXT::AddToBoard(), CADSTAR_PCB_ARCHIVE_LOADER::applyDimensionSettings(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), BOOST_AUTO_TEST_CASE(), ALTIUM_PCB::ConvertTexts6ToBoardItemOnLayer(), ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer(), PNS_KICAD_IFACE::createBoardItem(), PCB_BASE_FRAME::CreateNewFootprint(), BOARD_ADAPTER::createTrackWithMargin(), FOOTPRINT::Deserialize(), Deserialize(), PCB_FIELD::Deserialize(), PCB_TEXT::Deserialize(), PCB_TRACK::Deserialize(), PCB_ARC::Deserialize(), EDIT_TOOL::DragArcTrack(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarText(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawTable(), EDIT_TOOL::FilletTracks(), PCB_IO_EASYEDAPRO_PARSER::fillFootprintModelInfo(), FOOTPRINT::Flip(), PCB_DIMENSION_BASE::Flip(), PCB_TABLE::Flip(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), PCB_ARC::Flip(), FOOTPRINT::FOOTPRINT(), PNS_PCBNEW_RULE_RESOLVER::getBoardItem(), DRAWING_TOOL::InteractivePlaceWithPreview(), FABMASTER::loadEtch(), PCB_IO_KICAD_LEGACY::loadFOOTPRINT(), FABMASTER::loadFootprints(), FABMASTER::loadGraphics(), PCB_IO_KICAD_LEGACY::loadMODULE_TEXT(), FABMASTER::loadOutline(), PCB_IO_KICAD_LEGACY::loadPCB_TEXT(), PCB_IO_EAGLE::loadPlain(), PCB_IO_EAGLE::loadSignals(), PCB_IO_KICAD_LEGACY::loadTrackList(), main(), DSN::SPECCTRA_DB::makeTRACK(), CADSTAR_PCB_ARCHIVE_LOADER::makeTracksFromShapes(), DIALOG_FOOTPRINT_PROPERTIES::OnAddField(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAddField(), PCB_IO_EAGLE::packageText(), PCB_IO_KICAD_SEXPR_PARSER::parseFOOTPRINT_unchecked(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TEXT_effects(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), PCB_MARKER::PCB_MARKER(), PCB_REFERENCE_IMAGE_DESC::PCB_REFERENCE_IMAGE_DESC(), PCB_TEXT::PCB_TEXT(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), processTextItem(), CLIPBOARD_IO::SaveSelection(), PCB_SHAPE::SetLayer(), BOARD_ITEM::SetLayerSet(), PCB_TRACK::SetLayerSet(), PCB_FIELDS_GRID_TABLE::SetValueAsLong(), EDIT_TOOL::Swap(), DRC_TEST_PROVIDER_CREEPAGE::testCreepage(), DIALOG_REFERENCE_IMAGE_PROPERTIES::TransferDataFromWindow(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), BOARD_NETLIST_UPDATER::updateFootprintParameters(), and ROUTER_TOOL::updateSizesAfterRouterEvent().

◆ SetLayerSet()

void PAD::SetLayerSet ( const LSET aLayers)
inlineoverridevirtual

◆ SetLocalClearance()

void PAD::SetLocalClearance ( std::optional< int >  aClearance)
inline

◆ SetLocalRatsnestVisible()

void BOARD_CONNECTED_ITEM::SetLocalRatsnestVisible ( bool  aVisible)
inlineinherited

◆ SetLocalSolderMaskMargin()

void PAD::SetLocalSolderMaskMargin ( std::optional< int >  aMargin)
inline

◆ SetLocalSolderPasteMargin()

void PAD::SetLocalSolderPasteMargin ( std::optional< int >  aMargin)
inline

◆ SetLocalSolderPasteMarginRatio()

void PAD::SetLocalSolderPasteMarginRatio ( std::optional< double >  aRatio)
inline

◆ SetLocalZoneConnection()

void PAD::SetLocalZoneConnection ( ZONE_CONNECTION  aType)
inline

◆ SetLocked()

◆ SetModified()

◆ SetNet()

◆ SetNetCode() [1/2]

void BOARD_CONNECTED_ITEM::SetNetCode ( int  aNetCode)
inlineinherited

Definition at line 108 of file board_connected_item.h.

References BOARD_CONNECTED_ITEM::SetNetCode().

◆ SetNetCode() [2/2]

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

◆ SetNumber()

void PAD::SetNumber ( const wxString &  aNumber)
inline

◆ SetOffset()

◆ SetOrientation()

void PAD::SetOrientation ( const EDA_ANGLE aAngle)

Set the rotation angle of the pad.

If aAngle is outside of 0 - 360, then it will be normalized.

Definition at line 867 of file pad.cpp.

References m_padStack, SetDirty(), and PADSTACK::SetOrientation().

Referenced by ZONE_FILLER::buildThermalSpokes(), ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), mirrorPad(), SetFPRelativeOrientation(), SetOrientationDegrees(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetOrientationDegrees()

void PAD::SetOrientationDegrees ( double  aOrientation)
inline

Definition at line 414 of file pad.h.

References DEGREES_T, and SetOrientation().

Referenced by PAD_DESC::PAD_DESC().

◆ SetPadstack()

void PAD::SetPadstack ( const PADSTACK aPadstack)
inline

Definition at line 325 of file pad.h.

References m_padStack.

Referenced by ImportSettingsFrom(), and DIALOG_PAD_PROPERTIES::TransferDataFromWindow().

◆ SetPadToDieLength()

void PAD::SetPadToDieLength ( int  aLength)
inline

◆ SetParent()

virtual void EDA_ITEM::SetParent ( EDA_ITEM aParent)
inlinevirtualinherited

Reimplemented in LIB_SYMBOL, and NETINFO_ITEM.

Definition at line 104 of file eda_item.h.

References EDA_ITEM::m_parent.

Referenced by BOARD::Add(), FOOTPRINT::Add(), PCB_TABLE::AddCell(), SCH_TABLE::AddCell(), LIB_SYMBOL::AddDrawItem(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), BOARD_NETLIST_UPDATER::addNewFootprint(), SCH_SHEET::AddPin(), AddPrimitive(), PADSTACK::AddPrimitive(), AddPrimitivePoly(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SCH_SCREEN::Append(), BOOST_AUTO_TEST_CASE(), CADSTAR_SCH_ARCHIVE_LOADER::copySymbolItems(), SYMBOL_EDIT_FRAME::CreateNewSymbol(), SCH_DRAWING_TOOLS::createNewText(), PANEL_EESCHEMA_COLOR_SETTINGS::createPreviewItems(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), PCBNEW_JOBS_HANDLER::doFpExportSvg(), SCH_LINE_WIRE_BUS_TOOL::doUnfoldBus(), SCH_DRAWING_TOOLS::DrawShape(), SCH_DRAWING_TOOLS::DrawTable(), PCB_EDIT_FRAME::ExchangeFootprint(), PAD_TOOL::explodePad(), LIB_SYMBOL::Flatten(), PCB_IO_KICAD_SEXPR::FootprintSave(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), CADSTAR_SCH_ARCHIVE_LOADER::getKiCadSchText(), PCB_TABLE::InsertCell(), SCH_TABLE::InsertCell(), LIB_SYMBOL::LIB_SYMBOL(), LTSPICE_SCHEMATIC::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadAliases(), CADSTAR_SCH_ARCHIVE_LOADER::loadChildSheets(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), SCH_IO_KICAD_SEXPR::loadHierarchy(), SCH_IO_KICAD_LEGACY::loadHierarchy(), KI_TEST::LoadHierarchy(), SCH_IO_EAGLE::loadSymbolCircle(), SCH_IO_EAGLE::loadSymbolPolyLine(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_IO_EAGLE::loadSymbolWire(), PCB_POINT_EDITOR::OnSelectionChange(), LIB_SYMBOL::operator=(), SCH_IO_KICAD_SEXPR_PARSER::parseLibSymbol(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), SCH_EDITOR_CONTROL::Paste(), SYMBOL_EDITOR_EDIT_TOOL::Paste(), PCB_CONTROL::Paste(), pasteFootprintItemsToFootprintEditor(), BOARD_EDITOR_CONTROL::PlaceFootprint(), BACK_ANNOTATE::processNetNameChange(), Recombine(), SCH_IO_LIB_CACHE::removeSymbol(), SCH_EDIT_TOOL::RepeatDrawItem(), SaveCopyOfZones(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), CLIPBOARD_IO::SaveSelection(), SCH_SHEET_PIN::SCH_SHEET_PIN(), LIB_SYMBOL::SetFields(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), FOOTPRINT::swapData(), PCB_TABLE::swapData(), SCH_LABEL_BASE::SwapData(), SCH_SHEET::SwapData(), SCH_SYMBOL::SwapData(), SCH_TABLE::SwapData(), BOARD_ITEM::SwapItemData(), SCH_SYMBOL::SyncOtherUnits(), and SCH_DRAWING_TOOLS::TwoClickPlace().

◆ SetParentGroup()

◆ SetPinFunction()

void PAD::SetPinFunction ( const wxString &  aName)
inline

Set the pad function (pin name in schematic)

Definition at line 144 of file pad.h.

References m_pinFunction.

Referenced by operator=().

◆ SetPinType()

void PAD::SetPinType ( const wxString &  aType)
inline

Set the pad electrical type.

Definition at line 150 of file pad.h.

References m_pinType.

Referenced by operator=().

◆ SetPosition()

◆ SetProperty()

void PAD::SetProperty ( PAD_PROP  aProperty)

◆ SetRemoveUnconnected()

void PAD::SetRemoveUnconnected ( bool  aSet)
inline
Deprecated:
  • use Padstack().SetUnconnectedLayerMode() Sets the unconnected removal property. If true, the copper is removed on zone fill or when specifically requested when the via is not connected on a layer.

Definition at line 704 of file pad.h.

References PADSTACK::KEEP_ALL, m_padStack, PADSTACK::REMOVE_ALL, and PADSTACK::SetUnconnectedLayerMode().

◆ SetRoundRectCornerRadius()

void PAD::SetRoundRectCornerRadius ( PCB_LAYER_ID  aLayer,
double  aRadius 
)

Has meaning only for rounded rectangle pads.

Returns
The radius of the rounded corners for this pad.

Definition at line 447 of file pad.cpp.

References m_padStack, and PADSTACK::SetRoundRectRadius().

Referenced by DIALOG_PAD_PROPERTIES::onCornerRadiusChange().

◆ SetRoundRectRadiusRatio()

void PAD::SetRoundRectRadiusRatio ( PCB_LAYER_ID  aLayer,
double  aRadiusScale 
)

Has meaning only for rounded rectangle pads.

Set the ratio between the smaller X or Y size and the rounded corner radius. Cannot be > 0.5; the normalized IPC-7351C value is 0.25

Definition at line 453 of file pad.cpp.

References m_padStack, SetDirty(), and PADSTACK::SetRoundRectRadiusRatio().

Referenced by DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PAD_PROPERTIES::OnPadShapeSelection(), PCB_IO_KICAD_SEXPR_PARSER::parsePadstack(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetSelected()

◆ SetShape()

void PAD::SetShape ( PCB_LAYER_ID  aLayer,
PAD_SHAPE  aShape 
)
inline

◆ SetSize()

◆ SetSizeX()

void PAD::SetSizeX ( const int  aX)
inline

◆ SetSizeY()

void PAD::SetSizeY ( const int  aY)
inline

◆ SetStroke()

void BOARD_ITEM::SetStroke ( const STROKE_PARAMS aStroke)
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 94 of file board_item.cpp.

References EDA_ITEM::GetClass().

◆ SetSubRatsnest()

void PAD::SetSubRatsnest ( int  aSubRatsnest)
inline

Definition at line 697 of file pad.h.

References m_subRatsnest.

Referenced by operator=(), and PAD().

◆ SetTeardropAllowSpanTwoTracks()

void BOARD_CONNECTED_ITEM::SetTeardropAllowSpanTwoTracks ( bool  aAllow)
inlineinherited

◆ SetTeardropBestLengthRatio()

void BOARD_CONNECTED_ITEM::SetTeardropBestLengthRatio ( double  aRatio)
inlineinherited

◆ SetTeardropBestWidthRatio()

void BOARD_CONNECTED_ITEM::SetTeardropBestWidthRatio ( double  aRatio)
inlineinherited

◆ SetTeardropCurved()

void BOARD_CONNECTED_ITEM::SetTeardropCurved ( bool  aCurve)
inlineinherited

◆ SetTeardropMaxLength()

void BOARD_CONNECTED_ITEM::SetTeardropMaxLength ( int  aMaxLength)
inlineinherited

◆ SetTeardropMaxTrackWidth()

void BOARD_CONNECTED_ITEM::SetTeardropMaxTrackWidth ( double  aRatio)
inlineinherited

◆ SetTeardropMaxWidth()

void BOARD_CONNECTED_ITEM::SetTeardropMaxWidth ( int  aMaxWidth)
inlineinherited

◆ SetTeardropPreferZoneConnections()

void BOARD_CONNECTED_ITEM::SetTeardropPreferZoneConnections ( bool  aPrefer)
inlineinherited

◆ SetTeardropsEnabled()

void BOARD_CONNECTED_ITEM::SetTeardropsEnabled ( bool  aEnable)
inlineinherited

◆ SetThermalGap()

void PAD::SetThermalGap ( int  aGap)
inline

◆ SetThermalSpokeAngle()

void PAD::SetThermalSpokeAngle ( const EDA_ANGLE aAngle)
inline

The orientation of the thermal spokes.

45° will produce an X (the default for circular pads and circular-anchored custom shaped pads), while 90° will produce a + (the default for all other shapes).

Definition at line 611 of file pad.h.

References m_padStack, and PADSTACK::SetThermalSpokeAngle().

Referenced by ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetThermalSpokeAngleDegrees()

void PAD::SetThermalSpokeAngleDegrees ( double  aAngle)
inline

Definition at line 621 of file pad.h.

References DEGREES_T, m_padStack, and PADSTACK::SetThermalSpokeAngle().

Referenced by PAD_DESC::PAD_DESC().

◆ SetThermalSpokeWidth()

void PAD::SetThermalSpokeWidth ( int  aWidth)
inline

Set the width of the thermal spokes connecting the pad to a zone.

If != 0 this will override similar settings in the parent footprint and zone.

Definition at line 601 of file pad.h.

References m_padStack, and PADSTACK::ThermalSpokeWidth().

Referenced by ImportSettingsFrom(), PAD_DESC::PAD_DESC(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ SetUnconnectedLayerMode()

void PAD::SetUnconnectedLayerMode ( PADSTACK::UNCONNECTED_LAYER_MODE  aMode)
inline

Definition at line 733 of file pad.h.

References m_padStack, and PADSTACK::SetUnconnectedLayerMode().

Referenced by PAD_DESC::PAD_DESC().

◆ SetX()

void PAD::SetX ( int  x)
inline

Definition at line 259 of file pad.h.

References m_pos, SetDirty(), and VECTOR2< T >::x.

Referenced by MICROWAVE_TOOL::createPolygonShape(), and playground_main_func().

◆ SetY()

void PAD::SetY ( int  y)
inline

Definition at line 258 of file pad.h.

References m_pos, SetDirty(), and VECTOR2< T >::y.

Referenced by playground_main_func().

◆ SetZoneLayerOverride()

void PAD::SetZoneLayerOverride ( PCB_LAYER_ID  aLayer,
ZONE_LAYER_OVERRIDE  aOverride 
)

Definition at line 209 of file pad.cpp.

References m_zoneLayerOverrides, and m_zoneLayerOverridesMutex.

◆ ShapePos()

◆ SharesNetTieGroup()

bool PAD::SharesNetTieGroup ( const PAD aOther) const
Returns
true if this and
Parameters
aOtherrepresent a net-tie.

Definition at line 239 of file pad.cpp.

References GetNumber(), BOARD_ITEM::GetParentFootprint(), FOOTPRINT::IsNetTie(), and FOOTPRINT::MapPadNumbersToNetTieGroups().

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture().

◆ ShowPadAttr()

wxString PAD::ShowPadAttr ( ) const
Returns
the GUI-appropriate description of the pad type (attribute) : Std, SMD ...

Definition at line 1484 of file pad.cpp.

References _, and GetAttribute().

Referenced by GetMsgPanelInfo().

◆ ShowPadShape()

wxString PAD::ShowPadShape ( PCB_LAYER_ID  aLayer) const
Returns
the GUI-appropriate name of the shape.

Definition at line 1468 of file pad.cpp.

References _, and GetShape().

Referenced by GetMsgPanelInfo().

◆ Similarity()

double PAD::Similarity ( const BOARD_ITEM aItem) const
overridevirtual

Return a measure of how likely the other object is to represent the same object.

The scale runs from 0.0 (definitely different objects) to 1.0 (same)

This is a pure virtual function. Derived classes must implement this.

Implements BOARD_ITEM.

Definition at line 2419 of file pad.cpp.

References GetAttribute(), BOARD_ITEM::GetParent(), GetPosition(), EDA_ITEM::m_parent, EDA_ITEM::m_Uuid, Padstack(), PADSTACK::Similarity(), and EDA_ITEM::Type().

◆ SMDMask()

◆ Sort()

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

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 433 of file eda_item.h.

◆ StyleFromSettings()

virtual void BOARD_ITEM::StyleFromSettings ( const BOARD_DESIGN_SETTINGS settings)
inlinevirtualinherited

Reimplemented in PCB_SHAPE, PCB_TEXT, and PCB_TEXTBOX.

Definition at line 330 of file board_item.h.

◆ swapData()

void PAD::swapData ( BOARD_ITEM aImage)
overrideprotectedvirtual

Reimplemented from BOARD_ITEM.

Definition at line 1851 of file pad.cpp.

References PCB_PAD_T, and EDA_ITEM::Type().

◆ SwapItemData()

void BOARD_ITEM::SwapItemData ( BOARD_ITEM aImage)
inherited

Swap data between aItem and aImage.

aItem and aImage should have the same type.

Used in undo and redo commands to swap values between an item and its copy. Only values like layer, size .. which are modified by editing are swapped.

Parameters
aImagethe item image which contains data to swap.

Definition at line 225 of file board_item.cpp.

References BOARD_ITEM::GetParent(), BOARD_ITEM::GetParentGroup(), group, EDA_ITEM::SetParent(), BOARD_ITEM::SetParentGroup(), and BOARD_ITEM::swapData().

Referenced by API_HANDLER_PCB::handleCreateUpdateItemsInternal(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), BOARD_COMMIT::Revert(), and UpdateCopyOfZonesList().

◆ TransformHoleToPolygon()

bool PAD::TransformHoleToPolygon ( SHAPE_POLY_SET aBuffer,
int  aClearance,
int  aError,
ERROR_LOC  aErrorLoc = ERROR_INSIDE 
) const

Build the corner list of the polygonal drill shape in the board coordinate system.

Parameters
aBuffera buffer to fill.
aClearancethe clearance or margin value.
aErrormaximum deviation of an arc from the polygon approximation.
aErrorLoc= should the approximation error be placed outside or inside the polygon?
Returns
false if the pad has no hole, true otherwise.

Definition at line 1859 of file pad.cpp.

References GetDrillSize(), GetEffectiveHoleShape(), TransformOvalToPolygon(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by ZONE_FILLER::addHoleKnockout(), and playground_main_func().

◆ TransformShapeToPolygon()

void PAD::TransformShapeToPolygon ( SHAPE_POLY_SET aBuffer,
PCB_LAYER_ID  aLayer,
int  aClearance,
int  aMaxError,
ERROR_LOC  aErrorLoc = ERROR_INSIDE,
bool  ignoreLineWidth = false 
) const
overridevirtual

Convert the pad shape to a closed polygon.

Circles and arcs are approximated by segments.

Parameters
aBuffera buffer to store the polygon.
aClearancethe clearance around the pad.
aMaxErrormaximum error from true when converting arcs.
aErrorLocshould the approximation error be placed outside or inside the polygon?
ignoreLineWidthused for edge cuts where the line width is only for visualization.

Reimplemented from BOARD_ITEM.

Definition at line 1876 of file pad.cpp.

References SHAPE_POLY_SET::Append(), delta, ERROR_OUTSIDE, SHAPE_POLY_SET::Fracture(), GetChamferPositions(), GetChamferRectRatio(), GetOrientation(), GetRoundRectCornerRadius(), GetShape(), SHAPE_POLY_SET::Inflate(), m_padStack, MergePrimitivesAsPolygon(), SHAPE_POLY_SET::Move(), SHAPE_POLY_SET::PM_FAST, SHAPE_POLY_SET::Rotate(), RotatePoint(), ShapePos(), PADSTACK::Size(), TransformCircleToPolygon(), TransformOvalToPolygon(), TransformRoundChamferedRectToPolygon(), TransformTrapezoidToPolygon(), PADSTACK::TrapezoidDeltaSize(), UNDEFINED_LAYER, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by ZONE_FILLER::addKnockout(), FEATURES_MANAGER::AddPadShape(), STEP_PCB_MODEL::AddPadShape(), BuildEffectivePolygon(), BOARD_ADAPTER::createPadWithMargin(), doCheckPad(), KIGFX::PCB_PAINTER::draw(), playground_main_func(), and Recombine().

◆ Type()

KICAD_T EDA_ITEM::Type ( ) const
inlineinherited

Returns the type of object.

This attribute should never be changed after a ctor sets it, so there is no public "setter" method.

Returns
the type of object.

Definition at line 101 of file eda_item.h.

References EDA_ITEM::m_structType.

Referenced by CN_CONNECTIVITY_ALGO::Add(), BOARD::Add(), FOOTPRINT::Add(), CN_CLUSTER::Add(), KIGFX::PCB_VIEW::Add(), PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), PCB_GROUP::AddItem(), CONNECTION_SUBGRAPH::AddItem(), DRC_TEST_PROVIDER_SOLDER_MASK::addItemToRTrees(), ZONE_FILLER::addKnockout(), SCH_SHEET::AddPin(), SCH_BASE_FRAME::AddToScreen(), ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), SCH_MOVE_TOOL::AlignToGrid(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), CN_ITEM::AnchorCount(), SCH_SCREEN::Append(), CADSTAR_SCH_ARCHIVE_LOADER::applyTextSettings(), TEARDROP_MANAGER::areItemsInSameZone(), PNS::TOPOLOGY::AssembleTuningPath(), SCH_LABEL_BASE::AutoplaceFields(), SCH_EDIT_FRAME::AutoRotateItem(), EE_SELECTION_TOOL::autostartEvent(), EXPORTER_STEP::buildGraphic3DShape(), PCB_NET_INSPECTOR_PANEL::buildNewItem(), SCH_SCREENS::buildScreenList(), EXPORTER_STEP::buildTrack3DShape(), BOARD_INSPECTION_TOOL::calculateSelectionRatsnest(), PCB_POINT_EDITOR::canAddCorner(), SCH_BUS_WIRE_ENTRY::CanConnect(), SCH_BUS_BUS_ENTRY::CanConnect(), SCH_JUNCTION::CanConnect(), SCH_LABEL_BASE::CanConnect(), SCH_LINE::CanConnect(), SCH_NO_CONNECT::CanConnect(), SCH_SHEET::CanConnect(), SCH_SYMBOL::CanConnect(), PCB_POINT_EDITOR::chamferCorner(), SCH_EDIT_TOOL::ChangeTextType(), KI_TEST::CheckFootprint(), KI_TEST::CheckFpShape(), KI_TEST::CheckFpZone(), DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture(), CN_VISITOR::checkZoneItemConnection(), LIB_SYMBOL::ClassOf(), SCH_BITMAP::ClassOf(), SCH_BUS_WIRE_ENTRY::ClassOf(), SCH_BUS_BUS_ENTRY::ClassOf(), SCH_FIELD::ClassOf(), SCH_JUNCTION::ClassOf(), SCH_LABEL::ClassOf(), SCH_DIRECTIVE_LABEL::ClassOf(), SCH_GLOBALLABEL::ClassOf(), SCH_HIERLABEL::ClassOf(), SCH_LINE::ClassOf(), SCH_MARKER::ClassOf(), SCH_NO_CONNECT::ClassOf(), SCH_PIN::ClassOf(), SCH_SCREEN::ClassOf(), SCH_SHEET::ClassOf(), SCH_SHEET_PIN::ClassOf(), SCH_SYMBOL::ClassOf(), SCH_TABLE::ClassOf(), SCH_TABLECELL::ClassOf(), SCH_TEXT::ClassOf(), SCH_TEXTBOX::ClassOf(), BOARD::ClassOf(), BOARD_CONNECTED_ITEM::ClassOf(), FOOTPRINT::ClassOf(), NETINFO_ITEM::ClassOf(), ClassOf(), PCB_DIM_ALIGNED::ClassOf(), PCB_DIM_ORTHOGONAL::ClassOf(), PCB_DIM_RADIAL::ClassOf(), PCB_DIM_LEADER::ClassOf(), PCB_DIM_CENTER::ClassOf(), PCB_FIELD::ClassOf(), PCB_GENERATOR::ClassOf(), PCB_GROUP::ClassOf(), PCB_MARKER::ClassOf(), PCB_REFERENCE_IMAGE::ClassOf(), PCB_SHAPE::ClassOf(), PCB_TABLE::ClassOf(), PCB_TABLECELL::ClassOf(), PCB_TARGET::ClassOf(), PCB_TEXT::ClassOf(), PCB_TEXTBOX::ClassOf(), PCB_TRACK::ClassOf(), PCB_ARC::ClassOf(), PCB_VIA::ClassOf(), ZONE::ClassOf(), CONNECTION_GRAPH::collectAllDriverValues(), collidesWithArea(), SCH_ITEM::compare(), SCH_FIELD::compare(), SCH_TEXT::compare(), SCH_TEXTBOX::compare(), LIB_SYMBOL::compare(), TEARDROP_MANAGER::computeAnchorPoints(), PCB_GRID_HELPER::computeAnchors(), EE_GRID_HELPER::computeAnchors(), SCH_BUS_WIRE_ENTRY::ConnectionPropagatesTo(), SCH_LINE::ConnectionPropagatesTo(), EE_RTREE::contains(), PICKED_ITEMS_LIST::ContainsItemType(), BOARD::ConvertKIIDsToCrossReferences(), SCHEMATIC::ConvertKIIDsToRefs(), PAD_TOOL::copyPadSettings(), FOOTPRINT::CoverageRatio(), CreateItemForType(), BOARD_ADAPTER::createLayers(), PCB_BASE_FRAME::CreateNewFootprint(), SCH_DRAWING_TOOLS::createNewText(), ZONE_CREATE_HELPER::createNewZone(), CONVERT_TOOL::CreatePolys(), BOARD_ADAPTER::createTrackWithMargin(), EE_INSPECTION_TOOL::CrossProbe(), DRC_TOOL::CrossProbe(), SCH_SCREEN::DeleteItem(), SCH_MARKER::DeserializeFromString(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_FIELD_PROPERTIES::DIALOG_FIELD_PROPERTIES(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), BOARD_COMMIT::dirtyIntersectingZones(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), SCH_EDIT_TOOL::DoDelete(), APPEARANCE_CONTROLS::doesBoardItemNeedRebuild(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), EDIT_TOOL::doMoveSelection(), SYMBOL_EDITOR_MOVE_TOOL::doMoveSelection(), SCH_MOVE_TOOL::doMoveSelection(), EDIT_TOOL::DragArcTrack(), KIGFX::SCH_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), DRAWING_TOOL::DrawDimension(), KIGFX::SCH_PAINTER::drawItemBoundingBox(), SCH_DRAWING_TOOLS::DrawSheet(), DRAWING_TOOL::DrawVia(), CONNECTION_SUBGRAPH::driverName(), CN_ITEM::Dump(), EDIT_TOOL::Duplicate(), FOOTPRINT::DuplicateItem(), EDA_ITEM_DESC::EDA_ITEM_DESC(), SCH_EDIT_TOOL::EditField(), SCH_EDIT_TOOL::editFieldText(), SYMBOL_EDITOR_EDIT_TOOL::editTextBoxProperties(), SYMBOL_EDITOR_EDIT_TOOL::editTextProperties(), enclosedByAreaFunc(), CONNECTION_GRAPH::ercCheckBusToBusConflicts(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckBusToNetConflicts(), CONNECTION_GRAPH::ercCheckDanglingWireEndpoints(), CONNECTION_GRAPH::ercCheckFloatingWires(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), CONNECTION_GRAPH::ercCheckNoConnects(), DRC_ENGINE::EvalRules(), DRC_ENGINE::EvalZoneConnection(), CONNECTION_SUBGRAPH::ExchangeItem(), CONNECTION_GRAPH::ExchangeItem(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForMarkers(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), PCB_SELECTION_TOOL::FindItem(), NETLIST_EXPORTER_BASE::findNextSymbol(), PCB_IO_KICAD_SEXPR::Format(), PCB_IO_KICAD_SEXPR::format(), SCH_IO_KICAD_SEXPR::Format(), SCH_IO_KICAD_LEGACY::Format(), FormatProbeItem(), CN_ITEM::GetAnchor(), BOARD_ITEM::GetBoard(), GetBoardItemWidth(), SCH_FIELD::GetBoundingBox(), SCH_LABEL_BASE::GetBoundingBox(), PCB_TRACK::GetBoundingBox(), GetBoundingBoxes(), SCH_FIELD::GetCanonicalName(), PCB_FIELD::GetCanonicalName(), EDIT_TOOL::getChildItemsOfGroupsAndGenerators(), getClosestGroup(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::DS_RENDER_SETTINGS::GetColor(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_MOVE_TOOL::getConnectedItems(), CONNECTIVITY_DATA::GetConnectedPadsAndVias(), FOOTPRINT::GetCoverageArea(), CONNECTION_GRAPH::getDefaultConnection(), SCH_FIELD::GetDefaultLayer(), SCH_FIELD::GetDrawRotation(), CONNECTION_SUBGRAPH::GetDriverPriority(), getFieldFunc(), PCB_TRACK::GetFriendlyName(), getHoleShape(), getInferredSymbols(), PCB_TRACK::GetItemDescription(), EE_GRID_HELPER::GetItemGrid(), PCB_GRID_HELPER::GetItemGrid(), PL_EDITOR_FRAME::GetLayoutFromRedoList(), PL_EDITOR_FRAME::GetLayoutFromUndoList(), SCH_FIELD::GetMenuImage(), getMinDist(), SCH_LABEL_BASE::GetMsgPanelInfo(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), SCH_FIELD::GetName(), PCB_FIELD::GetName(), SCH_SCREEN::GetNeededJunctions(), CONNECTION_SUBGRAPH::GetNetclassesForDriver(), CONNECTIVITY_DATA::GetNetItems(), GetNetNavigatorItemText(), BOARD_ITEM::GetParentFootprint(), SCH_ITEM::GetParentSymbol(), SCH_SYMBOL::GetPinPhysicalPosition(), SCH_FIELD::GetPosition(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), KIGFX::SCH_PAINTER::getRenderColor(), SCH_RULE_AREA::GetResolvedNetclasses(), TEXT_SEARCH_HANDLER::getResultCell(), LABEL_SEARCH_HANDLER::getResultCell(), GetSchItemAsText(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), SCH_FIELD::GetShownText(), CONVERT_TOOL::getStartEndPoints(), KIGFX::SCH_PAINTER::getTextThickness(), EDA_ITEM::GetTypeDesc(), PCBEXPR_COMPONENT_CLASS_REF::GetValue(), PCBEXPR_TYPE_REF::GetValue(), TEARDROP_MANAGER::GetWidth(), PCB_SELECTION_TOOL::grabUnconnected(), BOARD::GroupLegalOps(), EE_SELECTION_TOOL::GuessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), API_HANDLER_PCB::handleGetBoundingBox(), hash_fp_item(), EE_SELECTION_TOOL::highlight(), BOARD_INSPECTION_TOOL::HighlightItem(), BOARD_INSPECTION_TOOL::highlightNet(), highlightNet(), SCH_FIELD::HitTest(), SCH_LABEL_BASE::HitTest(), PCB_SELECTION_TOOL::hitTestDistance(), SCH_EDIT_TOOL::Increment(), SYMBOL_EDITOR_EDIT_TOOL::Increment(), DIALOG_FIELD_PROPERTIES::init(), SCH_EDIT_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), DRC_RTREE::Insert(), EE_RTREE::insert(), EE_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), BOARD_INSPECTION_TOOL::InspectDRCError(), isBlindBuriedViaFunc(), CONNECTIVITY_DATA::IsConnectedOnLayer(), isCopper(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingLineWireOrBus(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), CADSTAR_PCB_ARCHIVE_LOADER::isFootprint(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), isKeepoutZone(), SCH_FIELD::IsMandatory(), isMaskAperture(), isMicroVia(), PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot(), isNPTHPad(), PCB_TRACK::IsNull(), isNullAperture(), SCH_LINE::IsParallel(), isPlatedFunc(), SCH_FIELD::IsReplaceable(), TEARDROP_MANAGER::IsRound(), PNS::ROUTER::isStartingPointRoutable(), SCH_ITEM::IsType(), itemIsIncludedByFilter(), PCB_SELECTION_TOOL::itemPassesFilter(), EE_SELECTION_TOOL::itemPassesFilter(), SCH_EDIT_TOOL::JustifyText(), CLIPBOARD_IO::LoadBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), CADSTAR_SCH_ARCHIVE_LOADER::loadHierarchicalSheetPins(), CADSTAR_SCH_ARCHIVE_LOADER::loadNets(), EE_SELECTION_TOOL::Main(), EDIT_POINTS_FACTORY::Make(), PCB_POINT_EDITOR::makePoints(), ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::MakePoints(), EE_POINT_EDITOR::makePointsAndBehavior(), CONVERT_TOOL::makePolysFromChainedSegs(), SCH_SCREEN::MarkConnections(), CONNECTIVITY_DATA::MarkItemNetAsDirty(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), SCH_FIELD::Matches(), memberOfGroupFunc(), memberOfSheetFunc(), SCH_LINE::MergeOverlap(), SCH_EDIT_TOOL::Mirror(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), BOARD_EDITOR_CONTROL::modifyLockSelected(), SCH_MOVE_TOOL::moveItem(), EE_SELECTION_TOOL::narrowSelection(), ARRAY_TOOL::onDialogClosed(), DIALOG_DRC::OnDRCItemSelected(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnEditItemRequest(), DIALOG_GENERATORS::OnItemSelected(), EDA_3D_CANVAS::OnMouseMove(), SCH_EDIT_FRAME::onNetNavigatorSelection(), DIALOG_GENERATORS::OnRebuildTypeClick(), PCB_POINT_EDITOR::OnSelectionChange(), DIALOG_TEXT_PROPERTIES::OnSetFocusText(), CN_VISITOR::operator()(), BOARD_ITEM::ptr_cmp::operator()(), BOARD::cmp_items::operator()(), BOARD::cmp_drawings::operator()(), PCB_SHAPE::cmp_drawings::operator()(), FOOTPRINT::cmp_drawings::operator()(), KI_TEST::kitest_cmp_drawings::operator()(), PCB_TRACK::cmp_tracks::operator()(), SCH_ITEM::operator<(), SCH_BUS_ENTRY_BASE::operator<(), SCH_FIELD::operator<(), SCH_JUNCTION::operator<(), SCH_LINE::operator<(), SCH_SHEET::operator<(), SCH_SYMBOL::operator<(), SCH_TABLE::operator<(), SCH_TEXT::operator<(), SCH_TEXTBOX::operator<(), PCB_REFERENCE_IMAGE::operator=(), SCH_BITMAP::operator=(), SCH_SHEET::operator=(), SCH_SYMBOL::operator=(), operator==(), PCB_DIMENSION_BASE::operator==(), PCB_GROUP::operator==(), PCB_REFERENCE_IMAGE::operator==(), PCB_SHAPE::operator==(), PCB_TABLE::operator==(), PCB_TABLECELL::operator==(), PCB_TARGET::operator==(), PCB_TEXT::operator==(), PCB_TEXTBOX::operator==(), PCB_ARC::operator==(), BOARD::operator==(), FOOTPRINT::operator==(), PCB_FIELD::operator==(), PCB_TRACK::operator==(), PCB_VIA::operator==(), ZONE::operator==(), SCH_BUS_ENTRY_BASE::operator==(), SCH_FIELD::operator==(), SCH_TEXT::operator==(), SCH_ITEM::operator==(), SCH_BITMAP::operator==(), SCH_JUNCTION::operator==(), SCH_LINE::operator==(), SCH_NO_CONNECT::operator==(), SCH_SHAPE::operator==(), SCH_SHEET::operator==(), SCH_SHEET_PIN::operator==(), SCH_SYMBOL::operator==(), SCH_TABLE::operator==(), SCH_TABLECELL::operator==(), SCH_TEXTBOX::operator==(), PAD(), SCH_COMMIT::parentObject(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_SHAPE(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_IO_KICAD_SEXPR_PARSER::parseSchField(), PCB_CONTROL::Paste(), SCH_DRAWING_TOOLS::PlaceNextSymbolUnit(), SCH_FIELD::Plot(), SCH_LABEL_BASE::Plot(), BRDITEMS_PLOTTER::PlotBoardGraphicItem(), POSITION_RELATIVE_TOOL::PositionRelativeInteractively(), SCH_FIELD::Print(), DIALOG_GLOBAL_EDIT_TEARDROPS::processItem(), OUTSET_ROUTINE::ProcessItem(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::processItem(), BACK_ANNOTATE::processNetNameChange(), CONNECTION_GRAPH::processSubGraphs(), SCH_EDIT_TOOL::Properties(), SYMBOL_EDITOR_EDIT_TOOL::Properties(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), BOARD_COMMIT::Push(), SCH_COMMIT::pushSchEdit(), SCH_EDIT_FRAME::PutDataInPreviousState(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), PCB_GRID_HELPER::queryVisible(), BOARD_REANNOTATE_TOOL::ReannotateDuplicates(), PCB_SELECTION_TOOL::RebuildSelection(), SCH_CONNECTION::recacheName(), SCH_EDIT_FRAME::RecalculateConnections(), SCH_BASE_FRAME::RefreshZoomDependentItems(), GENERATOR_TOOL::RegenerateSelected(), POSITION_RELATIVE_TOOL::RelativeItemSelectionMove(), BOARD::Remove(), CN_CONNECTIVITY_ALGO::Remove(), FOOTPRINT::Remove(), EE_RTREE::remove(), SCH_SCREEN::Remove(), KIGFX::PCB_VIEW::Remove(), PCB_POINT_EDITOR::removeCorner(), PCB_POINT_EDITOR::removeCornerCondition(), LIB_SYMBOL::RemoveDrawItem(), SCH_BASE_FRAME::RemoveFromScreen(), CONNECTION_SUBGRAPH::RemoveItem(), EDIT_TOOL::removeNonRootItems(), SCH_SHEET::RemovePin(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_FIELD::Replace(), SCH_FIND_REPLACE_TOOL::ReplaceAll(), EE_SELECTION_TOOL::RequestSelection(), KI_TEST::RequireBoardItemWithTypeAndId(), CONNECTION_GRAPH::resolveAllDrivers(), SCHEMATIC::ResolveCrossReference(), CONNECTION_SUBGRAPH::ResolveDrivers(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), SCH_LABEL_BASE::ResolveTextVar(), BOARD::ResolveTextVar(), DS_PROXY_UNDO_ITEM::Restore(), SCH_COMMIT::Revert(), BOARD_COMMIT::Revert(), PL_EDITOR_FRAME::RollbackFromUndo(), SCH_EDIT_TOOL::Rotate(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), DRC_TEST_PROVIDER_TEXT_DIMS::Run(), DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal(), EE_TOOL_BASE< T >::saveCopyInUndoList(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveField(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveField(), SCH_IO_KICAD_LEGACY_LIB_CACHE::savePin(), SCH_IO_KICAD_SEXPR_LIB_CACHE::savePin(), CLIPBOARD_IO::SaveSelection(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveText(), SCH_IO_KICAD_SEXPR::saveText(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveText(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SCH_ITEM::Schematic(), SCH_SCREEN::Schematic(), SYMBOL_SEARCH_HANDLER::Search(), POWER_SEARCH_HANDLER::Search(), TEXT_SEARCH_HANDLER::Search(), PCB_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::Selectable(), EE_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectSameSheet(), PCB_SELECTION_TOOL::selectUnconnected(), PCB_POINT_EDITOR::setAltConstraint(), SCH_FIELD::SetId(), ITEM_PICKER::SetItem(), PCB_BASE_FRAME::SetPlotSettings(), SCH_FIELD::SetPosition(), PCB_EDIT_FRAME::ShowFindDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), BOARD_INSPECTION_TOOL::ShowFootprintLinks(), PCB_REFERENCE_IMAGE::Similarity(), PCB_SHAPE::Similarity(), PCB_TABLECELL::Similarity(), PCB_TARGET::Similarity(), PCB_TEXT::Similarity(), PCB_TEXTBOX::Similarity(), FOOTPRINT::Similarity(), Similarity(), PCB_DIMENSION_BASE::Similarity(), PCB_FIELD::Similarity(), PCB_GROUP::Similarity(), PCB_TABLE::Similarity(), PCB_TRACK::Similarity(), PCB_ARC::Similarity(), PCB_VIA::Similarity(), ZONE::Similarity(), SCH_BUS_ENTRY_BASE::Similarity(), SCH_FIELD::Similarity(), SCH_TEXT::Similarity(), SCH_BITMAP::Similarity(), SCH_JUNCTION::Similarity(), SCH_LINE::Similarity(), SCH_NO_CONNECT::Similarity(), SCH_PIN::Similarity(), SCH_SHAPE::Similarity(), SCH_SHEET::Similarity(), SCH_SHEET_PIN::Similarity(), SCH_SYMBOL::Similarity(), SCH_TABLE::Similarity(), SCH_TABLECELL::Similarity(), SCH_TEXTBOX::Similarity(), LIB_SYMBOL::Similarity(), SCH_EDITOR_CONTROL::SimProbe(), SCH_COMMIT::Stage(), PNS::LINE_PLACER::Start(), SCH_EDIT_TOOL::Swap(), SYMBOL_EDITOR_EDIT_TOOL::Swap(), EDIT_TOOL::Swap(), FOOTPRINT::swapData(), PCB_TUNING_PATTERN::swapData(), swapData(), PCB_DIM_ALIGNED::swapData(), PCB_DIM_ORTHOGONAL::swapData(), PCB_DIM_RADIAL::swapData(), PCB_DIM_LEADER::swapData(), PCB_DIM_CENTER::swapData(), PCB_FIELD::swapData(), PCB_GROUP::swapData(), PCB_TABLE::swapData(), PCB_TABLECELL::swapData(), PCB_TARGET::swapData(), PCB_TEXT::swapData(), PCB_TEXTBOX::swapData(), PCB_TRACK::swapData(), PCB_ARC::swapData(), PCB_VIA::swapData(), ZONE::swapData(), PCB_REFERENCE_IMAGE::swapData(), SCH_BITMAP::SwapData(), SCH_FIELD::SwapData(), SCH_JUNCTION::SwapData(), SCH_NO_CONNECT::SwapData(), SCH_SHEET::SwapData(), SCH_SHEET_PIN::SwapData(), SCH_SYMBOL::SwapData(), SCH_TABLE::SwapData(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testGraphicClearances(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::testHoleAgainstHole(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones(), DRC_TEST_PROVIDER_SOLDER_MASK::testMaskItemAgainstZones(), ERC_TESTER::TestMissingNetclasses(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testSingleLayerItemAgainstItem(), ERC_TESTER::TestTextVars(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), DIALOG_LABEL_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), DIALOG_LABEL_PROPERTIES::TransferDataToWindow(), DIALOG_SYMBOL_FIELDS_TABLE::TransferDataToWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TEARDROPS::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataToWindow(), PCB_TRACK::TransformShapeToPolygon(), SCH_LINE_WIRE_BUS_TOOL::TrimOverLappingWires(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), EE_SELECTION_TOOL::unhighlight(), KIGFX::PCB_VIEW::Update(), SCH_SHEET_PATH::UpdateAllScreenReferences(), DIALOG_FIELD_PROPERTIES::UpdateField(), PL_POINT_EDITOR::updateItem(), PCB_POINT_EDITOR::updateItem(), ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::UpdateItem(), EE_TOOL_BASE< T >::updateItem(), SCH_BASE_FRAME::UpdateItem(), PCB_CONTROL::UpdateMessagePanel(), EDIT_TOOL::updateModificationPoint(), PL_POINT_EDITOR::updatePoints(), SCH_BUS_ENTRY_BASE::ViewGetLayers(), SYMBOL::ViewGetLayers(), PCB_GROUP::Visit(), SCH_SHEET::Visit(), GERBER_DRAW_ITEM::Visit(), PCB_TRACK::Visit(), DIALOG_GLOBAL_EDIT_TEARDROPS::visitItem(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().

◆ UnplatedHoleMask()

LSET PAD::UnplatedHoleMask ( )
static

◆ ViewBBox()

const BOX2I PAD::ViewBBox ( ) const
overridevirtual

Return the bounding box of the item covering all its layers.

Returns
the current bounding box.

Reimplemented from EDA_ITEM.

Definition at line 1745 of file pad.cpp.

References PADSTACK::ForEachUniqueLayer(), BOARD_ITEM::GetBoard(), GetBoundingBox(), BOARD::GetMaxClearanceValue(), BOX2< Vec >::GetOrigin(), BOX2< Vec >::GetSize(), GetSolderMaskExpansion(), GetSolderPasteMargin(), Kiface(), Padstack(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by DIALOG_PAD_PROPERTIES::redraw().

◆ ViewDraw()

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

Draw the parts of the object belonging to layer aLayer.

An alternative way for drawing objects 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
aLayeris the current drawing layer.
aViewis a pointer to the VIEW device we are drawing on.

Reimplemented in DS_PROXY_VIEW_ITEM, KIGFX::PREVIEW::SIMPLE_OVERLAY_ITEM, EDIT_POINTS, TUNING_STATUS_VIEW_ITEM, RATSNEST_VIEW_ITEM, ROUTER_PREVIEW_ITEM, ROUTER_STATUS_VIEW_ITEM, MY_DRAWING, KIGFX::PREVIEW::ARC_ASSISTANT, KIGFX::PREVIEW::BEZIER_ASSISTANT, KIGFX::PREVIEW::RULER_ITEM, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::TWO_POINT_ASSISTANT, PCB_TUNING_PATTERN, KIGFX::ORIGIN_VIEWITEM, KIGFX::ANCHOR_DEBUG, KIGFX::CONSTRUCTION_GEOM, KIGFX::SNAP_INDICATOR, KIGFX::VIEW_GROUP, and KIGFX::VIEW_OVERLAY.

Definition at line 119 of file view_item.h.

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

◆ ViewGetLayers()

std::vector< int > PAD::ViewGetLayers ( ) const
overridevirtual

Return the all the layers within the VIEW the object is painted on.

For instance, a 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.

Reimplemented from BOARD_ITEM.

Definition at line 1612 of file pad.cpp.

References LSET::AllCuMask(), B_Adhes, B_Cu, B_Mask, B_Paste, B_SilkS, Dwgs_User, Eco1_User, Eco2_User, F_Adhes, F_Cu, F_Mask, F_Paste, F_SilkS, BOARD_ITEM::GetBoard(), IsOnLayer(), LAYER_NON_PLATEDHOLES, LAYER_PAD_BK_NETNAMES, LAYER_PAD_FR_NETNAMES, LAYER_PAD_HOLEWALLS, LAYER_PAD_NETNAMES, LAYER_PAD_PLATEDHOLES, PADSTACK::LayerSet(), m_attribute, m_padStack, and LSET::Seq().

◆ ViewGetLOD()

double PAD::ViewGetLOD ( int  aLayer,
KIGFX::VIEW aView 
) const
overridevirtual

Return 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
aLayeris the current drawing layer.
aViewis a pointer 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 KIGFX::VIEW_ITEM.

Definition at line 1679 of file pad.cpp.

References FlashLayer(), BOARD_ITEM::GetBoard(), GetBoundingBox(), BOARD::GetEnabledLayers(), KIGFX::RENDER_SETTINGS::GetHighContrast(), KIGFX::VIEW::GetPainter(), KIGFX::RENDER_SETTINGS::GetPrimaryHighContrastLayer(), KIGFX::PCB_PAINTER::GetSettings(), GetShape(), BOX2< Vec >::GetSize(), GetSize(), BOARD::GetVisibleLayers(), IsFlipped(), IsHoleLayer(), KIGFX::VIEW::IsLayerVisible(), IsNetnameLayer(), LAYER_FOOTPRINTS_BK, LAYER_FOOTPRINTS_FR, LAYER_PADS, EDA_IU_SCALE::mmToIU(), pcbIUScale, LSET::PhysicalLayersMask(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ viewPrivData()

◆ Visit()

INSPECT_RESULT EDA_ITEM::Visit ( INSPECTOR  inspector,
void *  testData,
const std::vector< KICAD_T > &  aScanTypes 
)
virtualinherited

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 aScanTypes, 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.
aScanTypesWhich KICAD_T types are of interest and the order in which they should be processed.
Returns
#SEARCH_RESULT SEARCH_QUIT if the Iterator is to stop the scan, else #SCAN_CONTINUE, and determined by the inspector.

Reimplemented in PCB_GROUP, LIB_SYMBOL, SCH_SHEET, SCH_SYMBOL, SCH_TABLE, GBR_LAYOUT, GERBER_DRAW_ITEM, GERBER_FILE_IMAGE, FOOTPRINT, PCB_TABLE, PCB_TRACK, SCH_LABEL_BASE, and BOARD.

Definition at line 94 of file eda_item.cpp.

References EDA_ITEM::GetClass(), and EDA_ITEM::IsType().

Referenced by PCB_TYPE_COLLECTOR::Collect(), PCB_LAYER_COLLECTOR::Collect(), GENERAL_COLLECTOR::Collect(), GERBER_COLLECTOR::Collect(), EDA_ITEM::IterateForward(), FOOTPRINT_PREVIEW_PANEL::renderFootprint(), and BOARD::UpdateUserUnits().

◆ XorFlags()

void EDA_ITEM::XorFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 128 of file eda_item.h.

References EDA_ITEM::m_flags.

Referenced by EE_SELECTION_TOOL::selectMultiple().

Member Data Documentation

◆ m_attribute

PAD_ATTRIB PAD::m_attribute = PAD_ATTRIB::PTH
private

Definition at line 937 of file pad.h.

Referenced by Compare(), GetAttribute(), GetPrincipalLayer(), IsType(), PAD(), SetAttribute(), and ViewGetLayers().

◆ m_effectiveBoundingBox

BOX2I PAD::m_effectiveBoundingBox
mutableprivate

Definition at line 924 of file pad.h.

Referenced by BuildEffectiveShapes(), and GetBoundingBox().

◆ m_effectiveBoundingRadius

int PAD::m_effectiveBoundingRadius
mutableprivate

Definition at line 932 of file pad.h.

Referenced by BuildEffectivePolygon(), GetBoundingRadius(), operator=(), and PAD().

◆ m_effectiveHoleShape

std::shared_ptr<SHAPE_SEGMENT> PAD::m_effectiveHoleShape
mutableprivate

Definition at line 926 of file pad.h.

Referenced by BuildEffectiveShapes(), and GetEffectiveHoleShape().

◆ m_effectivePolygons

LAYER_POLYGON_MAP PAD::m_effectivePolygons
mutableprivate

Definition at line 931 of file pad.h.

Referenced by BuildEffectivePolygon(), and GetEffectivePolygon().

◆ m_effectiveShapes

LAYER_SHAPE_MAP PAD::m_effectiveShapes
mutableprivate

Definition at line 925 of file pad.h.

Referenced by buildEffectiveShape(), and GetEffectiveShape().

◆ m_flags

◆ m_forcedTransparency

double KIGFX::VIEW_ITEM::m_forcedTransparency
privateinherited

Additional transparency for diff'ing items.

Definition at line 169 of file view_item.h.

Referenced by KIGFX::VIEW::DRAW_ITEM_VISITOR::operator()().

◆ m_forceVisible

◆ m_group

PCB_GROUP* BOARD_ITEM::m_group
protectedinherited

◆ m_isBOARD_ITEM

bool KIGFX::VIEW_ITEM::m_isBOARD_ITEM
privateinherited

Definition at line 167 of file view_item.h.

◆ m_isKnockout

bool BOARD_ITEM::m_isKnockout
protectedinherited

◆ m_isLocked

◆ m_isSCH_ITEM

bool KIGFX::VIEW_ITEM::m_isSCH_ITEM
privateinherited

Definition at line 166 of file view_item.h.

◆ m_layer

◆ m_lengthPadToDie

int PAD::m_lengthPadToDie
private

Definition at line 941 of file pad.h.

Referenced by GetPadToDieLength(), PAD(), and SetPadToDieLength().

◆ m_localRatsnestVisible

bool BOARD_CONNECTED_ITEM::m_localRatsnestVisible
privateinherited

◆ m_netinfo

◆ m_number

wxString PAD::m_number
private

Definition at line 912 of file pad.h.

Referenced by GetMsgPanelInfo(), GetNumber(), SameLogicalPadAs(), SetAttribute(), and SetNumber().

◆ m_padStack

PADSTACK PAD::m_padStack
private

Definition at line 918 of file pad.h.

Referenced by addPadPrimitivesToPolygon(), AddPrimitive(), AddPrimitivePoly(), buildEffectiveShape(), BuildEffectiveShapes(), Clone(), ConditionallyFlashed(), DeletePrimitivesList(), Deserialize(), FlashLayer(), Flip(), FlipPrimitives(), GetAnchorPadShape(), GetChamferPositions(), GetChamferRectRatio(), GetClearanceOverrides(), GetCustomShapeInZoneOpt(), GetDelta(), GetDrillShape(), GetDrillSize(), GetDrillSizeX(), GetDrillSizeY(), GetFrontRoundRectRadiusRatio(), GetFrontShape(), GetKeepTopBottom(), GetLayerSet(), GetLocalClearance(), GetLocalSolderMaskMargin(), GetLocalSolderPasteMargin(), GetLocalSolderPasteMarginRatio(), GetLocalSpokeWidthOverride(), GetLocalThermalGapOverride(), GetLocalZoneConnection(), GetMsgPanelInfo(), GetOffset(), GetOrientation(), GetOrientationDegrees(), GetPrimitives(), GetRemoveUnconnected(), GetRoundRectCornerRadius(), GetRoundRectRadiusRatio(), GetShape(), GetSize(), GetSizeX(), GetSizeY(), GetSolderMaskExpansion(), GetSolderPasteMargin(), GetThermalGap(), GetThermalSpokeAngle(), GetThermalSpokeAngleDegrees(), GetThermalSpokeWidth(), GetUnconnectedLayerMode(), GetZoneConnectionOverrides(), IsAperturePad(), IsOnCopperLayer(), IsOnLayer(), PAD(), Padstack(), Rotate(), Serialize(), SetAnchorPadShape(), SetAttribute(), SetChamferPositions(), SetChamferRectRatio(), SetCustomShapeInZoneOpt(), SetDelta(), SetDrillShape(), SetDrillSize(), SetDrillSizeX(), SetDrillSizeY(), SetFrontRoundRectRadiusRatio(), SetFrontShape(), SetKeepTopBottom(), SetLayerSet(), SetLocalClearance(), SetLocalSolderMaskMargin(), SetLocalSolderPasteMargin(), SetLocalSolderPasteMarginRatio(), SetLocalZoneConnection(), SetOffset(), SetOrientation(), SetPadstack(), SetRemoveUnconnected(), SetRoundRectCornerRadius(), SetRoundRectRadiusRatio(), SetShape(), SetSize(), SetSizeX(), SetSizeY(), SetThermalGap(), SetThermalSpokeAngle(), SetThermalSpokeAngleDegrees(), SetThermalSpokeWidth(), SetUnconnectedLayerMode(), ShapePos(), TransformShapeToPolygon(), and ViewGetLayers().

◆ m_parent

◆ m_pinFunction

wxString PAD::m_pinFunction
private

Definition at line 913 of file pad.h.

Referenced by GetPinFunction(), and SetPinFunction().

◆ m_pinType

wxString PAD::m_pinType
private

Definition at line 914 of file pad.h.

Referenced by GetPinType(), IsFreePad(), IsNoConnectPad(), and SetPinType().

◆ m_polyBuildingLock

std::mutex PAD::m_polyBuildingLock
mutableprivate

Definition at line 930 of file pad.h.

Referenced by BuildEffectivePolygon().

◆ m_polyDirty

bool PAD::m_polyDirty[2]
mutableprivate

◆ m_pos

VECTOR2I PAD::m_pos
private

◆ m_property

PAD_PROP PAD::m_property
private

Definition at line 939 of file pad.h.

Referenced by GetProperty(), and SetProperty().

◆ m_shapesBuildingLock

std::mutex PAD::m_shapesBuildingLock
mutableprivate

Definition at line 923 of file pad.h.

Referenced by BuildEffectiveShapes().

◆ m_shapesDirty

bool PAD::m_shapesDirty
mutableprivate

◆ m_structType

KICAD_T EDA_ITEM::m_structType
privateinherited

Run time identification, keep private so it can never be changed after a ctor sets it.

See comment near SetType() regarding virtual functions.

Definition at line 496 of file eda_item.h.

Referenced by EDA_ITEM::IsType(), EDA_ITEM::operator=(), and EDA_ITEM::Type().

◆ m_subRatsnest

int PAD::m_subRatsnest
private

Definition at line 934 of file pad.h.

Referenced by GetSubRatsnest(), and SetSubRatsnest().

◆ m_teardropParams

◆ m_Uuid

const KIID EDA_ITEM::m_Uuid
inherited

Definition at line 489 of file eda_item.h.

Referenced by BOARD::Add(), SCH_SYMBOL::AddHierarchicalReference(), RC_ITEM::AddItem(), SCH_EDIT_FRAME::AnnotateSymbols(), FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData(), SCH_SHEET_PATH::CheckForMissingSymbolInstances(), SCH_SHEET_PATH::Cmp(), SCH_ITEM::compare(), SCHEMATIC::ConvertRefsToKIIDs(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_EDIT_FRAME::CreateScreens(), SCH_LABEL::Deserialize(), SCH_LINE::Deserialize(), FOOTPRINT::Deserialize(), Deserialize(), PCB_SHAPE::Deserialize(), PCB_TEXT::Deserialize(), PCB_TRACK::Deserialize(), PCB_ARC::Deserialize(), PCB_VIA::Deserialize(), ZONE::Deserialize(), SCH_MARKER::DeserializeFromString(), ZONE_FILLER_TOOL::DirtyZone(), DRAWING_TOOL::DrawVia(), LIB_SYMBOL::Duplicate(), BOARD_ITEM::Duplicate(), FOOTPRINT::Duplicate(), SCH_ITEM::Duplicate(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), FOOTPRINT::DuplicateItem(), PCB_EDIT_FRAME::ExchangeFootprint(), PAD_TOOL::explodePad(), NETLIST_EXPORTER_ALLEGRO::extractComponentsInfo(), SCH_SHEET_LIST::FillItemMap(), BOARD::FillItemMap(), KIGIT_PCB_MERGE::findSetDifferences(), SCH_EDITOR_CONTROL::FindSymbolAndItem(), SCH_EDIT_FRAME::FocusOnItem(), SYMBOL_EDIT_FRAME::FocusOnItem(), PCB_IO_KICAD_SEXPR::format(), SCH_IO_KICAD_SEXPR::Format(), SCH_PIN::GetDefaultNetName(), SCH_SHEET_PATH::GetItem(), BOARD::GetItem(), RC_ITEM::GetJsonViolation(), GetMsgPanelInfo(), DIALOG_BOARD_REANNOTATE::GetNewRefDes(), BOARD_ITEM::GetParentAsString(), SCH_MARKER::GetUUID(), PCB_MARKER::GetUUID(), FIELDS_EDITOR_GRID_DATA_MODEL::GetValue(), FIELDS_EDITOR_GRID_DATA_MODEL::groupMatch(), ZONE::HigherPriority(), SCH_SHEET_PATH::IsContainedWithin(), PCB_IO_KICAD_LEGACY::loadFOOTPRINT(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PCB_EDIT_FRAME::LoadFootprints(), SCH_IO_KICAD_LEGACY::loadHierarchy(), PCB_IO_KICAD_LEGACY::loadPCB_TARGET(), PCB_IO_KICAD_LEGACY::loadPCB_TEXT(), EESCHEMA_HELPERS::LoadSchematic(), SCH_IO_ALTIUM::LoadSchematicFile(), SCH_IO_EAGLE::LoadSchematicFile(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromSchematic(), PCB_IO_KICAD_LEGACY::loadTrackList(), NETLIST_EXPORTER_XML::makeSymbols(), SCH_EDIT_FRAME::mapExistingAnnotation(), PCB_BASE_FRAME::OnFpChangeDebounceTimer(), BOARD_ITEM::ptr_cmp::operator()(), BOARD::cmp_items::operator()(), BOARD::cmp_drawings::operator()(), PCB_SHAPE::cmp_drawings::operator()(), FOOTPRINT::cmp_drawings::operator()(), CompareByUuid::operator()(), FOOTPRINT::cmp_pads::operator()(), PCB_TRACK::cmp_tracks::operator()(), FOOTPRINT::cmp_zones::operator()(), SCH_SYMBOL::operator<(), operator==(), SCH_FIELD::operator==(), PAD(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TEXT_effects(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), SCH_EDITOR_CONTROL::Paste(), SCH_SHEET_PATH::PathAsString(), PCB_VIA::PCB_VIA(), processTextItem(), BOARD_COMMIT::Push(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), BOARD::Remove(), SCH_SYMBOL::RemoveInstance(), FIELDS_EDITOR_GRID_DATA_MODEL::RemoveSymbol(), FIELDS_EDITOR_GRID_DATA_MODEL::RenameColumn(), SCH_SCREENS::ReplaceDuplicateTimeStamps(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), SCH_IO_KICAD_SEXPR::saveBitmap(), SCH_IO_KICAD_SEXPR::saveBusEntry(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_IO_KICAD_SEXPR::saveJunction(), SCH_IO_KICAD_SEXPR::saveLine(), SCH_IO_KICAD_SEXPR::saveNoConnect(), SCH_EDIT_FRAME::SaveProject(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_LEGACY::saveSheet(), SCH_IO_KICAD_SEXPR::saveSheet(), SCH_IO_KICAD_LEGACY::saveSymbol(), SCH_IO_KICAD_SEXPR::saveSymbol(), SCH_IO_KICAD_SEXPR::saveText(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_PIN::SCH_PIN(), SCH_REFERENCE::SCH_REFERENCE(), SCH_SHEET::SCH_SHEET(), SCH_SYMBOL::SCH_SYMBOL(), SCH_LABEL::Serialize(), SCH_LINE::Serialize(), FOOTPRINT::Serialize(), Serialize(), PCB_SHAPE::Serialize(), PCB_TEXT::Serialize(), PCB_TRACK::Serialize(), PCB_ARC::Serialize(), PCB_VIA::Serialize(), ZONE::Serialize(), RC_ITEM::SetItems(), SCH_EDITOR_CONTROL::setPastedSymbolInstances(), FIELDS_EDITOR_GRID_DATA_MODEL::SetValue(), Similarity(), PCB_DIMENSION_BASE::Similarity(), PCB_FIELD::Similarity(), SCH_BUS_ENTRY_BASE::Similarity(), SCH_FIELD::Similarity(), SCH_LABEL_BASE::Similarity(), SCH_TEXT::Similarity(), SCH_BITMAP::Similarity(), SCH_JUNCTION::Similarity(), SCH_LINE::Similarity(), SCH_NO_CONNECT::Similarity(), SCH_PIN::Similarity(), SCH_SHAPE::Similarity(), SCH_TEXTBOX::Similarity(), LIB_SYMBOL::Similarity(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_SYMBOL::SyncOtherUnits(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), testGroupEqual(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), FIELDS_EDITOR_GRID_DATA_MODEL::updateDataStoreSymbolField(), SCH_EDITOR_CONTROL::updatePastedSheet(), SCH_EDITOR_CONTROL::updatePastedSymbol(), SCH_SHEET_LIST::UpdateSymbolInstanceData(), and NETLIST_EXPORTER_ORCADPCB2::WriteNetlist().

◆ m_viewPrivData

VIEW_ITEM_DATA* KIGFX::VIEW_ITEM::m_viewPrivData
privateinherited

◆ m_zoneLayerOverrides

std::map<PCB_LAYER_ID, ZONE_LAYER_OVERRIDE> PAD::m_zoneLayerOverrides
private

◆ m_zoneLayerOverridesMutex

std::mutex PAD::m_zoneLayerOverridesMutex
private

Definition at line 943 of file pad.h.

Referenced by ClearZoneLayerOverrides(), and SetZoneLayerOverride().

◆ ZeroOffset

VECTOR2I BOARD_ITEM::ZeroOffset
staticinherited

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

Definition at line 180 of file board_item.h.

Referenced by BOARD::GetPosition().


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