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

#include <footprint.h>

Inheritance diagram for FOOTPRINT:
BOARD_ITEM_CONTAINER BOARD_ITEM EDA_ITEM KIGFX::VIEW_ITEM SERIALIZABLE INSPECTABLE

Classes

struct  cmp_drawings
 
struct  cmp_pads
 
struct  cmp_padstack
 
struct  cmp_zones
 

Public Member Functions

 FOOTPRINT (BOARD *parent)
 
 FOOTPRINT (const FOOTPRINT &aFootprint)
 
 FOOTPRINT (FOOTPRINT &&aFootprint)
 
 ~FOOTPRINT ()
 
FOOTPRINToperator= (const FOOTPRINT &aOther)
 
FOOTPRINToperator= (FOOTPRINT &&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.
 
LSET GetPrivateLayers () const
 
void SetPrivateLayers (LSET aLayers)
 Adds an item to the container.
 
void Add (BOARD_ITEM *aItem, ADD_MODE aMode=ADD_MODE::INSERT, bool aSkipConnectivity=false) override
 Removes an item from the container.
 
void Remove (BOARD_ITEM *aItem, REMOVE_MODE aMode=REMOVE_MODE::NORMAL) override
 Removes an item from the container.
 
void ClearAllNets ()
 Clear (i.e.
 
bool FixUuids ()
 Old footprints do not always have a valid UUID (some can be set to null uuid) However null UUIDs, having a special meaning in editor, create issues when editing a footprint So all null uuids a re replaced by a valid uuid.
 
BOX2I GetFpPadsLocalBbox () const
 Return the bounding box containing pads when the footprint is on the front side, orientation 0, position 0,0.
 
SHAPE_POLY_SET GetBoundingHull () const
 Return a bounding polygon for the shapes and pads in the footprint.
 
const BOX2I GetBoundingBox () const override
 Return the orthogonal bounding box of this object for display purposes.
 
const BOX2I GetBoundingBox (bool aIncludeText, bool aIncludeInvisibleText) const
 
const BOX2I GetLayerBoundingBox (LSET aLayers) const
 Return the bounding box of the footprint on a given set of layers.
 
VECTOR2I GetCenter () const override
 This defaults to the center of the bounding box if not overridden.
 
PCB_FIELDS & Fields ()
 
const PCB_FIELDS & Fields () const
 
PADS & Pads ()
 
const PADS & Pads () const
 
DRAWINGS & GraphicalItems ()
 
const DRAWINGS & GraphicalItems () const
 
ZONESZones ()
 
const ZONESZones () const
 
GROUPS & Groups ()
 
const GROUPS & Groups () const
 
bool HasThroughHolePads () const
 
std::vector< FP_3DMODEL > & Models ()
 
const std::vector< FP_3DMODEL > & Models () const
 
void SetPosition (const VECTOR2I &aPos) override
 
VECTOR2I GetPosition () const override
 
void SetOrientation (const EDA_ANGLE &aNewAngle)
 
EDA_ANGLE GetOrientation () const
 
void SetLayerAndFlip (PCB_LAYER_ID aLayer)
 Used as Layer property setter – performs a flip if necessary to set the footprint layer.
 
PCB_LAYER_ID GetLayer () const override
 Return the primary layer this item is on.
 
void SetOrientationDegrees (double aOrientation)
 
double GetOrientationDegrees () const
 
const LIB_IDGetFPID () const
 
void SetFPID (const LIB_ID &aFPID)
 
wxString GetFPIDAsString () const
 
void SetFPIDAsString (const wxString &aFPID)
 
wxString GetLibDescription () const
 
void SetLibDescription (const wxString &aDesc)
 
wxString GetKeywords () const
 
void SetKeywords (const wxString &aKeywords)
 
const KIID_PATHGetPath () const
 
void SetPath (const KIID_PATH &aPath)
 
wxString GetSheetname () const
 
void SetSheetname (const wxString &aSheetname)
 
wxString GetSheetfile () const
 
void SetSheetfile (const wxString &aSheetfile)
 
wxString GetFilters () const
 
void SetFilters (const wxString &aFilters)
 
std::optional< int > GetLocalClearance () const
 
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 GetAttributes () const
 
void SetAttributes (int aAttributes)
 
void SetFlag (int aFlag)
 
void IncrementFlag ()
 
int GetFlag () const
 
bool IsNetTie () const
 
std::optional< int > GetLocalClearance (wxString *aSource) const
 
std::optional< int > GetClearanceOverrides (wxString *aSource) const
 Return any local clearance overrides set in the "classic" (ie: pre-rule) system.
 
ZONE_CONNECTION GetZoneConnectionOverrides (wxString *aSource) const
 
const std::vector< wxString > & GetNetTiePadGroups () const
 
void ClearNetTiePadGroups ()
 
void AddNetTiePadGroup (const wxString &aGroup)
 
std::map< wxString, int > MapPadNumbersToNetTieGroups () const
 
std::vector< PAD * > GetNetTiePads (PAD *aPad) const
 
int GetLikelyAttribute () const
 Returns the most likely attribute based on pads Either FP_THROUGH_HOLE/FP_SMD/OTHER(0)
 
void Move (const VECTOR2I &aMoveVector) override
 Move this object.
 
void Rotate (const VECTOR2I &aRotCentre, const EDA_ANGLE &aAngle) override
 Rotate this object.
 
void Flip (const VECTOR2I &aCentre, bool aFlipLeftRight) override
 Flip this object, i.e.
 
void MoveAnchorPosition (const VECTOR2I &aMoveVector)
 Move the reference point of the footprint.
 
bool IsFlipped () const
 
PCB_LAYER_ID GetSide () const
 Use instead of IsFlipped() when you also need to account for unsided footprints (those purely on user-layers, etc.).
 
bool IsOnLayer (PCB_LAYER_ID aLayer) const override
 Test to see if this object is on the given layer.
 
bool IsLocked () const override
 
void SetLocked (bool isLocked) override
 Set the #MODULE_is_LOCKED bit in the m_ModuleStatus.
 
bool IsConflicting () const
 
bool IsPlaced () const
 
void SetIsPlaced (bool isPlaced)
 
bool NeedsPlaced () const
 
void SetNeedsPlaced (bool needsPlaced)
 
bool LegacyPadsLocked () const
 
void CheckFootprintAttributes (const std::function< void(const wxString &)> &aErrorHandler)
 Test if footprint attributes for type (SMD/Through hole/Other) match the expected type based on the pads in the footprint.
 
void CheckPads (const std::function< void(const PAD *, int, const wxString &)> &aErrorHandler)
 Run non-board-specific DRC checks on footprint's pads.
 
void CheckShortingPads (const std::function< void(const PAD *, const PAD *, const VECTOR2I &)> &aErrorHandler)
 Check for overlapping, different-numbered, non-net-tie pads.
 
void CheckNetTies (const std::function< void(const BOARD_ITEM *aItem, const BOARD_ITEM *bItem, const BOARD_ITEM *cItem, const VECTOR2I &)> &aErrorHandler)
 Check for un-allowed shorting of pads in net-tie footprints.
 
void CheckNetTiePadGroups (const std::function< void(const wxString &)> &aErrorHandler)
 Sanity check net-tie pad groups.
 
void TransformPadsToPolySet (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aMaxError, ERROR_LOC aErrorLoc, bool aSkipNPTHPadsWihNoCopper=false, bool aSkipPlatedPads=false, bool aSkipNonPlatedPads=false) const
 Generate pads shapes on layer aLayer as polygons and adds these polygons to aBuffer.
 
void TransformFPShapesToPolySet (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool aIncludeText=true, bool aIncludeShapes=true, bool aIncludePrivateItems=false) const
 Generate shapes of graphic items (outlines) on layer aLayer as polygons and adds these polygons to aBuffer.
 
void TransformFPTextToPolySet (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc) const
 This function is the same as TransformFPShapesToPolySet but only generates text.
 
void GetContextualTextVars (wxArrayString *aVars) const
 Return the list of system text vars for this footprint.
 
bool ResolveTextVar (wxString *token, int aDepth=0) const
 Resolve any references to system tokens supported by the component.
 
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 HitTest (const VECTOR2I &aPosition, int aAccuracy=0) const override
 Test if aPosition is inside or on the boundary of this item.
 
bool HitTestAccurate (const VECTOR2I &aPosition, int aAccuracy=0) const
 Test if a point is inside the bounding polygon of the footprint.
 
bool HitTest (const BOX2I &aRect, bool aContained, int aAccuracy=0) const override
 Test if aRect intersects this item.
 
bool HitTestOnLayer (const VECTOR2I &aPosition, PCB_LAYER_ID aLayer, int aAccuracy=0) const
 Test if the point hits one or more of the footprint elements on a given layer.
 
bool HitTestOnLayer (const BOX2I &aRect, bool aContained, PCB_LAYER_ID aLayer, int aAccuracy=0) const
 
const wxString & GetReference () const
 
void SetReference (const wxString &aReference)
 
wxString GetReferenceAsString () const
 
void IncrementReference (int aDelta)
 Bump the current reference by aDelta.
 
const wxString & GetValue () const
 
void SetValue (const wxString &aValue)
 
wxString GetValueAsString () const
 
PCB_FIELDValue ()
 read/write accessors:
 
PCB_FIELDReference ()
 
PCB_FIELDFootprint ()
 
const PCB_FIELDValue () const
 The const versions to keep the compiler happy.
 
const PCB_FIELDReference () const
 
const PCB_FIELDFootprint () const
 
PCB_FIELDGetField (MANDATORY_FIELD_T aFieldType)
 Return a mandatory field in this symbol.
 
const PCB_FIELDGetField (MANDATORY_FIELD_T aFieldNdx) const
 
PCB_FIELDGetFieldById (int aFieldId)
 Return a field in this symbol.
 
PCB_FIELDGetFieldByName (const wxString &aFieldName)
 Return a field in this symbol.
 
bool HasFieldByName (const wxString &aFieldName) const
 
wxString GetFieldText (const wxString &aFieldName) const
 Search for a field named aFieldName and returns text associated with this field.
 
void GetFields (std::vector< PCB_FIELD * > &aVector, bool aVisibleOnly)
 Populate a std::vector with PCB_TEXTs.
 
PCB_FIELDS GetFields ()
 Return a vector of fields from the symbol.
 
const PCB_FIELDS & GetFields () const
 
PCB_FIELDAddField (const PCB_FIELD &aField)
 Add a field to the symbol.
 
void RemoveField (const wxString &aFieldName)
 Remove a user field from the footprint.
 
int GetFieldCount () const
 Return the number of fields in this symbol.
 
void ApplyDefaultSettings (const BOARD &board, bool aStyleFields, bool aStyleText, bool aStyleShapes)
 Apply default board settings to the footprint field text properties.
 
bool IsBoardOnly () const
 
void SetBoardOnly (bool aIsBoardOnly=true)
 
bool IsExcludedFromPosFiles () const
 
void SetExcludedFromPosFiles (bool aExclude=true)
 
bool IsExcludedFromBOM () const
 
void SetExcludedFromBOM (bool aExclude=true)
 
bool AllowMissingCourtyard () const
 
void SetAllowMissingCourtyard (bool aAllow=true)
 
bool IsDNP () const
 
void SetDNP (bool aDNP=true)
 
void SetFileFormatVersionAtLoad (int aVersion)
 
int GetFileFormatVersionAtLoad () const
 
PADFindPadByNumber (const wxString &aPadNumber, PAD *aSearchAfterMe=nullptr) const
 Return a PAD with a matching number.
 
PADGetPad (const VECTOR2I &aPosition, LSET aLayerMask=LSET::AllLayersMask())
 Get a pad at aPosition on aLayerMask in the footprint.
 
unsigned GetPadCount (INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) const
 Return the number of pads.
 
unsigned GetUniquePadCount (INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) const
 Return the number of unique non-blank pads.
 
std::set< wxString > GetUniquePadNumbers (INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) const
 Return the names of the unique, non-blank pads.
 
wxString GetNextPadNumber (const wxString &aLastPadName) const
 Return the next available pad number in the footprint.
 
void AutoPositionFields ()
 Position Reference and Value fields at the top and bottom of footprint's bounding box.
 
wxString GetTypeName () const
 Get the type of footprint.
 
double GetArea (int aPadding=0) const
 
KIID GetLink () const
 
void SetLink (const KIID &aLink)
 
BOARD_ITEMDuplicate () const override
 Create a copy of this BOARD_ITEM.
 
BOARD_ITEMDuplicateItem (const BOARD_ITEM *aItem, bool aAddToFootprint=false)
 Duplicate a given item within the footprint, optionally adding it to the board.
 
void Add3DModel (FP_3DMODEL *a3DModel)
 Add a3DModel definition to the end of the 3D model list.
 
INSPECT_RESULT Visit (INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &aScanTypes) override
 May be re-implemented for each derived class in order to handle all the types given by its member data.
 
wxString GetClass () const override
 Return the class name.
 
wxString GetItemDescription (UNITS_PROVIDER *aUnitsProvider) 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.
 
EDA_ITEMClone () const override
 Invoke a function on all children.
 
void RunOnChildren (const std::function< void(BOARD_ITEM *)> &aFunction) const override
 Invoke a function on all descendants.
 
void RunOnDescendants (const std::function< void(BOARD_ITEM *)> &aFunction, int aDepth=0) const override
 Invoke a function on all descendants.
 
virtual void ViewGetLayers (int aLayers[], int &aCount) 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.
 
bool FootprintNeedsUpdate (const FOOTPRINT *aLibFP, REPORTER *aReporter=nullptr)
 Return true if a board footprint differs from the library version.
 
void SetInitialComments (wxArrayString *aInitialComments)
 Take ownership of caller's heap allocated aInitialComments block.
 
double CoverageRatio (const GENERAL_COLLECTOR &aCollector) const
 Calculate the ratio of total area of the footprint pads and graphical items to the area of the footprint.
 
const wxArrayString * GetInitialComments () const
 Return the initial comments block or NULL if none, without transfer of ownership.
 
const SHAPE_POLY_SETGetCourtyard (PCB_LAYER_ID aLayer) const
 Used in DRC to test the courtyard area (a complex polygon).
 
void BuildCourtyardCaches (OUTLINE_ERROR_HANDLER *aErrorHandler=nullptr)
 Build complex polygons of the courtyard areas from graphic items on the courtyard layers.
 
std::shared_ptr< SHAPEGetEffectiveShape (PCB_LAYER_ID aLayer=UNDEFINED_LAYER, FLASHING aFlash=FLASHING::DEFAULT) const override
 Some pad shapes can be complex (rounded/chamfered rectangle), even without considering custom shapes.
 
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 BOARD_ITEM &aOther) const override
 
bool operator== (const FOOTPRINT &aOther) const
 
virtual void Delete (BOARD_ITEM *aItem)
 Removes an item from the container and deletes it.
 
void SetParentGroup (PCB_GROUP *aGroup)
 
PCB_GROUPGetParentGroup () const
 
int GetX () const
 
int GetY () const
 
void SetX (int aX)
 
void SetY (int aY)
 
virtual bool IsConnected () const
 Returns information if the object is derived from BOARD_CONNECTED_ITEM.
 
virtual bool IsOnCopperLayer () const
 
virtual bool HasHole () const
 
virtual bool IsTented () const
 
virtual std::shared_ptr< SHAPE_SEGMENTGetEffectiveHoleShape () const
 
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 LSET GetLayerSet () const
 Return a std::bitset of all layers on which the item physically resides.
 
virtual void SetLayerSet (LSET aLayers)
 
virtual void SetLayer (PCB_LAYER_ID aLayer)
 Set the layer this item is on.
 
void SwapItemData (BOARD_ITEM *aImage)
 Swap data between aItem and aImage.
 
virtual bool IsKnockout () const
 
virtual void SetIsKnockout (bool aKnockout)
 
virtual void StyleFromSettings (const BOARD_DESIGN_SETTINGS &settings)
 
void DeleteStructure ()
 Delete this object after removing from its parent if it has one.
 
virtual void Normalize ()
 Perform any normalization required after a user rotate and/or flip.
 
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.
 
virtual void TransformShapeToPolygon (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false) const
 Convert the item shape to a closed polygon.
 
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
 
virtual bool IsType (const std::vector< KICAD_T > &aScanTypes) const
 Check whether the item is one of the listed types.
 
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.
 
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 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 bool ClassOf (const EDA_ITEM *aItem)
 
static bool IsLibNameValid (const wxString &aName)
 Test for validity of a name of a footprint to be used in a footprint library ( no spaces, dir separators ... ).
 
static const wxChar * StringLibNameInvalidChars (bool aUserReadable)
 Test for validity of the name in a library of the footprint ( no spaces, dir separators ... ).
 
static double GetCoverageArea (const BOARD_ITEM *aItem, const GENERAL_COLLECTOR &aCollector)
 
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

PCB_LAYER_ID m_layer
 
bool m_isKnockout
 
bool m_isLocked
 
PCB_GROUPm_group
 
EDA_ITEMm_parent
 Linked list: Link (parent struct)
 
bool m_forceVisible
 
EDA_ITEM_FLAGS m_flags
 

Private Attributes

PCB_FIELDS m_fields
 
DRAWINGS m_drawings
 
PADS m_pads
 
ZONES m_zones
 
GROUPS m_groups
 
EDA_ANGLE m_orient
 
VECTOR2I m_pos
 
LIB_ID m_fpid
 
int m_attributes
 
int m_fpStatus
 
int m_fileFormatVersionAtLoad
 
BOX2I m_cachedBoundingBox
 
int m_boundingBoxCacheTimeStamp
 
BOX2I m_cachedVisibleBBox
 
int m_visibleBBoxCacheTimeStamp
 
BOX2I m_cachedTextExcludedBBox
 
int m_textExcludedBBoxCacheTimeStamp
 
SHAPE_POLY_SET m_cachedHull
 
int m_hullCacheTimeStamp
 
std::vector< wxString > m_netTiePadGroups
 
ZONE_CONNECTION m_zoneConnection
 
std::optional< int > m_clearance
 
std::optional< int > m_solderMaskMargin
 
std::optional< int > m_solderPasteMargin
 
std::optional< double > m_solderPasteMarginRatio
 
wxString m_libDescription
 
wxString m_keywords
 
KIID_PATH m_path
 
wxString m_sheetname
 
wxString m_sheetfile
 
wxString m_filters
 
timestamp_t m_lastEditTime
 
int m_arflag
 
KIID m_link
 
LSET m_privateLayers
 
std::vector< FP_3DMODELm_3D_Drawings
 
wxArrayString * m_initial_comments
 
SHAPE_POLY_SET m_courtyard_cache_front
 
SHAPE_POLY_SET m_courtyard_cache_back
 
int m_courtyard_cache_timestamp
 
KICAD_T m_structType
 Run time identification, keep private so it can never be changed after a ctor sets it.
 
VIEW_ITEM_DATA * m_viewPrivData
 
double m_forcedTransparency
 Additional transparency for diff'ing items.
 

Detailed Description

Definition at line 105 of file footprint.h.

Constructor & Destructor Documentation

◆ FOOTPRINT() [1/3]

◆ FOOTPRINT() [2/3]

◆ FOOTPRINT() [3/3]

FOOTPRINT::FOOTPRINT ( FOOTPRINT &&  aFootprint)

Definition at line 214 of file footprint.cpp.

◆ ~FOOTPRINT()

FOOTPRINT::~FOOTPRINT ( )

Member Function Documentation

◆ Add()

void FOOTPRINT::Add ( BOARD_ITEM aItem,
ADD_MODE  aMode = ADD_MODE::INSERT,
bool  aSkipConnectivity = false 
)
overridevirtual

Removes an item from the container.

Implements BOARD_ITEM_CONTAINER.

Definition at line 969 of file footprint.cpp.

References EDA_ITEM::ClearEditFlags(), m_drawings, m_fields, m_groups, m_pads, m_zones, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FIELD_T, PCB_GROUP_T, PCB_PAD_T, PCB_REFERENCE_IMAGE_T, PCB_SHAPE_T, PCB_TABLE_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_ZONE_T, EDA_ITEM::SetParent(), and EDA_ITEM::Type().

Referenced by CADSTAR_PCB_ARCHIVE_LOADER::addAttribute(), PCAD2KICAD::PCAD_ARC::AddToBoard(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), PCAD2KICAD::PCAD_PAD::AddToFootprint(), ALTIUM_PCB::ConvertArcs6ToFootprintItem(), ALTIUM_PCB::ConvertArcs6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertFills6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertPads6ToFootprintItemOnCopper(), ALTIUM_PCB::ConvertPads6ToFootprintItemOnNonCopper(), ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItem(), ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertTracks6ToFootprintItem(), ALTIUM_PCB::ConvertTracks6ToFootprintItemOnLayer(), MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), MICROWAVE_TOOL::createPolygonShape(), Deserialize(), KI_TEST::DrawArc(), KI_TEST::DrawSegment(), DuplicateItem(), PCB_EDIT_FRAME::ExchangeFootprint(), FOOTPRINT(), PCB_BASE_FRAME::GetFootprintFromBoardByReference(), ALTIUM_PCB::HelperPcpShapeAsFootprintKeepoutRegion(), PCB_IO_EAGLE::loadElements(), PCB_IO_KICAD_LEGACY::loadFOOTPRINT(), FABMASTER::loadFootprints(), PCB_IO_KICAD_LEGACY::loadFP_SHAPE(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryAreas(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryPads(), PCB_IO_KICAD_LEGACY::loadPAD(), operator=(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packageHole(), PCB_IO_EAGLE::packagePad(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageSMD(), PCB_IO_EAGLE::packageText(), PCB_IO_EAGLE::packageWire(), PCB_IO_EASYEDAPRO_PARSER::ParseFootprint(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), BOARD_COMMIT::Push(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), CLIPBOARD_IO::SaveSelection(), and FOOTPRINT_EDIT_FRAME::SelectFootprintFromBoard().

◆ Add3DModel()

void FOOTPRINT::Add3DModel ( FP_3DMODEL a3DModel)

Add a3DModel definition to the end of the 3D model list.

Parameters
a3DModelA pointer to a FP_3DMODEL to add to the list.

Definition at line 1872 of file footprint.cpp.

References m_3D_Drawings, and FP_3DMODEL::m_Filename.

◆ AddField()

PCB_FIELD * FOOTPRINT::AddField ( const PCB_FIELD aField)

◆ AddNetTiePadGroup()

void FOOTPRINT::AddNetTiePadGroup ( const wxString &  aGroup)
inline

Definition at line 332 of file footprint.h.

References m_netTiePadGroups.

Referenced by Deserialize().

◆ AllowMissingCourtyard()

bool FOOTPRINT::AllowMissingCourtyard ( ) const
inline

Definition at line 745 of file footprint.h.

References FP_ALLOW_MISSING_COURTYARD, and m_attributes.

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), and Serialize().

◆ ApplyDefaultSettings()

void FOOTPRINT::ApplyDefaultSettings ( const BOARD board,
bool  aStyleFields,
bool  aStyleText,
bool  aStyleShapes 
)

Apply default board settings to the footprint field text properties.

This is needed because the board settings are not available when the footprint is being created in the footprint library cache, and we want these fields to have the correct default text properties.

Definition at line 603 of file footprint.cpp.

References BOARD::GetDesignSettings(), m_drawings, m_fields, PCB_SHAPE_T, PCB_TEXT_T, and PCB_TEXTBOX_T.

Referenced by PCB_BASE_FRAME::loadFootprint(), and FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard().

◆ AutoPositionFields()

◆ BuildCourtyardCaches()

◆ CheckFootprintAttributes()

void FOOTPRINT::CheckFootprintAttributes ( const std::function< void(const wxString &)> &  aErrorHandler)

Test if footprint attributes for type (SMD/Through hole/Other) match the expected type based on the pads in the footprint.

Footprints with plated through-hole pads should usually be marked through hole even if they also have SMD because they might not be auto-placed. Exceptions to this might be shielded connectors. Otherwise, footprints with SMD pads should be marked SMD. Footprints with no connecting pads should be marked "Other"

Parameters
aErrorHandlercallback to handle the error messages generated

Definition at line 2986 of file footprint.cpp.

References _, FP_SMD, FP_THROUGH_HOLE, GetAttributes(), GetLikelyAttribute(), and GetTypeName().

Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().

◆ CheckNetTiePadGroups()

void FOOTPRINT::CheckNetTiePadGroups ( const std::function< void(const wxString &)> &  aErrorHandler)

Sanity check net-tie pad groups.

Pads cannot be listed more than once, and pad numbers must correspond to a pad.

Parameters
aErrorHandlercallback to handle the error messages generated

Definition at line 3249 of file footprint.cpp.

References _, FindPadByNumber(), MapPadNumbersToNetTieGroups(), and pad.

Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().

◆ CheckNetTies()

void FOOTPRINT::CheckNetTies ( const std::function< void(const BOARD_ITEM *aItem, const BOARD_ITEM *bItem, const BOARD_ITEM *cItem, const VECTOR2I &)> &  aErrorHandler)

Check for un-allowed shorting of pads in net-tie footprints.

If two pads are shorted, they must both appear in one of the allowed-shorting lists.

Parameters
aErrorHandlercallback to handle the error messages generated

Definition at line 3136 of file footprint.cpp.

References ARC_HIGH_DEF, B_Cu, ERROR_OUTSIDE, F_Cu, PAD::GetNumber(), PAD::GetPosition(), In1_Cu, BOARD_ITEM::IsOnCopperLayer(), m_drawings, m_fields, m_pads, m_zones, MapPadNumbersToNetTieGroups(), SHAPE_LINE_CHAIN::NearestPoint(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), pad, SHAPE_POLY_SET::PM_FAST, and SHAPE_POLY_SET::Simplify().

Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().

◆ CheckPads()

void FOOTPRINT::CheckPads ( const std::function< void(const PAD *, int, const wxString &)> &  aErrorHandler)

Run non-board-specific DRC checks on footprint's pads.

These are the checks supported by both the PCB DRC and the Footprint Editor Footprint Checker.

Parameters
aErrorHandlercallback to handle the error messages generated

Definition at line 3011 of file footprint.cpp.

References _, LSET::AllCuMask(), ARC_HIGH_DEF, B_Cu, B_Mask, B_Paste, SHAPE_POLY_SET::BooleanSubtract(), DRCE_PAD_TH_WITH_NO_HOLE, DRCE_PADSTACK, ERROR_INSIDE, F_Cu, F_Mask, F_Paste, SHAPE_POLY_SET::IsEmpty(), pad, Pads(), SHAPE_POLY_SET::PM_FAST, LSET::Seq(), and TransformOvalToPolygon().

Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().

◆ CheckShortingPads()

void FOOTPRINT::CheckShortingPads ( const std::function< void(const PAD *, const PAD *, const VECTOR2I &)> &  aErrorHandler)

Check for overlapping, different-numbered, non-net-tie pads.

Parameters
aErrorHandlercallback to handle the error messages generated

Definition at line 3090 of file footprint.cpp.

References LSET::AllCuMask(), SHAPE::Collide(), alg::contains(), GetNetTiePads(), pad, and Pads().

Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().

◆ ClassOf()

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

Definition at line 123 of file footprint.h.

References PCB_FOOTPRINT_T, and EDA_ITEM::Type().

◆ ClearAllNets()

void FOOTPRINT::ClearAllNets ( )

Clear (i.e.

force the ORPHANED dummy net info) the net info which depends on a given board for all pads of the footprint.

This is needed when a footprint is copied between the fp editor and the board editor for instance, because net info become fully broken

Definition at line 960 of file footprint.cpp.

References m_pads, NETINFO_LIST::ORPHANED, and pad.

Referenced by PCB_BASE_FRAME::loadFootprint(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), and PCB_BASE_FRAME::OnFpChangeDebounceTimer().

◆ ClearBrightened()

◆ ClearEditFlags()

◆ ClearFlags()

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

Definition at line 128 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(), 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(), DRAWING_TOOL::DrawTable(), SCH_ITEM::Duplicate(), SYMBOL_EDITOR_EDIT_TOOL::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(), 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(), PAD_TOOL::RecombinePad(), 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().

◆ ClearNetTiePadGroups()

void FOOTPRINT::ClearNetTiePadGroups ( )
inline

Definition at line 327 of file footprint.h.

References m_netTiePadGroups.

◆ ClearSelected()

◆ ClearTempFlags()

virtual void EDA_ITEM::ClearTempFlags ( )
inlinevirtualinherited

◆ Clone()

◆ CoverageRatio()

double FOOTPRINT::CoverageRatio ( const GENERAL_COLLECTOR aCollector) const

◆ Delete()

virtual void BOARD_ITEM_CONTAINER::Delete ( BOARD_ITEM aItem)
inlinevirtualinherited

Removes an item from the container and deletes it.

Definition at line 77 of file board_item_container.h.

References BOARD_ITEM_CONTAINER::Remove().

Referenced by DRC_ITEMS_PROVIDER::DeleteItem().

◆ DeleteStructure()

void BOARD_ITEM::DeleteStructure ( )
inherited

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

Definition at line 159 of file board_item.cpp.

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

◆ Deserialize()

◆ Duplicate()

◆ DuplicateItem()

BOARD_ITEM * FOOTPRINT::DuplicateItem ( const BOARD_ITEM aItem,
bool  aAddToFootprint = false 
)

◆ Fields() [1/2]

◆ Fields() [2/2]

const PCB_FIELDS & FOOTPRINT::Fields ( ) const
inline

Definition at line 189 of file footprint.h.

References m_fields.

◆ FindPadByNumber()

PAD * FOOTPRINT::FindPadByNumber ( const wxString &  aPadNumber,
PAD aSearchAfterMe = nullptr 
) const

Return a PAD with a matching number.

Note
Numbers may not be unique depending on how the footprint was created.
Parameters
aPadNumberthe pad number to find.
aSearchAfterMe= not nullptr to find a pad living after aAfterMe
Returns
the first matching numbered PAD is returned or NULL if not found.

Definition at line 1780 of file footprint.cpp.

References m_pads, and pad.

Referenced by CheckNetTiePadGroups(), PCB_EDIT_FRAME::ExchangeFootprint(), Similarity(), BOARD_NETLIST_UPDATER::testConnectivity(), and DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist().

◆ FixUuids()

bool FOOTPRINT::FixUuids ( )

Old footprints do not always have a valid UUID (some can be set to null uuid) However null UUIDs, having a special meaning in editor, create issues when editing a footprint So all null uuids a re replaced by a valid uuid.

Returns
true if at least one uuid is changed, false if no change

Definition at line 636 of file footprint.cpp.

References group, m_drawings, m_fields, m_groups, m_pads, m_zones, niluuid, and pad.

Referenced by FOOTPRINT_EDIT_FRAME::ReloadFootprint().

◆ Flip()

◆ Footprint() [1/2]

PCB_FIELD & FOOTPRINT::Footprint ( )
inline

◆ Footprint() [2/2]

const PCB_FIELD & FOOTPRINT::Footprint ( ) const
inline

Definition at line 631 of file footprint.h.

References FOOTPRINT_FIELD, and GetField().

◆ FootprintNeedsUpdate()

◆ 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

◆ GetArea()

double FOOTPRINT::GetArea ( int  aPadding = 0) const

◆ GetAttributes()

◆ 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 46 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(), CN_CONNECTIVITY_ALGO::Build(), BuildCourtyardCaches(), PAD::BuildEffectivePolygon(), PAD::BuildEffectiveShapes(), ZONE::BuildSmoothedPoly(), collidesWithArea(), PCB_TUNING_PATTERN::CreateNew(), BOARD_INSPECTION_TOOL::DiffFootprint(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), enclosedByAreaFunc(), existsOnLayerFunc(), ZONE_FILLER::Fill(), PCB_VIA::FlashLayer(), PAD::FlashLayer(), PCB_DIMENSION_BASE::Flip(), PCB_SHAPE::Flip(), PCB_TABLE::Flip(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), PCB_ARC::Flip(), PCB_VIA::Flip(), ZONE::Flip(), FootprintNeedsUpdate(), PCB_IO_KICAD_SEXPR::format(), fromToFunc(), BOARD_ITEM::GetBoard(), PCBEXPR_CONTEXT::GetBoard(), NETINFO_ITEM::GetBoundingBox(), ZONE::GetBoundingBox(), GetBoundingBox(), GetBoundingHull(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), PCB_BASE_EDIT_FRAME::GetContextualTextVars(), GetCourtyard(), PCB_VIA::GetDrillConstraint(), BOARD_CONNECTED_ITEM::GetEffectiveNetClass(), PCB_TEXT::GetEffectiveShape(), getFieldFunc(), ZONE::GetInteractingZones(), ZONE::GetItemDescription(), 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(), PAD::GetOwnClearance(), PCB_MARKER::GetSeverity(), PCB_TEXT::GetShownText(), GetSide(), PAD::GetSolderMaskExpansion(), PCB_VIA::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), BOARD::GetTrackLength(), PCB_TRACK::GetWidthConstraint(), PCB_VIA::GetWidthConstraint(), inDiffPairFunc(), ROUTER_TOOL::Init(), intersectsAreaFunc(), intersectsBackCourtyardFunc(), intersectsCourtyardFunc(), intersectsFrontCourtyardFunc(), BOARD_ITEM::IsLocked(), PCB_VIA::IsTented(), BOARD_ITEM::layerMaskDescribe(), PCB_VIA::layerMaskDescribe(), PAD::MergePrimitivesAsPolygon(), ZONE::Move(), DIALOG_TEXTBOX_PROPERTIES::onBorderChecked(), PCB_IO_EAGLE::packageWire(), padNeedsUpdate(), PCB_TUNING_PATTERN::recoverBaseline(), BOARD::ResolveDRCExclusions(), 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(), ViewBBox(), PAD::ViewBBox(), PCB_TRACK::ViewBBox(), PAD::ViewGetLOD(), PCB_REFERENCE_IMAGE::ViewGetLOD(), PCB_VIA::ViewGetLOD(), ZONE::ZONE(), ~FOOTPRINT(), and ZONE::~ZONE().

◆ GetBoundingBox() [1/2]

const BOX2I FOOTPRINT::GetBoundingBox ( ) const
overridevirtual

Return the orthogonal bounding box of this object for display purposes.

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

Reimplemented from EDA_ITEM.

Definition at line 1222 of file footprint.cpp.

References GetBoundingBox().

Referenced by AutoPositionFields(), AR_AUTOPLACER::buildFpAreas(), PCB_GRID_HELPER::computeAnchors(), KIGFX::PCB_PAINTER::draw(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), GetArea(), GetBoundingBox(), GetBoundingBoxes(), GetCenter(), FOOTPRINT_EDIT_FRAME::GetDocumentExtents(), AR_AUTOPLACER::getOptimalFPPlacement(), HitTest(), PCB_SELECTION_TOOL::hitTestDistance(), SpreadFootprints(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), AR_AUTOPLACER::testFootprintOnBoard(), and ViewBBox().

◆ GetBoundingBox() [2/2]

◆ GetBoundingHull()

◆ GetCenter()

VECTOR2I FOOTPRINT::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 183 of file footprint.h.

References GetBoundingBox(), and BOX2< Vec >::GetCenter().

◆ GetClass()

wxString FOOTPRINT::GetClass ( ) const
inlineoverridevirtual

Return the class name.

Implements EDA_ITEM.

Definition at line 857 of file footprint.h.

Referenced by Visit().

◆ GetClearanceOverrides()

std::optional< int > FOOTPRINT::GetClearanceOverrides ( wxString *  aSource) const
inline

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.

Definition at line 308 of file footprint.h.

References GetLocalClearance().

◆ GetContextualTextVars()

void FOOTPRINT::GetContextualTextVars ( wxArrayString *  aVars) const

Return the list of system text vars for this footprint.

Definition at line 878 of file footprint.cpp.

◆ GetCourtyard()

◆ GetCoverageArea()

◆ GetEditFlags()

◆ GetEffectiveHoleShape()

◆ GetEffectiveShape()

std::shared_ptr< SHAPE > FOOTPRINT::GetEffectiveShape ( PCB_LAYER_ID  aLayer = UNDEFINED_LAYER,
FLASHING  aFlash = 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
aLayerin case of items spanning multiple layers, only the shapes belonging to aLayer will be returned. Pass UNDEFINED_LAYER to return shapes for all layers.
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 2762 of file footprint.cpp.

References B_CrtYd, SHAPE_POLY_SET::COutline(), F_CrtYd, GetCourtyard(), GraphicalItems(), SHAPE_POLY_SET::OutlineCount(), pad, Pads(), and PCB_SHAPE_T.

◆ GetField() [1/2]

const PCB_FIELD * FOOTPRINT::GetField ( MANDATORY_FIELD_T  aFieldNdx) const

Definition at line 511 of file footprint.cpp.

References m_fields.

◆ GetField() [2/2]

PCB_FIELD * FOOTPRINT::GetField ( MANDATORY_FIELD_T  aFieldType)

Return a mandatory field in this symbol.

Note
If you need to fetch a user field, use GetFieldById.
Parameters
aFieldTypeis one of the mandatory field types (REFERENCE_FIELD, VALUE_FIELD, etc.).
Returns
is the field at aFieldType or NULL if the field does not exist.

Definition at line 505 of file footprint.cpp.

References m_fields.

Referenced by Deserialize(), Footprint(), PCB_IO_EASYEDAPRO_PARSER::ParseFootprint(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), BOARD_EDITOR_CONTROL::PlaceFootprint(), Reference(), Serialize(), and Value().

◆ GetFieldById()

PCB_FIELD * FOOTPRINT::GetFieldById ( int  aFieldId)

Return a field in this symbol.

Parameters
aFieldIdis the id of the field requested. Note that this id ONLY SOMETIMES equates to the field's position in the vector.
Returns
is the field at aFieldType or NULL if the field does not exist.

Definition at line 517 of file footprint.cpp.

References m_fields.

◆ GetFieldByName()

PCB_FIELD * FOOTPRINT::GetFieldByName ( const wxString &  aFieldName)

Return a field in this symbol.

Parameters
aFieldNameis the name of the field
Returns
is the field with aFieldName or NULL if the field does not exist.

Definition at line 539 of file footprint.cpp.

References m_fields.

Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), PCB_IO_EASYEDAPRO_PARSER::fillFootprintModelInfo(), getFieldFunc(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().

◆ GetFieldCount()

int FOOTPRINT::GetFieldCount ( ) const
inline

◆ GetFields() [1/3]

PCB_FIELDS FOOTPRINT::GetFields ( )
inline

Return a vector of fields from the symbol.

Definition at line 684 of file footprint.h.

References m_fields.

◆ GetFields() [2/3]

const PCB_FIELDS & FOOTPRINT::GetFields ( ) const
inline

Definition at line 685 of file footprint.h.

References m_fields.

◆ GetFields() [3/3]

void FOOTPRINT::GetFields ( std::vector< PCB_FIELD * > &  aVector,
bool  aVisibleOnly 
)

◆ GetFieldText()

wxString FOOTPRINT::GetFieldText ( const wxString &  aFieldName) const

Search for a field named aFieldName and returns text associated with this field.

Parameters
aFieldNameis the name of the field

Definition at line 554 of file footprint.cpp.

References m_fields.

Referenced by ResolveTextVar().

◆ GetFileFormatVersionAtLoad()

int FOOTPRINT::GetFileFormatVersionAtLoad ( ) const
inline

Definition at line 764 of file footprint.h.

References m_fileFormatVersionAtLoad.

◆ GetFilters()

◆ GetFlag()

int FOOTPRINT::GetFlag ( ) const
inline

◆ 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 249 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

◆ GetFPID()

const LIB_ID & FOOTPRINT::GetFPID ( ) const
inline

Definition at line 233 of file footprint.h.

References m_fpid.

Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), EXPORTER_STEP::buildFootprint3DShapes(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), FOOTPRINT_EDIT_FRAME::ClearModify(), GENCAD_EXPORTER::CreateDevicesSection(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), BOARD_INSPECTION_TOOL::DiffFootprint(), PCBNEW_JOBS_HANDLER::doFpExportSvg(), doPushPadProperties(), FOOTPRINT_EDITOR_CONTROL::DuplicateFootprint(), FOOTPRINT_EDIT_FRAME::DuplicateFootprint(), FOOTPRINT_EDIT_FRAME::editFootprintProperties(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PCB_EDIT_FRAME::ExchangeFootprint(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), BOARD_EDITOR_CONTROL::ExportNetlist(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), PCB_IO_KICAD_SEXPR::FootprintSave(), FP_LIB_TABLE::FootprintSave(), PCB_IO_KICAD_SEXPR::format(), PLACE_FILE_EXPORTER::GenPositionData(), FOOTPRINT_EDIT_FRAME::GetLoadedFPID(), GetMsgPanelInfo(), FP_TREE_SYNCHRONIZING_ADAPTER::GetValue(), idf_export_footprint(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), PCBNEW_JOBS_HANDLER::JobExportFpSvg(), PCB_IO_KICAD_LEGACY::loadFOOTPRINT(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PCB_EDIT_FRAME::LoadFootprints(), PCB_IO_KICAD_LEGACY::loadFP_SHAPE(), PCB_IO_KICAD_LEGACY::loadPAD(), DSN::SPECCTRA_DB::makeIMAGE(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), PCB_BASE_FRAME::OnFpChangeDebounceTimer(), PCB_IO_EAGLE::packageText(), DIALOG_EXCHANGE_FOOTPRINTS::processFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::processMatchingFootprints(), FOOTPRINT_EDIT_FRAME::ReloadFootprint(), FOOTPRINT_VIEWER_FRAME::ReloadFootprint(), BOARD_NETLIST_UPDATER::replaceFootprint(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), Serialize(), PCB_BASE_FRAME::setFPWatcher(), setLibNickname(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), BOARD_NETLIST_UPDATER::testConnectivity(), DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_FOOTPRINT_ASSOCIATIONS::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), and PANEL_FP_PROPERTIES_3D_MODEL::validateModelExists().

◆ GetFPIDAsString()

wxString FOOTPRINT::GetFPIDAsString ( ) const
inline

Definition at line 240 of file footprint.h.

References LIB_ID::Format(), and m_fpid.

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), and BOARD_EDITOR_CONTROL::PlaceFootprint().

◆ GetFpPadsLocalBbox()

BOX2I FOOTPRINT::GetFpPadsLocalBbox ( ) const

Return the bounding box containing pads when the footprint is on the front side, orientation 0, position 0,0.

Mainly used in Gerber place file to draw a footprint outline when the courtyard is missing or broken.

Returns
The rectangle containing the pads for the normalized footprint.

Definition at line 1197 of file footprint.cpp.

References ANGLE_0, dummy, BOX2< Vec >::Merge(), and pad.

◆ GetFPRelativePosition()

◆ GetFriendlyName()

◆ GetInitialComments()

const wxArrayString * FOOTPRINT::GetInitialComments ( ) const
inline

Return the initial comments block or NULL if none, without transfer of ownership.

Definition at line 937 of file footprint.h.

References m_initial_comments.

Referenced by PCB_IO_KICAD_SEXPR::format().

◆ GetItemDescription()

wxString FOOTPRINT::GetItemDescription ( UNITS_PROVIDER aUnitsProvider) 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.

Returns
The menu text string.

Reimplemented from EDA_ITEM.

Definition at line 1970 of file footprint.cpp.

References _, and GetReference().

Referenced by DRC_ENGINE::EvalRules().

◆ GetKeywords()

◆ GetLayer()

◆ GetLayerBoundingBox()

const BOX2I FOOTPRINT::GetLayerBoundingBox ( LSET  aLayers) const

Return the bounding box of the footprint on a given set of layers.

Definition at line 1379 of file footprint.cpp.

References BOARD_ITEM::GetBoard(), BOARD::IsFootprintHolder(), m_drawings, m_pads, m_privateLayers, m_zones, BOX2< Vec >::Merge(), pad, and PCB_REFERENCE_IMAGE_T.

Referenced by PCB_SELECTION_TOOL::FilterCollectorForFootprints().

◆ GetLayerName()

◆ GetLayerSet()

virtual LSET BOARD_ITEM::GetLayerSet ( ) const
inlinevirtualinherited

Return a std::bitset of all layers on which the item physically resides.

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

Definition at line 231 of file board_item.h.

References BOARD_ITEM::m_layer, and UNDEFINED_LAYER.

Referenced by PCB_GRID_HELPER::BestSnapAnchor(), KI_TEST::CheckFpShape(), collidesWithArea(), BOARD_COMMIT::dirtyIntersectingZones(), APPEARANCE_CONTROLS::doApplyLayerPreset(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), DRAWING_TOOL::DrawVia(), DRC_ENGINE::EvalRules(), existsOnLayerFunc(), extractDiffPairCoupledItems(), PCB_TEXT::Flip(), PCB_TEXTBOX::Flip(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), hash_board_item(), BOARD_INSPECTION_TOOL::InspectClearance(), PNS_KICAD_IFACE::IsItemVisible(), isMaskAperture(), BOARD_ITEM::layerMaskDescribe(), FABMASTER::loadZone(), PCB_DIMENSION_BASE::Mirror(), PCB_GRID_HELPER::nearestAnchor(), PCB_POINT_EDITOR::OnSelectionChange(), DIALOG_CLEANUP_GRAPHICS::OnSelectItem(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), CN_VISITOR::operator()(), BOARD_ITEM::ptr_cmp::operator()(), KI_TEST::kitest_cmp_drawings::operator()(), DRC_ENGINE::ProcessAssertions(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), PCB_SELECTION_CONDITIONS::sameLayerFunc(), PCB_SELECTION_TOOL::selectAllConnectedShapes(), PCB_SELECTION_TOOL::selectAllConnectedTracks(), GLOBAL_EDIT_TOOL::swapBoardItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), and PCB_CONTROL::UpdateMessagePanel().

◆ GetLibDescription()

◆ GetLikelyAttribute()

int FOOTPRINT::GetLikelyAttribute ( ) const

Returns the most likely attribute based on pads Either FP_THROUGH_HOLE/FP_SMD/OTHER(0)

Returns
0/FP_SMD/FP_THROUGH_HOLE

Definition at line 1133 of file footprint.cpp.

References FP_SMD, FP_THROUGH_HOLE, m_pads, and pad.

Referenced by CheckFootprintAttributes().

◆ GetLink()

◆ GetLocalClearance() [1/2]

◆ GetLocalClearance() [2/2]

std::optional< int > FOOTPRINT::GetLocalClearance ( wxString *  aSource) const
inline

Definition at line 294 of file footprint.h.

References _, GetReference(), and m_clearance.

◆ GetLocalSolderMaskMargin()

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

◆ GetLocalSolderPasteMargin()

◆ GetLocalSolderPasteMarginRatio()

◆ GetLocalZoneConnection()

◆ GetMenuImage()

BITMAPS FOOTPRINT::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 1981 of file footprint.cpp.

◆ GetMsgPanelInfo()

void FOOTPRINT::GetMsgPanelInfo ( EDA_DRAW_FRAME aFrame,
std::vector< MSG_PANEL_ITEM > &  aList 
)
overridevirtual

◆ GetNetTiePadGroups()

const std::vector< wxString > & FOOTPRINT::GetNetTiePadGroups ( ) const
inline
Returns
a list of pad groups, each of which is allowed to short nets within their group. A pad group is a comma-separated list of pad numbers.

Definition at line 325 of file footprint.h.

References m_netTiePadGroups.

Referenced by FootprintNeedsUpdate(), PCB_IO_KICAD_SEXPR::format(), Serialize(), and DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow().

◆ GetNetTiePads()

std::vector< PAD * > FOOTPRINT::GetNetTiePads ( PAD aPad) const
Returns
a list of pads that appear in aPad's net-tie pad group.

Definition at line 2964 of file footprint.cpp.

References PAD::GetNumber(), m_pads, MapPadNumbersToNetTieGroups(), and pad.

Referenced by CheckShortingPads(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone().

◆ GetNextPadNumber()

wxString FOOTPRINT::GetNextPadNumber ( const wxString &  aLastPadName) const

Return the next available pad number in the footprint.

Parameters
aFillSequenceGapstrue if the numbering should "fill in" gaps in the sequence, else return the highest value + 1
Returns
the next available pad number

Definition at line 2542 of file footprint.cpp.

References UTIL::GetRefDesPrefix(), GetTrailingInt(), m_pads, and pad.

Referenced by EDIT_TOOL::Duplicate().

◆ GetOrientation()

EDA_ANGLE FOOTPRINT::GetOrientation ( ) const
inline

◆ GetOrientationDegrees()

double FOOTPRINT::GetOrientationDegrees ( ) const
inline

◆ GetPad()

PAD * FOOTPRINT::GetPad ( const VECTOR2I aPosition,
LSET  aLayerMask = LSET::AllLayersMask() 
)

Get a pad at aPosition on aLayerMask in the footprint.

Parameters
aPositionA VECTOR2I object containing the position to hit test.
aLayerMaskA layer or layers to mask the hit test.
Returns
A pointer to a PAD object if found otherwise NULL.

Definition at line 1800 of file footprint.cpp.

References m_pads, and pad.

◆ GetPadCount()

unsigned FOOTPRINT::GetPadCount ( INCLUDE_NPTH_T  aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH)) const

Return the number of pads.

Parameters
aIncludeNPTHincludes non-plated through holes when true. Does not include non-plated through holes when false.
Returns
the number of pads according to aIncludeNPTH.

Definition at line 1816 of file footprint.cpp.

References m_pads, and pad.

Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), GetMsgPanelInfo(), FOOTPRINT_INFO_IMPL::load(), PCB_IO_IPC2581::pinName(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), sortFootprintsByComplexity(), and AR_AUTOPLACER::testFootprintOnBoard().

