![]() |
KiCad PCB EDA Suite
|
#include <footprint.h>
Classes | |
struct | cmp_drawings |
struct | cmp_pads |
Public Member Functions | |
FOOTPRINT (BOARD *parent) | |
FOOTPRINT (const FOOTPRINT &aFootprint) | |
FOOTPRINT (FOOTPRINT &&aFootprint) | |
~FOOTPRINT () | |
FOOTPRINT & | operator= (const FOOTPRINT &aOther) |
FOOTPRINT & | operator= (FOOTPRINT &&aOther) |
void | Add (BOARD_ITEM *aItem, ADD_MODE aMode=ADD_MODE::INSERT) override |
Removes an item from the container. More... | |
void | Remove (BOARD_ITEM *aItem, REMOVE_MODE aMode=REMOVE_MODE::NORMAL) override |
Removes an item from the container. More... | |
void | ClearAllNets () |
Clear (i.e. More... | |
bool | FixUuids () |
Old footprints do not alway 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. More... | |
EDA_RECT | GetFpPadsLocalBbox () const |
Return the bounding box containing pads when the footprint is on the front side, orientation 0, position 0,0. More... | |
SHAPE_POLY_SET | GetBoundingHull () const |
Return a bounding polygon for the shapes and pads in the footprint. More... | |
const EDA_RECT | GetBoundingBox () const override |
Return the orthogonal bounding box of this object for display purposes. More... | |
const EDA_RECT | GetBoundingBox (bool aIncludeText, bool aIncludeInvisibleText) const |
PADS & | Pads () |
const PADS & | Pads () const |
DRAWINGS & | GraphicalItems () |
const DRAWINGS & | GraphicalItems () const |
FP_ZONES & | Zones () |
const FP_ZONES & | Zones () const |
FP_GROUPS & | Groups () |
const FP_GROUPS & | Groups () const |
bool | HasThroughHolePads () const |
std::list< FP_3DMODEL > & | Models () |
const std::list< FP_3DMODEL > & | Models () const |
void | SetPosition (const wxPoint &aPos) override |
wxPoint | GetPosition () const override |
void | SetOrientation (double aNewAngle) |
void | SetOrientationDegrees (double aOrientation) |
double | GetOrientation () const |
double | GetOrientationDegrees () const |
double | GetOrientationRadians () const |
const LIB_ID & | GetFPID () const |
void | SetFPID (const LIB_ID &aFPID) |
const wxString | GetFPIDAsString () const |
void | SetFPIDAsString (const wxString &aFPID) |
const wxString & | GetDescription () const |
void | SetDescription (const wxString &aDoc) |
const wxString & | GetKeywords () const |
void | SetKeywords (const wxString &aKeywords) |
const KIID_PATH & | GetPath () const |
void | SetPath (const KIID_PATH &aPath) |
int | GetLocalSolderMaskMargin () const |
void | SetLocalSolderMaskMargin (int aMargin) |
int | GetLocalClearance () const |
void | SetLocalClearance (int aClearance) |
int | GetLocalClearance (wxString *aSource) const |
int | GetLocalSolderPasteMargin () const |
void | SetLocalSolderPasteMargin (int aMargin) |
double | GetLocalSolderPasteMarginRatio () const |
void | SetLocalSolderPasteMarginRatio (double aRatio) |
void | SetZoneConnection (ZONE_CONNECTION aType) |
ZONE_CONNECTION | GetZoneConnection () const |
void | SetThermalWidth (int aWidth) |
int | GetThermalWidth () const |
void | SetThermalGap (int aGap) |
int | GetThermalGap () const |
int | GetAttributes () const |
void | SetAttributes (int aAttributes) |
void | SetFlag (int aFlag) |
void | IncrementFlag () |
int | GetFlag () const |
bool | IsNetTie () const |
int | GetLikelyAttribute () const |
Returns the most likely attribute based on pads Either FP_THROUGH_HOLE/FP_SMD/OTHER(0) More... | |
void | Move (const wxPoint &aMoveVector) override |
Move this object. More... | |
void | Rotate (const wxPoint &aRotCentre, double aAngle) override |
Rotate this object. More... | |
void | Flip (const wxPoint &aCentre, bool aFlipLeftRight) override |
Flip this object, i.e. More... | |
void | MoveAnchorPosition (const wxPoint &aMoveVector) |
Move the reference point of the footprint. More... | |
bool | IsFlipped () const |
bool | IsOnLayer (PCB_LAYER_ID aLayer) const override |
A special IsOnLayer for footprints: return true if the footprint contains only items on the given layer, even if that layer is not one of the valid footprint layers F_Cu and B_Cu. More... | |
bool | IsLocked () const override |
void | SetLocked (bool isLocked) override |
Set the #MODULE_is_LOCKED bit in the m_ModuleStatus. More... | |
bool | IsPlaced () const |
void | SetIsPlaced (bool isPlaced) |
bool | NeedsPlaced () const |
void | SetNeedsPlaced (bool needsPlaced) |
bool | LegacyPadsLocked () const |
void | SetLastEditTime (timestamp_t aTime) |
timestamp_t | GetLastEditTime () const |
void | CheckFootprintAttributes (const std::function< void(const wxString &msg)> *aErrorHandler) |
Test if footprint attributes for type (SMD/Through hole/Other) match the expected type based on the pads in the footprint. More... | |
void | CheckFootprintTHPadNoHoles (const std::function< void(const wxString &msg, const wxPoint &position)> *aErrorHandler) |
Test if footprint attributes for type (SMD/Through hole/Other) match the expected type based on the pads in the footprint. More... | |
void | TransformPadsWithClearanceToPolygon (SHAPE_POLY_SET &aCornerBuffer, 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 aCornerBuffer. More... | |
void | TransformFPShapesWithClearanceToPolygon (SHAPE_POLY_SET &aCornerBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool aIncludeText=true, bool aIncludeShapes=true) const |
Generate shapes of graphic items (outlines) on layer aLayer as polygons and adds these polygons to aCornerBuffer. More... | |
void | TransformFPTextWithClearanceToPolygonSet (SHAPE_POLY_SET &aCornerBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc) const |
This function is the same as TransformGraphicShapesWithClearanceToPolygonSet but only generate text. More... | |
void | GetContextualTextVars (wxArrayString *aVars) const |
Return the list of system text vars for this footprint. More... | |
bool | ResolveTextVar (wxString *token, int aDepth=0) const |
Resolve any references to system tokens supported by the component. More... | |
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. More... | |
bool | HitTest (const wxPoint &aPosition, int aAccuracy=0) const override |
Test if aPosition is inside or on the boundary of this item. More... | |
bool | HitTestAccurate (const wxPoint &aPosition, int aAccuracy=0) const |
Test if a point is inside the bounding polygon of the footprint. More... | |
bool | HitTest (const EDA_RECT &aRect, bool aContained, int aAccuracy=0) const override |
Test if aRect intersects this item. More... | |
const wxString & | GetReference () const |
void | SetReference (const wxString &aReference) |
void | IncrementReference (int aDelta) |
Bump the current reference by aDelta. More... | |
const wxString & | GetValue () const |
void | SetValue (const wxString &aValue) |
FP_TEXT & | Value () |
read/write accessors: More... | |
FP_TEXT & | Reference () |
FP_TEXT & | Value () const |
The const versions to keep the compiler happy. More... | |
FP_TEXT & | Reference () const |
const std::map< wxString, wxString > & | GetProperties () const |
void | SetProperties (const std::map< wxString, wxString > &aProps) |
const wxString & | GetProperty (const wxString &aKey) |
bool | HasProperty (const wxString &aKey) |
void | SetProperty (const wxString &aKey, const wxString &aVal) |
PAD * | FindPadByNumber (const wxString &aPadNumber, PAD *aSearchAfterMe=nullptr) const |
Return a PAD with a matching number. More... | |
PAD * | GetPad (const wxPoint &aPosition, LSET aLayerMask=LSET::AllLayersMask()) |
Get a pad at aPosition on aLayerMask in the footprint. More... | |
PAD * | GetTopLeftPad () |
unsigned | GetPadCount (INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) const |
Return the number of pads. More... | |
unsigned | GetUniquePadCount (INCLUDE_NPTH_T aIncludeNPTH=INCLUDE_NPTH_T(INCLUDE_NPTH)) const |
Return the number of unique non-blank pads. More... | |
wxString | GetNextPadNumber (const wxString &aLastPadName) const |
Return the next available pad number in the footprint. More... | |
wxString | GetTypeName () const |
Get the type of footprint. More... | |
double | GetArea (int aPadding=0) const |
KIID | GetLink () const |
void | SetLink (const KIID &aLink) |
int | GetPlacementCost180 () const |
void | SetPlacementCost180 (int aCost) |
int | GetPlacementCost90 () const |
void | SetPlacementCost90 (int aCost) |
BOARD_ITEM * | Duplicate () const override |
Create a copy of this BOARD_ITEM. More... | |
BOARD_ITEM * | DuplicateItem (const BOARD_ITEM *aItem, bool aAddToFootprint=false) |
Duplicate a given item within the footprint, optionally adding it to the board. More... | |
void | Add3DModel (FP_3DMODEL *a3DModel) |
Add a3DModel definition to the end of the 3D model list. More... | |
SEARCH_RESULT | Visit (INSPECTOR inspector, void *testData, const KICAD_T scanTypes[]) override |
May be re-implemented for each derived class in order to handle all the types given by its member data. More... | |
wxString | GetClass () const override |
Return the class name. More... | |
wxString | GetSelectMenuText (EDA_UNITS aUnits) const override |
Return the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position. More... | |
BITMAPS | GetMenuImage () const override |
Return a pointer to an image to be used in menus. More... | |
EDA_ITEM * | Clone () const override |
Create a duplicate of this item with linked list members set to NULL. More... | |
void | RunOnChildren (const std::function< void(BOARD_ITEM *)> &aFunction) const |
Invoke a function on all BOARD_ITEMs that belong to the footprint (pads, drawings, texts). More... | |
void | GetAllDrawingLayers (int aLayers[], int &aCount, bool aIncludePads=true) const |
Return a set of all layers that this footprint has drawings on similar to ViewGetLayers(). More... | |
virtual void | ViewGetLayers (int aLayers[], int &aCount) const override |
Return the all the layers within the VIEW the object is painted on. More... | |
double | ViewGetLOD (int aLayer, KIGFX::VIEW *aView) const override |
Return the level of detail (LOD) of the item. More... | |
virtual const BOX2I | ViewBBox () const override |
Return the bounding box of the item covering all its layers. More... | |
void | SetInitialComments (wxArrayString *aInitialComments) |
Take ownership of caller's heap allocated aInitialComments block. More... | |
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. More... | |
const wxArrayString * | GetInitialComments () const |
const SHAPE_POLY_SET & | GetPolyCourtyard (PCB_LAYER_ID aLayer) const |
Used in DRC to test the courtyard area (a complex polygon). More... | |
void | BuildPolyCourtyards (OUTLINE_ERROR_HANDLER *aErrorHandler=nullptr) |
Build complex polygons of the courtyard areas from graphic items on the courtyard layers. More... | |
virtual std::shared_ptr< SHAPE > | GetEffectiveShape (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. More... | |
virtual void | SwapData (BOARD_ITEM *aImage) override |
Swap data between aItem and aImage. More... | |
virtual void | Delete (BOARD_ITEM *aItem) |
Removes an item from the container and deletes it. More... | |
virtual const ZONE_SETTINGS & | GetZoneSettings () const |
Fetch the zone settings for this container. More... | |
virtual void | SetZoneSettings (const ZONE_SETTINGS &aSettings) |
Set the zone settings for this container. More... | |
void | SetParentGroup (PCB_GROUP *aGroup) |
PCB_GROUP * | GetParentGroup () const |
int | GetX () const |
int | GetY () const |
virtual wxPoint | GetCenter () const |
This defaults to the center of the bounding box if not overridden. More... | |
void | SetX (int aX) |
void | SetY (int aY) |
virtual bool | IsConnected () const |
Returns information if the object is derived from BOARD_CONNECTED_ITEM. More... | |
virtual bool | IsOnCopperLayer () const |
BOARD_ITEM_CONTAINER * | GetParent () const |
BOARD_ITEM_CONTAINER * | GetParentFootprint () const |
virtual PCB_LAYER_ID | GetLayer () const |
Return the primary layer this item is on. More... | |
virtual LSET | GetLayerSet () const |
Return a std::bitset of all layers on which the item physically resides. More... | |
virtual void | SetLayerSet (LSET aLayers) |
virtual void | SetLayer (PCB_LAYER_ID aLayer) |
Set the layer this item is on. More... | |
bool | IsTrack () const |
Test to see if this object is a track or via (or microvia). More... | |
void | DeleteStructure () |
Delete this object after removing from its parent if it has one. More... | |
void | Move (const VECTOR2I &aMoveVector) |
void | Rotate (const VECTOR2I &aRotCentre, double aAngle) |
void | Flip (const VECTOR2I &aCentre, bool aFlipLeftRight) |
virtual const BOARD * | GetBoard () const |
Return the BOARD in which this BOARD_ITEM resides, or NULL if none. More... | |
virtual BOARD * | GetBoard () |
wxString | GetLayerName () const |
Return the name of the PCB layer on which the item resides. More... | |
virtual void | TransformShapeWithClearanceToPolygon (SHAPE_POLY_SET &aCornerBuffer, PCB_LAYER_ID aLayer, int aClearanceValue, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false) const |
Convert the item shape to a closed polygon. More... | |
KICAD_T | Type () const |
Returns the type of object. More... | |
virtual void | SetParent (EDA_ITEM *aParent) |
bool | IsModified () const |
bool | IsNew () const |
bool | IsMoving () const |
bool | IsDragging () const |
bool | IsWireImage () const |
bool | IsSelected () const |
bool | IsEntered () const |
bool | IsResized () const |
bool | IsBrightened () const |
void | SetWireImage () |
void | SetSelected () |
void | SetBrightened () |
void | ClearSelected () |
void | ClearBrightened () |
void | SetModified () |
int | GetState (EDA_ITEM_FLAGS type) const |
void | SetState (EDA_ITEM_FLAGS type, bool state) |
EDA_ITEM_FLAGS | GetStatus () const |
void | SetStatus (EDA_ITEM_FLAGS aStatus) |
void | SetFlags (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 |
void | ClearTempFlags () |
void | ClearEditFlags () |
virtual bool | IsType (const KICAD_T aScanTypes[]) const |
Check whether the item is one of the listed types. More... | |
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. More... | |
bool | IsForceVisible () const |
virtual const wxPoint | GetFocusPosition () const |
Similar to GetPosition, but allows items to return their visual center rather than their anchor. More... | |
virtual bool | Matches (const wxFindReplaceData &aSearchData, void *aAuxData) const |
Compare the item against the search criteria in aSearchData. More... | |
virtual bool | Replace (const wxFindReplaceData &aSearchData, void *aAuxData=nullptr) |
Perform a text replace using the find and replace criteria in aSearchData on items that support text find and replace. More... | |
virtual bool | IsReplaceable () const |
Override this method in any derived object that supports test find and replace. More... | |
bool | operator< (const EDA_ITEM &aItem) const |
Test if another item is less than this object. More... | |
virtual void | ViewDraw (int aLayer, VIEW *aView) const |
Draw the parts of the object belonging to layer aLayer. More... | |
VIEW_ITEM_DATA * | viewPrivData () const |
void | ClearViewPrivData () |
bool | Set (PROPERTY_BASE *aProperty, wxAny &aValue) |
template<typename T > | |
bool | Set (PROPERTY_BASE *aProperty, T aValue) |
template<typename T > | |
bool | Set (const wxString &aProperty, T aValue) |
wxAny | Get (PROPERTY_BASE *aProperty) |
template<typename T > | |
T | Get (PROPERTY_BASE *aProperty) |
template<typename T > | |
boost::optional< T > | Get (const wxString &aProperty) |
Static Public Member Functions | |
static bool | ClassOf (const EDA_ITEM *aItem) |
Adds an item to the container. More... | |
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 ... More... | |
static const wxChar * | StringLibNameInvalidChars (bool aUserReadable) |
Test for validity of the name in a library of the footprint ( no spaces, dir separators ... More... | |
static double | GetCoverageArea (const BOARD_ITEM *aItem, const GENERAL_COLLECTOR &aCollector) |
Return the initial comments block or NULL if none, without transfer of ownership. More... | |
template<class T > | |
static SEARCH_RESULT | IterateForward (std::deque< T > &aList, INSPECTOR inspector, void *testData, const KICAD_T scanTypes[]) |
This changes first parameter to avoid the DList and use the main queue instead. More... | |
template<class T > | |
static SEARCH_RESULT | IterateForward (std::vector< T > &aList, INSPECTOR inspector, void *testData, const KICAD_T scanTypes[]) |
Change first parameter to avoid the DList and use std::vector instead. More... | |
static bool | Replace (const wxFindReplaceData &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. More... | |
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. More... | |
Public Attributes | |
const KIID | m_Uuid |
Static Public Attributes | |
static wxPoint | ZeroOffset |
A value of wxPoint(0,0) which can be passed to the Draw() functions. More... | |
Protected Member Functions | |
virtual wxString | layerMaskDescribe () const |
Return a string (to be shown to the user) describing a layer mask. More... | |
bool | Matches (const wxString &aText, const wxFindReplaceData &aSearchData) const |
Compare aText against search criteria in aSearchData. More... | |
Protected Attributes | |
PCB_LAYER_ID | m_layer |
PCB_GROUP * | m_group |
EDA_ITEM_FLAGS | m_status |
EDA_ITEM * | m_parent |
Linked list: Link (parent struct) More... | |
bool | m_forceVisible |
EDA_ITEM_FLAGS | m_flags |
Private Attributes | |
DRAWINGS | m_drawings |
PADS | m_pads |
FP_ZONES | m_fp_zones |
FP_GROUPS | m_fp_groups |
double | m_orient |
wxPoint | m_pos |
FP_TEXT * | m_reference |
FP_TEXT * | m_value |
LIB_ID | m_fpid |
int | m_attributes |
int | m_fpStatus |
EDA_RECT | m_cachedBoundingBox |
int | m_boundingBoxCacheTimeStamp |
EDA_RECT | m_cachedVisibleBBox |
int | m_visibleBBoxCacheTimeStamp |
EDA_RECT | m_cachedTextExcludedBBox |
int | m_textExcludedBBoxCacheTimeStamp |
SHAPE_POLY_SET | m_cachedHull |
int | m_hullCacheTimeStamp |
ZONE_CONNECTION | m_zoneConnection |
int | m_thermalWidth |
int | m_thermalGap |
int | m_localClearance |
int | m_localSolderMaskMargin |
int | m_localSolderPasteMargin |
double | m_localSolderPasteMarginRatio |
wxString | m_doc |
wxString | m_keywords |
KIID_PATH | m_path |
timestamp_t | m_lastEditTime |
int | m_arflag |
KIID | m_link |
int | m_rot90Cost |
int | m_rot180Cost |
std::list< FP_3DMODEL > | m_3D_Drawings |
std::map< wxString, wxString > | m_properties |
wxArrayString * | m_initial_comments |
SHAPE_POLY_SET | m_poly_courtyard_front |
SHAPE_POLY_SET | m_poly_courtyard_back |
Definition at line 103 of file footprint.h.
FOOTPRINT::FOOTPRINT | ( | BOARD * | parent | ) |
Definition at line 51 of file footprint.cpp.
References F_Cu, FP_PADS_are_LOCKED, INHERITED, m_3D_Drawings, m_arflag, m_attributes, m_fpStatus, m_lastEditTime, BOARD_ITEM::m_layer, m_link, m_localClearance, m_localSolderMaskMargin, m_localSolderPasteMargin, m_localSolderPasteMarginRatio, m_orient, m_reference, m_rot180Cost, m_rot90Cost, m_thermalGap, m_thermalWidth, m_value, m_zoneConnection, FP_TEXT::TEXT_is_REFERENCE, and FP_TEXT::TEXT_is_VALUE.
Referenced by Clone().
FOOTPRINT::FOOTPRINT | ( | const FOOTPRINT & | aFootprint | ) |
Definition at line 83 of file footprint.cpp.
References Add(), PCB_GROUP::AddItem(), APPEND, PCB_GROUP::GetItems(), GraphicalItems(), group, Groups(), m_3D_Drawings, m_arflag, m_attributes, m_boundingBoxCacheTimeStamp, m_cachedBoundingBox, m_cachedHull, m_cachedTextExcludedBBox, m_cachedVisibleBBox, m_doc, m_fpid, m_fpStatus, m_hullCacheTimeStamp, m_initial_comments, m_keywords, m_lastEditTime, m_link, m_localClearance, m_localSolderMaskMargin, m_localSolderPasteMargin, m_localSolderPasteMarginRatio, m_orient, m_path, m_pos, m_properties, m_reference, m_rot180Cost, m_rot90Cost, m_textExcludedBBoxCacheTimeStamp, m_thermalGap, m_thermalWidth, m_value, m_visibleBBoxCacheTimeStamp, m_zoneConnection, pad, Pads(), BOARD_CONNECTED_ITEM::SetNetCode(), EDA_ITEM::SetParent(), and Zones().
FOOTPRINT::FOOTPRINT | ( | FOOTPRINT && | aFootprint | ) |
Definition at line 191 of file footprint.cpp.
FOOTPRINT::~FOOTPRINT | ( | ) |
Definition at line 198 of file footprint.cpp.
References group, m_drawings, m_fp_groups, m_fp_zones, m_initial_comments, m_pads, m_reference, and m_value.
|
overridevirtual |
Removes an item from the container.
Implements BOARD_ITEM_CONTAINER.
Definition at line 513 of file footprint.cpp.
References APPEND, EDA_ITEM::ClearEditFlags(), KI_FALLTHROUGH, m_drawings, m_fp_groups, m_fp_zones, m_pads, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, PCB_FP_ZONE_T, PCB_GROUP_T, PCB_PAD_T, EDA_ITEM::SetParent(), FP_TEXT::TEXT_is_DIVERS, and EDA_ITEM::Type().
Referenced by CADSTAR_PCB_ARCHIVE_LOADER::addAttribute(), PCAD2KICAD::PCB_ARC::AddToFootprint(), PCAD2KICAD::PCB_LINE::AddToFootprint(), PCAD2KICAD::PCB_POLYGON::AddToFootprint(), PCAD2KICAD::PCB_PAD::AddToFootprint(), MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), MICROWAVE_TOOL::createPolygonShape(), KI_TEST::DrawArc(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape(), KI_TEST::DrawSegment(), DuplicateItem(), PCB_EDIT_FRAME::ExchangeFootprint(), FOOTPRINT(), PCB_BASE_FRAME::GetFootprintFromBoardByReference(), GROUP_TOOL::Group(), ALTIUM_PCB::HelperCreateAndAddShape(), LEGACY_PLUGIN::loadFOOTPRINT(), FABMASTER::loadFootprints(), LEGACY_PLUGIN::loadFP_SHAPE(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryAreas(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryPads(), LEGACY_PLUGIN::loadPAD(), operator=(), EAGLE_PLUGIN::packageCircle(), EAGLE_PLUGIN::packageHole(), EAGLE_PLUGIN::packagePad(), EAGLE_PLUGIN::packagePolygon(), EAGLE_PLUGIN::packageRectangle(), EAGLE_PLUGIN::packageSMD(), EAGLE_PLUGIN::packageText(), EAGLE_PLUGIN::packageWire(), ALTIUM_PCB::ParsePads6Data(), ALTIUM_PCB::ParseTexts6Data(), CLIPBOARD_IO::SaveSelection(), FOOTPRINT_EDIT_FRAME::SelectFootprintFromBoard(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow().
void FOOTPRINT::Add3DModel | ( | FP_3DMODEL * | a3DModel | ) |
Add a3DModel definition to the end of the 3D model list.
a3DModel | A pointer to a FP_3DMODEL to add to the list. |
Definition at line 1180 of file footprint.cpp.
References m_3D_Drawings, and FP_3DMODEL::m_Filename.
void FOOTPRINT::BuildPolyCourtyards | ( | OUTLINE_ERROR_HANDLER * | aErrorHandler = nullptr | ) |
Build complex polygons of the courtyard areas from graphic items on the courtyard layers.
Definition at line 2040 of file footprint.cpp.
References B_CrtYd, SHAPE_POLY_SET::CacheTriangulation(), SHAPE_POLY_SET::CHAMFER_ACUTE_CORNERS, EDA_ITEM::ClearFlags(), ConvertOutlineToPolygon(), F_CrtYd, GraphicalItems(), SHAPE_POLY_SET::Inflate(), m_poly_courtyard_back, m_poly_courtyard_front, MALFORMED_B_COURTYARD, MALFORMED_COURTYARDS, MALFORMED_F_COURTYARD, Millimeter2iu(), PCB_FP_SHAPE_T, SHAPE_POLY_SET::RemoveAllContours(), and EDA_ITEM::SetFlags().
Referenced by AR_AUTOPLACER::buildFpAreas(), BOARD_INSPECTION_TOOL::InspectConstraints(), BOARD_INSPECTION_TOOL::reportClearance(), and DIALOG_FOOTPRINT_CHECKER::runChecks().
void FOOTPRINT::CheckFootprintAttributes | ( | const std::function< void(const wxString &msg)> * | 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"
aErrorHandler | callback to handle the error messages generated |
Definition at line 2095 of file footprint.cpp.
References _, FP_SMD, FP_THROUGH_HOLE, GetAttributes(), GetLikelyAttribute(), and GetTypeName().
Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().
void FOOTPRINT::CheckFootprintTHPadNoHoles | ( | const std::function< void(const wxString &msg, const wxPoint &position)> * | 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"
aErrorHandler | callback to handle the error messages generated |
Definition at line 2126 of file footprint.cpp.
References _, NPTH, pad, Pads(), and PTH.
Referenced by DIALOG_FOOTPRINT_CHECKER::runChecks().
|
inlinestatic |
Adds an item to the container.
aMode | decides whether the item is added in the beginning or at the end of the list. |
Definition at line 118 of file footprint.h.
References PCB_FOOTPRINT_T, and EDA_ITEM::Type().
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 504 of file footprint.cpp.
References m_pads, NETINFO_LIST::ORPHANED, and pad.
Referenced by PCB_BASE_FRAME::loadFootprint(), and FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard().
|
inlineinherited |
Definition at line 132 of file eda_item.h.
References BRIGHTENED, and EDA_ITEM::ClearFlags().
Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), SCH_EDIT_FRAME::FocusOnItem(), PCB_BASE_FRAME::FocusOnItems(), PL_SELECTION_TOOL::unhighlight(), EE_SELECTION_TOOL::unhighlight(), PCB_SELECTION_TOOL::unhighlightInternal(), and SCH_EDITOR_CONTROL::UpdateNetHighlighting().
|
inlineinherited |
Definition at line 171 of file eda_item.h.
References EDA_ITEM::ClearFlags(), and EDA_ITEM::GetEditFlags().
Referenced by Add(), BOARD::Add(), SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), SCH_LINE_WIRE_BUS_TOOL::finishSegments(), PL_DRAWING_TOOLS::PlaceItem(), SCH_DRAWING_TOOLS::PlaceSymbol(), SCH_EDIT_FRAME::PutDataInPreviousState(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), and SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace().
|
inlineinherited |
Definition at line 153 of file eda_item.h.
References EDA_ITEM::m_flags.
Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PNS_KICAD_IFACE::AddItem(), SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_MOVE_TOOL::AlignElements(), BuildPolyCourtyards(), EDA_ITEM::ClearBrightened(), EDA_ITEM::ClearEditFlags(), EDA_ITEM::ClearSelected(), EDA_ITEM::ClearTempFlags(), ConvertOutlineToPolygon(), SCH_EDIT_FRAME::ConvertPart(), SYMBOL_EDITOR_EDIT_TOOL::Copy(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), SYMBOL_EDITOR_PIN_TOOL::CreateImagePins(), MICROWAVE_TOOL::createMicrowaveInductor(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), KIGFX::SCH_PAINTER::draw(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), SCH_ITEM::Duplicate(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_SELECTION_TOOL::ExitGroup(), SYMBOL_EDIT_FRAME::GetSymbolFromRedoList(), SYMBOL_EDIT_FRAME::GetSymbolFromUndoList(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromLibrary(), EE_SELECTION_TOOL::Main(), EE_SELECTION_TOOL::narrowSelection(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), FOOTPRINT_EDIT_FRAME::OpenProjectFiles(), PCB_BASE_FRAME::PlaceFootprint(), SYMBOL_EDITOR_PIN_TOOL::PlacePin(), BOARD_COMMIT::Push(), PCB_SELECTION_TOOL::RebuildSelection(), SCH_EDIT_TOOL::RepeatDrawItem(), SYMBOL_EDIT_FRAME::RollbackSymbolFromUndo(), SCH_EDIT_FRAME::SaveCopyForRepeatItem(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_SEXPR_PLUGIN_CACHE::savePin(), EE_SELECTION_TOOL::selectMultiple(), SCH_EDIT_FRAME::SelectUnit(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), and SCH_DRAWING_TOOLS::TwoClickPlace().
|
inlineinherited |
Definition at line 131 of file eda_item.h.
References EDA_ITEM::ClearFlags(), and SELECTED.
Referenced by PCB_POINT_EDITOR::addCorner(), EDIT_TOOL::Duplicate(), ARRAY_CREATOR::Invoke(), LIB_SYMBOL::LIB_SYMBOL(), EE_TOOL_BASE< SCH_BASE_FRAME >::saveCopyInUndoList(), PL_SELECTION_TOOL::unhighlight(), EE_SELECTION_TOOL::unhighlight(), PCB_SELECTION_TOOL::unhighlightInternal(), and GERBVIEW_SELECTION_TOOL::unselectVisually().
|
inlineinherited |
Definition at line 165 of file eda_item.h.
References CANDIDATE, EDA_ITEM::ClearFlags(), DO_NOT_DRAW, ENDPOINT, IS_LINKED, SKIP_STRUCT, STARTPOINT, and TEMP_SELECTED.
Referenced by SCH_EDIT_FRAME::PutDataInPreviousState().
|
inlineinherited |
Definition at line 143 of file view_item.h.
References KIGFX::VIEW_ITEM::m_viewPrivData.
Referenced by KIGFX::VIEW::OnDestroy().
|
overridevirtual |
Create a duplicate of this item with linked list members set to NULL.
The default version will return NULL in release builds and likely crash the program. In debug builds, a warning message indicating the derived class has not implemented cloning. This really should be a pure virtual function. Due to the fact that there are so many objects derived from EDA_ITEM, the decision was made to return NULL until all the objects derived from EDA_ITEM implement cloning. Once that happens, this function should be made pure.
Reimplemented from EDA_ITEM.
Definition at line 1293 of file footprint.cpp.
References FOOTPRINT().
Referenced by FOOTPRINT_EDIT_FRAME::AddFootprintToBoard(), PCB_PLUGIN::FootprintLoad(), PCB_PLUGIN::FootprintSave(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), BOARD_NETLIST_UPDATER::updateComponentPadConnections(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().
double FOOTPRINT::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.
Used by selection tool heuristics.
Definition at line 1950 of file footprint.cpp.
References SHAPE_POLY_SET::AddOutline(), ERROR_OUTSIDE, GetBoundingHull(), COLLECTOR::GetCount(), GENERAL_COLLECTOR::GetGuide(), BOARD_ITEM::GetParent(), KiROUND(), COLLECTORS_GUIDE::OnePixelInIU(), SHAPE_POLY_SET::Outline(), PCB_ARC_T, PCB_FOOTPRINT_T, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, PCB_SHAPE_T, PCB_TEXT_T, PCB_TRACE_T, PCB_VIA_T, polygonArea(), TransformFPShapesWithClearanceToPolygon(), TransformPadsWithClearanceToPolygon(), BOARD_ITEM::TransformShapeWithClearanceToPolygon(), EDA_ITEM::Type(), and UNDEFINED_LAYER.
Referenced by PCB_SELECTION_TOOL::GuessSelectionCandidates().
|
inlinevirtualinherited |
Removes an item from the container and deletes it.
Definition at line 74 of file board_item_container.h.
References BOARD_ITEM_CONTAINER::Remove().
Referenced by BOARD_DRC_ITEMS_PROVIDER::DeleteItem(), and BOARD_COMMIT::Push().
|
inherited |
Delete this object after removing from its parent if it has one.
Definition at line 128 of file board_item.cpp.
References BOARD_ITEM::GetParent(), and BOARD_ITEM_CONTAINER::Remove().
Referenced by BOARD::PadDelete(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow().
|
overridevirtual |
Create a copy of this BOARD_ITEM.
Reimplemented from BOARD_ITEM.
Definition at line 1725 of file footprint.cpp.
References BOARD_ITEM::Duplicate(), EDA_ITEM::m_Uuid, and RunOnChildren().
Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), GPCB_PLUGIN::FootprintLoad(), PCB_PLUGIN::FootprintLoad(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), and CADSTAR_PCB_ARCHIVE_LOADER::loadComponents().
BOARD_ITEM * FOOTPRINT::DuplicateItem | ( | const BOARD_ITEM * | aItem, |
bool | aAddToFootprint = false |
||
) |
Duplicate a given item within the footprint, optionally adding it to the board.
Definition at line 1738 of file footprint.cpp.
References Add(), EDA_ITEM::GetClass(), FP_TEXT::GetType(), m_fp_zones, m_pads, EDA_ITEM::m_Uuid, PAD, PCB_FOOTPRINT_T, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, PCB_FP_ZONE_T, PCB_GROUP_T, PCB_PAD_T, EDA_TEXT::SetText(), FP_TEXT::SetType(), FP_TEXT::TEXT_is_DIVERS, FP_TEXT::TEXT_is_REFERENCE, FP_TEXT::TEXT_is_VALUE, and EDA_ITEM::Type().
Referenced by EDIT_TOOL::Duplicate(), and ARRAY_CREATOR::Invoke().
PAD * FOOTPRINT::FindPadByNumber | ( | const wxString & | aPadNumber, |
PAD * | aSearchAfterMe = nullptr |
||
) | const |
Return a PAD with a matching number.
aPadNumber | the pad number to find. |
aSearchAfterMe | = not nullptr to find a pad living after aAfterMe |
Definition at line 1075 of file footprint.cpp.
Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), BOARD_NETLIST_UPDATER::testConnectivity(), and DRC_TEST_PROVIDER_LVS::testFootprints().
bool FOOTPRINT::FixUuids | ( | ) |
Old footprints do not alway 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.
Definition at line 227 of file footprint.cpp.
References group, m_drawings, m_fp_groups, m_fp_zones, m_pads, m_reference, m_value, niluuid, and pad.
Referenced by FOOTPRINT_EDIT_FRAME::AddFootprintToBoard().
|
overridevirtual |
Flip this object, i.e.
change the board side for this object.
aCentre | the rotation point. |
aFlipLeftRight | mirror across Y axis instead of X (the default). |
Mirror the Y position (around the X axis)
Reimplemented from BOARD_ITEM.
Definition at line 1491 of file footprint.cpp.
References FP_TEXT::Flip(), FlipLayer(), BOARD_ITEM::GetLayer(), m_boundingBoxCacheTimeStamp, m_cachedHull, m_drawings, m_fp_zones, m_orient, m_pads, m_poly_courtyard_back, m_poly_courtyard_front, m_pos, m_reference, m_textExcludedBBoxCacheTimeStamp, m_value, m_visibleBBoxCacheTimeStamp, MIRROR(), SHAPE_POLY_SET::Mirror(), NORMALIZE_ANGLE_180(), pad, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, Rotate(), BOARD_ITEM::SetLayer(), and SetPosition().
Referenced by PCB_BASE_FRAME::AddFootprintToBoard(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_EDIT_FRAME::ExchangeFootprint(), PCB_PLUGIN::FootprintSave(), CADSTAR_PCB_ARCHIVE_LOADER::loadComponents(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FABMASTER::loadFootprints(), EAGLE_PLUGIN::orientFootprintAndText(), BOARD_EDITOR_CONTROL::PlaceFootprint(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow().
|
inlineinherited |
Definition at line 264 of file board_item.h.
References BOARD_ITEM::Flip(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
inlineinherited |
Definition at line 86 of file inspectable.h.
References PROPERTY_BASE::getter(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
Referenced by BOOST_AUTO_TEST_CASE(), CLASS_D_DESC::CLASS_D_DESC(), PCB_EXPR_VAR_REF::GetValue(), and PAD_DESC::PAD_DESC().
|
inlineinherited |
Definition at line 95 of file inspectable.h.
References PROPERTY_BASE::get(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
|
inlineinherited |
Definition at line 104 of file inspectable.h.
References PROPERTY_BASE::get(), PROPERTY_MANAGER::GetProperty(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
void FOOTPRINT::GetAllDrawingLayers | ( | int | aLayers[], |
int & | aCount, | ||
bool | aIncludePads = true |
||
) | const |
Return a set of all layers that this footprint has drawings on similar to ViewGetLayers().
aLayers | is an array to store layer ids. |
aCount | is the number of layers stored in the array. |
aIncludePads | controls whether to also include pad layers. |
Definition at line 1325 of file footprint.cpp.
References m_drawings, m_pads, pad, and KIGFX::VIEW::VIEW_MAX_LAYERS.
double FOOTPRINT::GetArea | ( | int | aPadding = 0 | ) | const |
Definition at line 643 of file footprint.cpp.
References GetBoundingBox(), EDA_RECT::GetHeight(), and EDA_RECT::GetWidth().
Referenced by sortFootprintsByComplexity(), sortFootprintsByRatsnestSize(), and SpreadFootprints().
|
inline |
Definition at line 239 of file footprint.h.
References m_attributes.
Referenced by BOARD_NETLIST_UPDATER::addNewFootprint(), CheckFootprintAttributes(), EDIT_TOOL::doMoveSelection(), PCB_EDIT_FRAME::ExchangeFootprint(), FootprintWriteShape(), PCB_PLUGIN::format(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().
|
virtualinherited |
Return the BOARD in which this BOARD_ITEM resides, or NULL if none.
Definition at line 36 of file board_item.cpp.
References BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParent(), PCB_T, and EDA_ITEM::Type().
Referenced by ZONE_FILLER::addHoleKnockout(), PAD::BuildEffectivePolygon(), PAD::BuildEffectiveShapes(), ZONE::BuildSmoothedPoly(), calcIsInsideArea(), KIGFX::PCB_PAINTER::Draw(), KIGFX::PCB_PAINTER::draw(), PCB_LAYER_VALUE::EqualTo(), existsOnLayer(), exprFromTo(), PCB_VIA::FlashLayer(), PAD::FlashLayer(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), FP_SHAPE::Flip(), PCB_SHAPE::Flip(), FP_TEXT::Flip(), PCB_DIMENSION_BASE::Flip(), PCB_ARC::Flip(), PCB_VIA::Flip(), ZONE::Flip(), PCB_EXPR_CONTEXT::GetBoard(), BOARD_ITEM::GetBoard(), GetBoundingBox(), GetBoundingHull(), BOARD_CONNECTED_ITEM::GetEffectiveNetclass(), PAD::GetEffectiveShape(), PCB_VIA::GetEffectiveShape(), ZONE::GetInteractingZones(), BOARD_ITEM::GetLayerName(), PCB_VIA::GetMinAnnulus(), PCB_DRAW_PANEL_GAL::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetClass(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), BOARD_CONNECTED_ITEM::GetOwnClearance(), ZONE::GetSelectMenuText(), DRC_ENGINE::GetShape(), FP_TEXT::GetShownText(), PAD::GetSolderMaskMargin(), PAD::GetSolderPasteMargin(), BOARD::GetTrackLength(), inDiffPair(), insideArea(), insideBackCourtyard(), insideCourtyard(), insideFrontCourtyard(), isInsideArea(), isInsideCourtyard(), BOARD_ITEM::IsLocked(), BOARD_ITEM::layerMaskDescribe(), PCB_VIA::layerMaskDescribe(), CONVERT_TOOL::makePolysFromCircles(), PAD::MergePrimitivesAsPolygon(), EAGLE_PLUGIN::packageWire(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), BOARD::ResolveDRCExclusions(), BOARD_CONNECTED_ITEM::SetNetCode(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), ZONE::TransformSmoothedOutlineToPolygon(), ZONE::TransformSolidAreasShapesToPolygon(), PCB_TRACK::ViewBBox(), ViewBBox(), PCB_VIA::ViewGetLOD(), and PAD::ViewGetLOD().
|
virtualinherited |
Definition at line 50 of file board_item.cpp.
References BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParent(), PCB_T, and EDA_ITEM::Type().
|
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 736 of file footprint.cpp.
Referenced by AR_AUTOPLACER::buildFpAreas(), calcIsInsideCourtyard(), PCB_GRID_HELPER::computeAnchors(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), GetArea(), GetBoundingBoxes(), FOOTPRINT_EDIT_FRAME::GetDocumentExtents(), AR_AUTOPLACER::getOptimalFPPlacement(), HitTest(), PCB_SELECTION_TOOL::hitTestDistance(), moveFootprintsInArea(), SpreadFootprints(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), AR_AUTOPLACER::testFootprintOnBoard(), and ViewBBox().
const EDA_RECT FOOTPRINT::GetBoundingBox | ( | bool | aIncludeText, |
bool | aIncludeInvisibleText | ||
) | const |
Definition at line 742 of file footprint.cpp.
References BOARD_ITEM::GetBoard(), FP_TEXT::GetBoundingBox(), BOARD_ITEM::GetLayer(), BOARD::GetTimeStamp(), EDA_RECT::Inflate(), BOARD::IsElementVisible(), BOARD::IsLayerVisible(), EDA_TEXT::IsVisible(), LAYER_MOD_REFERENCES, LAYER_MOD_TEXT, LAYER_MOD_VALUES, m_boundingBoxCacheTimeStamp, m_cachedBoundingBox, m_cachedTextExcludedBBox, m_cachedVisibleBBox, m_drawings, m_fp_zones, m_pads, m_pos, m_reference, m_textExcludedBBoxCacheTimeStamp, m_value, m_visibleBBoxCacheTimeStamp, EDA_RECT::Merge(), Millimeter2iu(), pad, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, EDA_RECT::SetEnd(), and EDA_RECT::SetOrigin().
SHAPE_POLY_SET FOOTPRINT::GetBoundingHull | ( | ) | const |
Return a bounding polygon for the shapes and pads in the footprint.
This operation is slower but more accurate than calculating a bounding box.
Definition at line 847 of file footprint.cpp.
References SHAPE_POLY_SET::AddOutline(), SHAPE_POLY_SET::Append(), BuildConvexHull(), SHAPE_POLY_SET::COutline(), ERROR_OUTSIDE, BOARD_ITEM::GetBoard(), GetPosition(), BOARD::GetTimeStamp(), m_cachedHull, m_drawings, m_fp_zones, m_hullCacheTimeStamp, m_pads, Millimeter2iu(), SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::OutlineCount(), pad, PCB_FP_SHAPE_T, SHAPE_POLY_SET::RemoveAllContours(), and UNDEFINED_LAYER.
Referenced by CoverageRatio(), KIGFX::PCB_PAINTER::Draw(), GetCoverageArea(), HitTestAccurate(), and PCB_SELECTION_TOOL::hitTestDistance().
|
inlinevirtualinherited |
This defaults to the center of the bounding box if not overridden.
Reimplemented in PCB_ARC, PAD, PCB_SHAPE, and PCB_MARKER.
Definition at line 81 of file board_item.h.
References EDA_ITEM::GetBoundingBox(), and EDA_RECT::GetCenter().
Referenced by PCB_GRID_HELPER::computeAnchors(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeCentersVertically(), and ALTIUM_PCB::HelperParseDimensions6Radial().
|
inlineoverridevirtual |
Return the class name.
Implements EDA_ITEM.
Definition at line 605 of file footprint.h.
Referenced by Visit().
void FOOTPRINT::GetContextualTextVars | ( | wxArrayString * | aVars | ) | const |
Return the list of system text vars for this footprint.
Definition at line 469 of file footprint.cpp.
|
static |
Return the initial comments block or NULL if none, without transfer of ownership.
Definition at line 1870 of file footprint.cpp.
References ARC, SHAPE_LINE_CHAIN::Area(), BEZIER, CIRCLE, ERROR_OUTSIDE, GetBoundingHull(), GENERAL_COLLECTOR::GetGuide(), EDA_SHAPE::GetShape(), EDA_SHAPE::GetWidth(), EDA_SHAPE::IsFilled(), KI_FALLTHROUGH, KiROUND(), COLLECTORS_GUIDE::OnePixelInIU(), PCB_ARC_T, PCB_FOOTPRINT_T, PCB_FP_TEXT_T, PCB_GROUP_T, PCB_MARKER_T, PCB_SHAPE_T, PCB_TRACE_T, POLY, polygonArea(), RECT, SEGMENT, MARKER_BASE::ShapeToPolygon(), text, BOARD_ITEM::TransformShapeWithClearanceToPolygon(), EDA_ITEM::Type(), and UNDEFINED_LAYER.
Referenced by PCB_SELECTION_TOOL::GuessSelectionCandidates().
|
inline |
Definition at line 201 of file footprint.h.
References m_doc.
Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), FOOTPRINT_INFO_GENERATOR::GenerateHtml(), FP_TREE_SYNCHRONIZING_ADAPTER::GetValue(), FOOTPRINT_INFO_IMPL::load(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and PCB_CONTROL::UpdateMessagePanel().
|
inlineinherited |
Definition at line 157 of file eda_item.h.
References IS_DRAGGING, IS_MOVING, IS_NEW, IS_PASTED, IS_RESIZING, IS_WIRE_IMAGE, EDA_ITEM::m_flags, and STRUCT_DELETED.
Referenced by EDA_ITEM::ClearEditFlags(), SCH_EDIT_FRAME::DeleteJunction(), SCH_EDIT_TOOL::editFieldText(), SYMBOL_EDITOR_PIN_TOOL::EditPinProperties(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), SCH_SYMBOL::GetMsgPanelInfo(), SELECTION_CONDITIONS::Idle(), SELECTION_CONDITIONS::IdleSelection(), SYMBOL_EDITOR_MOVE_TOOL::Main(), PCB_POINT_EDITOR::OnSelectionChange(), SYMBOL_EDITOR_EDIT_TOOL::Properties(), SCH_EDIT_TOOL::Properties(), PAD_TOOL::recombinePad(), SCH_EDIT_FRAME::SchematicCleanUp(), SCH_EDIT_FRAME::SelectUnit(), DIALOG_DIMENSION_PROPERTIES::TransferDataFromWindow(), DIALOG_TARGET_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_AND_LABEL_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), and DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow().
|
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).
aLayer | in case of items spanning multiple layers, only the shapes belonging to aLayer will be returned. Pass UNDEFINED_LAYER to return shapes for all layers. |
Reimplemented from BOARD_ITEM.
Definition at line 2016 of file footprint.cpp.
References GraphicalItems(), pad, Pads(), and PCB_FP_SHAPE_T.
|
inline |
Definition at line 244 of file footprint.h.
References m_arflag.
Referenced by DSN::SPECCTRA_DB::FromBOARD(), AR_AUTOPLACER::pickFootprint(), and sortFootprintsByRatsnestSize().
|
inlineinherited |
Definition at line 154 of file eda_item.h.
References EDA_ITEM::m_flags.
Referenced by BACK_ANNOTATE::applyChangelist(), calcIsInsideArea(), ConvertOutlineToPolygon(), SCH_EDIT_FRAME::ConvertPart(), KIGFX::SCH_PAINTER::draw(), DRC_ENGINE::EvalRules(), PCB_SELECTION_TOOL::expandConnection(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), BOARD_INSPECTION_TOOL::InspectConstraints(), LIB_SYMBOL::LIB_SYMBOL(), DIALOG_DRC::OnDRCItemSelected(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), LIB_SYMBOL::operator=(), BOARD_COMMIT::Push(), Remove(), BOARD::Remove(), SCH_EDIT_FRAME::SaveCopyInUndoList(), SCH_EDIT_FRAME::SchematicCleanUp(), SCH_EDIT_FRAME::SelectUnit(), DS_DATA_ITEM::SyncDrawItems(), DS_DATA_ITEM_POLYGONS::SyncDrawItems(), DS_DATA_ITEM_BITMAP::SyncDrawItems(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), and DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow().
|
inlinevirtualinherited |
Similar to GetPosition, but allows items to return their visual center rather than their anchor.
Reimplemented in BOARD, PCB_TRACK, and PCB_SHAPE.
Definition at line 258 of file eda_item.h.
References EDA_ITEM::GetPosition().
Referenced by SCH_EDIT_FRAME::FocusOnItem().
|
inline |
Definition at line 195 of file footprint.h.
References m_fpid.
Referenced by FOOTPRINT_EDIT_FRAME::AddFootprintToBoard(), BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), FOOTPRINT_EDIT_FRAME::ClearModify(), CreateDevicesSection(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), doPushPadProperties(), FOOTPRINT_EDIT_FRAME::editFootprintProperties(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PCB_EDIT_FRAME::ExchangeFootprint(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), BOARD_EDITOR_CONTROL::ExportNetlist(), PCB_PLUGIN::FootprintSave(), FP_LIB_TABLE::FootprintSave(), PCB_PLUGIN::format(), PLACE_FILE_EXPORTER::GenPositionData(), FOOTPRINT_EDIT_FRAME::GetLoadedFPID(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), LEGACY_PLUGIN::loadFOOTPRINT(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PCB_EDIT_FRAME::LoadFootprints(), LEGACY_PLUGIN::loadFP_SHAPE(), LEGACY_PLUGIN::loadPAD(), DSN::SPECCTRA_DB::makeIMAGE(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::processFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::processMatchingFootprints(), BOARD_NETLIST_UPDATER::replaceFootprint(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), setLibNickname(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), BOARD_NETLIST_UPDATER::testConnectivity(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), PCB_CONTROL::UpdateMessagePanel(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inline |
Definition at line 198 of file footprint.h.
References LIB_ID::Format(), and m_fpid.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC().
EDA_RECT 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.
Definition at line 713 of file footprint.cpp.
References dummy(), EDA_RECT::Merge(), pad, and EDA_ITEM::SetPosition().
|
inline |
Definition at line 691 of file footprint.h.
References m_initial_comments.
Referenced by PCB_PLUGIN::format().
|
inline |
Definition at line 204 of file footprint.h.
References m_keywords.
Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), FOOTPRINT_INFO_GENERATOR::GenerateHtml(), IsNetTie(), FOOTPRINT_INFO_IMPL::load(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and PCB_CONTROL::UpdateMessagePanel().
|
inline |
Definition at line 346 of file footprint.h.
References m_lastEditTime.
Referenced by PCB_PLUGIN::format().
|
inlinevirtualinherited |
Return the primary layer this item is on.
Reimplemented in ZONE.
Definition at line 143 of file board_item.h.
References BOARD_ITEM::m_layer.
Referenced by CN_LIST::Add(), BOARD_ADAPTER::addFootprintShapesWithClearance(), GRAPHICS_CLEANER::areEquivalent(), BOARD_CONNECTED_ITEM_DESC::BOARD_CONNECTED_ITEM_DESC(), BOARD_ITEM_DESC::BOARD_ITEM_DESC(), AR_AUTOPLACER::buildFpAreas(), TRACKS_CLEANER::cleanup(), CreateBoardSection(), MICROWAVE_TOOL::createMicrowaveInductor(), PCB_BASE_FRAME::CreateNewFootprint(), CreateRoutesSection(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), EDIT_TOOL::DragArcTrack(), KIGFX::PCB_PAINTER::draw(), PCB_EDIT_FRAME::ExchangeFootprint(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), extractDiffPairCoupledItems(), EDIT_TOOL::FilletTracks(), PCB_TARGET::Flip(), PCB_TEXT::Flip(), PCB_TRACK::Flip(), FP_SHAPE::Flip(), PCB_SHAPE::Flip(), FP_TEXT::Flip(), PCB_DIMENSION_BASE::Flip(), Flip(), PCB_ARC::Flip(), FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::FootprintSave(), FootprintWriteShape(), PCB_PLUGIN::format(), PCB_PLUGIN::formatLayer(), FP_TEXT::FP_TEXT(), DSN::SPECCTRA_DB::FromBOARD(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), GetBoundingBox(), ZONE::GetLayer(), getMatchingTextItem(), PCB_TRACK::GetMsgPanelInfo(), PCB_VIA::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), AR_AUTOPLACER::getOptimalFPPlacement(), BOARD::GetPad(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), idf_export_footprint(), GENERAL_COLLECTOR::Inspect(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), BOARD_INSPECTION_TOOL::InspectDRCError(), isEdge(), PAD::IsFlipped(), IsFlipped(), PNS_KICAD_IFACE::IsItemVisible(), BOARD_ITEM::IsOnCopperLayer(), FP_SHAPE::IsParentFlipped(), FP_TEXT::IsParentFlipped(), itemIsIncludedByFilter(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), CADSTAR_PCB_ARCHIVE_LOADER::makeTracksFromShapes(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAddField(), DIALOG_FOOTPRINT_PROPERTIES::OnAddField(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), PCB_SHAPE::cmp_drawings::operator()(), PCB_TRACK::cmp_tracks::operator()(), BOARD_ITEM::ptr_cmp::operator()(), FOOTPRINT::cmp_drawings::operator()(), BOARD::cmp_items::operator()(), BOARD::cmp_drawings::operator()(), EAGLE_PLUGIN::packagePad(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotFootprintGraphicItem(), BRDITEMS_PLOTTER::PlotFootprintGraphicItems(), BRDITEMS_PLOTTER::PlotFootprintTextItem(), BRDITEMS_PLOTTER::PlotFootprintTextItems(), BRDITEMS_PLOTTER::PlotPcbShape(), BRDITEMS_PLOTTER::PlotPcbTarget(), BRDITEMS_PLOTTER::PlotPcbText(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), processTextItem(), PAD_TOOL::recombinePad(), DRC_TEST_PROVIDER_TEXT_DIMS::Run(), CLIPBOARD_IO::SaveSelection(), CONVERT_TOOL::SegmentToArc(), PCB_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::selectConnectedTracks(), GLOBAL_EDIT_TOOL::swapBoardItem(), PNS_KICAD_IFACE_BASE::syncArc(), PNS_KICAD_IFACE_BASE::syncGraphicalItem(), PNS_KICAD_IFACE_BASE::syncTrack(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), AR_AUTOPLACER::testFootprintOnBoard(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), TRACK_VIA_DESC::TRACK_VIA_DESC(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_DIMENSION_PROPERTIES::TransferDataToWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataToWindow(), BOARD_ADAPTER::transformFPShapesToPolygon(), TransformFPShapesWithClearanceToPolygon(), PCB_TRACK::ViewGetLayers(), FP_TEXT::ViewGetLayers(), FP_TEXT::ViewGetLOD(), FP_ZONE::ViewGetLOD(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inherited |
Return the name of the PCB layer on which the item resides.
Definition at line 75 of file board_item.cpp.
References BOARD_ITEM::GetBoard(), BOARD::GetLayerName(), BOARD::GetStandardLayerName(), and BOARD_ITEM::m_layer.
Referenced by PCB_TEXT::GetMsgPanelInfo(), PCB_TARGET::GetMsgPanelInfo(), PCB_SHAPE::GetMsgPanelInfo(), FP_TEXT::GetMsgPanelInfo(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_DIM_LEADER::GetMsgPanelInfo(), PCB_SHAPE::GetSelectMenuText(), PCB_TEXT::GetSelectMenuText(), FP_SHAPE::GetSelectMenuText(), PCB_TRACK::GetSelectMenuText(), PCB_DIMENSION_BASE::GetSelectMenuText(), PCB_TEXT::GetShownText(), and ResolveTextVar().
|
inlinevirtualinherited |
Return a std::bitset of all layers on which the item physically resides.
Reimplemented in PAD, PCB_VIA, ZONE, and PCB_GROUP.
Definition at line 148 of file board_item.h.
References BOARD_ITEM::m_layer.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), APPEARANCE_CONTROLS::doApplyLayerPreset(), DRAWING_TOOL::DrawVia(), DRC_ENGINE::EvalRules(), existsOnLayer(), extractDiffPairCoupledItems(), hash_board_item(), BOARD_INSPECTION_TOOL::InspectClearance(), isMaskAperture(), BOARD_ITEM::layerMaskDescribe(), FABMASTER::loadZone(), PCB_GRID_HELPER::nearestAnchor(), PCB_POINT_EDITOR::OnSelectionChange(), DIALOG_FOOTPRINT_CHECKER::OnSelectItem(), CN_VISITOR::operator()(), EDIT_TOOL::Properties(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), and PANEL_SETUP_LAYERS::TransferDataFromWindow().
int FOOTPRINT::GetLikelyAttribute | ( | ) | const |
Returns the most likely attribute based on pads Either FP_THROUGH_HOLE/FP_SMD/OTHER(0)
Definition at line 653 of file footprint.cpp.
References BGA, CASTELLATED, FIDUCIAL_GLBL, FIDUCIAL_LOCAL, FP_SMD, FP_THROUGH_HOLE, HEATSINK, m_pads, NONE, pad, PTH, SMD, and TESTPOINT.
Referenced by CheckFootprintAttributes().
|
inline |
Definition at line 578 of file footprint.h.
References m_link.
Referenced by footprintIsFromBoard(), FOOTPRINT_EDIT_FRAME::IsCurrentFPFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), and FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard().
|
inline |
Definition at line 213 of file footprint.h.
References m_localClearance.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), PAD::GetLocalClearanceOverrides(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 216 of file footprint.h.
References _, Format(), GetReference(), and m_localClearance.
|
inline |
Definition at line 210 of file footprint.h.
References m_localSolderMaskMargin.
Referenced by PCB_PLUGIN::format(), PAD::GetSolderMaskMargin(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 224 of file footprint.h.
References m_localSolderPasteMargin.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), PAD::GetSolderPasteMargin(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 227 of file footprint.h.
References m_localSolderPasteMarginRatio.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), PAD::GetSolderPasteMargin(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
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.
Reimplemented from EDA_ITEM.
Definition at line 1287 of file footprint.cpp.
References module.
|
overridevirtual |
Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
aList | is the list to populate. |
Reimplemented from EDA_ITEM.
Definition at line 926 of file footprint.cpp.
References _, Format(), FP_BOARD_ONLY, FP_EXCLUDE_FROM_BOM, FP_EXCLUDE_FROM_POS_FILES, FP_is_PLACED, FRAME_FOOTPRINT_EDITOR, FRAME_FOOTPRINT_VIEWER, FRAME_FOOTPRINT_VIEWER_MODAL, FRAME_PCB_EDITOR, GetOrientationDegrees(), FP_TEXT::GetShownText(), LIB_ID::GetUniStringLibId(), IsFlipped(), IsLocked(), EDA_BASE_FRAME::IsType(), m_3D_Drawings, m_attributes, m_doc, m_fpid, m_fpStatus, m_keywords, m_lastEditTime, m_reference, m_value, and PCB_EDIT_FRAME_NAME.
Referenced by DISPLAY_FOOTPRINTS_FRAME::UpdateMsgPanel().
wxString FOOTPRINT::GetNextPadNumber | ( | const wxString & | aLastPadName | ) | const |
Return the next available pad number in the footprint.
aFillSequenceGaps | true if the numbering should "fill in" gaps in the sequence, else return the highest value + 1 |
Definition at line 1823 of file footprint.cpp.
References Format(), UTIL::GetRefDesPrefix(), GetTrailingInt(), m_pads, and pad.
Referenced by EDIT_TOOL::Duplicate().
|
inline |
Definition at line 191 of file footprint.h.
References m_orient.
Referenced by CADSTAR_PCB_ARCHIVE_LOADER::addAttribute(), PCAD2KICAD::PCB_PAD::AddToFootprint(), AR_AUTOPLACER::AutoplaceFootprints(), ConvertOutlineToPolygon(), doPushPadProperties(), PCB_EDIT_FRAME::ExchangeFootprint(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), PCB_PLUGIN::format(), FP_TEXT::GetDrawRotation(), PCB_SHAPE::getParentOrientation(), hash_fp_item(), idf_export_footprint(), PAD::ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), LEGACY_PLUGIN::loadPAD(), DSN::SPECCTRA_DB::makeIMAGE(), MoveAnchorPosition(), EAGLE_PLUGIN::orientFPText(), ALTIUM_PCB::ParseComponentsBodies6Data(), ALTIUM_PCB::ParseTexts6Data(), pasteFootprintItemsToFootprintEditor(), BRDITEMS_PLOTTER::PlotFootprintGraphicItem(), RENDER_3D_OPENGL::renderFootprint(), Rotate(), AR_AUTOPLACER::rotateFootprint(), FP_SHAPE::SetDrawCoord(), FP_TEXT::SetDrawCoord(), PAD::SetDrawCoord(), FP_SHAPE::SetLocalCoord(), FP_TEXT::SetLocalCoord(), PAD::SetLocalCoord(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), EAGLE_PLUGIN::transferPad(), and FP_TEXT::TransformShapeWithClearanceToPolygon().
|
inline |
Definition at line 192 of file footprint.h.
References m_orient.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), DSN::SPECCTRA_DB::FromBOARD(), GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), DIALOG_PAD_PROPERTIES::initValues(), and DSN::SPECCTRA_DB::makeIMAGE().
|
inline |
Definition at line 193 of file footprint.h.
References m_orient.
Referenced by KIGFX::PCB_PAINTER::draw(), ALTIUM_PCB::HelperShapeSetLocalCoord(), and ROUTER_TOOL::InlineDrag().
PAD * FOOTPRINT::GetPad | ( | const wxPoint & | aPosition, |
LSET | aLayerMask = LSET::AllLayersMask() |
||
) |
Get a pad at aPosition on aLayerMask in the footprint.
aPosition | A wxPoint object containing the position to hit test. |
aLayerMask | A layer or layers to mask the hit test. |
Definition at line 1095 of file footprint.cpp.
unsigned FOOTPRINT::GetPadCount | ( | INCLUDE_NPTH_T | aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH) | ) | const |
Return the number of pads.
aIncludeNPTH | includes non-plated through holes when true. Does not include non-plated through holes when false. |
Definition at line 1130 of file footprint.cpp.
References m_pads, NPTH, and pad.
Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), AR_AUTOPLACER::genModuleOnRoutingMatrix(), FOOTPRINT_INFO_IMPL::load(), sortFootprintsByComplexity(), AR_AUTOPLACER::testFootprintOnBoard(), and PCB_CONTROL::UpdateMessagePanel().
|
inlineinherited |
Definition at line 136 of file board_item.h.
References EDA_ITEM::m_parent.
Referenced by PCB_POINT_EDITOR::addCorner(), ALIGN_DISTRIBUTE_TOOL::AlignBottom(), ALIGN_DISTRIBUTE_TOOL::AlignCenterX(), ALIGN_DISTRIBUTE_TOOL::AlignCenterY(), ALIGN_DISTRIBUTE_TOOL::AlignTop(), PNS_KICAD_IFACE::Commit(), EDIT_TOOL::copyToClipboard(), CoverageRatio(), BOARD_ITEM::DeleteStructure(), 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(), EDIT_TOOL::Duplicate(), PCB_SELECTION_TOOL::FilterCollectorForFreePads(), PCB_SELECTION_TOOL::FilterCollectorForHierarchy(), PCB_PLUGIN::format(), FormatProbeItem(), BOARD_ITEM::GetBoard(), PCB_MARKER::GetColorLayer(), BOARD_ITEM::GetParentFootprint(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), FP_TEXT::GetSelectMenuText(), PCB_TEXT::GetShownText(), FP_TEXT::GetShownText(), getTopLevelGroup(), GENERAL_COLLECTOR::Inspect(), ARRAY_CREATOR::Invoke(), isInsideArea(), DRC_ENGINE::IsNetTie(), FP_SHAPE::IsParentFlipped(), FP_TEXT::IsParentFlipped(), PCB_SELECTION_TOOL::itemPassesFilter(), LEGACY_PLUGIN::loadMODULE_TEXT(), memberOf(), EDIT_TOOL::MoveExact(), ALTIUM_PCB::ParseTexts6Data(), BRDITEMS_PLOTTER::PlotFootprintGraphicItem(), BRDITEMS_PLOTTER::PlotFootprintTextItem(), POSITION_RELATIVE_TOOL::PositionRelative(), BOARD_COMMIT::Push(), DRC_TEST_PROVIDER_SILK_CLEARANCE::Run(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), CLIPBOARD_IO::SaveSelection(), PCB_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::Selectable(), SwapItemData(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), PCB_MARKER::ViewGetLayers(), FP_ZONE::ViewGetLOD(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inherited |
Definition at line 191 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(), PNS::ITEM::collideSimple(), CONVERT_TOOL::CreatePolys(), and DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems().
|
inlineinherited |
Definition at line 60 of file board_item.h.
References BOARD_ITEM::m_group.
Referenced by PCB_GROUP::AddItem(), BOARD_ITEM::Duplicate(), PCB_EDIT_FRAME::ExchangeFootprint(), getTopLevelGroup(), BOARD_ITEM::IsLocked(), memberOf(), PCB_CONTROL::placeBoardItems(), BOARD_COMMIT::Push(), EDIT_TOOL::Remove(), Remove(), BOARD::Remove(), GROUP_TOOL::RemoveFromGroup(), DIALOG_GROUP_PROPERTIES::TransferDataFromWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inline |
Definition at line 207 of file footprint.h.
References m_path.
Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), BOARD_EDITOR_CONTROL::ExportNetlist(), PCB_PLUGIN::format(), PCB_SELECTION_TOOL::selectAllItemsOnSheet(), PCB_SELECTION_TOOL::selectSameSheet(), sortFootprintsbySheetPath(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().
|
inline |
Definition at line 581 of file footprint.h.
References m_rot180Cost.
Referenced by AR_AUTOPLACER::AutoplaceFootprints(), PCB_PLUGIN::format(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 584 of file footprint.h.
References m_rot90Cost.
Referenced by AR_AUTOPLACER::AutoplaceFootprints(), PCB_PLUGIN::format(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inline |
Used in DRC to test the courtyard area (a complex polygon).
Definition at line 698 of file footprint.h.
References IsBackLayer(), m_poly_courtyard_back, and m_poly_courtyard_front.
Referenced by AR_AUTOPLACER::buildFpAreas(), calcIsInsideArea(), calcIsInsideCourtyard(), DRC_ENGINE::EvalRules(), BOARD_INSPECTION_TOOL::InspectClearance(), and DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances().
|
inlineoverridevirtual |
Reimplemented from EDA_ITEM.
Definition at line 187 of file footprint.h.
References m_pos.
Referenced by CADSTAR_PCB_ARCHIVE_LOADER::addAttribute(), PCB_BASE_FRAME::AddFootprintToBoard(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCAD2KICAD::PCB_PAD::AddToFootprint(), PNS_KICAD_IFACE::Commit(), PCB_GRID_HELPER::computeAnchors(), ConvertOutlineToPolygon(), MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), KIGFX::PCB_PAINTER::draw(), PCB_EDIT_FRAME::ExchangeFootprint(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), PCB_PLUGIN::FootprintSave(), PCB_PLUGIN::format(), FP_TEXT::FP_TEXT(), DSN::SPECCTRA_DB::FromBOARD(), GetBoundingHull(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), AR_AUTOPLACER::getOptimalFPPlacement(), PCB_SHAPE::getParentPosition(), hash_fp_item(), ALTIUM_PCB::HelperShapeSetLocalCoord(), idf_export_footprint(), ROUTER_TOOL::InlineDrag(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), FABMASTER::loadFootprints(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), LEGACY_PLUGIN::loadPAD(), DSN::SPECCTRA_DB::makeIMAGE(), moveFootprintsInArea(), EAGLE_PLUGIN::orientFootprintAndText(), EAGLE_PLUGIN::packageHole(), EAGLE_PLUGIN::packageText(), PAD::PAD(), ALTIUM_PCB::ParseComponentsBodies6Data(), BOARD_EDITOR_CONTROL::PlaceFootprint(), BRDITEMS_PLOTTER::PlotFootprintGraphicItem(), BOARD_REANNOTATE_TOOL::ReannotateDuplicates(), RENDER_3D_OPENGL::renderFootprint(), CLIPBOARD_IO::SaveSelection(), DRAWING_TOOL::SetAnchor(), FP_SHAPE::SetDrawCoord(), FP_TEXT::SetDrawCoord(), PAD::SetDrawCoord(), FP_SHAPE::SetLocalCoord(), FP_TEXT::SetLocalCoord(), PAD::SetLocalCoord(), SetOrientation(), DRC_TEST_PROVIDER_LVS::testFootprints(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), and EAGLE_PLUGIN::transferPad().
|
inline |
Definition at line 509 of file footprint.h.
References m_properties.
Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), PCB_PLUGIN::format(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().
|
inline |
|
inline |
Definition at line 466 of file footprint.h.
References EDA_TEXT::GetText(), and m_reference.
Referenced by FOOTPRINT_EDIT_FRAME::AddFootprintToBoard(), AR_AUTOPLACER::AutoplaceFootprints(), FOOTPRINT_EDIT_FRAME::CanCloseFPFromBoard(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), CollisionMatchesExpected(), DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange(), PCB_BASE_FRAME::CreateNewFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), BOARD_EDITOR_CONTROL::ExportNetlist(), FOOTPRINT_DESC::FOOTPRINT_DESC(), FormatProbeItem(), DSN::SPECCTRA_DB::FromBOARD(), PLACE_FILE_EXPORTER::GenReportData(), GetLocalClearance(), FP_SHAPE::GetMsgPanelInfo(), FP_TEXT::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), DIALOG_BOARD_REANNOTATE::GetNewRefDes(), CADSTAR_PCB_ARCHIVE_LOADER::getPadReference(), GetSelectMenuText(), getShapeName(), IncrementReference(), GENERAL_COLLECTOR::Inspect(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), EAGLE_PLUGIN::loadElements(), CADSTAR_PCB_ARCHIVE_LOADER::loadNets(), EDA_3D_CANVAS::OnMouseMove(), ALTIUM_PCB::ParsePads6Data(), BRDITEMS_PLOTTER::PlotFootprintGraphicItem(), BRDITEMS_PLOTTER::PlotFootprintTextItem(), BRDITEMS_PLOTTER::PlotPad(), DIALOG_EXCHANGE_FOOTPRINTS::processFootprint(), BOARD_REANNOTATE_TOOL::ReannotateDuplicates(), BOARD_NETLIST_UPDATER::replaceFootprint(), CLIPBOARD_IO::SaveSelection(), DRC_TEST_PROVIDER_LVS::testFootprints(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), BOARD_NETLIST_UPDATER::updateComponentPadConnections(), BOARD_NETLIST_UPDATER::updateFootprintParameters(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
overridevirtual |
Return the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position.
The default version of this function raises an assertion in the debug mode and returns a string to indicate that it was not overridden to provide the object specific text.
Reimplemented from EDA_ITEM.
Definition at line 1276 of file footprint.cpp.
References _, Format(), and GetReference().
|
inlineinherited |
Definition at line 136 of file eda_item.h.
References EDA_ITEM::m_status.
Referenced by BOARD_ITEM::IsLocked().
|
inlineinherited |
|
inline |
Definition at line 237 of file footprint.h.
References m_thermalGap.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), and PAD::GetEffectiveThermalGap().
|
inline |
Definition at line 234 of file footprint.h.
References m_thermalWidth.
Referenced by FOOTPRINT_DESC::FOOTPRINT_DESC(), PCB_PLUGIN::format(), and PAD::GetEffectiveThermalSpokeWidth().
PAD * FOOTPRINT::GetTopLeftPad | ( | ) |
wxString FOOTPRINT::GetTypeName | ( | ) | const |
Get the type of footprint.
Definition at line 701 of file footprint.cpp.
References _, FP_SMD, FP_THROUGH_HOLE, and m_attributes.
Referenced by CheckFootprintAttributes().
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.
aIncludeNPTH | includes non-plated through holes when true. Does not include non-plated through holes when false. |
Definition at line 1149 of file footprint.cpp.
References LSET::AllCuMask(), m_pads, NPTH, and pad.
Referenced by BASIC_FOOTPRINT_INFO::BASIC_FOOTPRINT_INFO(), and FOOTPRINT_INFO_IMPL::load().
|
inline |
Definition at line 488 of file footprint.h.
References EDA_TEXT::GetText(), and m_value.
Referenced by CreateDevicesSection(), PCB_BASE_FRAME::CreateNewFootprint(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), PCB_EDIT_FRAME::ExchangeFootprint(), BOARD_EDITOR_CONTROL::ExportNetlist(), FOOTPRINT_DESC::FOOTPRINT_DESC(), DSN::SPECCTRA_DB::FromBOARD(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), EAGLE_PLUGIN::loadElements(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), CLIPBOARD_IO::SaveSelection(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and BOARD_NETLIST_UPDATER::updateFootprintParameters().
|
inlineinherited |
Definition at line 64 of file board_item.h.
References EDA_ITEM::GetPosition().
Referenced by BOARD_ITEM_DESC::BOARD_ITEM_DESC(), ALIGN_DISTRIBUTE_TOOL::DistributeHorizontally(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsHorizontally(), BOARD_ITEM::SetY(), and TRACK_VIA_DESC::TRACK_VIA_DESC().
|
inlineinherited |
Definition at line 70 of file board_item.h.
References EDA_ITEM::GetPosition().
Referenced by BOARD_ITEM_DESC::BOARD_ITEM_DESC(), ALIGN_DISTRIBUTE_TOOL::DistributeVertically(), ALIGN_DISTRIBUTE_TOOL::doDistributeGapsVertically(), BOARD_ITEM::SetX(), and TRACK_VIA_DESC::TRACK_VIA_DESC().
|
inline |
Definition at line 231 of file footprint.h.
References m_zoneConnection.
Referenced by PCB_PLUGIN::format(), PAD::GetEffectiveZoneConnection(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inlinevirtualinherited |
Fetch the zone settings for this container.
Reimplemented in BOARD.
Definition at line 83 of file board_item_container.h.
References BOARD_ITEM_CONTAINER::m_zoneSettings.
Referenced by ZONE::ZONE().
|
inline |
Definition at line 172 of file footprint.h.
References m_drawings.
Referenced by BOARD_ADAPTER::addFootprintShapesWithClearance(), BuildPolyCourtyards(), PCB_BASE_FRAME::CreateNewFootprint(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), PCB_EDIT_FRAME::ExchangeFootprint(), FOOTPRINT(), FootprintWriteShape(), PCB_PLUGIN::format(), FOOTPRINT_EDIT_FRAME::GetDocumentExtents(), GetEffectiveShape(), getMatchingTextItem(), hash_fp_item(), hashFootprint(), ROUTER_TOOL::InlineDrag(), MoveAnchorPosition(), operator=(), pasteFootprintItemsToFootprintEditor(), BRDITEMS_PLOTTER::PlotFootprintGraphicItems(), BRDITEMS_PLOTTER::PlotFootprintTextItems(), BOARD_EDITOR_CONTROL::RepairBoard(), FOOTPRINT_EDITOR_CONTROL::RepairFootprint(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), PCB_SELECTION_TOOL::Selectable(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), BOARD_ADAPTER::transformFPShapesToPolygon(), and TransformFPShapesWithClearanceToPolygon().
|
inline |
|
inline |
Definition at line 178 of file footprint.h.
References m_fp_groups.
Referenced by FOOTPRINT(), PCB_PLUGIN::format(), operator=(), pasteFootprintItemsToFootprintEditor(), BOARD_EDITOR_CONTROL::RepairBoard(), and FOOTPRINT_EDITOR_CONTROL::RepairFootprint().
|
inline |
|
inlineinherited |
Definition at line 155 of file eda_item.h.
References EDA_ITEM::m_flags.
Referenced by TRACKS_CLEANER::cleanup(), GRAPHICS_CLEANER::cleanupShapes(), SCH_EDIT_TOOL::DoDelete(), KIGFX::SCH_PAINTER::draw(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_MOVE_TOOL::moveItem(), SYMBOL_EDITOR_PIN_TOOL::PlacePin(), SCH_EDIT_TOOL::Rotate(), and EE_TOOL_BASE< SCH_BASE_FRAME >::saveCopyInUndoList().
|
inline |
bool FOOTPRINT::HasThroughHolePads | ( | ) | const |
Definition at line 2159 of file footprint.cpp.
|
overridevirtual |
Test if aPosition is inside or on the boundary of this item.
aPosition | A reference to a wxPoint object containing the coordinates to test. |
aAccuracy | Increase the item bounding box by this amount. |
Reimplemented from EDA_ITEM.
Definition at line 1016 of file footprint.cpp.
References EDA_RECT::Contains(), GetBoundingBox(), and EDA_RECT::Inflate().
Referenced by GENERAL_COLLECTOR::Inspect().
|
overridevirtual |
Test if aRect intersects this item.
aRect | A reference to a EDA_RECT object containing the rectangle to test. |
aContained | Set to true to test for containment instead of an intersection. |
aAccuracy | Increase aRect by this amount. |
Reimplemented from EDA_ITEM.
Definition at line 1029 of file footprint.cpp.
References EDA_RECT::Contains(), GetBoundingBox(), EDA_RECT::Inflate(), EDA_RECT::Intersects(), m_drawings, m_fp_zones, m_pads, pad, and PCB_FP_TEXT_T.
bool FOOTPRINT::HitTestAccurate | ( | const wxPoint & | 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.
aPosition | is the point to test |
Definition at line 1023 of file footprint.cpp.
References SHAPE_POLY_SET::Collide(), and GetBoundingHull().
Referenced by GENERAL_COLLECTOR::Inspect().
|
inline |
void FOOTPRINT::IncrementReference | ( | int | aDelta | ) |
Bump the current reference by aDelta.
Definition at line 1843 of file footprint.cpp.
References Format(), UTIL::GetRefDesPrefix(), GetReference(), GetTrailingInt(), and SetReference().
|
inlineinherited |
Definition at line 125 of file eda_item.h.
References BRIGHTENED, and EDA_ITEM::m_flags.
Referenced by GERBVIEW_SELECTION_TOOL::disambiguationMenu(), KIGFX::SCH_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::DS_RENDER_SETTINGS::GetColor(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), KIGFX::SCH_PAINTER::getRenderColor(), SCH_EDITOR_CONTROL::UpdateFind(), and SCH_EDITOR_CONTROL::UpdateNetHighlighting().
|
inlinevirtualinherited |
Returns information if the object is derived from BOARD_CONNECTED_ITEM.
Reimplemented in ZONE, and BOARD_CONNECTED_ITEM.
Definition at line 103 of file board_item.h.
Referenced by PNS_PCBNEW_RULE_RESOLVER::DpNetPair(), DRC_ENGINE::EvalRules(), PNS::NODE::FindItemByParent(), BOARD_INSPECTION_TOOL::getItemDescription(), PCB_EXPR_NETCLASS_REF::GetValue(), PCB_EXPR_NETNAME_REF::GetValue(), inDiffPair(), BOARD_INSPECTION_TOOL::InspectClearance(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), CONNECTIVITY_DATA::MarkItemNetAsDirty(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZones(), and DRC_TEST_PROVIDER_SOLDER_MASK::testMaskItemAgainstZones().
|
inlineinherited |
Definition at line 120 of file eda_item.h.
References IS_DRAGGING, and EDA_ITEM::m_flags.
Referenced by DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES().
|
inlineinherited |
Definition at line 123 of file eda_item.h.
References ENTERED, and EDA_ITEM::m_flags.
Referenced by KIGFX::PCB_PAINTER::draw().
|
inline |
Definition at line 281 of file footprint.h.
References B_Cu, and BOARD_ITEM::GetLayer().
Referenced by PCB_BASE_FRAME::AddFootprintToBoard(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), GetMsgPanelInfo(), DIALOG_PAD_PROPERTIES::initValues(), ALTIUM_PCB::ParseComponentsBodies6Data(), BOARD_EDITOR_CONTROL::PlaceFootprint(), RENDER_3D_OPENGL::renderFootprint(), and DIALOG_TEXT_PROPERTIES::TransferDataToWindow().
|
inlineinherited |
Definition at line 205 of file eda_item.h.
References EDA_ITEM::m_forceVisible.
Referenced by KIGFX::SCH_PAINTER::draw(), and SCH_FIELD::Print().
|
static |
Test for validity of a name of a footprint to be used in a footprint library ( no spaces, dir separators ...
).
aName | is the name in library to validate. |
Definition at line 1433 of file footprint.cpp.
References StringLibNameInvalidChars().
Referenced by DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::checkFootprintName().
|
inlineoverridevirtual |
Reimplemented from BOARD_ITEM.
Definition at line 297 of file footprint.h.
References FP_is_LOCKED, and m_fpStatus.
Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), PCB_PLUGIN::format(), GetMsgPanelInfo(), itemIsIncludedByFilter(), and DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow().
|
inlineinherited |
Definition at line 117 of file eda_item.h.
References IS_CHANGED, and EDA_ITEM::m_flags.
Referenced by PCB_EDIT_FRAME::OpenProjectFiles().
|
inlineinherited |
Definition at line 119 of file eda_item.h.
References IS_MOVING, and EDA_ITEM::m_flags.
Referenced by SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_EDIT_TOOL::AutoplaceFields(), LIB_SHAPE::CalcArcAngles(), LIB_PIN::CalcEdit(), KIGFX::SCH_PAINTER::draw(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), SCH_EDIT_TOOL::Mirror(), PCB_BASE_FRAME::PlaceFootprint(), SYMBOL_EDITOR_EDIT_TOOL::Rotate(), and SCH_EDIT_TOOL::Rotate().
|
inline |
Definition at line 247 of file footprint.h.
References GetKeywords().
Referenced by DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem().
|
inlineinherited |
Definition at line 118 of file eda_item.h.
References IS_NEW, and EDA_ITEM::m_flags.
Referenced by SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_EDIT_TOOL::ConvertDeMorgan(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), EDIT_TOOL::DragArcTrack(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), SYMBOL_EDITOR_PIN_TOOL::EditPinProperties(), SYMBOL_EDITOR_DRAWING_TOOLS::Init(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingLineWireOrBus(), EE_POINT_EDITOR::Main(), PL_POINT_EDITOR::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), SCH_MOVE_TOOL::Main(), EDIT_TOOL::MoveExact(), PCB_BASE_FRAME::PlaceFootprint(), SYMBOL_EDITOR_PIN_TOOL::PlacePin(), SCH_EDIT_FRAME::SaveSymbolToSchematic(), DIALOG_SHEET_PIN_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_AND_LABEL_PROPERTIES::TransferDataFromWindow(), and DIALOG_SHEET_PROPERTIES::TransferDataFromWindow().
|
inlinevirtualinherited |
Reimplemented in PAD, PCB_TRACK, and ZONE.
Definition at line 111 of file board_item.h.
References BOARD_ITEM::GetLayer(), and IsCopperLayer().
Referenced by CN_CONNECTIVITY_ALGO::Add(), DRC_ENGINE::EvalRules(), and BOARD_CONNECTED_ITEM::SetNetCode().
|
overridevirtual |
A special IsOnLayer for footprints: return true if the footprint contains only items on the given layer, even if that layer is not one of the valid footprint layers F_Cu and B_Cu.
This allows selection of "graphic" footprints that contain only silkscreen, for example.
Reimplemented from BOARD_ITEM.
Definition at line 993 of file footprint.cpp.
References m_drawings, m_fp_zones, BOARD_ITEM::m_layer, and m_pads.
|
inline |
Definition at line 315 of file footprint.h.
References FP_is_PLACED, and m_fpStatus.
Referenced by PCB_PLUGIN::format().
|
inlinevirtualinherited |
Override this method in any derived object that supports test find and replace.
Reimplemented in SCH_SYMBOL, SCH_SHEET, SCH_LABEL, SCH_TEXT, SCH_FIELD, and SCH_SHEET_PIN.
Definition at line 402 of file eda_item.h.
Referenced by EDA_ITEM::Matches().
|
inlineinherited |
|
inlineinherited |
Definition at line 122 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_FRAME::ConvertPart(), 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(), KIGFX::SCH_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), KIGFX::PCB_PAINTER::draw(), DS_PROXY_UNDO_ITEM::DS_PROXY_UNDO_ITEM(), KIGFX::DS_RENDER_SETTINGS::GetColor(), KIGFX::GERBVIEW_RENDER_SETTINGS::GetColor(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), SCH_MOVE_TOOL::getConnectedDragItems(), KIGFX::SCH_PAINTER::getLineWidth(), KIGFX::SCH_PAINTER::getRenderColor(), KIGFX::SCH_PAINTER::getTextThickness(), DIALOG_EXCHANGE_FOOTPRINTS::isMatch(), DIALOG_CHANGE_SYMBOLS::isMatch(), SCH_LINE::MergeOverlap(), SCH_EDIT_TOOL::Mirror(), EDIT_TOOL::MoveExact(), SCH_MOVE_TOOL::moveItem(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), BOARD_COMMIT::Push(), PCB_SELECTION_TOOL::RebuildSelection(), EE_SELECTION_TOOL::RebuildSelection(), RENDER_3D_OPENGL::renderFootprint(), SCH_EDIT_TOOL::Rotate(), EE_TOOL_BASE< SCH_BASE_FRAME >::saveCopyInUndoList(), SCH_EDIT_FRAME::SchematicCleanUp(), GERBVIEW_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::selectionContains(), PCB_SELECTION_TOOL::selectMultiple(), GERBVIEW_SELECTION_TOOL::selectPoint(), KIGFX::SCH_PAINTER::setDeviceColors(), GERBVIEW_SELECTION_TOOL::unselect(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inlineinherited |
Test to see if this object is a track or via (or microvia).
Definition at line 205 of file board_item.h.
References PCB_TRACE_T, PCB_VIA_T, and EDA_ITEM::Type().
|
inlinevirtualinherited |
Check whether the item is one of the listed types.
aScanTypes | List of item types |
Reimplemented in PCB_VIA, SCH_LABEL, PCB_DIMENSION_BASE, PAD, SCH_FIELD, FP_TEXT, SCH_LINE, PCB_SHAPE, FP_SHAPE, and PCB_TEXT.
Definition at line 182 of file eda_item.h.
References EOT, EDA_ITEM::m_structType, and SCH_LOCATE_ANY_T.
Referenced by SCH_EDIT_TOOL::AutoplaceFields(), ROUTER_TOOL::CanInlineDrag(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingBus(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingLine(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingWire(), PCB_TEXT::IsType(), FP_SHAPE::IsType(), PCB_SHAPE::IsType(), SCH_LINE::IsType(), FP_TEXT::IsType(), SCH_FIELD::IsType(), PAD::IsType(), PCB_DIMENSION_BASE::IsType(), SCH_LABEL::IsType(), PCB_VIA::IsType(), EE_POINT_EDITOR::Main(), PL_POINT_EDITOR::Main(), EE_SELECTION_TOOL::RequestSelection(), SCH_BASE_FRAME::UpdateItem(), EDA_ITEM::Visit(), and DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem().
|
inlineinherited |
Definition at line 121 of file eda_item.h.
References IS_WIRE_IMAGE, and EDA_ITEM::m_flags.
|
inlinestaticinherited |
This changes first parameter to avoid the DList and use the main queue instead.
Definition at line 294 of file eda_item.h.
References CONTINUE, QUIT, and EDA_ITEM::Visit().
Referenced by GERBER_FILE_IMAGE::Visit().
|
inlinestaticinherited |
Change first parameter to avoid the DList and use std::vector instead.
Definition at line 313 of file eda_item.h.
References CONTINUE, QUIT, and EDA_ITEM::Visit().
|
protectedvirtualinherited |
Return a string (to be shown to the user) describing a layer mask.
The BOARD is needed because layer names are customizable.
Reimplemented in PCB_VIA.
Definition at line 87 of file board_item.cpp.
References _, LSET::AllCuMask(), LSET::AllTechMask(), B_Cu, F_Cu, BOARD_ITEM::GetBoard(), BOARD::GetEnabledLayers(), BOARD::GetLayerName(), BOARD_ITEM::GetLayerSet(), PCB_LAYER_ID_COUNT, and PCBNEW_LAYER_ID_START.
Referenced by PCB_TRACK::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), and PAD::GetSelectMenuText().
|
inline |
|
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.
aSearchData | A reference to a wxFindReplaceData object containing the search criteria. |
aAuxData | A pointer to optional data required for the search or NULL if not used. |
Reimplemented in SCH_SYMBOL, SCH_SHEET, SCH_TEXT, SCH_FIELD, SCH_SHEET_PIN, ZONE, SCH_PIN, PCB_MARKER, SCH_MARKER, FP_TEXT, and PCB_TEXT.
Definition at line 364 of file eda_item.h.
Referenced by SCH_EDITOR_CONTROL::HasMatch(), PCB_TEXT::Matches(), FP_TEXT::Matches(), SCH_MARKER::Matches(), PCB_MARKER::Matches(), SCH_PIN::Matches(), ZONE::Matches(), SCH_SHEET_PIN::Matches(), SCH_FIELD::Matches(), SCH_TEXT::Matches(), SCH_EDITOR_CONTROL::ReplaceAndFindNext(), and SCH_EDITOR_CONTROL::UpdateFind().
|
protectedinherited |
Compare aText against search criteria in aSearchData.
This is a helper function for simplify derived class logic.
aText | A reference to a wxString object containing the string to test. |
aSearchData | The criteria to search against. |
Definition at line 118 of file eda_item.cpp.
References FR_MATCH_WILDCARD, FR_SEARCH_REPLACE, EDA_ITEM::IsReplaceable(), next(), and text.
|
inline |
Definition at line 183 of file footprint.h.
References m_3D_Drawings.
Referenced by PCB_EDIT_FRAME::ExchangeFootprint(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), PCB_PLUGIN::format(), idf_export_footprint(), LEGACY_PLUGIN::load3D(), MoveAnchorPosition(), ALTIUM_PCB::ParseComponentsBodies6Data(), PANEL_FP_PROPERTIES_3D_MODEL::ReloadModelsFromFootprint(), RENDER_3D_OPENGL::renderFootprint(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataFromWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataFromWindow(), and PANEL_PREVIEW_3D_MODEL::UpdateDummyFootprint().
|
inline |
|
inlineinherited |
Definition at line 238 of file board_item.h.
References BOARD_ITEM::Move(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
overridevirtual |
Move this object.
aMoveVector | the move vector for this object. |
Reimplemented from BOARD_ITEM.
Definition at line 1459 of file footprint.cpp.
References m_pos, and SetPosition().
Referenced by moveFootprintsInArea().
void FOOTPRINT::MoveAnchorPosition | ( | const wxPoint & | aMoveVector | ) |
Move the reference point of the footprint.
It looks like a move footprint: the footprints elements (pads, outlines, edges .. ) are moved However:
Definition at line 1608 of file footprint.cpp.
References GetOrientation(), FP_TEXT::GetPos0(), GraphicalItems(), m_cachedBoundingBox, m_cachedHull, m_cachedTextExcludedBBox, m_cachedVisibleBBox, m_pads, m_reference, m_value, Models(), EDA_RECT::Move(), FP_SHAPE::Move(), SHAPE_POLY_SET::Move(), pad, PCB_FP_SHAPE_T, PCB_FP_TEXT_T, RotatePoint(), FP_TEXT::SetDrawCoord(), FP_TEXT::SetPos0(), text, and Zones().
Referenced by CLIPBOARD_IO::SaveSelection(), and DRAWING_TOOL::SetAnchor().
|
inline |
Definition at line 324 of file footprint.h.
References FP_to_PLACE, and m_fpStatus.
Referenced by AR_AUTOPLACER::pickFootprint().
|
inherited |
Test if another item is less than this object.
aItem | - Item to compare against. |
Definition at line 234 of file eda_item.cpp.
References Format(), and EDA_ITEM::GetClass().
Definition at line 365 of file footprint.cpp.