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

Handle a list of polygons defining a copper zone. More...

#include <zone.h>

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

Public Types

enum  COMPARE_FLAGS : int { DRC = 0x01 }
 

Public Member Functions

 ZONE (BOARD_ITEM_CONTAINER *parent)
 
 ZONE (const ZONE &aZone)
 
ZONEoperator= (const ZONE &aOther)
 
 ~ZONE ()
 
bool IsConnected () const override
 Not all ZONEs are really BOARD_CONNECTED_ITEMs....
 
void InitDataFromSrcInCopyCtor (const ZONE &aZone)
 Copy aZone data to me.
 
bool IsConflicting () const
 For rule areas which exclude footprints (and therefore participate in courtyard conflicts during move).
 
VECTOR2I GetPosition () const override
 
void SetPosition (const VECTOR2I &aPos) override
 
void SetAssignedPriority (unsigned aPriority)
 
unsigned GetAssignedPriority () const
 
bool HigherPriority (const ZONE *aOther) const
 
bool SameNet (const ZONE *aOther) const
 
void GetMsgPanelInfo (EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
 Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
 
wxString GetFriendlyName () const override
 
void SetLayerSet (const LSET &aLayerSet) override
 
virtual LSET GetLayerSet () const override
 Return a std::bitset of all layers on which the item physically resides.
 
const wxString & GetZoneName () const
 
void SetZoneName (const wxString &aName)
 
bool Matches (const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
 Compare the item against the search criteria in aSearchData.
 
const BOX2I GetBoundingBox () const override
 
void CacheBoundingBox ()
 Used to preload the zone bounding box cache so we don't have to worry about mutex-locking it each time.
 
std::optional< int > GetLocalClearance () const override
 
void SetLocalClearance (std::optional< int > aClearance)
 
std::optional< int > GetLocalClearance (wxString *aSource) const override
 Return any local clearances set in the "classic" (ie: pre-rule) system.
 
bool IsOnCopperLayer () const override
 
virtual void SetLayer (PCB_LAYER_ID aLayer) override
 Set the layer this item is on.
 
virtual PCB_LAYER_ID GetLayer () const override
 Return the primary layer this item is on.
 
PCB_LAYER_ID GetFirstLayer () const
 
virtual bool IsOnLayer (PCB_LAYER_ID) const override
 Test to see if this object is on the given layer.
 
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.
 
void SetFillMode (ZONE_FILL_MODE aFillMode)
 
ZONE_FILL_MODE GetFillMode () const
 
void SetThermalReliefGap (int aThermalReliefGap)
 
int GetThermalReliefGap () const
 
int GetThermalReliefGap (PAD *aPad, wxString *aSource=nullptr) const
 
void SetThermalReliefSpokeWidth (int aThermalReliefSpokeWidth)
 
int GetThermalReliefSpokeWidth () const
 
double CalculateFilledArea ()
 Compute the area currently occupied by the zone fill.
 
double CalculateOutlineArea ()
 Compute the area of the zone outline (not the filled area).
 
double GetFilledArea ()
 This area is cached from the most recent call to CalculateFilledArea().
 
double GetOutlineArea ()
 This area is cached from the most recent call to CalculateOutlineArea().
 
std::mutex & GetLock ()
 
int GetFillFlag (PCB_LAYER_ID aLayer)
 
void SetFillFlag (PCB_LAYER_ID aLayer, bool aFlag)
 
bool IsFilled () const
 
void SetIsFilled (bool isFilled)
 
bool NeedRefill () const
 
void SetNeedRefill (bool aNeedRefill)
 
ZONE_CONNECTION GetPadConnection () const
 
void SetPadConnection (ZONE_CONNECTION aPadConnection)
 
int GetMinThickness () const
 
void SetMinThickness (int aMinThickness)
 
int GetHatchThickness () const
 
void SetHatchThickness (int aThickness)
 
int GetHatchGap () const
 
void SetHatchGap (int aStep)
 
EDA_ANGLE GetHatchOrientation () const
 
void SetHatchOrientation (const EDA_ANGLE &aStep)
 
int GetHatchSmoothingLevel () const
 
void SetHatchSmoothingLevel (int aLevel)
 
double GetHatchSmoothingValue () const
 
void SetHatchSmoothingValue (double aValue)
 
double GetHatchHoleMinArea () const
 
void SetHatchHoleMinArea (double aPct)
 
int GetHatchBorderAlgorithm () const
 
void SetHatchBorderAlgorithm (int aAlgo)
 
int GetSelectedCorner () const
 
void SetSelectedCorner (int aCorner)
 
int GetLocalFlags () const
 
void SetLocalFlags (int aFlags)
 
SHAPE_POLY_SETOutline ()
 
const SHAPE_POLY_SETOutline () const
 
void SetOutline (SHAPE_POLY_SET *aOutline)
 
virtual 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.
 
bool HitTest (const VECTOR2I &aPosition, int aAccuracy=0) const override
 Test if a point is near an outline edge or a corner of this zone.
 
bool HitTestFilledArea (PCB_LAYER_ID aLayer, const VECTOR2I &aRefPos, int aAccuracy=0) const
 Test if the given VECTOR2I is within the bounds of a filled area of this zone.
 
bool HitTestCutout (const VECTOR2I &aRefPos, int *aOutlineIdx=nullptr, int *aHoleIdx=nullptr) const
 Test if the given point is contained within a cutout of the zone.
 
void GetInteractingZones (PCB_LAYER_ID aLayer, std::vector< ZONE * > *aSameNetCollidingZones, std::vector< ZONE * > *aOtherNetIntersectingZones) const
 Some intersecting zones, despite being on the same layer with the same net, cannot be merged due to other parameters such as fillet radius.
 
void TransformSolidAreasShapesToPolygon (PCB_LAYER_ID aLayer, SHAPE_POLY_SET &aBuffer) const
 Convert solid areas full shapes to polygon set (the full shape is the polygon area with a thick outline) Used in 3D view Arcs (ends of segments) are approximated by segments.
 
void TransformSmoothedOutlineToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc, SHAPE_POLY_SET *aBoardOutline) const
 Convert the outlines shape to a polygon with no holes inflated (optional) by max( aClearanceValue, the zone clearance) (holes are linked to external outline by overlapping segments) Used in filling zones calculations Circles (vias) and arcs (ends of tracks) are approximated by segments.
 
void TransformShapeToPolygon (SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false) const override
 Convert the zone shape to a closed polygon Used in filling zones calculations Circles and arcs are approximated by segments.
 
bool HitTestForCorner (const VECTOR2I &refPos, int aAccuracy, SHAPE_POLY_SET::VERTEX_INDEX *aCornerHit=nullptr) const
 Test if the given VECTOR2I is near a corner.
 
bool HitTestForEdge (const VECTOR2I &refPos, int aAccuracy, SHAPE_POLY_SET::VERTEX_INDEX *aCornerHit=nullptr) const
 Test if the given VECTOR2I is near a segment defined by 2 corners.
 
bool HitTest (const BOX2I &aRect, bool aContained=true, int aAccuracy=0) const override
 Test if aRect intersects this item.
 
bool UnFill ()
 Removes the zone filling.
 
void Move (const VECTOR2I &offset) override
 Move the outlines.
 
void MoveEdge (const VECTOR2I &offset, int aEdge)
 Move the outline Edge.
 
void Rotate (const VECTOR2I &aCentre, const EDA_ANGLE &aAngle) override
 Rotate the outlines.
 
virtual void Flip (const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection) override
 Flip this object, i.e.
 
void Mirror (const VECTOR2I &aMirrorRef, FLIP_DIRECTION aFlipDirection) override
 Mirror the outlines relative to a given horizontal axis the layer is not changed.
 
wxString GetClass () const override
 
int GetNumCorners (void) const
 Access to m_Poly parameters.
 
SHAPE_POLY_SET::ITERATOR Iterate ()
 Return an iterator to visit all points of the zone's main outline without holes.
 
SHAPE_POLY_SET::ITERATOR IterateWithHoles ()
 Return an iterator to visit all points of the zone's main outline with holes.
 
SHAPE_POLY_SET::CONST_ITERATOR CIterateWithHoles () const
 Return an iterator to visit all points of the zone's main outline with holes.
 
void RemoveAllContours (void)
 
const VECTOR2IGetCornerPosition (int aCornerIndex) const
 
void SetCornerPosition (int aCornerIndex, const VECTOR2I &new_pos)
 
void NewHole ()
 Create a new hole on the zone; i.e., a new contour on the zone's outline.
 
bool AppendCorner (VECTOR2I aPosition, int aHoleIdx, bool aAllowDuplication=false)
 Add a new corner to the zone outline (to the main outline or a hole)
 
ZONE_BORDER_DISPLAY_STYLE GetHatchStyle () const
 
void SetHatchStyle (ZONE_BORDER_DISPLAY_STYLE aStyle)
 
bool HasFilledPolysForLayer (PCB_LAYER_ID aLayer) const
 
const std::shared_ptr< SHAPE_POLY_SET > & GetFilledPolysList (PCB_LAYER_ID aLayer) const
 
SHAPE_POLY_SETGetFill (PCB_LAYER_ID aLayer)
 
void CacheTriangulation (PCB_LAYER_ID aLayer=UNDEFINED_LAYER)
 Create a list of triangles that "fill" the solid areas used for instance to draw these solid areas on OpenGL.
 
void SetFilledPolysList (PCB_LAYER_ID aLayer, const SHAPE_POLY_SET &aPolysList)
 Set the list of filled polygons.
 
bool IsIsland (PCB_LAYER_ID aLayer, int aPolyIdx) const
 Check if a given filled polygon is an insulated island.
 
void SetIsIsland (PCB_LAYER_ID aLayer, int aPolyIdx)
 
bool BuildSmoothedPoly (SHAPE_POLY_SET &aSmoothedPoly, PCB_LAYER_ID aLayer, SHAPE_POLY_SET *aBoardOutline, SHAPE_POLY_SET *aSmoothedPolyWithApron=nullptr) const
 
void SetCornerSmoothingType (int aType)
 
int GetCornerSmoothingType () const
 
void SetCornerRadius (unsigned int aRadius)
 
unsigned int GetCornerRadius () const
 
void RemoveCutout (int aOutlineIdx, int aHoleIdx)
 Remove a cutout from the zone.
 
void AddPolygon (std::vector< VECTOR2I > &aPolygon)
 Add a polygon to the zone outline.
 
void AddPolygon (const SHAPE_LINE_CHAIN &aPolygon)
 
wxString GetItemDescription (UNITS_PROVIDER *aUnitsProvider, bool aFull) const override
 Return a user-visible description string of this item.
 
BITMAPS GetMenuImage () const override
 Return a pointer to an image to be used in menus.
 
EDA_ITEMClone () const override
 Create a duplicate of this item with linked list members set to NULL.
 
bool IsTeardropArea () const
 
void SetTeardropAreaType (TEARDROP_TYPE aType)
 Set the type of teardrop if the zone is a teardrop area for non teardrop area, the type must be TEARDROP_TYPE::TD_NONE.
 
TEARDROP_TYPE GetTeardropAreaType () const
 
bool HasKeepoutParametersSet () const
 Accessor to determine if any keepout parameters are set.
 
bool GetIsRuleArea () const
 Accessors to parameters used in Rule Area zones:
 
bool GetRuleAreaPlacementEnabled () const
 
RULE_AREA_PLACEMENT_SOURCE_TYPE GetRuleAreaPlacementSourceType () const
 
wxString GetRuleAreaPlacementSource () const
 
bool GetDoNotAllowCopperPour () const
 
bool GetDoNotAllowVias () const
 
bool GetDoNotAllowTracks () const
 
bool GetDoNotAllowPads () const
 
bool GetDoNotAllowFootprints () const
 
void SetIsRuleArea (bool aEnable)
 
void SetRuleAreaPlacementEnabled (bool aEnabled)
 
void SetRuleAreaPlacementSourceType (RULE_AREA_PLACEMENT_SOURCE_TYPE aType)
 
void SetRuleAreaPlacementSource (const wxString &aSource)
 
void SetDoNotAllowCopperPour (bool aEnable)
 
void SetDoNotAllowVias (bool aEnable)
 
void SetDoNotAllowTracks (bool aEnable)
 
void SetDoNotAllowPads (bool aEnable)
 
void SetDoNotAllowFootprints (bool aEnable)
 
ISLAND_REMOVAL_MODE GetIslandRemovalMode () const
 
void SetIslandRemovalMode (ISLAND_REMOVAL_MODE aRemove)
 
long long int GetMinIslandArea () const
 
void SetMinIslandArea (long long int aArea)
 
int GetBorderHatchPitch () const
 HatchBorder related methods.
 
void SetBorderDisplayStyle (ZONE_BORDER_DISPLAY_STYLE aBorderHatchStyle, int aBorderHatchPitch, bool aRebuilBorderdHatch)
 Set all hatch parameters for the zone.
 
void SetBorderHatchPitch (int aPitch)
 Set the hatch pitch parameter for the zone.
 
void UnHatchBorder ()
 Clear the zone's hatch.
 
void HatchBorder ()
 Compute the hatch lines depending on the hatch parameters and stores it in the zone's attribute m_borderHatchLines.
 
const std::vector< SEG > & GetHatchLines () const
 
void BuildHashValue (PCB_LAYER_ID aLayer)
 Build the hash value of m_FilledPolysList, and store it internally in m_filledPolysHash.
 
HASH_128 GetHashValue (PCB_LAYER_ID aLayer)
 
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 ZONE &aOther) const
 