◆ GetParent()

BOARD_ITEM_CONTAINER * BOARD_ITEM::GetParent ( ) const
inlineinherited

Definition at line 204 of file board_item.h.

References EDA_ITEM::m_parent.

Referenced by ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), PCB_EDIT_TABLE_TOOL::copyCell(), CoverageRatio(), BOARD_ADAPTER::createTrack(), BOARD_ITEM::DeleteStructure(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), ALIGN_DISTRIBUTE_TOOL::doAlignLeft(), ALIGN_DISTRIBUTE_TOOL::doAlignRight(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), EDIT_TOOL::DragArcTrack(), KIGFX::PCB_PAINTER::draw(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_SELECTION_TOOL::FilterCollectorForTableCells(), BOARD_ITEM::GetBoard(), getClosestGroup(), PCB_TABLECELL::GetColumn(), BOARD_ITEM::GetParentFootprint(), PCB_TABLECELL::GetRow(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), PCB_TEXTBOX::GetShownText(), PAD::IsLocked(), PCB_SELECTION_TOOL::itemPassesFilter(), memberOfGroupFunc(), EDIT_TOOL::MoveExact(), PCB_POINT_EDITOR::OnSelectionChange(), PAD::operator==(), PAD::PAD(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TEXT_effects(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), PAD::Similarity(), BOARD_ITEM::SwapItemData(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), PCB_POINT_EDITOR::updateItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().

◆ 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 302 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 248 of file board_item.cpp.

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

Referenced by CN_CONNECTIVITY_ALGO::Add(), PCB_IO_IPC2581::addPad(), 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(), CONVERT_TOOL::CreatePolys(), 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(), PAD::GetClearanceOverrides(), PCB_BASE_EDIT_FRAME::GetContextualTextVars(), PCB_TEXT::GetDrawRotation(), PAD::GetFPRelativeOrientation(), BOARD_ITEM::GetFPRelativePosition(), PAD::GetItemDescription(), PCB_FIELD::GetItemDescription(), PCB_TEXT::GetItemDescription(), PCB_SHAPE::GetMenuImage(), PCB_SHAPE::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), PCB_TEXT::GetShownText(), PAD::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), FP_TEXT_GRID_TABLE::GetValue(), PAD::GetZoneConnectionOverrides(), PCB_SELECTION_TOOL::grabUnconnected(), GROUP_TOOL::Group(), hash_fp_item(), PAD::ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), GENERAL_COLLECTOR::Inspect(), ARRAY_CREATOR::Invoke(), PCB_SHAPE::IsConnected(), PAD::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(), padNeedsUpdate(), 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(), PAD_TOOL::RecombinePad(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), BOARD_COMMIT::Revert(), PAD::SameLogicalPadAs(), CLIPBOARD_IO::SaveSelection(), PCB_SELECTION_TOOL::Selectable(), PAD::SetFPRelativeOrientation(), BOARD_ITEM::SetFPRelativePosition(), FP_TEXT_GRID_TABLE::SetValue(), PAD::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(), PCB_IO_EAGLE::transferPad(), PCB_POINT_EDITOR::updateItem(), PCB_TEXT::ViewGetLayers(), PCB_FIELD::ViewGetLOD(), PCB_SHAPE::ViewGetLOD(), PCB_TEXT::ViewGetLOD(), ZONE::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem(), and ZONE::ZONE().

◆ GetParentGroup()

◆ GetPath()

◆ GetPosition()

VECTOR2I FOOTPRINT::GetPosition ( ) const
inlineoverridevirtual

Reimplemented from EDA_ITEM.

Definition at line 209 of file footprint.h.

References m_pos.

Referenced by PCB_BASE_FRAME::AddFootprintToBoard(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCAD2KICAD::PCAD_ARC::AddToBoard(), PCAD2KICAD::PCAD_LINE::AddToBoard(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), PCAD2KICAD::PCAD_PAD::AddToFootprint(), AutoPositionFields(), EXPORTER_STEP::buildFootprint3DShapes(), KI_TEST::CheckFootprint(), PNS_KICAD_IFACE::Commit(), PCB_GRID_HELPER::computeAnchors(), MICROWAVE_TOOL::createBaseFootprint(), KIGFX::PCB_PAINTER::draw(), KI_TEST::DrawArc(), KI_TEST::DrawSegment(), PCB_EDIT_FRAME::ExchangeFootprint(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), FootprintNeedsUpdate(), PCB_IO_KICAD_SEXPR::FootprintSave(), GENCAD_EXPORTER::FootprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), formatInternalUnits(), DSN::SPECCTRA_DB::FromSESSION(), RENDER_3D_OPENGL::get3dModelsFromFootprint(), GetBoundingHull(), AR_AUTOPLACER::getOptimalFPPlacement(), hash_fp_item(), idf_export_footprint(), ROUTER_TOOL::InlineDrag(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FABMASTER::loadFootprints(), PCB_IO_KICAD_LEGACY::loadFP_SHAPE(), DSN::SPECCTRA_DB::makeIMAGE(), DSN::mapPt(), PCB_IO_EAGLE::orientFootprintAndText(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packageHole(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageWire(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), ALTIUM_PCB::ParseComponentsBodies6Data(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TEXT_effects(), PCB_TEXT::PCB_TEXT(), BOARD_EDITOR_CONTROL::PlaceFootprint(), CLIPBOARD_IO::SaveSelection(), Serialize(), DRAWING_TOOL::SetAnchor(), SetLayerAndFlip(), SetOrientation(), DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), PCB_IO_EAGLE::transferPad(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().

◆ GetPrivateLayers()

◆ GetReference()

const wxString & FOOTPRINT::GetReference ( ) const
inline
Returns
reference designator text.

Definition at line 588 of file footprint.h.

References EDA_TEXT::GetText(), and Reference().

Referenced by AR_AUTOPLACER::AutoplaceFootprints(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildFootprint3DShapes(), FOOTPRINT_EDIT_FRAME::CanCloseFPFromBoard(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), KI_TEST::CheckFootprint(), collectItemsForSyncParts(), CollisionMatchesExpected(), compareFootprintsbyRef(), PCB_IO_IPC2581::componentName(), DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange(), ALTIUM_PCB::ConvertPads6ToFootprintItemOnCopper(), ALTIUM_PCB::ConvertPads6ToFootprintItemOnNonCopper(), ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItem(), ALTIUM_PCB::ConvertTexts6ToFootprintItem(), PCB_BASE_FRAME::CreateNewFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), EDIT_TOOL::doMoveSelection(), BOARD_EDITOR_CONTROL::ExportNetlist(), FormatProbeItem(), GetItemDescription(), GetLocalClearance(), PAD::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), DIALOG_BOARD_REANNOTATE::GetNewRefDes(), CADSTAR_PCB_ARCHIVE_LOADER::getPadReference(), GetReferenceAsString(), FOOTPRINT_SEARCH_HANDLER::getResultCell(), GENCAD_EXPORTER::getShapeName(), GetZoneConnectionOverrides(), IncrementReference(), InvalidMatchesExpected(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), PCB_IO_EAGLE::loadElements(), CADSTAR_PCB_ARCHIVE_LOADER::loadNets(), EDA_3D_CANVAS::OnMouseMove(), PCB_IO_EAGLE::packageText(), BRDITEMS_PLOTTER::PlotPad(), BRDITEMS_PLOTTER::PlotShape(), DIALOG_EXCHANGE_FOOTPRINTS::processFootprint(), FOOTPRINT_EDIT_FRAME::ReloadFootprint(), BOARD_NETLIST_UPDATER::replaceFootprint(), CLIPBOARD_IO::SaveSelection(), DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist(), BOARD_NETLIST_UPDATER::updateComponentPadConnections(), BOARD_NETLIST_UPDATER::updateFootprintParameters(), and FOOTPRINT_EDIT_FRAME::UpdateTitle().

◆ GetReferenceAsString()

wxString FOOTPRINT::GetReferenceAsString ( ) const
inline

Definition at line 597 of file footprint.h.

References GetReference().

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ GetSheetfile()

wxString FOOTPRINT::GetSheetfile ( ) const
inline

◆ GetSheetname()

wxString FOOTPRINT::GetSheetname ( ) const
inline

◆ GetSide()

PCB_LAYER_ID FOOTPRINT::GetSide ( ) const

Use instead of IsFlipped() when you also need to account for unsided footprints (those purely on user-layers, etc.).

Definition at line 1586 of file footprint.cpp.

References BOARD_ITEM::GetBoard(), GetLayer(), m_drawings, m_pads, m_zones, pad, LSET::SideSpecificMask(), and UNDEFINED_LAYER.

Referenced by GetBoundingBox(), GetMsgPanelInfo(), GENERAL_COLLECTOR::Inspect(), and PCB_SELECTION_TOOL::Selectable().

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

References EDA_ITEM::GetPosition().

◆ GetStroke()

STROKE_PARAMS BOARD_ITEM::GetStroke ( ) const
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 85 of file board_item.cpp.

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

Referenced by CONVERT_TOOL::CreatePolys().

◆ GetTempFlags()

EDA_ITEM_FLAGS EDA_ITEM::GetTempFlags ( ) const
inlineinherited

◆ 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 320 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().

◆ GetTypeName()

wxString FOOTPRINT::GetTypeName ( ) const

Get the type of footprint.

Returns
"SMD"/"Through hole"/"Other" based on attributes

Definition at line 1185 of file footprint.cpp.

References _, FP_SMD, FP_THROUGH_HOLE, and m_attributes.

Referenced by KI_TEST::CheckFootprint(), and CheckFootprintAttributes().

◆ GetUniquePadCount()

unsigned FOOTPRINT::GetUniquePadCount ( INCLUDE_NPTH_T  aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH)) const

Return the number of unique non-blank pads.

A complex pad can be built with many pads having the same pad name to create a complex shape or fragmented solder paste areas.

Parameters
aIncludeNPTHincludes non-plated through holes when true. Does not include non-plated through holes when false.
Returns
the number of unique pads according to aIncludeNPTH.

Definition at line 1866 of file footprint.cpp.

References GetUniquePadNumbers().

Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), and FOOTPRINT_INFO_IMPL::load().

◆ GetUniquePadNumbers()

std::set< wxString > FOOTPRINT::GetUniquePadNumbers ( INCLUDE_NPTH_T  aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH)) const