bool operator== (const BOARD_ITEM &aOther) const override
 
NETINFO_ITEMGetNet () const
 Return #NET_INFO object for a given item.
 
void SetNet (NETINFO_ITEM *aNetInfo)
 Set a NET_INFO object for the item.
 
int GetNetCode () const
 
bool SetNetCode (int aNetCode, bool aNoAssert)
 Set net using a net code.
 
void SetNetCode (int aNetCode)
 
wxString GetNetname () const
 
wxString GetNetnameMsg () const
 
const wxString & GetShortNetname () const
 
const wxString & GetDisplayNetname () const
 
virtual int GetOwnClearance (PCB_LAYER_ID aLayer, wxString *aSource=nullptr) const
 Return an item's "own" clearance in internal units.
 
virtual std::optional< int > GetClearanceOverrides (wxString *aSource) const
 Return any clearance overrides set in the "classic" (ie: pre-rule) system.
 
virtual NETCLASSGetEffectiveNetClass () const
 Return the NETCLASS for this item.
 
wxString GetNetClassName () const
 Returns the name of the effective netclass.
 
wxString GetNetClassVariableSubstitutionName () const
 
void SetLocalRatsnestVisible (bool aVisible)
 
bool GetLocalRatsnestVisible () const
 
TEARDROP_PARAMETERSGetTeardropParams ()
 
const TEARDROP_PARAMETERSGetTeardropParams () const
 
void SetTeardropsEnabled (bool aEnable)
 
bool GetTeardropsEnabled () const
 
void SetTeardropBestLengthRatio (double aRatio)
 
double GetTeardropBestLengthRatio () const
 
void SetTeardropMaxLength (int aMaxLength)
 
int GetTeardropMaxLength () const
 
void SetTeardropBestWidthRatio (double aRatio)
 
double GetTeardropBestWidthRatio () const
 
void SetTeardropMaxWidth (int aMaxWidth)
 
int GetTeardropMaxWidth () const
 
void SetTeardropCurved (bool aCurve)
 
bool GetTeardropCurved () const
 
void SetTeardropPreferZoneConnections (bool aPrefer)
 
bool GetTeardropPreferZoneConnections () const
 
void SetTeardropAllowSpanTwoTracks (bool aAllow)
 
bool GetTeardropAllowSpanTwoTracks () const
 
void SetTeardropMaxTrackWidth (double aRatio)
 
double GetTeardropMaxTrackWidth () const
 
void SetParentGroup (PCB_GROUP *aGroup)
 
PCB_GROUPGetParentGroup () const
 
int GetX () const
 
int GetY () const
 
virtual VECTOR2I GetCenter () const
 This defaults to the center of the bounding box if not overridden.
 
void SetX (int aX)
 
void SetY (int aY)
 
virtual bool HasHole () const
 
virtual bool HasDrilledHole () const
 
virtual bool IsTented (PCB_LAYER_ID aLayer) const
 Checks if the given object is tented (its copper shape is covered by solder mask) on a given side of the board.
 
virtual std::shared_ptr< SHAPE_SEGMENTGetEffectiveHoleShape () const
 
virtual void RunOnChildren (const std::function< void(BOARD_ITEM *)> &aFunction) const
 Invoke a function on all children.
 
virtual void RunOnDescendants (const std::function< void(BOARD_ITEM *)> &aFunction, int aDepth=0) const
 Invoke a function on all descendants.
 
BOARD_ITEM_CONTAINERGetParent () const
 
FOOTPRINTGetParentFootprint () const
 
VECTOR2I GetFPRelativePosition () const
 
void SetFPRelativePosition (const VECTOR2I &aPos)
 
virtual bool HasLineStroke () const
 Check if this item has line stoke properties.
 
virtual STROKE_PARAMS GetStroke () const
 
virtual void SetStroke (const STROKE_PARAMS &aStroke)
 
const KIFONT::METRICSGetFontMetrics () const
 
virtual int BoardLayerCount () const
 Return the total number of layers for the board that this item resides on.
 
virtual int BoardCopperLayerCount () const
 Return the total number of copper layers for the board that this item resides on.
 
virtual LSET BoardLayerSet () const
 Return the LSET for the board that this item resides on.
 
bool IsSideSpecific () const
 
virtual BOARD_ITEMDuplicate () const
 Create a copy of this BOARD_ITEM.
 
void SwapItemData (BOARD_ITEM *aImage)
 Swap data between aItem and aImage.
 
virtual bool IsKnockout () const
 
virtual void SetIsKnockout (bool aKnockout)
 
virtual bool IsLocked () const
 
virtual void SetLocked (bool aLocked)
 
virtual void StyleFromSettings (const BOARD_DESIGN_SETTINGS &settings)
 
void DeleteStructure ()
 Delete this object after removing from its parent if it has one.
 
virtual void Normalize ()
 Perform any normalization required after a user rotate and/or flip.
 
virtual void NormalizeForCompare ()
 Perform any normalization required to compare 2 graphics, especially if the can be rotated and/or flipped.
 
virtual const BOARDGetBoard () const
 Return the BOARD in which this BOARD_ITEM resides, or NULL if none.
 
virtual BOARDGetBoard ()
 
wxString GetParentAsString () const
 For "parent" property.
 
wxString GetLayerName () const
 Return the name of the PCB layer on which the item resides.
 
KICAD_T Type () const
 Returns the type of object.
 
virtual void SetParent (EDA_ITEM *aParent)
 
bool IsModified () const
 
bool IsNew () const
 
bool IsMoving () const
 
bool IsSelected () const
 
bool IsEntered () const
 
bool IsBrightened () const
 
bool IsRollover () const
 
void SetSelected ()
 
void SetBrightened ()
 
void ClearSelected ()
 
void ClearBrightened ()
 
void SetModified ()
 
void SetFlags (EDA_ITEM_FLAGS aMask)
 
void XorFlags (EDA_ITEM_FLAGS aMask)
 