Return the names of the unique, non-blank pads.

Definition at line 1835 of file footprint.cpp.

References LSET::AllCuMask(), m_pads, and pad.

Referenced by GetUniquePadCount(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ GetValue()

◆ GetValueAsString()

wxString FOOTPRINT::GetValueAsString ( ) const
inline

Definition at line 618 of file footprint.h.

References GetValue().

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ GetX()

◆ GetY()

◆ GetZoneConnectionOverrides()

ZONE_CONNECTION FOOTPRINT::GetZoneConnectionOverrides ( wxString *  aSource) const
inline

Definition at line 313 of file footprint.h.

References _, GetReference(), and m_zoneConnection.

◆ GraphicalItems() [1/2]

◆ GraphicalItems() [2/2]

const DRAWINGS & FOOTPRINT::GraphicalItems ( ) const
inline

Definition at line 195 of file footprint.h.

References m_drawings.

◆ Groups() [1/2]

◆ Groups() [2/2]

const GROUPS & FOOTPRINT::Groups ( ) const
inline

Definition at line 201 of file footprint.h.

References m_groups.

◆ HasFieldByName()

bool FOOTPRINT::HasFieldByName ( const wxString &  aFieldName) const

Definition at line 528 of file footprint.cpp.

References m_fields.

Referenced by ResolveTextVar(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().

◆ 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 216 of file board_item.h.

◆ HasThroughHolePads()

bool FOOTPRINT::HasThroughHolePads ( ) const

Definition at line 3296 of file footprint.cpp.

References pad, and Pads().

◆ HitTest() [1/2]

bool FOOTPRINT::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 1729 of file footprint.cpp.

References BOX2< Vec >::Contains(), GetBoundingBox(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), m_drawings, m_pads, m_zones, pad, and PCB_TEXT_T.

◆ HitTest() [2/2]

bool FOOTPRINT::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 1716 of file footprint.cpp.

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

Referenced by GENERAL_COLLECTOR::Inspect().

◆ HitTestAccurate()

bool FOOTPRINT::HitTestAccurate ( const VECTOR2I aPosition,
int  aAccuracy = 0 
) const

Test if a point is inside the bounding polygon of the footprint.

The other hit test methods are just checking the bounding box, which can be quite inaccurate for rotated or oddly-shaped footprints.

Parameters
aPositionis the point to test
Returns
true if aPosition is inside the bounding polygon

Definition at line 1723 of file footprint.cpp.

References SHAPE_POLY_SET::Collide(), and GetBoundingHull().

Referenced by GENERAL_COLLECTOR::Inspect().

◆ HitTestOnLayer() [1/2]

bool FOOTPRINT::HitTestOnLayer ( const BOX2I aRect,
bool  aContained,
PCB_LAYER_ID  aLayer,
int  aAccuracy = 0 
) const

Definition at line 1675 of file footprint.cpp.

References m_drawings, m_pads, m_zones, pad, and PCB_TEXT_T.

◆ HitTestOnLayer() [2/2]

bool FOOTPRINT::HitTestOnLayer ( const VECTOR2I aPosition,
PCB_LAYER_ID  aLayer,
int  aAccuracy = 0 
) const

Test if the point hits one or more of the footprint elements on a given layer.

Parameters
aPositionis the point to test
aAccuracyis the hit test accuracy
aLayeris the layer to test
Returns
true if aPosition hits a footprint element on aLayer

Definition at line 1648 of file footprint.cpp.

References m_drawings, m_pads, m_zones, pad, and PCB_TEXT_T.

Referenced by PCB_SELECTION_TOOL::FilterCollectorForFootprints().

◆ IncrementFlag()

void FOOTPRINT::IncrementFlag ( )
inline

Definition at line 280 of file footprint.h.

References m_arflag.

◆ IncrementReference()

void FOOTPRINT::IncrementReference ( int  aDelta)

Bump the current reference by aDelta.

Definition at line 2590 of file footprint.cpp.

References UTIL::GetRefDesPrefix(), GetReference(), GetTrailingInt(), and SetReference().

◆ IsBoardOnly()

bool FOOTPRINT::IsBoardOnly ( ) const
inline

Definition at line 718 of file footprint.h.

References FP_BOARD_ONLY, and m_attributes.

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), and Serialize().

◆ IsBrightened()

◆ IsConflicting()

bool FOOTPRINT::IsConflicting ( ) const
Returns
true if the footprint is flagged with conflicting with some item

Definition at line 872 of file footprint.cpp.

References COURTYARD_CONFLICT, and EDA_ITEM::HasFlag().

Referenced by ViewGetLayers(), and ViewGetLOD().

◆ IsConnected()

◆ IsDNP()

bool FOOTPRINT::IsDNP ( ) const
inline

◆ IsEntered()

bool EDA_ITEM::IsEntered ( ) const
inlineinherited

Definition at line 110 of file eda_item.h.

References ENTERED, and EDA_ITEM::m_flags.

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

◆ IsExcludedFromBOM()

bool FOOTPRINT::IsExcludedFromBOM ( ) const
inline

Definition at line 736 of file footprint.h.

References FP_EXCLUDE_FROM_BOM, and m_attributes.

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), and Serialize().

◆ IsExcludedFromPosFiles()

bool FOOTPRINT::IsExcludedFromPosFiles ( ) const
inline

Definition at line 727 of file footprint.h.

References FP_EXCLUDE_FROM_POS_FILES, and m_attributes.

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), and Serialize().

◆ IsFlipped()

◆ IsForceVisible()

bool EDA_ITEM::IsForceVisible ( ) const
inlineinherited

◆ IsKnockout()

◆ IsLibNameValid()

bool FOOTPRINT::IsLibNameValid ( const wxString &  aName)
static

Test for validity of a name of a footprint to be used in a footprint library ( no spaces, dir separators ... ).

Parameters
aNameis the name in library to validate.
Returns
true if the given name is valid

Definition at line 2164 of file footprint.cpp.

References StringLibNameInvalidChars().

Referenced by DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::checkFootprintName().

◆ IsLocked()

◆ IsModified()

bool EDA_ITEM::IsModified ( ) const
inlineinherited

Definition at line 105 of file eda_item.h.

References IS_CHANGED, and EDA_ITEM::m_flags.

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

◆ IsMoving()

◆ IsNetTie()

◆ IsNew()

◆ IsOnCopperLayer()

◆ IsOnLayer()

bool FOOTPRINT::IsOnLayer ( PCB_LAYER_ID  aLayer) const
overridevirtual

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 1617 of file footprint.cpp.

References m_drawings, m_fields, m_pads, m_zones, and pad.

◆ IsPlaced()

bool FOOTPRINT::IsPlaced ( ) const
inline

Definition at line 420 of file footprint.h.

References FP_is_PLACED, and m_fpStatus.

Referenced by PCB_IO_KICAD_SEXPR::format().

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

Referenced by EDA_ITEM::Matches().

◆ IsRollover()

bool EDA_ITEM::IsRollover ( ) const
inlineinherited

Definition at line 113 of file eda_item.h.

References IS_MOVING, IS_ROLLOVER, and EDA_ITEM::m_flags.

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

◆ IsSelected()

bool EDA_ITEM::IsSelected ( ) const
inlineinherited

Definition at line 109 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(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), EDIT_TOOL::doMoveSelection(), KIGFX::SCH_PAINTER::draw(), KIGFX::PCB_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::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::DS_RENDER_SETTINGS::GetColor(), KIGFX::PCB_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(), KIGFX::SCH_PAINTER::setDeviceColors(), 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 167 of file eda_item.h.

References IS_SHOWN_AS_BITMAP, and EDA_ITEM::m_flags.

◆ IsTented()

virtual bool BOARD_ITEM::IsTented ( ) const
inlinevirtualinherited

Reimplemented in PCB_VIA.

Definition at line 161 of file board_item.h.

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

◆ IsType()

◆ 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 295 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 315 of file eda_item.h.

References EDA_ITEM::Visit().

◆ layerMaskDescribe()

wxString BOARD_ITEM::layerMaskDescribe ( ) const
protectedvirtualinherited

◆ LegacyPadsLocked()

bool FOOTPRINT::LegacyPadsLocked ( ) const
inline

Definition at line 438 of file footprint.h.

References FP_PADS_are_LOCKED, and m_fpStatus.

◆ MapPadNumbersToNetTieGroups()

std::map< wxString, int > FOOTPRINT::MapPadNumbersToNetTieGroups ( ) const
Returns
a map from pad numbers to net-tie group indices. If a pad is not a member of a net-tie group its index will be -1.

Definition at line 2909 of file footprint.cpp.