void ClearFlags (EDA_ITEM_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
 
EDA_ITEM_FLAGS GetFlags () const
 
bool HasFlag (EDA_ITEM_FLAGS aFlag) const
 
EDA_ITEM_FLAGS GetEditFlags () const
 
virtual void ClearEditFlags ()
 
EDA_ITEM_FLAGS GetTempFlags () const
 
virtual void ClearTempFlags ()
 
virtual bool RenderAsBitmap (double aWorldScale) const
 
void SetIsShownAsBitmap (bool aBitmap)
 
bool IsShownAsBitmap () const
 
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 const VECTOR2I GetFocusPosition () const
 Similar to GetPosition, but allows items to return their visual center rather than their anchor.
 
virtual VECTOR2I GetSortPosition () const
 Return the coordinates that should be used for sorting this element visually compared to other elements.
 
virtual INSPECT_RESULT Visit (INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &aScanTypes)
 May be re-implemented for each derived class in order to handle all the types given by its member data.
 
wxString GetTypeDesc () const
 Return a translated description of the type for this EDA_ITEM for display in user facing messages.
 
virtual bool 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 const BOX2I ViewBBox () const override
 Return the bounding box of the item covering all its layers.
 
virtual EMBEDDED_FILESGetEmbeddedFiles ()
 
bool IsSCH_ITEM () const
 
bool IsBOARD_ITEM () const
 
virtual void ViewDraw (int aLayer, VIEW *aView) const
 Draw the parts of the object belonging to layer aLayer.
 
VIEW_ITEM_DATA * viewPrivData () const
 
void SetForcedTransparency (double aForcedTransparency)
 
double GetForcedTransparency () const
 
bool Set (PROPERTY_BASE *aProperty, wxAny &aValue, bool aNotify=true)
 
template<typename T >
bool Set (PROPERTY_BASE *aProperty, T aValue, bool aNotify=true)
 
template<typename T >
bool Set (const wxString &aProperty, T aValue, bool aNotify=true)
 
wxAny Get (PROPERTY_BASE *aProperty) const
 
template<typename T >
Get (PROPERTY_BASE *aProperty) const
 
template<typename T >
std::optional< T > Get (const wxString &aProperty) const
 
virtual void Serialize (google::protobuf::Any &aContainer) const
 Serializes this object to the given Any message.
 
virtual bool Deserialize (const google::protobuf::Any &aContainer)
 Deserializes the given protobuf message into this object.
 

Static Public Member Functions

static bool ClassOf (const EDA_ITEM *aItem)
 
static int GetDefaultHatchPitch ()
 
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

SHAPE_POLY_SETm_Poly
 Outline of the zone.
 
int m_cornerSmoothingType
 
unsigned int m_cornerRadius
 
wxString m_zoneName
 An optional unique name for this zone, used for identifying it in DRC checking.
 
LSET m_layerSet
 
unsigned m_priority
 
bool m_isRuleArea
 
bool m_ruleAreaPlacementEnabled
 Placement rule area data.
 
RULE_AREA_PLACEMENT_SOURCE_TYPE m_ruleAreaPlacementSourceType
 
wxString m_ruleAreaPlacementSource
 
TEARDROP_TYPE m_teardropType
 
bool m_doNotAllowCopperPour
 
bool m_doNotAllowVias
 
bool m_doNotAllowTracks
 
bool m_doNotAllowPads
 
bool m_doNotAllowFootprints
 
ZONE_CONNECTION m_PadConnection
 
int m_ZoneClearance
 
int m_ZoneMinThickness
 
int m_fillVersion
 
ISLAND_REMOVAL_MODE m_islandRemovalMode
 
long long int m_minIslandArea
 When island removal mode is set to AREA, islands below this area will be removed.
 
bool m_isFilled
 True when a zone was filled, false after deleting the filled areas.
 
bool m_needRefill
 False when a zone was refilled, true after changes in zone params.
 
int m_thermalReliefGap
 
int m_thermalReliefSpokeWidth
 
ZONE_FILL_MODE m_fillMode
 How to fill areas:
 
int m_hatchThickness
 
int m_hatchGap
 
EDA_ANGLE m_hatchOrientation
 
int m_hatchSmoothingLevel
 
double m_hatchSmoothingValue
 
double m_hatchHoleMinArea
 
int m_hatchBorderAlgorithm
 
SHAPE_POLY_SET::VERTEX_INDEXm_CornerSelection
 The index of the corner being moved or nullptr if no corner is selected.
 
int m_localFlgs
 
std::map< PCB_LAYER_ID, std::shared_ptr< SHAPE_POLY_SET > > m_FilledPolysList
 
LSET m_fillFlags
 Temp variables used while filling.
 
std::map< PCB_LAYER_ID, HASH_128m_filledPolysHash
 A hash value used in zone filling calculations to see if the filled areas are up to date.
 
ZONE_BORDER_DISPLAY_STYLE m_borderStyle
 
int m_borderHatchPitch
 
std::vector< SEGm_borderHatchLines
 
std::map< PCB_LAYER_ID, std::set< int > > m_insulatedIslands
 For each layer, a set of insulated islands that were not removed.
 
double m_area
 
double m_outlinearea
 
std::mutex m_lock
 Lock used for multi-threaded filling on multi-layer zones.
 
NETINFO_ITEMm_netinfo
 Store all information about the net that item belongs to.
 
TEARDROP_PARAMETERS m_teardropParams
 Not all BOARD_CONNECTED_ITEMs support teardrops, but we want those that do to share a single section in the property inspector.
 
PCB_LAYER_ID m_layer
 
bool m_isKnockout
 
bool m_isLocked
 
PCB_GROUPm_group
 
EDA_ITEM_FLAGS m_flags
 
EDA_ITEMm_parent
 Linked list: Link (parent struct)
 
bool m_forceVisible
 

Private Attributes

bool m_localRatsnestVisible
 
KICAD_T m_structType
 Run time identification, keep private so it can never be changed after a ctor sets it.
 
bool m_isSCH_ITEM
 
bool m_isBOARD_ITEM
 
VIEW_ITEM_DATA * m_viewPrivData
 
double m_forcedTransparency
 Additional transparency for diff'ing items.
 

Detailed Description

Handle a list of polygons defining a copper zone.

A zone is described by a main polygon, a time stamp, a layer or a layer set, and a net name. Other polygons inside the main polygon are holes in the zone.

Definition at line 72 of file zone.h.

Member Enumeration Documentation

◆ COMPARE_FLAGS

enum BOARD_ITEM::COMPARE_FLAGS : int
inherited
Enumerator
DRC 

Definition at line 417 of file board_item.h.

Constructor & Destructor Documentation

◆ ZONE() [1/2]

◆ ZONE() [2/2]

ZONE::ZONE ( const ZONE aZone)

Definition at line 90 of file zone.cpp.

References InitDataFromSrcInCopyCtor().

◆ ~ZONE()

ZONE::~ZONE ( )

Definition at line 109 of file zone.cpp.

References BOARD_ITEM::GetBoard(), m_CornerSelection, and m_Poly.

Member Function Documentation

◆ AddPolygon() [1/2]

◆ AddPolygon() [2/2]

void ZONE::AddPolygon ( std::vector< VECTOR2I > &  aPolygon)

Add a polygon to the zone outline.

If the zone outline is empty, this is the main outline. Otherwise it is a hole inside the main outline.

Definition at line 828 of file zone.cpp.

References AddPolygon(), SHAPE_LINE_CHAIN::Append(), and SHAPE_LINE_CHAIN::SetClosed().

Referenced by AddPolygon(), MULTICHANNEL_TOOL::copyRuleAreaContents(), and CADSTAR_PCB_ARCHIVE_LOADER::getZoneFromCadstarShape().

◆ AppendCorner()

bool ZONE::AppendCorner ( VECTOR2I  aPosition,
int  aHoleIdx,
bool  aAllowDuplication = false 
)

Add a new corner to the zone outline (to the main outline or a hole)

Parameters
aPositionis the position of the new corner.
aHoleIdxis the index of the hole (-1 for the main outline, >= 0 for hole).
aAllowDuplicationis a flag to indicate whether it is allowed to add this corner even if it is duplicated.
Returns
true if the corner was added, false if error (aHoleIdx > hole count -1)

Definition at line 845 of file zone.cpp.

References SHAPE_POLY_SET::Append(), SHAPE_POLY_SET::HoleCount(), m_Poly, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::OutlineCount(), SetNeedRefill(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by BOARD::AddArea(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), TEST_BOARD_ITEM_FIXTURE::Instantiate(), PCB_IO_EAGLE::loadPlain(), PCB_IO_EAGLE::packageCircle(), and PCB_IO_EAGLE::packageRectangle().

◆ BoardCopperLayerCount()

int BOARD_ITEM::BoardCopperLayerCount ( ) const
virtualinherited

◆ BoardLayerCount()

int BOARD_ITEM::BoardLayerCount ( ) const
virtualinherited

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

Definition at line 106 of file board_item.cpp.

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

◆ BoardLayerSet()

LSET BOARD_ITEM::BoardLayerSet ( ) const
virtualinherited

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

Definition at line 128 of file board_item.cpp.

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

Referenced by PADSTACK::EffectiveLayerFor().

◆ BuildHashValue()

void ZONE::BuildHashValue ( PCB_LAYER_ID  aLayer)

Build the hash value of m_FilledPolysList, and store it internally in m_filledPolysHash.

Used in zone filling calculations, to know if m_FilledPolysList is up to date.

Definition at line 454 of file zone.cpp.

References g_nullPoly, SHAPE_POLY_SET::GetHash(), m_filledPolysHash, and m_FilledPolysList.

◆ BuildSmoothedPoly()

◆ CacheBoundingBox()

void ZONE::CacheBoundingBox ( )

Used to preload the zone bounding box cache so we don't have to worry about mutex-locking it each time.

Definition at line 410 of file zone.cpp.

References GetBoundingBox().

◆ CacheTriangulation()

void ZONE::CacheTriangulation ( PCB_LAYER_ID  aLayer = UNDEFINED_LAYER)

Create a list of triangles that "fill" the solid areas used for instance to draw these solid areas on OpenGL.

Definition at line 1115 of file zone.cpp.

References SHAPE_POLY_SET::CacheTriangulation(), m_FilledPolysList, m_Poly, and UNDEFINED_LAYER.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::buildRTrees(), and ZONE_FILLER::Fill().

◆ CalculateFilledArea()

double ZONE::CalculateFilledArea ( )

Compute the area currently occupied by the zone fill.

Returns
the currently filled area

Definition at line 1335 of file zone.cpp.

References m_area, and m_FilledPolysList.

Referenced by TEARDROP_MANAGER::createTeardrop().

◆ CalculateOutlineArea()

double ZONE::CalculateOutlineArea ( )

Compute the area of the zone outline (not the filled area).

Returns
the currently calculated area

Definition at line 1358 of file zone.cpp.

References std::abs(), SHAPE_POLY_SET::Area(), m_outlinearea, and m_Poly.

◆ CIterateWithHoles()

SHAPE_POLY_SET::CONST_ITERATOR ZONE::CIterateWithHoles ( ) const
inline

Return an iterator to visit all points of the zone's main outline with holes.

Returns
an iterator to visit the zone vertices with holes.

Definition at line 546 of file zone.h.

References SHAPE_POLY_SET::CIterateWithHoles(), and m_Poly.

◆ ClassOf()

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

Definition at line 82 of file zone.h.

References PCB_ZONE_T, and EDA_ITEM::Type().

◆ ClearBrightened()

◆ ClearEditFlags()

◆ ClearFlags()

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

Definition at line 129 of file eda_item.h.

References EDA_ITEM::m_flags.

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

◆ ClearSelected()

◆ ClearTempFlags()

virtual void EDA_ITEM::ClearTempFlags ( )
inlinevirtualinherited

◆ Clone()

EDA_ITEM * ZONE::Clone ( ) const
overridevirtual

Create a duplicate of this item with linked list members set to NULL.

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

Returns
A clone of the item.

Reimplemented from EDA_ITEM.

Definition at line 201 of file zone.cpp.

◆ DeleteStructure()

void BOARD_ITEM::DeleteStructure ( )
inherited

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

Definition at line 210 of file board_item.cpp.

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

◆ Deserialize()

virtual bool SERIALIZABLE::Deserialize ( const google::protobuf::Any &  aContainer)
inlinevirtualinherited

Deserializes the given protobuf message into this object.

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

Reimplemented in SCH_LABEL, SCH_DIRECTIVE_LABEL, SCH_GLOBALLABEL, SCH_HIERLABEL, SCH_LINE, BOARD_STACKUP, FOOTPRINT, PAD, PADSTACK, PCB_FIELD, PCB_SHAPE, PCB_TEXT, PCB_TRACK, PCB_ARC, and PCB_VIA.

Definition at line 53 of file serializable.h.

◆ Duplicate()

◆ Flip()

void ZONE::Flip ( const VECTOR2I aCentre,
FLIP_DIRECTION  aFlipDirection 
)
overridevirtual

Flip this object, i.e.

change the board side for this object (like Mirror() but changes layer).

Parameters
aCentreis the rotation point.
aFlipDirectionis the direction of the flip.

Reimplemented from BOARD_ITEM.

Definition at line 767 of file zone.cpp.

References Flip(), BOARD::FlipLayer(), BOARD_ITEM::GetBoard(), GetLayerSet(), m_FilledPolysList, Mirror(), SetFilledPolysList(), and SetLayerSet().

Referenced by Flip().

◆ 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

◆ GetAssignedPriority()

◆ GetBoard() [1/2]

BOARD * BOARD_ITEM::GetBoard ( )
virtualinherited

◆ GetBoard() [2/2]

const BOARD * BOARD_ITEM::GetBoard ( ) const
virtualinherited

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

Definition at line 47 of file board_item.cpp.

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

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

◆ GetBorderHatchPitch()

int ZONE::GetBorderHatchPitch ( ) const

HatchBorder related methods.

Returns
the zone hatch pitch in iu.

Definition at line 913 of file zone.cpp.

References m_borderHatchPitch.

Referenced by PCB_IO_KICAD_SEXPR::format(), and ZONE_SETTINGS::operator<<().

◆ GetBoundingBox()

◆ GetCenter()

virtual VECTOR2I BOARD_ITEM::GetCenter ( ) const
inlinevirtualinherited

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

Returns
center point of the item

Reimplemented in FOOTPRINT, PAD, PCB_MARKER, PCB_SHAPE, and PCB_ARC.

Definition at line 111 of file board_item.h.

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

Referenced by PCB_GRID_HELPER::computeAnchors(), and PCB_SELECTION_TOOL::FindItem().

◆ GetClass()

wxString ZONE::GetClass ( ) const
inlineoverridevirtual
Returns
the class name.

Implements EDA_ITEM.

Definition at line 508 of file zone.h.

◆ GetClearanceOverrides()

virtual std::optional< int > BOARD_CONNECTED_ITEM::GetClearanceOverrides ( wxString *  aSource) const
inlinevirtualinherited

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

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

Reimplemented in PAD.

Definition at line 149 of file board_connected_item.h.

Referenced by DRC_ENGINE::EvalRules().

◆ GetCornerPosition()

const VECTOR2I & ZONE::GetCornerPosition ( int  aCornerIndex) const
inline

Definition at line 556 of file zone.h.

References SHAPE_POLY_SET::CVertex(), SHAPE_POLY_SET::GetRelativeIndices(), and m_Poly.

Referenced by GetPosition(), operator==(), and Similarity().

◆ GetCornerRadius()

unsigned int ZONE::GetCornerRadius ( ) const
inline

◆ GetCornerSmoothingType()

int ZONE::GetCornerSmoothingType ( ) const
inline

◆ GetDefaultHatchPitch()

◆ GetDisplayNetname()

const wxString & BOARD_CONNECTED_ITEM::GetDisplayNetname ( ) const
inherited

◆ GetDoNotAllowCopperPour()

◆ GetDoNotAllowFootprints()

◆ GetDoNotAllowPads()

◆ GetDoNotAllowTracks()

◆ GetDoNotAllowVias()

◆ GetEditFlags()

◆ GetEffectiveHoleShape()

◆ GetEffectiveNetClass()

◆ GetEffectiveShape()

std::shared_ptr< SHAPE > ZONE::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 1396 of file zone.cpp.

References m_FilledPolysList.

◆ GetEmbeddedFiles()

virtual EMBEDDED_FILES * EDA_ITEM::GetEmbeddedFiles ( )
inlinevirtualinherited

Reimplemented in LIB_SYMBOL, SCHEMATIC, BOARD, and FOOTPRINT.

Definition at line 444 of file eda_item.h.

Referenced by PCB_IO_KICAD_SEXPR_PARSER::Parse().

◆ GetFill()

◆ GetFilledArea()

double ZONE::GetFilledArea ( )
inline

This area is cached from the most recent call to CalculateFilledArea().

Returns
the filled area

Definition at line 234 of file zone.h.

References m_area.

◆ GetFilledPolysList()

◆ GetFillFlag()

int ZONE::GetFillFlag ( PCB_LAYER_ID  aLayer)
inline

Definition at line 254 of file zone.h.

References m_fillFlags.

◆ GetFillMode()

◆ GetFirstLayer()

◆ GetFlags()

◆ GetFocusPosition()

virtual const VECTOR2I EDA_ITEM::GetFocusPosition ( ) const
inlinevirtualinherited

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

Reimplemented in BOARD, PCB_SHAPE, PCB_TRACK, and PCB_ARC.

Definition at line 250 of file eda_item.h.

References EDA_ITEM::GetPosition().

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

◆ GetFontMetrics()

◆ GetForcedTransparency()

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

◆ GetFPRelativePosition()

◆ GetFriendlyName()

wxString ZONE::GetFriendlyName ( ) const
overridevirtual

Reimplemented from EDA_ITEM.

Definition at line 728 of file zone.cpp.

References _, GetIsRuleArea(), IsOnCopperLayer(), and IsTeardropArea().

Referenced by GetMsgPanelInfo().

◆ GetHashValue()

HASH_128 ZONE::GetHashValue ( PCB_LAYER_ID  aLayer)
Returns
the hash value previously calculated by BuildHashValue().

Definition at line 445 of file zone.cpp.

References g_nullPoly, SHAPE_POLY_SET::GetHash(), and m_filledPolysHash.

◆ GetHatchBorderAlgorithm()

int ZONE::GetHatchBorderAlgorithm ( ) const
inline

◆ GetHatchGap()

◆ GetHatchHoleMinArea()

double ZONE::GetHatchHoleMinArea ( ) const
inline

◆ GetHatchLines()

const std::vector< SEG > & ZONE::GetHatchLines ( ) const
inline

Definition at line 800 of file zone.h.

References m_borderHatchLines.

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

◆ GetHatchOrientation()

◆ GetHatchSmoothingLevel()

int ZONE::GetHatchSmoothingLevel ( ) const
inline

◆ GetHatchSmoothingValue()

double ZONE::GetHatchSmoothingValue ( ) const
inline

◆ GetHatchStyle()

ZONE_BORDER_DISPLAY_STYLE ZONE::GetHatchStyle ( ) const
inline

◆ GetHatchThickness()

int ZONE::GetHatchThickness ( ) const
inline

◆ GetInteractingZones()

void ZONE::GetInteractingZones ( PCB_LAYER_ID  aLayer,
std::vector< ZONE * > *  aSameNetCollidingZones,
std::vector< ZONE * > *  aOtherNetIntersectingZones 
) const

Some intersecting zones, despite being on the same layer with the same net, cannot be merged due to other parameters such as fillet radius.

The copper pour will end up effectively merged though, so we need to do some calculations with them in mind.

Definition at line 1144 of file zone.cpp.

References SHAPE_POLY_SET::Collide(), epsilon, BOARD_ITEM::GetBoard(), GetBoundingBox(), BOARD_CONNECTED_ITEM::GetNetCode(), BOX2< Vec >::Inflate(), m_Poly, EDA_IU_SCALE::mmToIU(), and pcbIUScale.

Referenced by BuildSmoothedPoly().

◆ GetIslandRemovalMode()

ISLAND_REMOVAL_MODE ZONE::GetIslandRemovalMode ( ) const
inline

◆ GetIsRuleArea()

◆ GetItemDescription()

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

Return a user-visible description string of this item.

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

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

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

Reimplemented from EDA_ITEM.

Definition at line 865 of file zone.cpp.

References _, BOARD_ITEM::GetBoard(), GetIsRuleArea(), BOARD_ITEM::GetLayerName(), BOARD_CONNECTED_ITEM::GetNetnameMsg(), SHAPE_POLY_SET::VERTEX_INDEX::m_contour, m_CornerSelection, m_layerSet, and LSET::Seq().

Referenced by DRC_ENGINE::EvalRules(), and PNS_KICAD_IFACE_BASE::syncZone().

◆ GetLayer()

PCB_LAYER_ID ZONE::GetLayer ( ) const
overridevirtual

Return the primary layer this item is on.

Reimplemented from BOARD_ITEM.

Definition at line 260 of file zone.cpp.

References GetFirstLayer(), m_layerSet, and UNDEFINED_LAYER.

Referenced by BOOST_AUTO_TEST_CASE(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testGraphicClearances(), and ZONE_DESC::ZONE_DESC().

◆ GetLayerName()

◆ GetLayerSet()

◆ GetLocalClearance() [1/2]

◆ GetLocalClearance() [2/2]

std::optional< int > ZONE::GetLocalClearance ( wxString *  aSource) const
inlineoverridevirtual

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

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

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 163 of file zone.h.

References _, GetLocalClearance(), and m_isRuleArea.

◆ GetLocalFlags()

int ZONE::GetLocalFlags ( ) const
inline

Definition at line 334 of file zone.h.

References m_localFlgs.

Referenced by InitDataFromSrcInCopyCtor().

◆ GetLocalRatsnestVisible()

bool BOARD_CONNECTED_ITEM::GetLocalRatsnestVisible ( ) const
inlineinherited

◆ GetLock()

std::mutex & ZONE::GetLock ( )
inline

Definition at line 249 of file zone.h.

References m_lock.

Referenced by ZONE_FILLER::Fill().

◆ GetMenuImage()

BITMAPS ZONE::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 1101 of file zone.cpp.

◆ GetMinIslandArea()

long long int ZONE::GetMinIslandArea ( ) const
inline

◆ GetMinThickness()

◆ GetMsgPanelInfo()

◆ GetNet()

◆ GetNetClassName()

wxString BOARD_CONNECTED_ITEM::GetNetClassName ( ) const
inherited

Returns the name of the effective netclass.

Primarily for the use of the property system.

Definition at line 108 of file board_connected_item.cpp.

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

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

◆ GetNetClassVariableSubstitutionName()

wxString BOARD_CONNECTED_ITEM::GetNetClassVariableSubstitutionName ( ) const
inherited

◆ GetNetCode()

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

Definition at line 91 of file board_connected_item.cpp.

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

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

◆ GetNetname()

◆ GetNetnameMsg()

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

Definition at line 126 of file board_connected_item.cpp.

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

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

◆ GetNumCorners()

int ZONE::GetNumCorners ( void  ) const
inline

Access to m_Poly parameters.

Definition at line 516 of file zone.h.

References m_Poly, and SHAPE_POLY_SET::TotalVertices().

Referenced by BuildSmoothedPoly(), PCB_IO_KICAD_SEXPR::format(), operator==(), and Similarity().

◆ GetOutlineArea()

double ZONE::GetOutlineArea ( )
inline

This area is cached from the most recent call to CalculateOutlineArea().

Returns
the outline area

Definition at line 244 of file zone.h.

References m_outlinearea.

Referenced by TEARDROP_MANAGER::setTeardropPriorities().

◆ GetOwnClearance()

int BOARD_CONNECTED_ITEM::GetOwnClearance ( PCB_LAYER_ID  aLayer,
wxString *  aSource = nullptr 
) const
virtualinherited

Return an item's "own" clearance in internal units.

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

Reimplemented in PAD.

Definition at line 68 of file board_connected_item.cpp.

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

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

◆ GetPadConnection()

◆ GetParent()

BOARD_ITEM_CONTAINER * BOARD_ITEM::GetParent ( ) const
inlineinherited

◆ 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 374 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 299 of file board_item.cpp.

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

Referenced by CN_CONNECTIVITY_ALGO::Add(), PCB_IO_IPC2581::addPad(), FEATURES_MANAGER::AddPadShape(), STEP_PCB_MODEL::AddPadShape(), PCB_IO_IPC2581::addPadStack(), GRAPHICS_IMPORTER_PCBNEW::AddPolygon(), DRC_TEST_PROVIDER_SOLDER_MASK::checkItemMask(), DRC_TEST_PROVIDER_SOLDER_MASK::checkMaskAperture(), DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange(), EDIT_TOOL::DeleteItems(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), doPushPadProperties(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::Draw(), EDIT_TOOL::Duplicate(), PCB_IO_KICAD_SEXPR::format(), FormatProbeItem(), PCB_IO_IPC2581::generateLayerSetNet(), PAD::GetClearanceOverrides(), PCB_BASE_EDIT_FRAME::GetContextualTextVars(), PCB_TEXT::GetDrawRotation(), PAD::GetFPRelativeOrientation(), BOARD_ITEM::GetFPRelativePosition(), PAD::GetItemDescription(), PCB_FIELD::GetItemDescription(), PCB_SHAPE::GetItemDescription(), PCB_TEXT::GetItemDescription(), PCB_SHAPE::GetMenuImage(), PCB_SHAPE::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PANEL_SETUP_LAYERS::getRemovedLayersWithItems(), PCB_TEXT::GetShownText(), PCB_TEXTBOX::GetShownText(), PAD::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), PCB_FIELDS_GRID_TABLE::GetValue(), PAD::GetZoneConnectionOverrides(), PCB_SELECTION_TOOL::grabUnconnected(), GROUP_TOOL::Group(), hash_fp_item(), PAD::ImportSettingsFrom(), DIALOG_PAD_PROPERTIES::initValues(), GENERAL_COLLECTOR::Inspect(), 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(), BOARD::Move(), ARRAY_TOOL::onDialogClosed(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_SHAPE(), PCB_IO_KICAD_SEXPR_PARSER::parsePCB_TABLE(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), PCB_IO_IPC2581::pinName(), BRDITEMS_PLOTTER::PlotPad(), BRDITEMS_PLOTTER::PlotShape(), BRDITEMS_PLOTTER::PlotTableBorders(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem(), BOARD_COMMIT::Push(), PAD_TOOL::pushPadSettings(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), PCB_GRID_HELPER::queryVisible(), PAD::Recombine(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), BOARD_COMMIT::Revert(), PAD::SameLogicalPadAs(), CLIPBOARD_IO::SaveSelection(), PCB_SELECTION_TOOL::Selectable(), PAD::SetFPRelativeOrientation(), BOARD_ITEM::SetFPRelativePosition(), PCB_FIELDS_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(), DIALOG_PAD_PROPERTIES::transferDataToPad(), PCB_IO_EAGLE::transferPad(), PCB_POINT_EDITOR::updateItem(), PCB_FIELD::ViewGetLOD(), PCB_SHAPE::ViewGetLOD(), PCB_TEXT::ViewGetLOD(), ViewGetLOD(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem(), and ZONE().

◆ GetParentGroup()

◆ GetPosition()

VECTOR2I ZONE::GetPosition ( ) const
overridevirtual
Returns
a VECTOR2I, position of the first point of the outline

Reimplemented from EDA_ITEM.

Definition at line 254 of file zone.cpp.

References GetCornerPosition().

◆ GetRuleAreaPlacementEnabled()

bool ZONE::GetRuleAreaPlacementEnabled ( ) const
inline

◆ GetRuleAreaPlacementSource()

wxString ZONE::GetRuleAreaPlacementSource ( ) const
inline

◆ GetRuleAreaPlacementSourceType()

◆ GetSelectedCorner()

int ZONE::GetSelectedCorner ( ) const
inline

Definition at line 306 of file zone.h.

References SHAPE_POLY_SET::GetGlobalIndex(), m_CornerSelection, and m_Poly.

◆ GetShortNetname()

const wxString & BOARD_CONNECTED_ITEM::GetShortNetname ( ) const
inherited

◆ GetSortPosition()

virtual VECTOR2I EDA_ITEM::GetSortPosition ( ) const
inlinevirtualinherited

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

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

Returns
X,Y coordinate of the sort point

Reimplemented in SCH_LINE.

Definition at line 259 of file eda_item.h.

References EDA_ITEM::GetPosition().

◆ GetStroke()

STROKE_PARAMS BOARD_ITEM::GetStroke ( ) const
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 86 of file board_item.cpp.

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

Referenced by CONVERT_TOOL::CreatePolys().

◆ GetTeardropAllowSpanTwoTracks()

bool BOARD_CONNECTED_ITEM::GetTeardropAllowSpanTwoTracks ( ) const
inlineinherited

◆ GetTeardropAreaType()

TEARDROP_TYPE ZONE::GetTeardropAreaType ( ) const
inline
Returns
the type of the teardrop ( has meaning only if the zone is a teardrop area)

Definition at line 707 of file zone.h.

References m_teardropType.

Referenced by KI_TEST::CheckFpZone(), PCB_IO_KICAD_SEXPR::format(), and ZONE_SETTINGS::operator<<().

◆ GetTeardropBestLengthRatio()

double BOARD_CONNECTED_ITEM::GetTeardropBestLengthRatio ( ) const
inlineinherited

◆ GetTeardropBestWidthRatio()

double BOARD_CONNECTED_ITEM::GetTeardropBestWidthRatio ( ) const
inlineinherited

◆ GetTeardropCurved()

bool BOARD_CONNECTED_ITEM::GetTeardropCurved ( ) const
inlineinherited

◆ GetTeardropMaxLength()

int BOARD_CONNECTED_ITEM::GetTeardropMaxLength ( ) const
inlineinherited

◆ GetTeardropMaxTrackWidth()

double BOARD_CONNECTED_ITEM::GetTeardropMaxTrackWidth ( ) const
inlineinherited

◆ GetTeardropMaxWidth()

int BOARD_CONNECTED_ITEM::GetTeardropMaxWidth ( ) const
inlineinherited

◆ GetTeardropParams() [1/2]

◆ GetTeardropParams() [2/2]

const TEARDROP_PARAMETERS & BOARD_CONNECTED_ITEM::GetTeardropParams ( ) const
inlineinherited

Definition at line 197 of file board_connected_item.h.

References BOARD_CONNECTED_ITEM::m_teardropParams.

◆ GetTeardropPreferZoneConnections()

bool BOARD_CONNECTED_ITEM::GetTeardropPreferZoneConnections ( ) const
inlineinherited

◆ GetTeardropsEnabled()

bool BOARD_CONNECTED_ITEM::GetTeardropsEnabled ( ) const
inlineinherited

◆ GetTempFlags()

EDA_ITEM_FLAGS EDA_ITEM::GetTempFlags ( ) const
inlineinherited

◆ GetThermalReliefGap() [1/2]

int ZONE::GetThermalReliefGap ( ) const
inline

◆ GetThermalReliefGap() [2/2]

int ZONE::GetThermalReliefGap ( PAD aPad,
wxString *  aSource = nullptr 
) const

Definition at line 418 of file zone.cpp.

References _, PAD::GetLocalThermalGapOverride(), and m_thermalReliefGap.

◆ GetThermalReliefSpokeWidth()

int ZONE::GetThermalReliefSpokeWidth ( ) const
inline

◆ GetTypeDesc()

wxString EDA_ITEM::GetTypeDesc ( ) const
inherited

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

Definition at line 323 of file eda_item.cpp.

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

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

◆ GetX()

◆ GetY()

◆ GetZoneName()

◆ HasDrilledHole()

virtual bool BOARD_ITEM::HasDrilledHole ( ) const
inlinevirtualinherited

◆ HasFilledPolysForLayer()

bool ZONE::HasFilledPolysForLayer ( PCB_LAYER_ID  aLayer) const
inline

◆ HasFlag()

◆ HasHole()

◆ HasKeepoutParametersSet()

bool ZONE::HasKeepoutParametersSet ( ) const
inline

◆ HasLineStroke()

virtual bool BOARD_ITEM::HasLineStroke ( ) const
inlinevirtualinherited

Check if this item has line stoke properties.

See also
STROKE_PARAMS

Reimplemented in PCB_SHAPE.

Definition at line 227 of file board_item.h.

Referenced by CONVERT_TOOL::CreatePolys().

◆ HatchBorder()

◆ HigherPriority()

bool ZONE::HigherPriority ( const ZONE aOther) const

Definition at line 207 of file zone.cpp.

References m_priority, m_teardropType, and EDA_ITEM::m_Uuid.

Referenced by ZONE_FILLER::Fill().

◆ HitTest() [1/2]

bool ZONE::HitTest ( const BOX2I aRect,
bool  aContained = true,
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 487 of file zone.cpp.

References BOX2< Vec >::Contains(), SHAPE_POLY_SET::CVertex(), GetBoundingBox(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), m_Poly, BOX2< Vec >::Normalize(), and SHAPE_POLY_SET::TotalVertices().

◆ HitTest() [2/2]

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

Test if a point is near an outline edge or a corner of this zone.

Parameters
aPositionthe VECTOR2I to test
Returns
true if a hit, else false

Reimplemented from EDA_ITEM.

Definition at line 463 of file zone.cpp.

References HitTestForCorner(), HitTestForEdge(), EDA_IU_SCALE::mmToIU(), and pcbIUScale.

◆ HitTestCutout()

bool ZONE::HitTestCutout ( const VECTOR2I aRefPos,
int *  aOutlineIdx = nullptr,
int *  aHoleIdx = nullptr 
) const

Test if the given point is contained within a cutout of the zone.

Parameters
aRefPosis the point to test
aOutlineIdxis the index of the outline containing the cutout
aHoleIdxis the index of the hole
Returns
true if aRefPos is inside a zone cutout

Definition at line 548 of file zone.cpp.

References SHAPE_POLY_SET::Hole(), SHAPE_POLY_SET::HoleCount(), m_Poly, SHAPE_POLY_SET::OutlineCount(), and SHAPE_LINE_CHAIN_BASE::PointInside().

Referenced by EDIT_TOOL::DeleteItems().

◆ HitTestFilledArea()

bool ZONE::HitTestFilledArea ( PCB_LAYER_ID  aLayer,
const VECTOR2I aRefPos,
int  aAccuracy = 0 
) const

Test if the given VECTOR2I is within the bounds of a filled area of this zone.

Parameters
aLayeris the layer to test on
aRefPosA VECTOR2I to test
aAccuracyExpand the distance by which the areas are expanded for the hittest
Returns
true if a hit, else false

Definition at line 534 of file zone.cpp.

References SHAPE_POLY_SET::Contains(), GetIsRuleArea(), m_FilledPolysList, and m_Poly.

Referenced by CN_ANCHOR::ConnectedItemsCount(), GENERAL_COLLECTOR::Inspect(), and CN_ANCHOR::IsDangling().

◆ HitTestForCorner()

bool ZONE::HitTestForCorner ( const VECTOR2I refPos,
int  aAccuracy,
SHAPE_POLY_SET::VERTEX_INDEX aCornerHit = nullptr 
) const

Test if the given VECTOR2I is near a corner.

Parameters
refPosis the VECTOR2I to test.
aAccuracyincrease the item bounding box by this amount.
aCornerHit[out, optional] is the index of the closest vertex found when return value is true
Returns
true if some corner was found to be closer to refPos than aClearance; false otherwise.

Definition at line 473 of file zone.cpp.

References SHAPE_POLY_SET::CollideVertex(), and m_Poly.

Referenced by HitTest(), GENERAL_COLLECTOR::Inspect(), and PCB_SELECTION_TOOL::Main().

◆ HitTestForEdge()

bool ZONE::HitTestForEdge ( const VECTOR2I refPos,
int  aAccuracy,
SHAPE_POLY_SET::VERTEX_INDEX aCornerHit = nullptr 
) const

Test if the given VECTOR2I is near a segment defined by 2 corners.

Parameters
refPosis the VECTOR2I to test.
aAccuracyincrease the item bounding box by this amount.
aCornerHit[out, optional] is the index of the closest vertex found when return value is true.
Returns
true if some edge was found to be closer to refPos than aClearance.

Definition at line 480 of file zone.cpp.

References SHAPE_POLY_SET::CollideEdge(), and m_Poly.

Referenced by PCB_SELECTION_TOOL::GuessSelectionCandidates(), HitTest(), PCB_SELECTION_TOOL::hitTestDistance(), GENERAL_COLLECTOR::Inspect(), and PCB_SELECTION_TOOL::Main().

◆ InitDataFromSrcInCopyCtor()

◆ IsBOARD_ITEM()

◆ IsBrightened()

◆ IsConflicting()

bool ZONE::IsConflicting ( ) const

For rule areas which exclude footprints (and therefore participate in courtyard conflicts during move).

Definition at line 248 of file zone.cpp.

References COURTYARD_CONFLICT, and EDA_ITEM::HasFlag().

Referenced by ViewGetLayers().

◆ IsConnected()

bool ZONE::IsConnected ( ) const
inlineoverridevirtual

Not all ZONEs are really BOARD_CONNECTED_ITEMs....

Reimplemented from BOARD_CONNECTED_ITEM.

Definition at line 90 of file zone.h.

References GetIsRuleArea().

◆ IsEntered()

bool EDA_ITEM::IsEntered ( ) const
inlineinherited

Definition at line 111 of file eda_item.h.

References ENTERED, and EDA_ITEM::m_flags.

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

◆ IsFilled()

bool ZONE::IsFilled ( ) const
inline

◆ IsForceVisible()

bool EDA_ITEM::IsForceVisible ( ) const
inlineinherited

Definition at line 195 of file eda_item.h.

References EDA_ITEM::m_forceVisible.

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

◆ IsIsland()

bool ZONE::IsIsland ( PCB_LAYER_ID  aLayer,
int  aPolyIdx 
) const

Check if a given filled polygon is an insulated island.

Parameters
aLayeris the layer to test
aPolyIdxis an index into m_FilledPolysList[aLayer]
Returns
true if the given polygon is insulated (i.e. has no net connection)

Definition at line 1132 of file zone.cpp.

References BOARD_CONNECTED_ITEM::GetNetCode(), and m_insulatedIslands.

Referenced by PCB_IO_KICAD_SEXPR::format().

◆ IsKnockout()

◆ IsLocked()

bool BOARD_ITEM::IsLocked ( ) const
virtualinherited

Reimplemented in FOOTPRINT, and PAD.

Definition at line 75 of file board_item.cpp.

References BOARD_ITEM::GetBoard(), BOARD::GetBoardUse(), BOARD_ITEM::GetParentGroup(), BOARD_ITEM::IsLocked(), and BOARD_ITEM::m_isLocked.

Referenced by BOARD_ITEM_DESC::BOARD_ITEM_DESC(), KI_TEST::CheckFpShape(), KI_TEST::CheckFpZone(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), EDIT_TOOL::DragArcTrack(), EDIT_TOOL::FilletTracks(), PCB_IO_KICAD_SEXPR::format(), GENERATOR_TOOL::GENERATOR_TOOL(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), PCB_GROUP::GetMsgPanelInfo(), PCB_SHAPE::GetMsgPanelInfo(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfoBase_Common(), ALIGN_DISTRIBUTE_TOOL::GetSelections(), PCB_SELECTION_CONDITIONS::HasLockedItems(), PCB_SELECTION_CONDITIONS::HasUnlockedItems(), ROUTER_TOOL::InlineDrag(), GENERAL_COLLECTOR::Inspect(), PCB_CONTROL::InteractiveDelete(), BOARD_ITEM::IsLocked(), PAD::IsLocked(), PCB_SELECTION_TOOL::itemPassesFilter(), CADSTAR_PCB_ARCHIVE_LOADER::makeTracksFromShapes(), TRACKS_CLEANER::mergeCollinearSegments(), PCB_POINT_EDITOR::OnSelectionChange(), ZONE_SETTINGS::operator<<(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), processTextItem(), PCB_SELECTION_TOOL::RequestSelection(), PCB_SHAPE::Serialize(), PCB_TEXT::Serialize(), PCB_TRACK::Serialize(), PCB_ARC::Serialize(), PCB_VIA::Serialize(), PNS_KICAD_IFACE_BASE::syncArc(), PNS_KICAD_IFACE_BASE::syncTrack(), PNS_KICAD_IFACE_BASE::syncVia(), DIALOG_REFERENCE_IMAGE_PROPERTIES::TransferDataToWindow(), DIALOG_TEXTBOX_PROPERTIES::TransferDataToWindow(), BOARD_ITEM::ViewGetLayers(), PCB_SHAPE::ViewGetLayers(), PCB_TEXT::ViewGetLayers(), PCB_TEXTBOX::ViewGetLayers(), PCB_TRACK::ViewGetLayers(), and PCB_VIA::ViewGetLayers().

◆ IsModified()

bool EDA_ITEM::IsModified ( ) const
inlineinherited

Definition at line 106 of file eda_item.h.

References IS_CHANGED, and EDA_ITEM::m_flags.

Referenced by PCB_EDIT_FRAME::OpenProjectFiles().

◆ IsMoving()

◆ IsNew()

◆ IsOnCopperLayer()

bool ZONE::IsOnCopperLayer ( ) const
overridevirtual

◆ IsOnLayer()

bool ZONE::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 375 of file zone.cpp.

References m_layerSet.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::addItemToRTrees(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawZone(), BOARD_INSPECTION_TOOL::InspectClearance(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones().

◆ IsReplaceable()

virtual bool EDA_ITEM::IsReplaceable ( ) const
inlinevirtualinherited

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

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

Reimplemented in SCH_FIELD, SCH_LABEL, SCH_SHEET, SCH_SHEET_PIN, SCH_SYMBOL, SCH_TEXT, and SCH_TEXTBOX.

Definition at line 415 of file eda_item.h.

Referenced by EDA_ITEM::Matches().

◆ IsRollover()

bool EDA_ITEM::IsRollover ( ) const
inlineinherited

Definition at line 114 of file eda_item.h.

References IS_MOVING, IS_ROLLOVER, and EDA_ITEM::m_flags.

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

◆ IsSCH_ITEM()

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

Definition at line 99 of file view_item.h.

◆ IsSelected()

bool EDA_ITEM::IsSelected ( ) const
inlineinherited

Definition at line 110 of file eda_item.h.

References EDA_ITEM::m_flags, and SELECTED.

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

◆ IsShownAsBitmap()

bool EDA_ITEM::IsShownAsBitmap ( ) const
inlineinherited

Definition at line 168 of file eda_item.h.

References IS_SHOWN_AS_BITMAP, and EDA_ITEM::m_flags.

◆ IsSideSpecific()

◆ IsTeardropArea()

◆ IsTented()

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

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

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

Reimplemented in PCB_VIA.

Definition at line 172 of file board_item.h.

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

◆ IsType()

◆ Iterate()

SHAPE_POLY_SET::ITERATOR ZONE::Iterate ( )
inline

Return an iterator to visit all points of the zone's main outline without holes.

Returns
an iterator to visit the zone vertices without holes.

Definition at line 526 of file zone.h.

References SHAPE_POLY_SET::Iterate(), and m_Poly.

◆ IterateForward() [1/2]

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

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

Definition at line 296 of file eda_item.h.

References EDA_ITEM::Visit().

Referenced by GERBER_FILE_IMAGE::Visit().

◆ IterateForward() [2/2]

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

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

Definition at line 316 of file eda_item.h.

References EDA_ITEM::Visit().

◆ IterateWithHoles()

SHAPE_POLY_SET::ITERATOR ZONE::IterateWithHoles ( )
inline

Return an iterator to visit all points of the zone's main outline with holes.

Returns
an iterator to visit the zone vertices with holes.

Definition at line 536 of file zone.h.

References SHAPE_POLY_SET::IterateWithHoles(), and m_Poly.

Referenced by DSN::SPECCTRA_DB::makeIMAGE().

◆ layerMaskDescribe()

wxString BOARD_ITEM::layerMaskDescribe ( ) const
protectedvirtualinherited

◆ Matches() [1/2]

bool ZONE::Matches ( const EDA_SEARCH_DATA aSearchData,
void *  aAuxData 
) const
inlineoverridevirtual

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

Definition at line 135 of file zone.h.

References GetZoneName(), and EDA_ITEM::Matches().

Referenced by DIALOG_FIND::search(), and ZONE_SEARCH_HANDLER::Search().

◆ Matches() [2/2]

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

Compare aText against search criteria in aSearchData.

This is a helper function for simplify derived class logic.

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

Definition at line 126 of file eda_item.cpp.

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

◆ Mirror()

void ZONE::Mirror ( const VECTOR2I aMirrorRef,
FLIP_DIRECTION  aFlipDirection 
)
overridevirtual

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

Parameters
aMirrorRefis axis position
aFlipDirectionis the direction of the flip.

Reimplemented from BOARD_ITEM.

Definition at line 788 of file zone.cpp.

References HatchBorder(), m_FilledPolysList, m_Poly, and SHAPE_POLY_SET::Mirror().

Referenced by Flip().

◆ Move()

void ZONE::Move ( const VECTOR2I offset)
overridevirtual

Move the outlines.

Parameters
offsetis moving vector

Reimplemented from BOARD_ITEM.

Definition at line 701 of file zone.cpp.

References BOARD_ITEM::GetBoard(), HatchBorder(), m_FilledPolysList, m_Poly, BOARD::m_ZoneBBoxCache, and SHAPE_POLY_SET::Move().

◆ MoveEdge()

void ZONE::MoveEdge ( const VECTOR2I offset,
int  aEdge 
)

Move the outline Edge.

Parameters
offsetis moving vector
aEdgeis start point of the outline edge

Definition at line 741 of file zone.cpp.

References SHAPE_POLY_SET::CVertex(), SHAPE_POLY_SET::GetNeighbourIndexes(), HatchBorder(), m_Poly, SetNeedRefill(), and SHAPE_POLY_SET::SetVertex().

◆ NeedRefill()

bool ZONE::NeedRefill ( ) const
inline

Definition at line 264 of file zone.h.

References m_needRefill.

◆ NewHole()

void ZONE::NewHole ( )
inline

Create a new hole on the zone; i.e., a new contour on the zone's outline.

Definition at line 590 of file zone.h.

References m_Poly, and SHAPE_POLY_SET::NewHole().

Referenced by PCB_IO_EAGLE::loadPlain(), and PCB_IO_EAGLE::packageCircle().

◆ Normalize()

virtual void BOARD_ITEM::Normalize ( )
inlinevirtualinherited

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

Reimplemented in PCB_SHAPE, and PCB_TABLE.

Definition at line 373 of file board_item.h.

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

◆ NormalizeForCompare()

virtual void BOARD_ITEM::NormalizeForCompare ( )
inlinevirtualinherited

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

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

Reimplemented in PCB_SHAPE.

Definition at line 380 of file board_item.h.

References BOARD_ITEM::Normalize().

◆ operator<()

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

Test if another item is less than this object.

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

Definition at line 252 of file eda_item.cpp.

References EDA_ITEM::GetClass().

◆ operator=()

ZONE & ZONE::operator= ( const ZONE aOther)

Definition at line 99 of file zone.cpp.

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

◆ operator==() [1/2]

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

Implements BOARD_ITEM.

Definition at line 1442 of file zone.cpp.

References EDA_ITEM::Type().

◆ operator==() [2/2]

◆ Outline() [1/2]

◆ Outline() [2/2]

const SHAPE_POLY_SET * ZONE::Outline ( ) const
inline

Definition at line 338 of file zone.h.

References m_Poly.

◆ RemoveAllContours()

void ZONE::RemoveAllContours ( void  )
inline

Definition at line 551 of file zone.h.

References m_Poly, and SHAPE_POLY_SET::RemoveAllContours().

Referenced by MULTICHANNEL_TOOL::copyRuleAreaContents().

◆ RemoveCutout()

void ZONE::RemoveCutout ( int  aOutlineIdx,
int  aHoleIdx 
)

Remove a cutout from the zone.

Parameters
aOutlineIdxis the zone outline the hole belongs to
aHoleIdxis the hole in the outline to remove

Definition at line 799 of file zone.cpp.

References SHAPE_POLY_SET::BooleanAdd(), SHAPE_POLY_SET::Hole(), SHAPE_POLY_SET::HoleCount(), m_Poly, SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::PM_FAST, and SetNeedRefill().

Referenced by EDIT_TOOL::DeleteItems().

◆ RenderAsBitmap()

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

Reimplemented in SCH_ITEM.

Definition at line 158 of file eda_item.h.

◆ Replace() [1/2]

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

Perform a text replace using the find and replace criteria in aSearchData on items that support text find and replace.

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

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

Reimplemented in SCH_LABEL_BASE, SCH_PIN, SCH_TEXT, SCH_TEXTBOX, SCH_FIELD, and SCH_SHEET_PIN.

Definition at line 404 of file eda_item.h.

◆ Replace() [2/2]

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

Perform a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace.

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

Definition at line 189 of file eda_item.cpp.

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

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

◆ Rotate()

void ZONE::Rotate ( const VECTOR2I aCentre,
const EDA_ANGLE aAngle 
)
overridevirtual

Rotate the outlines.

Parameters
aCentreis rot centre

Reimplemented from BOARD_ITEM.

Definition at line 756 of file zone.cpp.

References HatchBorder(), m_FilledPolysList, m_Poly, and SHAPE_POLY_SET::Rotate().

Referenced by PCB_IO_EAGLE::loadPlain(), DSN::SPECCTRA_DB::makeIMAGE(), and PCB_IO_EAGLE::packageRectangle().

◆ RunOnChildren()

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

Invoke a function on all children.

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

Reimplemented in FOOTPRINT, PCB_GROUP, and PCB_TABLE.

Definition at line 206 of file board_item.h.

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

◆ RunOnDescendants()

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

◆ SameNet()

bool ZONE::SameNet ( const ZONE aOther) const

Definition at line 224 of file zone.cpp.

References BOARD_CONNECTED_ITEM::GetNetCode().

◆ Serialize()

virtual void SERIALIZABLE::Serialize ( google::protobuf::Any &  aContainer) const
inlinevirtualinherited

Serializes this object to the given Any message.

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

Parameters
aContainerwill be filled with a message describing this object

Reimplemented in SCH_LABEL, SCH_DIRECTIVE_LABEL, SCH_GLOBALLABEL, SCH_HIERLABEL, SCH_LINE, BOARD_STACKUP, FOOTPRINT, PAD, PADSTACK, PCB_FIELD, PCB_SHAPE, PCB_TEXT, PCB_TRACK, PCB_ARC, and PCB_VIA.

Definition at line 43 of file serializable.h.

Referenced by API_HANDLER_SCH::handleCreateUpdateItemsInternal(), and API_HANDLER_PCB::handleCreateUpdateItemsInternal().

◆ 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

◆ SetAssignedPriority()

void ZONE::SetAssignedPriority ( unsigned  aPriority)
inline

◆ SetBorderDisplayStyle()

void ZONE::SetBorderDisplayStyle ( ZONE_BORDER_DISPLAY_STYLE  aBorderHatchStyle,
int  aBorderHatchPitch,
bool  aRebuilBorderdHatch 
)

Set all hatch parameters for the zone.

Parameters
aBorderHatchStyleis the style of the hatch, specified as one of HATCH_STYLE possible values.
aBorderHatchPitchis the hatch pitch in iu.
aRebuildBorderHatchis a flag to indicate whether to re-hatch after having set the previous parameters.

Definition at line 919 of file zone.cpp.

References HatchBorder(), m_borderStyle, EDA_IU_SCALE::mmToIU(), pcbIUScale, SetBorderHatchPitch(), ZONE_BORDER_HATCH_MAXDIST_MM, and ZONE_BORDER_HATCH_MINDIST_MM.

Referenced by PCAD2KICAD::PCAD_POLYGON::AddToBoard(), TEARDROP_MANAGER::createTeardrop(), ZONE_SETTINGS::ExportSetting(), PCB_IO_EAGLE::loadPlain(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePolygon(), and PCB_IO_EAGLE::packageRectangle().

◆ SetBorderHatchPitch()

void ZONE::SetBorderHatchPitch ( int  aPitch)

Set the hatch pitch parameter for the zone.

Parameters
aPitchis the hatch pitch in iu.

Definition at line 934 of file zone.cpp.

References m_borderHatchPitch.

Referenced by SetBorderDisplayStyle().

◆ SetBrightened()

◆ SetCornerPosition()

void ZONE::SetCornerPosition ( int  aCornerIndex,
const VECTOR2I new_pos 
)
inline

◆ SetCornerRadius()

void ZONE::SetCornerRadius ( unsigned int  aRadius)

Definition at line 433 of file zone.cpp.

References m_cornerRadius, and SetNeedRefill().

Referenced by ZONE_SETTINGS::ExportSetting().

◆ SetCornerSmoothingType()

void ZONE::SetCornerSmoothingType ( int  aType)
inline

Definition at line 661 of file zone.h.

References m_cornerSmoothingType.

Referenced by ZONE_SETTINGS::ExportSetting().

◆ SetDoNotAllowCopperPour()

◆ SetDoNotAllowFootprints()

◆ SetDoNotAllowPads()

◆ SetDoNotAllowTracks()

◆ SetDoNotAllowVias()

◆ SetFilledPolysList()

void ZONE::SetFilledPolysList ( PCB_LAYER_ID  aLayer,
const SHAPE_POLY_SET aPolysList 
)
inline

Set the list of filled polygons.

Definition at line 638 of file zone.h.

References m_FilledPolysList.

Referenced by TEARDROP_MANAGER::createTeardrop(), ZONE_FILLER::Fill(), Flip(), CADSTAR_PCB_ARCHIVE_LOADER::loadCoppers(), and ALTIUM_PCB::ParseRegions6Data().

◆ SetFillFlag()

void ZONE::SetFillFlag ( PCB_LAYER_ID  aLayer,
bool  aFlag 
)
inline

Definition at line 259 of file zone.h.

References m_fillFlags, and BASE_SET::set().

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::buildRTrees(), and ZONE_FILLER::Fill().

◆ SetFillMode()

◆ SetFlags()

void EDA_ITEM::SetFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 127 of file eda_item.h.

References EDA_ITEM::m_flags.

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

◆ SetForcedTransparency()

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

◆ SetForceVisible()

void EDA_ITEM::SetForceVisible ( bool  aEnable)
inlineinherited

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

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

Definition at line 194 of file eda_item.h.

References EDA_ITEM::m_forceVisible.

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

◆ SetFPRelativePosition()

◆ SetHatchBorderAlgorithm()

void ZONE::SetHatchBorderAlgorithm ( int  aAlgo)
inline

Definition at line 304 of file zone.h.

References m_hatchBorderAlgorithm.

Referenced by ZONE_SETTINGS::ExportSetting().

◆ SetHatchGap()

void ZONE::SetHatchGap ( int  aStep)
inline

◆ SetHatchHoleMinArea()

void ZONE::SetHatchHoleMinArea ( double  aPct)
inline

Definition at line 301 of file zone.h.

References m_hatchHoleMinArea.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetHatchOrientation()

void ZONE::SetHatchOrientation ( const EDA_ANGLE aStep)
inline

◆ SetHatchSmoothingLevel()

void ZONE::SetHatchSmoothingLevel ( int  aLevel)
inline

Definition at line 295 of file zone.h.

References m_hatchSmoothingLevel.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetHatchSmoothingValue()

void ZONE::SetHatchSmoothingValue ( double  aValue)
inline

Definition at line 298 of file zone.h.

References m_hatchSmoothingValue.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetHatchStyle()

void ZONE::SetHatchStyle ( ZONE_BORDER_DISPLAY_STYLE  aStyle)
inline

◆ SetHatchThickness()

void ZONE::SetHatchThickness ( int  aThickness)
inline

◆ SetIsFilled()

◆ SetIsIsland()

void ZONE::SetIsIsland ( PCB_LAYER_ID  aLayer,
int  aPolyIdx 
)
inline

Definition at line 652 of file zone.h.

References m_insulatedIslands.

◆ SetIsKnockout()

◆ SetIslandRemovalMode()

◆ SetIsRuleArea()

◆ SetIsShownAsBitmap()

void EDA_ITEM::SetIsShownAsBitmap ( bool  aBitmap)
inlineinherited

Definition at line 160 of file eda_item.h.

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

◆ SetLayer()

void ZONE::SetLayer ( PCB_LAYER_ID  aLayer)
overridevirtual

◆ SetLayerSet()

◆ SetLocalClearance()

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

◆ SetLocalFlags()

void ZONE::SetLocalFlags ( int  aFlags)
inline

Definition at line 335 of file zone.h.

References m_localFlgs.

Referenced by InitDataFromSrcInCopyCtor(), and ZONE().

◆ SetLocalRatsnestVisible()

void BOARD_CONNECTED_ITEM::SetLocalRatsnestVisible ( bool  aVisible)
inlineinherited

◆ SetLocked()

◆ SetMinIslandArea()

void ZONE::SetMinIslandArea ( long long int  aArea)
inline

◆ SetMinThickness()

◆ SetModified()

◆ SetNeedRefill()

◆ SetNet()

◆ SetNetCode() [1/2]

void BOARD_CONNECTED_ITEM::SetNetCode ( int  aNetCode)
inlineinherited

Definition at line 108 of file board_connected_item.h.

References BOARD_CONNECTED_ITEM::SetNetCode().

◆ SetNetCode() [2/2]

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

◆ SetOutline()

void ZONE::SetOutline ( SHAPE_POLY_SET aOutline)
inline

Definition at line 340 of file zone.h.

References m_Poly.

Referenced by FABMASTER::loadZone().

◆ SetPadConnection()

◆ SetParent()

virtual void EDA_ITEM::SetParent ( EDA_ITEM aParent)
inlinevirtualinherited

Reimplemented in LIB_SYMBOL, and NETINFO_ITEM.

Definition at line 104 of file eda_item.h.

References EDA_ITEM::m_parent.

Referenced by BOARD::Add(), FOOTPRINT::Add(), PCB_TABLE::AddCell(), SCH_TABLE::AddCell(), LIB_SYMBOL::AddDrawItem(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), BOARD_NETLIST_UPDATER::addNewFootprint(), SCH_SHEET::AddPin(), PAD::AddPrimitive(), PADSTACK::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(), PCB_EDIT_FRAME::ExchangeFootprint(), PAD_TOOL::explodePad(), LIB_SYMBOL::Flatten(), PCB_IO_KICAD_SEXPR::FootprintSave(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), CADSTAR_SCH_ARCHIVE_LOADER::getKiCadSchText(), PCB_TABLE::InsertCell(), SCH_TABLE::InsertCell(), LIB_SYMBOL::LIB_SYMBOL(), LTSPICE_SCHEMATIC::Load(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadAliases(), CADSTAR_SCH_ARCHIVE_LOADER::loadChildSheets(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), SCH_IO_KICAD_SEXPR::loadHierarchy(), SCH_IO_KICAD_LEGACY::loadHierarchy(), KI_TEST::LoadHierarchy(), SCH_IO_EAGLE::loadSymbolCircle(), SCH_IO_EAGLE::loadSymbolPolyLine(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_IO_EAGLE::loadSymbolWire(), PCB_POINT_EDITOR::OnSelectionChange(), LIB_SYMBOL::operator=(), SCH_IO_KICAD_SEXPR_PARSER::parseLibSymbol(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), SCH_EDITOR_CONTROL::Paste(), SYMBOL_EDITOR_EDIT_TOOL::Paste(), PCB_CONTROL::Paste(), pasteFootprintItemsToFootprintEditor(), BOARD_EDITOR_CONTROL::PlaceFootprint(), BACK_ANNOTATE::processNetNameChange(), PAD::Recombine(), SCH_IO_LIB_CACHE::removeSymbol(), SCH_EDIT_TOOL::RepeatDrawItem(), SaveCopyOfZones(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), CLIPBOARD_IO::SaveSelection(), SCH_SHEET_PIN::SCH_SHEET_PIN(), LIB_SYMBOL::SetFields(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), FOOTPRINT::swapData(), PCB_TABLE::swapData(), SCH_LABEL_BASE::SwapData(), SCH_SHEET::SwapData(), SCH_SYMBOL::SwapData(), SCH_TABLE::SwapData(), BOARD_ITEM::SwapItemData(), SCH_SYMBOL::SyncOtherUnits(), and SCH_DRAWING_TOOLS::TwoClickPlace().

◆ SetParentGroup()

◆ SetPosition()

void ZONE::SetPosition ( const VECTOR2I aPos)
inlineoverridevirtual

Reimplemented from EDA_ITEM.

Definition at line 110 of file zone.h.

◆ SetRuleAreaPlacementEnabled()

void ZONE::SetRuleAreaPlacementEnabled ( bool  aEnabled)
inline

Definition at line 735 of file zone.h.

References m_ruleAreaPlacementEnabled.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetRuleAreaPlacementSource()

void ZONE::SetRuleAreaPlacementSource ( const wxString &  aSource)
inline

Definition at line 740 of file zone.h.

References m_ruleAreaPlacementSource.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetRuleAreaPlacementSourceType()

void ZONE::SetRuleAreaPlacementSourceType ( RULE_AREA_PLACEMENT_SOURCE_TYPE  aType)
inline

Definition at line 736 of file zone.h.

References m_ruleAreaPlacementSourceType.

Referenced by ZONE_SETTINGS::ExportSetting(), and ZONE_DESC::ZONE_DESC().

◆ SetSelected()

◆ SetSelectedCorner()

void ZONE::SetSelectedCorner ( int  aCorner)
inline

Definition at line 317 of file zone.h.

References SHAPE_POLY_SET::GetRelativeIndices(), m_CornerSelection, and m_Poly.

◆ SetStroke()

void BOARD_ITEM::SetStroke ( const STROKE_PARAMS aStroke)
virtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 94 of file board_item.cpp.

References EDA_ITEM::GetClass().

◆ SetTeardropAllowSpanTwoTracks()

void BOARD_CONNECTED_ITEM::SetTeardropAllowSpanTwoTracks ( bool  aAllow)
inlineinherited

◆ SetTeardropAreaType()

void ZONE::SetTeardropAreaType ( TEARDROP_TYPE  aType)
inline

Set the type of teardrop if the zone is a teardrop area for non teardrop area, the type must be TEARDROP_TYPE::TD_NONE.

Definition at line 702 of file zone.h.

References m_teardropType.

Referenced by TEARDROP_MANAGER::createTeardrop(), and ZONE_SETTINGS::ExportSetting().

◆ SetTeardropBestLengthRatio()

void BOARD_CONNECTED_ITEM::SetTeardropBestLengthRatio ( double  aRatio)
inlineinherited

◆ SetTeardropBestWidthRatio()

void BOARD_CONNECTED_ITEM::SetTeardropBestWidthRatio ( double  aRatio)
inlineinherited

◆ SetTeardropCurved()

void BOARD_CONNECTED_ITEM::SetTeardropCurved ( bool  aCurve)
inlineinherited

◆ SetTeardropMaxLength()

void BOARD_CONNECTED_ITEM::SetTeardropMaxLength ( int  aMaxLength)
inlineinherited

◆ SetTeardropMaxTrackWidth()

void BOARD_CONNECTED_ITEM::SetTeardropMaxTrackWidth ( double  aRatio)
inlineinherited

◆ SetTeardropMaxWidth()

void BOARD_CONNECTED_ITEM::SetTeardropMaxWidth ( int  aMaxWidth)
inlineinherited

◆ SetTeardropPreferZoneConnections()

void BOARD_CONNECTED_ITEM::SetTeardropPreferZoneConnections ( bool  aPrefer)
inlineinherited

◆ SetTeardropsEnabled()

void BOARD_CONNECTED_ITEM::SetTeardropsEnabled ( bool  aEnable)
inlineinherited

◆ SetThermalReliefGap()

void ZONE::SetThermalReliefGap ( int  aThermalReliefGap)
inline

◆ SetThermalReliefSpokeWidth()

void ZONE::SetThermalReliefSpokeWidth ( int  aThermalReliefSpokeWidth)
inline

◆ SetX()

void BOARD_ITEM::SetX ( int  aX)
inlineinherited

◆ SetY()

void BOARD_ITEM::SetY ( int  aY)
inlineinherited

◆ SetZoneName()

◆ Similarity()

double ZONE::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 1520 of file zone.cpp.

References GetAssignedPriority(), GetCornerPosition(), GetCornerRadius(), GetCornerSmoothingType(), GetDoNotAllowCopperPour(), GetDoNotAllowFootprints(), GetDoNotAllowPads(), GetDoNotAllowTracks(), GetDoNotAllowVias(), GetIsRuleArea(), GetLayerSet(), GetMinThickness(), BOARD_CONNECTED_ITEM::GetNetCode(), GetNumCorners(), BOARD_CONNECTED_ITEM::GetTeardropParams(), alg::longest_common_subset(), 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 433 of file eda_item.h.

◆ StyleFromSettings()

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

Reimplemented in PCB_SHAPE, PCB_TEXT, and PCB_TEXTBOX.

Definition at line 330 of file board_item.h.

◆ swapData()

void ZONE::swapData ( BOARD_ITEM aImage)
overrideprotectedvirtual

Reimplemented from BOARD_ITEM.

Definition at line 1107 of file zone.cpp.

References PCB_ZONE_T, and EDA_ITEM::Type().

◆ SwapItemData()

void BOARD_ITEM::SwapItemData ( BOARD_ITEM aImage)
inherited

Swap data between aItem and aImage.

aItem and aImage should have the same type.

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

Parameters
aImagethe item image which contains data to swap.

Definition at line 226 of file board_item.cpp.

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

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

◆ TransformShapeToPolygon()

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

Convert the zone shape to a closed polygon Used in filling zones calculations Circles and arcs are approximated by segments.

Parameters
aLayeris the layer of the filled zone to retrieve
aBufferis a buffer to store the polygon
aClearanceis the clearance around the pad
aErroris the maximum deviation from true circle
ignoreLineWidthis used for edge cut items where the line width is only for visualization

Reimplemented from BOARD_ITEM.

Definition at line 1405 of file zone.cpp.

References SHAPE_POLY_SET::Append(), ERROR_OUTSIDE, SHAPE_POLY_SET::InflateWithLinkedHoles(), m_FilledPolysList, and SHAPE_POLY_SET::PM_FAST.

Referenced by PCB_BASE_FRAME::FocusOnItems().

◆ TransformSmoothedOutlineToPolygon()

void ZONE::TransformSmoothedOutlineToPolygon ( SHAPE_POLY_SET aBuffer,
int  aClearance,
int  aError,
ERROR_LOC  aErrorLoc,
SHAPE_POLY_SET aBoardOutline 
) const

Convert the outlines shape to a polygon with no holes inflated (optional) by max( aClearanceValue, the zone clearance) (holes are linked to external outline by overlapping segments) Used in filling zones calculations Circles (vias) and arcs (ends of tracks) are approximated by segments.

Parameters
aBufferis a buffer to store the polygon
aClearanceis the min clearance around outlines
aBoardOutlineis the board outline (if a valid one exists; nullptr otherwise)

Definition at line 1365 of file zone.cpp.

References SHAPE_POLY_SET::Append(), ARC_HIGH_DEF, BuildSmoothedPoly(), ERROR_OUTSIDE, SHAPE_POLY_SET::Fracture(), BOARD_ITEM::GetBoard(), BOARD::GetDesignSettings(), GetFirstLayer(), SHAPE_POLY_SET::Inflate(), BOARD_DESIGN_SETTINGS::m_MaxError, and SHAPE_POLY_SET::PM_FAST.

◆ TransformSolidAreasShapesToPolygon()

void ZONE::TransformSolidAreasShapesToPolygon ( PCB_LAYER_ID  aLayer,
SHAPE_POLY_SET aBuffer 
) const

Convert solid areas full shapes to polygon set (the full shape is the polygon area with a thick outline) Used in 3D view Arcs (ends of segments) are approximated by segments.

Parameters
aLayeris the layer of the zone to retrieve
aBuffer= a buffer to store the polygons
aError= Maximum error allowed between true arc and polygon approx

Definition at line 1435 of file zone.cpp.

References SHAPE_POLY_SET::Append(), and m_FilledPolysList.

◆ Type()

KICAD_T EDA_ITEM::Type ( ) const
inlineinherited

Returns the type of object.

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

Returns
the type of object.

Definition at line 101 of file eda_item.h.

References EDA_ITEM::m_structType.

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

◆ UnFill()

bool ZONE::UnFill ( )

Removes the zone filling.

Returns
true if a previous filling is removed, false if no change (when no filling found).

Definition at line 230 of file zone.cpp.

References m_FilledPolysList, m_fillFlags, m_insulatedIslands, m_isFilled, and BASE_SET::reset().

Referenced by EDIT_TOOL::DeleteItems(), SetLayerSet(), and ZONE_POINT_EDIT_BEHAVIOR::UpdateItem().

◆ UnHatchBorder()

void ZONE::UnHatchBorder ( )

Clear the zone's hatch.

Definition at line 940 of file zone.cpp.

References m_borderHatchLines.

Referenced by MULTICHANNEL_TOOL::copyRuleAreaContents(), and HatchBorder().

◆ ViewBBox()

◆ ViewDraw()

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

Draw the parts of the object belonging to layer aLayer.

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

Parameters
aLayeris the current drawing layer.
aViewis a pointer to the VIEW device we are drawing on.

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

Definition at line 119 of file view_item.h.

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

◆ ViewGetLayers()

void ZONE::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 332 of file zone.cpp.

References IsConflicting(), LAYER_CONFLICTS_SHADOW, LAYER_ZONE_START, m_layerSet, and LSET::RunOnLayers().

◆ ViewGetLOD()

double ZONE::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 348 of file zone.cpp.

References B_Cu, BOARD_ITEM::GetParentFootprint(), KIGFX::VIEW::IsLayerVisible(), LAYER_FOOTPRINTS_BK, LAYER_FOOTPRINTS_FR, and LAYER_ZONES.

◆ viewPrivData()

◆ Visit()

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

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

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

Parameters
inspectorAn INSPECTOR instance to use in the inspection.
testDataArbitrary data used by the inspector.
aScanTypesWhich KICAD_T types are of interest and the order in which they should be processed.
Returns
#SEARCH_RESULT SEARCH_QUIT if the Iterator is to stop the scan, else #SCAN_CONTINUE, and determined by the inspector.

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

Definition at line 94 of file eda_item.cpp.

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

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

◆ XorFlags()

void EDA_ITEM::XorFlags ( EDA_ITEM_FLAGS  aMask)
inlineinherited

Definition at line 128 of file eda_item.h.

References EDA_ITEM::m_flags.

Referenced by EE_SELECTION_TOOL::selectMultiple().

Member Data Documentation

◆ m_area

double ZONE::m_area
protected

◆ m_borderHatchLines

std::vector<SEG> ZONE::m_borderHatchLines
protected

Definition at line 944 of file zone.h.

Referenced by GetHatchLines(), HatchBorder(), InitDataFromSrcInCopyCtor(), and UnHatchBorder().

◆ m_borderHatchPitch

int ZONE::m_borderHatchPitch
protected

◆ m_borderStyle

ZONE_BORDER_DISPLAY_STYLE ZONE::m_borderStyle
protected

◆ m_cornerRadius

unsigned int ZONE::m_cornerRadius
protected

◆ m_CornerSelection

SHAPE_POLY_SET::VERTEX_INDEX* ZONE::m_CornerSelection
protected

The index of the corner being moved or nullptr if no corner is selected.

Definition at line 922 of file zone.h.

Referenced by GetItemDescription(), GetMsgPanelInfo(), GetSelectedCorner(), InitDataFromSrcInCopyCtor(), SetSelectedCorner(), and ~ZONE().

◆ m_cornerSmoothingType

int ZONE::m_cornerSmoothingType
protected

◆ m_doNotAllowCopperPour

bool ZONE::m_doNotAllowCopperPour
protected

◆ m_doNotAllowFootprints

bool ZONE::m_doNotAllowFootprints
protected

◆ m_doNotAllowPads

bool ZONE::m_doNotAllowPads
protected

◆ m_doNotAllowTracks

bool ZONE::m_doNotAllowTracks
protected

◆ m_doNotAllowVias

bool ZONE::m_doNotAllowVias
protected

◆ m_filledPolysHash

std::map<PCB_LAYER_ID, HASH_128> ZONE::m_filledPolysHash
protected

A hash value used in zone filling calculations to see if the filled areas are up to date.

Definition at line 940 of file zone.h.

Referenced by BuildHashValue(), GetHashValue(), InitDataFromSrcInCopyCtor(), and SetLayerSet().

◆ m_FilledPolysList

◆ m_fillFlags

LSET ZONE::m_fillFlags
protected

Temp variables used while filling.

Definition at line 937 of file zone.h.

Referenced by GetFillFlag(), SetFillFlag(), and UnFill().

◆ m_fillMode

ZONE_FILL_MODE ZONE::m_fillMode
protected

How to fill areas:

ZONE_FILL_MODE::POLYGONS => use solid polygons ZONE_FILL_MODE::HATCH_PATTERN => use a grid pattern as shape

Definition at line 908 of file zone.h.

Referenced by GetFillMode(), GetMsgPanelInfo(), InitDataFromSrcInCopyCtor(), SetFillMode(), and SetMinThickness().

◆ m_fillVersion

int ZONE::m_fillVersion
protected

Definition at line 878 of file zone.h.

Referenced by InitDataFromSrcInCopyCtor(), and ZONE().

◆ m_flags

◆ m_forcedTransparency

double KIGFX::VIEW_ITEM::m_forcedTransparency
privateinherited

Additional transparency for diff'ing items.

Definition at line 172 of file view_item.h.

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

◆ m_forceVisible

◆ m_group

PCB_GROUP* BOARD_ITEM::m_group
protectedinherited

◆ m_hatchBorderAlgorithm

int ZONE::m_hatchBorderAlgorithm
protected

◆ m_hatchGap

int ZONE::m_hatchGap
protected

Definition at line 910 of file zone.h.

Referenced by GetHatchGap(), InitDataFromSrcInCopyCtor(), SetHatchGap(), and SetMinThickness().

◆ m_hatchHoleMinArea

double ZONE::m_hatchHoleMinArea
protected

Definition at line 917 of file zone.h.

Referenced by GetHatchHoleMinArea(), InitDataFromSrcInCopyCtor(), and SetHatchHoleMinArea().

◆ m_hatchOrientation

EDA_ANGLE ZONE::m_hatchOrientation
protected

Definition at line 911 of file zone.h.

Referenced by GetHatchOrientation(), InitDataFromSrcInCopyCtor(), and SetHatchOrientation().

◆ m_hatchSmoothingLevel

int ZONE::m_hatchSmoothingLevel
protected

◆ m_hatchSmoothingValue

double ZONE::m_hatchSmoothingValue
protected

◆ m_hatchThickness

int ZONE::m_hatchThickness
protected

◆ m_insulatedIslands

std::map<PCB_LAYER_ID, std::set<int> > ZONE::m_insulatedIslands
protected

For each layer, a set of insulated islands that were not removed.

Definition at line 947 of file zone.h.

Referenced by InitDataFromSrcInCopyCtor(), IsIsland(), SetIsIsland(), SetLayerSet(), and UnFill().

◆ m_isBOARD_ITEM

bool KIGFX::VIEW_ITEM::m_isBOARD_ITEM
privateinherited

Definition at line 170 of file view_item.h.

◆ m_isFilled

bool ZONE::m_isFilled
protected

True when a zone was filled, false after deleting the filled areas.

Definition at line 889 of file zone.h.

Referenced by InitDataFromSrcInCopyCtor(), IsFilled(), SetIsFilled(), and UnFill().

◆ m_isKnockout

bool BOARD_ITEM::m_isKnockout
protectedinherited

◆ m_islandRemovalMode

ISLAND_REMOVAL_MODE ZONE::m_islandRemovalMode
protected

Definition at line 880 of file zone.h.

Referenced by GetIslandRemovalMode(), InitDataFromSrcInCopyCtor(), and SetIslandRemovalMode().

◆ m_isLocked

◆ m_isRuleArea

bool ZONE::m_isRuleArea
protected

Definition at line 851 of file zone.h.

Referenced by GetIsRuleArea(), GetLocalClearance(), InitDataFromSrcInCopyCtor(), and SetIsRuleArea().

◆ m_isSCH_ITEM

bool KIGFX::VIEW_ITEM::m_isSCH_ITEM
privateinherited

Definition at line 169 of file view_item.h.

◆ m_layer

◆ m_layerSet

◆ m_localFlgs

int ZONE::m_localFlgs
protected

Definition at line 924 of file zone.h.

Referenced by GetLocalFlags(), and SetLocalFlags().

◆ m_localRatsnestVisible

bool BOARD_CONNECTED_ITEM::m_localRatsnestVisible
privateinherited

◆ m_lock

std::mutex ZONE::m_lock
protected

Lock used for multi-threaded filling on multi-layer zones.

Definition at line 953 of file zone.h.

Referenced by GetLock().

◆ m_minIslandArea

long long int ZONE::m_minIslandArea
protected

When island removal mode is set to AREA, islands below this area will be removed.

If this value is negative, all islands will be removed.

Definition at line 886 of file zone.h.

Referenced by GetMinIslandArea(), InitDataFromSrcInCopyCtor(), and SetMinIslandArea().

◆ m_needRefill

bool ZONE::m_needRefill
protected

False when a zone was refilled, true after changes in zone params.

m_needRefill = false does not imply filled areas are up to date, just the zone was refilled after edition, and does not need refilling

Definition at line 896 of file zone.h.

Referenced by InitDataFromSrcInCopyCtor(), NeedRefill(), SetNeedRefill(), and ZONE().

◆ m_netinfo

◆ m_outlinearea

double ZONE::m_outlinearea
protected

Definition at line 950 of file zone.h.

Referenced by CalculateOutlineArea(), GetOutlineArea(), and InitDataFromSrcInCopyCtor().

◆ m_PadConnection

ZONE_CONNECTION ZONE::m_PadConnection
protected

Definition at line 875 of file zone.h.

Referenced by GetPadConnection(), InitDataFromSrcInCopyCtor(), and SetPadConnection().

◆ m_parent

◆ m_Poly

◆ m_priority

unsigned ZONE::m_priority
protected

◆ m_ruleAreaPlacementEnabled

bool ZONE::m_ruleAreaPlacementEnabled
protected

Placement rule area data.

Definition at line 856 of file zone.h.

Referenced by GetRuleAreaPlacementEnabled(), InitDataFromSrcInCopyCtor(), and SetRuleAreaPlacementEnabled().

◆ m_ruleAreaPlacementSource

wxString ZONE::m_ruleAreaPlacementSource
protected

◆ m_ruleAreaPlacementSourceType

RULE_AREA_PLACEMENT_SOURCE_TYPE ZONE::m_ruleAreaPlacementSourceType
protected

◆ m_structType

KICAD_T EDA_ITEM::m_structType
privateinherited

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

See comment near SetType() regarding virtual functions.

Definition at line 496 of file eda_item.h.

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

◆ m_teardropParams

◆ m_teardropType

TEARDROP_TYPE ZONE::m_teardropType
protected

◆ m_thermalReliefGap

int ZONE::m_thermalReliefGap
protected

Definition at line 898 of file zone.h.

Referenced by GetThermalReliefGap(), InitDataFromSrcInCopyCtor(), and SetThermalReliefGap().

◆ m_thermalReliefSpokeWidth

int ZONE::m_thermalReliefSpokeWidth
protected

◆ m_Uuid

const KIID EDA_ITEM::m_Uuid
inherited

Definition at line 489 of file eda_item.h.

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

◆ m_viewPrivData

VIEW_ITEM_DATA* KIGFX::VIEW_ITEM::m_viewPrivData
privateinherited

◆ m_ZoneClearance

int ZONE::m_ZoneClearance
protected

Definition at line 876 of file zone.h.

Referenced by GetLocalClearance(), InitDataFromSrcInCopyCtor(), and SetLocalClearance().

◆ m_ZoneMinThickness

int ZONE::m_ZoneMinThickness
protected

◆ m_zoneName

wxString ZONE::m_zoneName
protected

An optional unique name for this zone, used for identifying it in DRC checking.

Definition at line 838 of file zone.h.

Referenced by GetMsgPanelInfo(), GetZoneName(), InitDataFromSrcInCopyCtor(), and SetZoneName().

◆ ZeroOffset

VECTOR2I BOARD_ITEM::ZeroOffset
staticinherited

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

Definition at line 180 of file board_item.h.

Referenced by BOARD::GetPosition().


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