References group, m_netTiePadGroups, m_pads, and pad.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::checkItemMask(), CheckNetTiePadGroups(), CheckNetTies(), GetNetTiePads(), DRC_ENGINE::IsNetTieExclusion(), GRAPHICS_CLEANER::mergePads(), PAD::SharesNetTieGroup(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem().

◆ 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 375 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 123 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.

◆ Models() [1/2]

◆ Models() [2/2]

const std::vector< FP_3DMODEL > & FOOTPRINT::Models ( ) const
inline

Definition at line 206 of file footprint.h.

References m_3D_Drawings.

◆ Move()

void FOOTPRINT::Move ( const VECTOR2I aMoveVector)
overridevirtual

Move this object.

Parameters
aMoveVectorthe move vector for this object.

Reimplemented from BOARD_ITEM.

Definition at line 2192 of file footprint.cpp.

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

Referenced by ROUTER_TOOL::InlineDrag(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), CLIPBOARD_IO::SaveSelection(), and SpreadFootprints().

◆ MoveAnchorPosition()

void FOOTPRINT::MoveAnchorPosition ( const VECTOR2I aMoveVector)

Move the reference point of the footprint.

It looks like a move footprint: the footprints elements (pads, outlines, edges .. ) are moved However:

  • the footprint position is not modified.
  • the relative (local) coordinates of these items are modified (a move footprint does not change these local coordinates, but changes the footprint position)

Definition at line 2327 of file footprint.cpp.

References GetOrientation(), GraphicalItems(), EDA_IU_SCALE::IUTomm(), m_cachedBoundingBox, m_cachedHull, m_cachedTextExcludedBBox, m_cachedVisibleBBox, m_fields, m_pads, Models(), BOX2< Vec >::Move(), SHAPE_POLY_SET::Move(), pad, pcbIUScale, RotatePoint(), VECTOR2< T >::x, VECTOR2< T >::y, and Zones().

Referenced by CLIPBOARD_IO::SaveSelection(), and DRAWING_TOOL::SetAnchor().

◆ NeedsPlaced()

bool FOOTPRINT::NeedsPlaced ( ) const
inline

Definition at line 429 of file footprint.h.

References FP_to_PLACE, and m_fpStatus.

Referenced by AR_AUTOPLACER::pickFootprint().

◆ 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 337 of file board_item.h.

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

References EDA_ITEM::GetClass().

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ operator==() [1/2]

bool FOOTPRINT::operator== ( const BOARD_ITEM aOther) const
overridevirtual

Implements BOARD_ITEM.

Definition at line 3308 of file footprint.cpp.

References PCB_FOOTPRINT_T, and EDA_ITEM::Type().

◆ operator==() [2/2]

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

Definition at line 3319 of file footprint.cpp.

References m_drawings, m_fields, m_pads, and m_zones.

◆ Pads() [1/2]

PADS & FOOTPRINT::Pads ( )
inline

Definition at line 191 of file footprint.h.

References m_pads.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), BOARD_NETLIST_UPDATER::addNewFootprint(), BOARD_ADAPTER::addPads(), ARRAY_PAD_NUMBER_PROVIDER::ARRAY_PAD_NUMBER_PROVIDER(), EXPORTER_STEP::buildFootprint3DShapes(), AR_AUTOPLACER::buildFpAreas(), KI_TEST::CheckFootprint(), CheckPads(), CheckShortingPads(), PCB_GRID_HELPER::computeAnchors(), AR_AUTOPLACER::computePlacementRatsnestCost(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createPolygonShape(), Deserialize(), FOOTPRINT_VIEWER_FRAME::displayFootprint(), PCBNEW_JOBS_HANDLER::doFpExportSvg(), EDIT_TOOL::doMoveSelection(), PAD_TOOL::EnumeratePads(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_SELECTION_TOOL::expandConnection(), BOARD_EDITOR_CONTROL::ExportNetlist(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), PLACEFILE_GERBER_WRITER::findPads1(), FOOTPRINT(), FootprintNeedsUpdate(), PCB_IO_KICAD_SEXPR::format(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), FOOTPRINT_EDIT_FRAME::GetDocumentExtents(), GetEffectiveShape(), AR_AUTOPLACER::getOptimalFPPlacement(), CADSTAR_PCB_ARCHIVE_LOADER::getPadReference(), CONNECTIVITY_DATA::GetRatsnestForComponent(), CONNECTIVITY_DATA::GetRatsnestForItems(), hash_fp_item(), hashFootprint(), HasThroughHolePads(), idf_export_footprint(), DISPLAY_FOOTPRINTS_FRAME::InitDisplay(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), isCopperOutside(), DRC_ENGINE::IsNetTieExclusion(), CADSTAR_PCB_ARCHIVE_LOADER::loadComponents(), PCB_IO_EAGLE::loadElements(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), CADSTAR_PCB_ARCHIVE_LOADER::loadNets(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), GRAPHICS_CLEANER::mergePads(), operator=(), pasteFootprintItemsToFootprintEditor(), PCB_IO_IPC2581::pinName(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PCB_CONTROL::pruneItemLayers(), BOARD_COMMIT::Push(), DISPLAY_FOOTPRINTS_FRAME::ReloadFootprint(), BOARD_EDITOR_CONTROL::RepairBoard(), FOOTPRINT_EDITOR_CONTROL::RepairFootprint(), ResolveTextVar(), CLIPBOARD_IO::SaveSelection(), PCB_SELECTION_TOOL::Selectable(), Serialize(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist(), BOARD_NETLIST_UPDATER::updateComponentPadConnections(), PCB_POINT_EDITOR::updateItem(), and DIALOG_UNUSED_PAD_LAYERS::updatePadsAndVias().

◆ Pads() [2/2]

const PADS & FOOTPRINT::Pads ( ) const
inline

Definition at line 192 of file footprint.h.

References m_pads.

◆ Reference() [1/2]

◆ Reference() [2/2]

const PCB_FIELD & FOOTPRINT::Reference ( ) const
inline

Definition at line 630 of file footprint.h.

References GetField(), and REFERENCE_FIELD.

◆ Remove()

◆ RemoveField()

void FOOTPRINT::RemoveField ( const wxString &  aFieldName)

Remove a user field from the footprint.

Parameters
aFieldNameis the user fieldName to remove. Attempts to remove a mandatory field or a non-existant field are silently ignored.

Definition at line 590 of file footprint.cpp.

References m_fields, and MANDATORY_FIELDS.

Referenced by BOARD_NETLIST_UPDATER::updateFootprintParameters().

◆ RenderAsBitmap()

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

Reimplemented in SCH_ITEM.

Definition at line 157 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 402 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 186 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().

◆ ResolveTextVar()

bool FOOTPRINT::ResolveTextVar ( wxString *  token,
int  aDepth = 0 
) const

Resolve any references to system tokens supported by the component.

Parameters
aDeptha counter to limit recursion and circular references.

Definition at line 892 of file footprint.cpp.

References BOARD_ITEM::GetBoard(), GetFieldText(), BOARD_ITEM::GetLayerName(), PCB_TEXT::GetShownText(), LIB_ID::GetUniStringLibItemName(), LIB_ID::GetUniStringLibNickname(), HasFieldByName(), m_fpid, pad, Pads(), Reference(), ResolveTextVar(), and Value().

Referenced by PCB_TEXT::GetShownText(), BOARD::ResolveTextVar(), and ResolveTextVar().

◆ Rotate()

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

◆ RunOnChildren()

void FOOTPRINT::RunOnChildren ( const std::function< void(BOARD_ITEM *)> &  aFunction) const
overridevirtual

Invoke a function on all descendants.

Note
This function should not add or remove items.

Reimplemented from BOARD_ITEM.

Definition at line 1993 of file footprint.cpp.

References group, m_drawings, m_fields, m_groups, m_pads, m_zones, and pad.

Referenced by BOARD::Add(), BOARD::Remove(), and swapData().

◆ RunOnDescendants()

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

Invoke a function on all descendants.

Note
This function should not add or remove items.

Reimplemented from BOARD_ITEM.

Definition at line 2019 of file footprint.cpp.

References group, m_drawings, m_fields, m_groups, m_pads, m_zones, and pad.

Referenced by PCB_BASE_FRAME::CreateNewFootprint(), Duplicate(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), and FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard().

◆ Serialize()

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

◆ 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

◆ SetAllowMissingCourtyard()

void FOOTPRINT::SetAllowMissingCourtyard ( bool  aAllow = true)
inline

Definition at line 746 of file footprint.h.

References FP_ALLOW_MISSING_COURTYARD, and m_attributes.

Referenced by Deserialize(), and FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetAttributes()

◆ SetBoardOnly()

void FOOTPRINT::SetBoardOnly ( bool  aIsBoardOnly = true)
inline

Definition at line 719 of file footprint.h.

References FP_BOARD_ONLY, and m_attributes.

Referenced by Deserialize(), and FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetBrightened()

◆ SetDNP()

void FOOTPRINT::SetDNP ( bool  aDNP = true)
inline

Definition at line 755 of file footprint.h.

References FP_DNP, and m_attributes.

Referenced by Deserialize(), and FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetExcludedFromBOM()

void FOOTPRINT::SetExcludedFromBOM ( bool  aExclude = true)
inline

Definition at line 737 of file footprint.h.

References FP_EXCLUDE_FROM_BOM, and m_attributes.

Referenced by Deserialize(), and FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetExcludedFromPosFiles()

void FOOTPRINT::SetExcludedFromPosFiles ( bool  aExclude = true)
inline

Definition at line 728 of file footprint.h.

References FP_EXCLUDE_FROM_POS_FILES, and m_attributes.

Referenced by Deserialize(), and FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetFileFormatVersionAtLoad()

void FOOTPRINT::SetFileFormatVersionAtLoad ( int  aVersion)
inline

Definition at line 763 of file footprint.h.

References m_fileFormatVersionAtLoad.

◆ SetFilters()

void FOOTPRINT::SetFilters ( const wxString &  aFilters)
inline

◆ SetFlag()

void FOOTPRINT::SetFlag ( int  aFlag)
inline

Definition at line 279 of file footprint.h.

References m_arflag.

Referenced by AR_AUTOPLACER::pickFootprint().

◆ SetFlags()

void EDA_ITEM::SetFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 126 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(), 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(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), 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_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::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(), Remove(), PCB_TUNING_PATTERN::Remove(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_EDIT_TOOL::Rotate(), 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::updateSizesAfterLayerSwitch().

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

References EDA_ITEM::m_forceVisible.

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

◆ SetFPID()

◆ SetFPIDAsString()

void FOOTPRINT::SetFPIDAsString ( const wxString &  aFPID)
inline

Definition at line 241 of file footprint.h.

References m_fpid, and LIB_ID::Parse().

◆ SetFPRelativePosition()

◆ SetInitialComments()

void FOOTPRINT::SetInitialComments ( wxArrayString *  aInitialComments)
inline

Take ownership of caller's heap allocated aInitialComments block.

The comments are single line strings already containing the s-expression comments with optional leading whitespace and then a '#' character followed by optional single line text (text with no line endings, not even one). This block of single line comments will be output upfront of any generated s-expression text in the PCBIO::Format() function.

Note
A block of single line comments constitutes a multiline block of single line comments. That is, the block is made of consecutive single line comments.
Parameters
aInitialCommentsis a heap allocated wxArrayString or NULL, which the caller gives up ownership of over to this FOOTPRINT.

Definition at line 920 of file footprint.h.

References m_initial_comments.

◆ SetIsKnockout()

virtual void BOARD_ITEM::SetIsKnockout ( bool  aKnockout)
inlinevirtualinherited

◆ SetIsPlaced()

void FOOTPRINT::SetIsPlaced ( bool  isPlaced)
inline

Definition at line 421 of file footprint.h.

References FP_is_PLACED, and m_fpStatus.

Referenced by AR_AUTOPLACER::AutoplaceFootprints(), and PCB_IO_KICAD_LEGACY::loadFOOTPRINT().

◆ SetIsShownAsBitmap()

void EDA_ITEM::SetIsShownAsBitmap ( bool  aBitmap)
inlineinherited

Definition at line 159 of file eda_item.h.

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

◆ SetKeywords()

void FOOTPRINT::SetKeywords ( const wxString &  aKeywords)
inline

◆ 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, and ZONE.

Definition at line 260 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::ConvertTexts6ToFootprintItemOnLayer(), PNS_KICAD_IFACE::createBoardItem(), PCB_BASE_FRAME::CreateNewFootprint(), BOARD_ADAPTER::createTrack(), Deserialize(), PAD::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(), Flip(), PCB_DIMENSION_BASE::Flip(), PCB_TABLE::Flip(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), PCB_ARC::Flip(), 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(), PCB_CONTROL::pruneItemLayers(), PCB_SHAPE::SetLayer(), BOARD_ITEM::SetLayerSet(), FP_TEXT_GRID_TABLE::SetValueAsLong(), EDIT_TOOL::Swap(), TRACK_VIA_DESC::TRACK_VIA_DESC(), DIALOG_REFERENCE_IMAGE_PROPERTIES::TransferDataFromWindow(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), BOARD_NETLIST_UPDATER::updateFootprintParameters(), and ROUTER_TOOL::updateSizesAfterLayerSwitch().

◆ SetLayerAndFlip()

void FOOTPRINT::SetLayerAndFlip ( PCB_LAYER_ID  aLayer)

Used as Layer property setter – performs a flip if necessary to set the footprint layer.

Parameters
aLayeris the target layer (F_Cu or B_Cu)

Definition at line 2231 of file footprint.cpp.

References B_Cu, F_Cu, Flip(), GetLayer(), and GetPosition().

Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC().

◆ SetLayerSet()

virtual void BOARD_ITEM::SetLayerSet ( LSET  aLayers)
inlinevirtualinherited

Reimplemented in PAD, PCB_VIA, and ZONE.

Definition at line 239 of file board_item.h.

References LSET::Seq(), and BOARD_ITEM::SetLayer().

Referenced by GLOBAL_EDIT_TOOL::swapBoardItem(), and PANEL_SETUP_LAYERS::TransferDataFromWindow().

◆ SetLibDescription()

void FOOTPRINT::SetLibDescription ( const wxString &  aDesc)
inline

◆ SetLink()

◆ SetLocalClearance()

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

◆ SetLocalSolderMaskMargin()

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

◆ SetLocalSolderPasteMargin()

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

◆ SetLocalSolderPasteMarginRatio()

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

◆ SetLocalZoneConnection()

void FOOTPRINT::SetLocalZoneConnection ( ZONE_CONNECTION  aType)
inline

◆ SetLocked()

void FOOTPRINT::SetLocked ( bool  isLocked)
inlineoverridevirtual

Set the #MODULE_is_LOCKED bit in the m_ModuleStatus.

Parameters
isLockedtrue means turn on locked status, else unlock

Reimplemented from BOARD_ITEM.

Definition at line 407 of file footprint.h.

References FP_is_LOCKED, and m_fpStatus.

Referenced by Deserialize(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_IO_KICAD_LEGACY::loadFOOTPRINT(), CLIPBOARD_IO::SaveSelection(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow().

◆ SetModified()

◆ SetNeedsPlaced()

void FOOTPRINT::SetNeedsPlaced ( bool  needsPlaced)
inline

Definition at line 430 of file footprint.h.

References FP_to_PLACE, and m_fpStatus.

Referenced by AR_AUTOPLACER::AutoplaceFootprints().

◆ SetOrientation()

◆ SetOrientationDegrees()

void FOOTPRINT::SetOrientationDegrees ( double  aOrientation)
inline

Definition at line 224 of file footprint.h.

References DEGREES_T, and SetOrientation().

Referenced by Deserialize(), FOOTPRINT_DESC::FOOTPRINT_DESC(), and FABMASTER::loadFootprints().

◆ SetParent()

virtual void EDA_ITEM::SetParent ( EDA_ITEM aParent)
inlinevirtualinherited

Reimplemented in LIB_SYMBOL, and NETINFO_ITEM.

Definition at line 103 of file eda_item.h.

References EDA_ITEM::m_parent.

Referenced by BOARD::Add(), Add(), PCB_TABLE::AddCell(), SCH_TABLE::AddCell(), LIB_SYMBOL::AddDrawItem(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), BOARD_NETLIST_UPDATER::addNewFootprint(), SCH_SHEET::AddPin(), PAD::AddPrimitive(), PAD::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(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), 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(), 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(), PAD_TOOL::RecombinePad(), SCH_IO_LIB_CACHE::removeSymbol(), 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(), swapData(), PCB_TABLE::swapData(), SCH_LABEL_BASE::SwapData(), SCH_SHEET::SwapData(), SCH_SYMBOL::SwapData(), SCH_TABLE::SwapData(), BOARD_ITEM::SwapItemData(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), and SCH_DRAWING_TOOLS::TwoClickPlace().

◆ SetParentGroup()

◆ SetPath()

◆ SetPosition()

void FOOTPRINT::SetPosition ( const VECTOR2I aPos)
overridevirtual

◆ SetPrivateLayers()

void FOOTPRINT::SetPrivateLayers ( LSET  aLayers)
inline

Adds an item to the container.

Parameters
aModedecides whether the item is added in the beginning or at the end of the list.
aSkipConnectivityskip connectivity update (useful for file loading, when the connectivity is updated after end of loading).

Definition at line 129 of file footprint.h.

References m_privateLayers.

Referenced by Deserialize(), and DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow().

◆ SetReference()

◆ SetSelected()

◆ SetSheetfile()

void FOOTPRINT::SetSheetfile ( const wxString &  aSheetfile)
inline

◆ SetSheetname()

void FOOTPRINT::SetSheetname ( const wxString &  aSheetname)
inline

◆ SetStroke()

void BOARD_ITEM::SetStroke ( const STROKE_PARAMS aStroke)
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 91 of file board_item.cpp.

◆ SetValue()

◆ SetX()

void BOARD_ITEM::SetX ( int  aX)
inlineinherited

◆ SetY()

void BOARD_ITEM::SetY ( int  aY)
inlineinherited

◆ Similarity()

double FOOTPRINT::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 3361 of file footprint.cpp.

References FindPadByNumber(), m_pads, pad, PCB_FOOTPRINT_T, and EDA_ITEM::Type().

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

◆ StringLibNameInvalidChars()

const wxChar * FOOTPRINT::StringLibNameInvalidChars ( bool  aUserReadable)
static

Test for validity of the name in a library of the footprint ( no spaces, dir separators ... ).

Parameters
aUserReadableset to false to get the list of invalid characters or true to get a readable form (i.e ' ' = 'space' '\t'= 'tab').
Returns
the list of invalid chars in the library name.

Definition at line 2175 of file footprint.cpp.

Referenced by DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::checkFootprintName(), IsLibNameValid(), and SAVE_AS_DIALOG::SAVE_AS_DIALOG().

◆ StyleFromSettings()

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

Reimplemented in PCB_SHAPE, PCB_TEXT, and PCB_TEXTBOX.

Definition at line 302 of file board_item.h.

◆ swapData()

void FOOTPRINT::swapData ( BOARD_ITEM aImage)
overrideprotectedvirtual

Reimplemented from BOARD_ITEM.

Definition at line 3274 of file footprint.cpp.

References image, PCB_FOOTPRINT_T, RunOnChildren(), EDA_ITEM::SetParent(), 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 175 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(), and BOARD_COMMIT::Revert().

◆ TransformFPShapesToPolySet()

void FOOTPRINT::TransformFPShapesToPolySet ( SHAPE_POLY_SET aBuffer,
PCB_LAYER_ID  aLayer,
int  aClearance,
int  aError,
ERROR_LOC  aErrorLoc,
bool  aIncludeText = true,
bool  aIncludeShapes = true,
bool  aIncludePrivateItems = false 
) const

Generate shapes of graphic items (outlines) on layer aLayer as polygons and adds these polygons to aBuffer.

Useful to generate a polygonal representation of a footprint in 3D view and plot functions, when a full polygonal approach is needed.

Parameters
aLayeris the layer to consider, or UNDEFINED_LAYER to consider all.
aBufferis the buffer to store polygons.
aClearanceis a value to inflate shapes.
aErroris the maximum error between true arc and polygon approximation.
aIncludeTextset to true to transform text shapes.
aIncludeShapesset to true to transform footprint shapes.

Definition at line 3644 of file footprint.cpp.

References PCB_SHAPE::GetLayer(), GetPrivateLayers(), GraphicalItems(), PCB_TEXTBOX::IsBorderEnabled(), PCB_TEXTBOX::IsVisible(), m_fields, PCB_SHAPE_T, PCB_TEXT_T, PCB_TEXTBOX_T, text, PCB_SHAPE::TransformShapeToPolygon(), PCB_TEXTBOX::TransformTextToPolySet(), and UNDEFINED_LAYER.

Referenced by EXPORTER_STEP::buildFootprint3DShapes(), CoverageRatio(), and TransformFPTextToPolySet().

◆ TransformFPTextToPolySet()

void FOOTPRINT::TransformFPTextToPolySet ( SHAPE_POLY_SET aBuffer,
PCB_LAYER_ID  aLayer,
int  aClearance,
int  aError,
ERROR_LOC  aErrorLoc 
) const
inline

This function is the same as TransformFPShapesToPolySet but only generates text.

Definition at line 537 of file footprint.h.

References TransformFPShapesToPolySet().

◆ TransformPadsToPolySet()

void FOOTPRINT::TransformPadsToPolySet ( SHAPE_POLY_SET aBuffer,
PCB_LAYER_ID  aLayer,
int  aClearance,
int  aMaxError,
ERROR_LOC  aErrorLoc,
bool  aSkipNPTHPadsWihNoCopper = false,
bool  aSkipPlatedPads = false,
bool  aSkipNonPlatedPads = false 
) const

Generate pads shapes on layer aLayer as polygons and adds these polygons to aBuffer.

Useful to generate a polygonal representation of a footprint in 3D view and plot functions, when a full polygonal approach is needed.

Parameters
aLayeris the layer to consider, or UNDEFINED_LAYER to consider all layers.
aBufferi the buffer to store polygons.
aClearanceis an additional size to add to pad shapes.
aMaxErroris the maximum deviation from true for arcs.
aSkipNPTHPadsWihNoCopperif true, do not add a NPTH pad shape, if the shape has same size and position as the hole. Usually, these pads are not drawn on copper layers, because there is actually no copper Due to diff between layers and holes, these pads must be skipped to be sure there is no copper left on the board (for instance when creating Gerber Files or 3D shapes). Defaults to false.
aSkipPlatedPadsis used on 3D-Viewer to extract plated and non-plated pads.
aSkipNonPlatedPadsis used on 3D-Viewer to extract plated and plated pads.

Definition at line 3571 of file footprint.cpp.

References B_Cu, B_Mask, B_Paste, dummy, F_Cu, F_Mask, F_Paste, m_pads, pad, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by CoverageRatio().

◆ TransformShapeToPolygon()

void BOARD_ITEM::TransformShapeToPolygon ( SHAPE_POLY_SET aBuffer,
PCB_LAYER_ID  aLayer,
int  aClearance,
int  aError,
ERROR_LOC  aErrorLoc,
bool  ignoreLineWidth = false 
) const
virtualinherited

Convert the item shape to a closed polygon.

Circles and arcs are approximated by segments.

Parameters
aBuffera buffer to store the polygon.
aClearancethe clearance around the pad.
aErrorthe maximum deviation from true circle.
aErrorLocshould the approximation error be placed outside or inside the polygon?
ignoreLineWidthused for edge cut items where the line width is only for visualization.

Reimplemented in PCB_DIMENSION_BASE, PCB_SHAPE, PCB_TARGET, PCB_TRACK, ZONE, PCB_TABLE, PCB_TEXT, PCB_TEXTBOX, and PAD.

Definition at line 205 of file board_item.cpp.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::addItemToRTrees(), ZONE_FILLER::addKnockout(), CoverageRatio(), enclosedByAreaFunc(), GetCoverageArea(), process(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), and DRC_TEST_PROVIDER_SLIVER_CHECKER::Run().

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

References EDA_ITEM::m_structType.

Referenced by CN_CONNECTIVITY_ALGO::Add(), BOARD::Add(), Add(), CN_CLUSTER::Add(), 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(), EE_SELECTION_TOOL::autostartEvent(), 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(), SCH_EDIT_TOOL::ChangeTextType(), KI_TEST::CheckFootprint(), KI_TEST::CheckFpShape(), KI_TEST::CheckFpZone(), DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture(), CN_VISITOR::checkZoneItemConnection(), LIB_PIN::ClassOf(), 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(), ClassOf(), NETINFO_ITEM::ClassOf(), PAD::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(), LIB_PIN::compare(), SCH_FIELD::compare(), SCH_TEXT::compare(), SCH_TEXTBOX::compare(), 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(), CoverageRatio(), CreateItemForType(), BOARD_ADAPTER::createLayers(), PCB_BASE_FRAME::CreateNewFootprint(), SCH_DRAWING_TOOLS::createNewText(), ZONE_CREATE_HELPER::createNewZone(), BOARD_ADAPTER::createTrack(), EE_INSPECTION_TOOL::CrossProbe(), DRC_TOOL::CrossProbe(), SCH_SCREEN::DeleteItem(), 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(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), 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(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), EDIT_TOOL::Duplicate(), 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(), CONNECTION_GRAPH::ercCheckBusToBusConflicts(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckBusToNetConflicts(), CONNECTION_GRAPH::ercCheckFloatingWires(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), CONNECTION_GRAPH::ercCheckNoConnects(), DRC_ENGINE::EvalRules(), DRC_ENGINE::EvalZoneConnection(), 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(), PCB_POINT_EDITOR::get45DegConstrainer(), CN_ITEM::GetAnchor(), BOARD_ITEM::GetBoard(), SCH_FIELD::GetBoundingBox(), SCH_LABEL_BASE::GetBoundingBox(), PCB_TRACK::GetBoundingBox(), SCH_FIELD::GetCanonicalName(), PCB_FIELD::GetCanonicalName(), EDIT_TOOL::getChildItemsOfGroupsAndGenerators(), getClosestGroup(), KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::DS_RENDER_SETTINGS::GetColor(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_MOVE_TOOL::getConnectedItems(), CONNECTIVITY_DATA::GetConnectedPadsAndVias(), GetCoverageArea(), CONNECTION_GRAPH::getDefaultConnection(), SCH_FIELD::GetDefaultLayer(), SCH_FIELD::GetDrawRotation(), getDrilledHoleShape(), CONNECTION_SUBGRAPH::GetDriverPriority(), getFieldFunc(), PCB_TRACK::GetFriendlyName(), 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::GetNetclassForDriver(), CONNECTIVITY_DATA::GetNetItems(), GetNetNavigatorItemText(), BOARD_ITEM::GetParentFootprint(), SCH_ITEM::GetParentSymbol(), SCH_SYMBOL::GetPinPhysicalPosition(), SCH_FIELD::GetPosition(), KIGFX::SCH_PAINTER::getRenderColor(), TEXT_SEARCH_HANDLER::getResultCell(), LABEL_SEARCH_HANDLER::getResultCell(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), SCH_FIELD::GetShownText(), CONVERT_TOOL::getStartEndPoints(), KIGFX::SCH_PAINTER::getTextThickness(), EDA_ITEM::GetTypeDesc(), PCBEXPR_TYPE_REF::GetValue(), TEARDROP_MANAGER::GetWidth(), PCB_SELECTION_TOOL::grabUnconnected(), EE_SELECTION_TOOL::GuessSelectionCandidates(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), hasDrilledHole(), 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::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(), ARRAY_CREATOR::Invoke(), 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(), CONVERT_TOOL::makePolysFromChainedSegs(), SCH_SCREEN::MarkConnections(), CONNECTIVITY_DATA::MarkItemNetAsDirty(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), SCH_FIELD::Matches(), memberOfGroupFunc(), SCH_LINE::MergeOverlap(), SCH_EDIT_TOOL::Mirror(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), SCH_MOVE_TOOL::moveItem(), EE_SELECTION_TOOL::narrowSelection(), 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=(), PCB_REFERENCE_IMAGE::operator==(), PCB_SHAPE::operator==(), PCB_TABLECELL::operator==(), PCB_TARGET::operator==(), PCB_TEXT::operator==(), PCB_TEXTBOX::operator==(), BOARD::operator==(), operator==(), PAD::operator==(), PCB_DIMENSION_BASE::operator==(), PCB_FIELD::operator==(), PCB_GROUP::operator==(), PCB_TABLE::operator==(), PCB_TRACK::operator==(), PCB_ARC::operator==(), PCB_VIA::operator==(), ZONE::operator==(), LIB_PIN::operator==(), SCH_BUS_ENTRY_BASE::operator==(), SCH_FIELD::operator==(), SCH_PIN::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::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_FIELD::Plot(), SCH_LABEL_BASE::Plot(), BRDITEMS_PLOTTER::PlotBoardGraphicItem(), SCH_FIELD::Print(), DIALOG_GLOBAL_EDIT_TEARDROPS::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_BASE_FRAME::RefreshZoomDependentItems(), GENERATOR_TOOL::RegenerateSelected(), BOARD::Remove(), CN_CONNECTIVITY_ALGO::Remove(), Remove(), EE_RTREE::remove(), SCH_SCREEN::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(), 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(), 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_EDIT_FRAME::SetActiveLayer(), PCB_POINT_EDITOR::setAltConstraint(), SCH_FIELD::SetId(), ITEM_PICKER::SetItem(), PCB_BASE_FRAME::SetPlotSettings(), SCH_FIELD::SetPosition(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), 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(), Similarity(), PAD::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(), LIB_PIN::Similarity(), SCH_BUS_ENTRY_BASE::Similarity(), SCH_FIELD::Similarity(), SCH_PIN::Similarity(), SCH_TEXT::Similarity(), SCH_BITMAP::Similarity(), SCH_JUNCTION::Similarity(), SCH_LINE::Similarity(), SCH_NO_CONNECT::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(), EDIT_TOOL::Swap(), swapData(), PCB_TUNING_PATTERN::swapData(), PAD::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_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(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackClearances(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), DIALOG_LABEL_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::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(), SCH_SHEET_PATH::UpdateAllScreenReferences(), DIALOG_FIELD_PROPERTIES::UpdateField(), PL_POINT_EDITOR::updateItem(), PCB_POINT_EDITOR::updateItem(), EE_TOOL_BASE< T >::updateItem(), SCH_BASE_FRAME::UpdateItem(), PCB_CONTROL::UpdateMessagePanel(), EDIT_TOOL::updateModificationPoint(), EE_POINT_EDITOR::updateParentItem(), EE_POINT_EDITOR::updatePoints(), PL_POINT_EDITOR::updatePoints(), PCB_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().

◆ Value() [1/2]

◆ Value() [2/2]

const PCB_FIELD & FOOTPRINT::Value ( ) const
inline

The const versions to keep the compiler happy.

Definition at line 629 of file footprint.h.

References GetField(), and VALUE_FIELD.

◆ ViewBBox()

const BOX2I FOOTPRINT::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 2149 of file footprint.cpp.

References BOARD_ITEM::GetBoard(), GetBoundingBox(), and BOX2< Vec >::Inflate().

◆ 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::RULER_ITEM, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::TWO_POINT_ASSISTANT, PCB_TUNING_PATTERN, KIGFX::ORIGIN_VIEWITEM, KIGFX::VIEW_GROUP, and KIGFX::VIEW_OVERLAY.

Definition at line 115 of file view_item.h.

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

◆ ViewGetLayers()

void FOOTPRINT::ViewGetLayers ( int  aLayers[],
int &  aCount 
) 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.

Parameters
aLayers[]is the output layer index array.
aCountis the number of layer indices in aLayers[].

Reimplemented from BOARD_ITEM.

Definition at line 2056 of file footprint.cpp.

References B_Cu, B_SilkS, F_Cu, F_SilkS, IsConflicting(), IsLocked(), KI_FALLTHROUGH, LAYER_ANCHOR, LAYER_CONFLICTS_SHADOW, LAYER_FOOTPRINTS_BK, LAYER_FOOTPRINTS_FR, LAYER_LOCKED_ITEM_SHADOW, m_drawings, BOARD_ITEM::m_layer, and m_pads.

◆ ViewGetLOD()

double FOOTPRINT::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 2108 of file footprint.cpp.

References B_Cu, F_Cu, IsConflicting(), KIGFX::VIEW::IsLayerVisible(), LAYER_ANCHOR, LAYER_CONFLICTS_SHADOW, LAYER_FOOTPRINTS_BK, LAYER_FOOTPRINTS_FR, LAYER_LOCKED_ITEM_SHADOW, BOARD_ITEM::m_layer, and MINIMAL_ZOOM_LEVEL_FOR_VISIBILITY.

◆ viewPrivData()

◆ Visit()

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

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

Definition at line 1883 of file footprint.cpp.

References GetClass(), m_drawings, m_fields, m_groups, m_pads, m_zones, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FIELD_T, PCB_FOOTPRINT_T, PCB_GROUP_T, PCB_PAD_T, PCB_SHAPE_T, PCB_TABLE_T, PCB_TABLECELL_T, PCB_TEXT_T, PCB_TEXTBOX_T, and PCB_ZONE_T.

◆ XorFlags()

void EDA_ITEM::XorFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 127 of file eda_item.h.

References EDA_ITEM::m_flags.

Referenced by EE_SELECTION_TOOL::selectMultiple().

◆ Zones() [1/2]

◆ Zones() [2/2]

const ZONES & FOOTPRINT::Zones ( ) const
inline

Definition at line 198 of file footprint.h.

References m_zones.

Member Data Documentation

◆ m_3D_Drawings

std::vector<FP_3DMODEL> FOOTPRINT::m_3D_Drawings
private

Definition at line 1046 of file footprint.h.

Referenced by Add3DModel(), FOOTPRINT(), GetMsgPanelInfo(), Models(), and operator=().

◆ m_arflag

int FOOTPRINT::m_arflag
private

Definition at line 1042 of file footprint.h.

Referenced by FOOTPRINT(), GetFlag(), IncrementFlag(), and SetFlag().

◆ m_attributes

◆ m_boundingBoxCacheTimeStamp

int FOOTPRINT::m_boundingBoxCacheTimeStamp
mutableprivate

Definition at line 1015 of file footprint.h.

Referenced by Flip(), FOOTPRINT(), GetBoundingBox(), operator=(), Rotate(), and SetOrientation().

◆ m_cachedBoundingBox

BOX2I FOOTPRINT::m_cachedBoundingBox
mutableprivate

Definition at line 1014 of file footprint.h.

Referenced by FOOTPRINT(), GetBoundingBox(), MoveAnchorPosition(), operator=(), and SetPosition().

◆ m_cachedHull

SHAPE_POLY_SET FOOTPRINT::m_cachedHull
mutableprivate

◆ m_cachedTextExcludedBBox

BOX2I FOOTPRINT::m_cachedTextExcludedBBox
mutableprivate

Definition at line 1018 of file footprint.h.

Referenced by FOOTPRINT(), GetBoundingBox(), MoveAnchorPosition(), operator=(), and SetPosition().

◆ m_cachedVisibleBBox

BOX2I FOOTPRINT::m_cachedVisibleBBox
mutableprivate

Definition at line 1016 of file footprint.h.

Referenced by FOOTPRINT(), GetBoundingBox(), MoveAnchorPosition(), operator=(), and SetPosition().

◆ m_clearance

std::optional<int> FOOTPRINT::m_clearance
private

Definition at line 1029 of file footprint.h.

Referenced by FOOTPRINT(), GetLocalClearance(), operator=(), and SetLocalClearance().

◆ m_courtyard_cache_back

SHAPE_POLY_SET FOOTPRINT::m_courtyard_cache_back
private

Definition at line 1051 of file footprint.h.

Referenced by BuildCourtyardCaches(), Flip(), GetCourtyard(), and SetPosition().

◆ m_courtyard_cache_front

SHAPE_POLY_SET FOOTPRINT::m_courtyard_cache_front
private

Definition at line 1050 of file footprint.h.

Referenced by BuildCourtyardCaches(), Flip(), GetCourtyard(), and SetPosition().

◆ m_courtyard_cache_timestamp

int FOOTPRINT::m_courtyard_cache_timestamp
mutableprivate

Definition at line 1052 of file footprint.h.

Referenced by BuildCourtyardCaches(), Flip(), GetCourtyard(), Rotate(), and SetOrientation().

◆ m_drawings

◆ m_fields

◆ m_fileFormatVersionAtLoad

int FOOTPRINT::m_fileFormatVersionAtLoad
private

Definition at line 1002 of file footprint.h.

Referenced by FOOTPRINT(), GetFileFormatVersionAtLoad(), and SetFileFormatVersionAtLoad().

◆ m_filters

wxString FOOTPRINT::m_filters
private

Definition at line 1040 of file footprint.h.

Referenced by GetFilters(), and SetFilters().

◆ m_flags

◆ m_forcedTransparency

double KIGFX::VIEW_ITEM::m_forcedTransparency
privateinherited

Additional transparency for diff'ing items.

Definition at line 166 of file view_item.h.

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

◆ m_forceVisible

◆ m_fpid

LIB_ID FOOTPRINT::m_fpid
private

◆ m_fpStatus

int FOOTPRINT::m_fpStatus
private

◆ m_group

PCB_GROUP* BOARD_ITEM::m_group
protectedinherited

◆ m_groups

GROUPS FOOTPRINT::m_groups
private

◆ m_hullCacheTimeStamp

int FOOTPRINT::m_hullCacheTimeStamp
mutableprivate

Definition at line 1021 of file footprint.h.

Referenced by FOOTPRINT(), GetBoundingHull(), operator=(), and Rotate().

◆ m_initial_comments

wxArrayString* FOOTPRINT::m_initial_comments
private

◆ m_isKnockout

bool BOARD_ITEM::m_isKnockout
protectedinherited

◆ m_isLocked

◆ m_keywords

wxString FOOTPRINT::m_keywords
private

Definition at line 1036 of file footprint.h.

Referenced by FOOTPRINT(), GetKeywords(), GetMsgPanelInfo(), operator=(), and SetKeywords().

◆ m_lastEditTime

timestamp_t FOOTPRINT::m_lastEditTime
private

Definition at line 1041 of file footprint.h.

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

◆ m_layer

PCB_LAYER_ID BOARD_ITEM::m_layer
protectedinherited

Definition at line 388 of file board_item.h.

Referenced by PCB_VIA::ConditionallyFlashed(), PCB_VIA::Deserialize(), PCB_VIA::FlashLayer(), FOOTPRINT(), PCB_VIA::GetDrillConstraint(), BOARD_ITEM::GetLayer(), PCB_SHAPE::GetLayer(), BOARD_ITEM::GetLayerName(), BOARD_ITEM::GetLayerSet(), PCB_VIA::GetLayerSet(), PCB_TUNING_PATTERN::GetMsgPanelInfo(), PCB_REFERENCE_IMAGE::GetMsgPanelInfo(), PAD::GetPrincipalLayer(), PCB_TRACK::GetWidthConstraint(), PCB_VIA::GetWidthConstraint(), BOARD_ITEM::IsOnLayer(), PCB_VIA::IsOnLayer(), PCB_SHAPE::IsType(), PCB_VIA::LayerPair(), PCB_REFERENCE_IMAGE::operator==(), PCB_SHAPE::operator==(), PCB_TARGET::operator==(), PCB_ARC::operator==(), PCB_VIA::operator==(), PCB_TRACK::operator==(), PCB_DIMENSION_BASE::PCB_DIMENSION_BASE(), PCB_TARGET::PCB_TARGET(), PCB_TUNING_PATTERN::recoverBaseline(), PCB_VIA::SanitizeLayers(), PAD::Serialize(), PCB_VIA::Serialize(), PCB_MARKER::SerializeToString(), BOARD_ITEM::SetLayer(), PCB_GENERATOR::SetLayer(), PCB_VIA::SetLayerPair(), PCB_VIA::SetLayerSet(), PCB_VIA::SetTopLayer(), PCB_REFERENCE_IMAGE::Similarity(), PCB_TRACK::Similarity(), PCB_ARC::Similarity(), PCB_VIA::Similarity(), PCB_SHAPE::swapData(), PCB_TABLE::swapData(), PCB_REFERENCE_IMAGE::swapData(), PCB_VIA::TopLayer(), BOARD_ITEM::ViewGetLayers(), ViewGetLayers(), PCB_REFERENCE_IMAGE::ViewGetLayers(), ViewGetLOD(), PCB_REFERENCE_IMAGE::ViewGetLOD(), PCB_SHAPE::ViewGetLOD(), PCB_TEXT::ViewGetLOD(), PCB_TEXTBOX::ViewGetLOD(), and PCB_TRACK::ViewGetLOD().

◆ m_libDescription

wxString FOOTPRINT::m_libDescription
private

◆ m_link

KIID FOOTPRINT::m_link
private

Definition at line 1043 of file footprint.h.

Referenced by FOOTPRINT(), GetLink(), operator=(), and SetLink().

◆ m_netTiePadGroups

std::vector<wxString> FOOTPRINT::m_netTiePadGroups
private

◆ m_orient

EDA_ANGLE FOOTPRINT::m_orient
private

◆ m_pads

◆ m_parent

◆ m_path

KIID_PATH FOOTPRINT::m_path
private

Definition at line 1037 of file footprint.h.

Referenced by FOOTPRINT(), GetPath(), operator=(), and SetPath().

◆ m_pos

VECTOR2I FOOTPRINT::m_pos
private

◆ m_privateLayers

LSET FOOTPRINT::m_privateLayers
private

◆ m_sheetfile

wxString FOOTPRINT::m_sheetfile
private

Definition at line 1039 of file footprint.h.

Referenced by GetSheetfile(), and SetSheetfile().

◆ m_sheetname

wxString FOOTPRINT::m_sheetname
private

Definition at line 1038 of file footprint.h.

Referenced by GetSheetname(), and SetSheetname().

◆ m_solderMaskMargin

std::optional<int> FOOTPRINT::m_solderMaskMargin
private

◆ m_solderPasteMargin

std::optional<int> FOOTPRINT::m_solderPasteMargin
private

◆ m_solderPasteMarginRatio

std::optional<double> FOOTPRINT::m_solderPasteMarginRatio
private

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

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

◆ m_textExcludedBBoxCacheTimeStamp

int FOOTPRINT::m_textExcludedBBoxCacheTimeStamp
mutableprivate

Definition at line 1019 of file footprint.h.

Referenced by Flip(), FOOTPRINT(), GetBoundingBox(), operator=(), Rotate(), and SetOrientation().

◆ m_Uuid

const KIID EDA_ITEM::m_Uuid
inherited

Definition at line 485 of file eda_item.h.

Referenced by BOARD::Add(), SCH_SYMBOL::AddHierarchicalReference(), SCH_SHEET::addInstance(), RC_ITEM::AddItem(), SCH_EDIT_FRAME::AnnotateSymbols(), FIELDS_EDITOR_GRID_DATA_MODEL::ApplyData(), SCH_SHEET_PATH::Cmp(), SCH_ITEM::compare(), SCHEMATIC::ConvertRefsToKIIDs(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_EDIT_FRAME::CreateScreens(), SCH_LABEL::Deserialize(), SCH_LINE::Deserialize(), Deserialize(), PAD::Deserialize(), PCB_SHAPE::Deserialize(), PCB_TEXT::Deserialize(), PCB_TRACK::Deserialize(), PCB_ARC::Deserialize(), PCB_VIA::Deserialize(), ZONE_FILLER_TOOL::DirtyZone(), DRAWING_TOOL::DrawVia(), LIB_SYMBOL::Duplicate(), BOARD_ITEM::Duplicate(), Duplicate(), SCH_ITEM::Duplicate(), 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(), PAD::GetMsgPanelInfo(), DIALOG_BOARD_REANNOTATE::GetNewRefDes(), SCH_SHEET::getPageNumber(), 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(), SCH_IO_ALTIUM::LoadSchematicFile(), SCH_IO_EAGLE::LoadSchematicFile(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromSchematic(), PCB_IO_KICAD_LEGACY::loadTrackList(), PNS::LOGGER::Log(), 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<(), PAD::operator==(), SCH_FIELD::operator==(), PAD::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(), 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_REFERENCE::SCH_REFERENCE(), SCH_SHEET::SCH_SHEET(), SCH_SYMBOL::SCH_SYMBOL(), SCH_LABEL::Serialize(), SCH_LINE::Serialize(), Serialize(), PAD::Serialize(), PCB_SHAPE::Serialize(), PCB_TEXT::Serialize(), PCB_TRACK::Serialize(), PCB_ARC::Serialize(), PCB_VIA::Serialize(), RC_ITEM::SetItems(), SCH_SHEET::setPageNumber(), SCH_EDITOR_CONTROL::setPastedSymbolInstances(), FIELDS_EDITOR_GRID_DATA_MODEL::SetValue(), PAD::Similarity(), PCB_DIMENSION_BASE::Similarity(), PCB_FIELD::Similarity(), LIB_PIN::Similarity(), SCH_BUS_ENTRY_BASE::Similarity(), SCH_FIELD::Similarity(), SCH_LABEL_BASE::Similarity(), SCH_PIN::Similarity(), SCH_TEXT::Similarity(), SCH_BITMAP::Similarity(), SCH_JUNCTION::Similarity(), SCH_LINE::Similarity(), SCH_NO_CONNECT::Similarity(), SCH_SHAPE::Similarity(), SCH_TEXTBOX::Similarity(), LIB_SYMBOL::Similarity(), SCH_DRAWING_TOOLS::SingleClickPlace(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), testGroupEqual(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), 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_visibleBBoxCacheTimeStamp

int FOOTPRINT::m_visibleBBoxCacheTimeStamp
mutableprivate

Definition at line 1017 of file footprint.h.

Referenced by Flip(), FOOTPRINT(), GetBoundingBox(), operator=(), Rotate(), and SetOrientation().

◆ m_zoneConnection

ZONE_CONNECTION FOOTPRINT::m_zoneConnection
private

◆ m_zones

◆ ZeroOffset

VECTOR2I BOARD_ITEM::ZeroOffset
staticinherited

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

Definition at line 169 of file board_item.h.

Referenced by BOARD::GetPosition().


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