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

A PADSTACK defines the characteristics of a single or multi-layer pad, in the IPC sense of the word. More...

#include <padstack.h>

Inheritance diagram for PADSTACK:
SERIALIZABLE

Classes

struct  COPPER_LAYER_PROPS
 The features of a padstack that can vary between copper layers All parameters are optional; leaving them un-set means "use parent/rule defaults" Pad clearances, margins, etc. More...
 
struct  DRILL_PROPS
 The properties of a padstack drill. More...
 
struct  MASK_LAYER_PROPS
 The features of a padstack that can vary on outer layers. More...
 
struct  POST_MACHINING_PROPS
 
struct  SHAPE_PROPS
 ! More...
 

Public Types

enum class  TYPE { NORMAL , VIA , MOUNTING }
 ! More...
 
enum class  MODE { NORMAL , FRONT_INNER_BACK , CUSTOM }
 ! Copper geometry mode: controls how many unique copper layer shapes this padstack has More...
 

Public Member Functions

 PADSTACK (BOARD_ITEM *aParent)
 
virtual ~PADSTACK ()=default
 
 PADSTACK (const PADSTACK &aOther)
 
PADSTACK & operator= (const PADSTACK &aOther)
 
bool operator== (const PADSTACK &aOther) const
 
bool operator!= (const PADSTACK &aOther) const
 
void Serialize (google::protobuf::Any &aContainer) const override
 Serializes this object to the given Any message.
 
bool Deserialize (const google::protobuf::Any &aContainer) override
 Deserializes the given protobuf message into this object.
 
void Serialize (kiapi::board::types::PadStack &aOutput) const
 
bool Deserialize (const kiapi::board::types::PadStack &aInput)
 
bool HasExplicitDefinitionForLayer (PCB_LAYER_ID aLayer) const
 Check if the padstack has an explicit definition for the given layer.
 
double Similarity (const PADSTACK &aOther) const
 Return a measure of how likely the other object is to represent the same object.
 
const LSET & LayerSet () const
 
LSET & LayerSet ()
 
void SetLayerSet (const LSET &aSet)
 
void FlipLayers (BOARD *aBoard)
 Flips the padstack layers in the case that the pad's parent footprint is flipped to the other side of the board.
 
PCB_LAYER_ID StartLayer () const
 
PCB_LAYER_ID EndLayer () const
 
MODE Mode () const
 
void SetMode (MODE aMode)
 
wxString Name () const
 ! Returns the name of this padstack in IPC-7351 format
 
const wxChar * CustomName () const
 
void SetCustomName (const wxString &aCustomName)
 
EDA_ANGLE GetOrientation () const
 
void SetOrientation (const EDA_ANGLE &aAngle)
 
DRILL_PROPS & Drill ()
 
const DRILL_PROPS & Drill () const
 
DRILL_PROPS & SecondaryDrill ()
 
const DRILL_PROPS & SecondaryDrill () const
 
DRILL_PROPS & TertiaryDrill ()
 
const DRILL_PROPS & TertiaryDrill () const
 
POST_MACHINING_PROPS & FrontPostMachining ()
 
const POST_MACHINING_PROPS & FrontPostMachining () const
 
POST_MACHINING_PROPS & BackPostMachining ()
 
const POST_MACHINING_PROPS & BackPostMachining () const
 
int GetMaxHoleSize () const
 
UNCONNECTED_LAYER_MODE UnconnectedLayerMode () const
 
void SetUnconnectedLayerMode (UNCONNECTED_LAYER_MODE aMode)
 
COPPER_LAYER_PROPS & CopperLayer (PCB_LAYER_ID aLayer)
 
const COPPER_LAYER_PROPS & CopperLayer (PCB_LAYER_ID aLayer) const
 
MASK_LAYER_PROPS & FrontOuterLayers ()
 
const MASK_LAYER_PROPS & FrontOuterLayers () const
 
MASK_LAYER_PROPS & BackOuterLayers ()
 
const MASK_LAYER_PROPS & BackOuterLayers () const
 
std::optional< bool > IsTented (PCB_LAYER_ID aSide) const
 Checks if this padstack is tented (covered in soldermask) on the given side.
 
std::optional< bool > IsCovered (PCB_LAYER_ID aSide) const
 
std::optional< bool > IsPlugged (PCB_LAYER_ID aSide) const
 
std::optional< bool > IsCapped () const
 
std::optional< bool > IsFilled () const
 
CUSTOM_SHAPE_ZONE_MODE CustomShapeInZoneMode () const
 
void SetCustomShapeInZoneMode (CUSTOM_SHAPE_ZONE_MODE aM)
 
void ForEachUniqueLayer (const std::function< void(PCB_LAYER_ID)> &aMethod) const
 Runs the given callable for each active unique copper layer in this padstack, meaning F_Cu for MODE::NORMAL; F_Cu, PADSTACK::INNER_LAYERS, and B_Cu for top/inner/bottom, and an arbitrary set of layers for full-custom padstacks.
 
std::vector< PCB_LAYER_ID > UniqueLayers () const
 
PCB_LAYER_ID EffectiveLayerFor (PCB_LAYER_ID aLayer) const
 Determines which geometry layer should be used for the given input layer.
 
LSET RelevantShapeLayers (const PADSTACK &aOther) const
 Returns the set of layers that must be considered if checking one padstack against another.
 
PAD_SHAPE Shape (PCB_LAYER_ID aLayer) const
 
void SetShape (PAD_SHAPE aShape, PCB_LAYER_ID aLayer)
 
void SetSize (const VECTOR2I &aSize, PCB_LAYER_ID aLayer)
 
const VECTOR2I & Size (PCB_LAYER_ID aLayer) const
 
PAD_DRILL_SHAPE DrillShape () const
 
void SetDrillShape (PAD_DRILL_SHAPE aShape)
 
VECTOR2I & Offset (PCB_LAYER_ID aLayer)
 
const VECTOR2I & Offset (PCB_LAYER_ID aLayer) const
 
void SetOffset (const VECTOR2I &aOffset, PCB_LAYER_ID aLayer)
 
PAD_SHAPE AnchorShape (PCB_LAYER_ID aLayer) const
 
void SetAnchorShape (PAD_SHAPE aShape, PCB_LAYER_ID aLayer)
 
VECTOR2I & TrapezoidDeltaSize (PCB_LAYER_ID aLayer)
 
const VECTOR2I & TrapezoidDeltaSize (PCB_LAYER_ID aLayer) const
 
double RoundRectRadiusRatio (PCB_LAYER_ID aLayer) const
 
void SetRoundRectRadiusRatio (double aRatio, PCB_LAYER_ID aLayer)
 
int RoundRectRadius (PCB_LAYER_ID aLayer) const
 
void SetRoundRectRadius (double aRadius, PCB_LAYER_ID aLayer)
 
double ChamferRatio (PCB_LAYER_ID aLayer) const
 
void SetChamferRatio (double aRatio, PCB_LAYER_ID aLayer)
 
int & ChamferPositions (PCB_LAYER_ID aLayer)
 
const int & ChamferPositions (PCB_LAYER_ID aLayer) const
 
void SetChamferPositions (int aPositions, PCB_LAYER_ID aLayer)
 
std::optional< int > & Clearance (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & Clearance (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & SolderMaskMargin (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & SolderMaskMargin (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & SolderPasteMargin (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & SolderPasteMargin (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< double > & SolderPasteMarginRatio (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< double > & SolderPasteMarginRatio (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< ZONE_CONNECTION > & ZoneConnection (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< ZONE_CONNECTION > & ZoneConnection (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & ThermalSpokeWidth (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & ThermalSpokeWidth (PCB_LAYER_ID aLayer=F_Cu) const
 
std::optional< int > & ThermalGap (PCB_LAYER_ID aLayer=F_Cu)
 
const std::optional< int > & ThermalGap (PCB_LAYER_ID aLayer=F_Cu) const
 
EDA_ANGLE DefaultThermalSpokeAngleForShape (PCB_LAYER_ID aLayer=F_Cu) const
 
EDA_ANGLE ThermalSpokeAngle (PCB_LAYER_ID aLayer=F_Cu) const
 
void SetThermalSpokeAngle (EDA_ANGLE aAngle, PCB_LAYER_ID aLayer=F_Cu)
 
std::vector< std::shared_ptr< PCB_SHAPE > > & Primitives (PCB_LAYER_ID aLayer)
 
const std::vector< std::shared_ptr< PCB_SHAPE > > & Primitives (PCB_LAYER_ID aLayer) const
 
void AddPrimitive (PCB_SHAPE *aShape, PCB_LAYER_ID aLayer)
 Adds a custom shape primitive to the padstack.
 
void AppendPrimitives (const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList, PCB_LAYER_ID aLayer)
 Appends a copy of each shape in the given list to this padstack's custom shape list.
 
void ReplacePrimitives (const std::vector< std::shared_ptr< PCB_SHAPE > > &aPrimitivesList, PCB_LAYER_ID aLayer)
 Clears the existing primitive list (freeing the owned shapes) and adds copies of the given shapes to the padstack for the given layer.
 
void ClearPrimitives (PCB_LAYER_ID aLayer)
 
BACKDRILL_MODE GetBackdrillMode () const
 
void SetBackdrillMode (BACKDRILL_MODE aMode)
 
std::optional< int > GetBackdrillSize (bool aTop) const
 
void SetBackdrillSize (bool aTop, std::optional< int > aSize)
 
PCB_LAYER_ID GetBackdrillEndLayer (bool aTop) const
 
void SetBackdrillEndLayer (bool aTop, PCB_LAYER_ID aLayer)
 

Static Public Member Functions

static int Compare (const PADSTACK *aPadstackRef, const PADSTACK *aPadstackCmp)
 Compare two padstacks and return 0 if they are equal.
 

Static Public Attributes

static constexpr PCB_LAYER_ID TEMP_ALL_LAYERS = F_Cu
 ! Temporary layer identifier to identify code that is not padstack-aware
 
static constexpr PCB_LAYER_ID ALL_LAYERS = F_Cu
 ! The layer identifier to use for the single defintion on normal padstacks
 
static constexpr PCB_LAYER_ID INNER_LAYERS = In1_Cu
 ! The layer identifier to use for "inner layers" on top/inner/bottom padstacks
 

Private Member Functions

const DRILL_PROPS * findBackdrillDrill (bool aTop) const
 Return the drill slot holding the top (aTop true) or bottom backdrill, identified by its start layer (F_Cu for top, B_Cu for bottom) rather than by slot position, so layouts written by KiCad 10.0 - which stored the top backdrill in the tertiary slot - are read correctly.
 
DRILL_PROPS * findBackdrillDrill (bool aTop)
 
DRILL_PROPS & backdrillWriteSlot (bool aTop)
 Return the slot to write a backdrill side into, reusing the slot already holding that side or otherwise the canonical slot (top -> secondary, bottom -> tertiary).
 
void clearBackdrillSide (bool aTop)
 Clear every slot whose start layer marks it as the given backdrill side, so a malformed padstack with the side duplicated across both slots is fully cleared.
 
bool unpackCopperLayer (const kiapi::board::types::PadStackLayer &aProto)
 

Private Attributes

BOARD_ITEM * m_parent
 ! The BOARD_ITEM this PADSTACK belongs to; will be used as the parent for owned shapes
 
MODE m_mode
 ! The copper layer variation mode this padstack is in
 
LSET m_layerSet
 ! The board layers that this padstack is active on
 
std::unique_ptr< wxString > m_customName
 ! An override for the IPC-7351 padstack name
 
EDA_ORIENTATION m_orientation
 ! The rotation of the pad relative to an outer reference frame
 
std::unordered_map< PCB_LAYER_ID, COPPER_LAYER_PROPS > m_copperProps
 
MASK_LAYER_PROPS m_frontMaskProps
 ! The overrides applied to front outer technical layers
 
MASK_LAYER_PROPS m_backMaskProps
 ! The overrides applied to back outer technical layers
 
UNCONNECTED_LAYER_MODE m_unconnectedLayerMode
 
CUSTOM_SHAPE_ZONE_MODE m_customShapeInZoneMode
 How to build the custom shape in zone, to create the clearance area: CUSTOM_SHAPE_ZONE_MODE::OUTLINE = use pad shape CUSTOM_SHAPE_ZONE_MODE::CONVEXHULL = use the convex hull of the pad shape.
 
DRILL_PROPS m_drill
 !
 
DRILL_PROPS m_secondaryDrill
 ! Secondary drill, used to define back-drilling starting from the bottom side
 
DRILL_PROPS m_tertiaryDrill
 ! Tertiary drill, used to define back-drilling starting from the top side
 
POST_MACHINING_PROPS m_frontPostMachining
 
POST_MACHINING_PROPS m_backPostMachining
 

Detailed Description

A PADSTACK defines the characteristics of a single or multi-layer pad, in the IPC sense of the word.

This means that a PCB_PAD has a padstack, but also a PCB_VIA. The padstack for a pad defines its geometry on copper, soldermask, and paste layers, as well as any drilling or milling associated with the pad (round or slot hole, back-drilling, etc). Padstacks also define thermal relief settings for all copper layers, clearance overrides for all copper layers, and potentially other properties in the future. In other words, the padstack defines most of the geometric features of a pad on all layers. It does not define electrical properties or other metadata.

For padstacks that do not vary between layers, F_Cu is used as the copper layer to store all padstack properties.

Definition at line 155 of file padstack.h.

Member Enumeration Documentation

◆ MODE

enum class PADSTACK::MODE
strong

! Copper geometry mode: controls how many unique copper layer shapes this padstack has

Enumerator
NORMAL 

Shape is the same on all layers.

FRONT_INNER_BACK 

Up to three shapes can be defined (F_Cu, inner copper layers, B_Cu)

CUSTOM 

Shapes can be defined on arbitrary layers.

Definition at line 168 of file padstack.h.

◆ TYPE

enum class PADSTACK::TYPE
strong

!

Padstack type, mostly for IPC-7351 naming and attributes Note that TYPE::MOUNTING is probably not currently supported by KiCad

Enumerator
NORMAL 

Padstack for a footprint pad.

VIA 

Padstack for a via.

MOUNTING 

A mounting hole (plated or unplated, not associated with a footprint)

Definition at line 160 of file padstack.h.

Constructor & Destructor Documentation

◆ PADSTACK() [1/2]

◆ ~PADSTACK()

virtual PADSTACK::~PADSTACK ( )
virtualdefault

References PADSTACK().

◆ PADSTACK() [2/2]

PADSTACK::PADSTACK ( const PADSTACK & aOther)

Definition at line 71 of file padstack.cpp.

References CopperLayer(), ForEachUniqueLayer(), m_parent, and PADSTACK().

Member Function Documentation

◆ AddPrimitive()

void PADSTACK::AddPrimitive ( PCB_SHAPE * aShape,
PCB_LAYER_ID aLayer )

Adds a custom shape primitive to the padstack.

Parameters
aShapeis a shape to add as a custom primitive. Ownership is passed to this PADSTACK.
aLayeris the padstack layer to add to.

Definition at line 1153 of file padstack.cpp.

References CopperLayer(), and PADSTACK::COPPER_LAYER_PROPS::custom_shapes.

Referenced by unpackCopperLayer().

◆ AnchorShape()

PAD_SHAPE PADSTACK::AnchorShape ( PCB_LAYER_ID aLayer) const

◆ AppendPrimitives()

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

Appends a copy of each shape in the given list to this padstack's custom shape list.

Parameters
aPrimitivesListis a list of shapes to add copies of to this PADSTACK
aLayeris the padstack layer to add to.

Definition at line 1159 of file padstack.cpp.

References CopperLayer(), PADSTACK::COPPER_LAYER_PROPS::custom_shapes, m_parent, and EDA_ITEM::SetParent().

Referenced by ReplacePrimitives().

◆ backdrillWriteSlot()

PADSTACK::DRILL_PROPS & PADSTACK::backdrillWriteSlot ( bool aTop)
private

Return the slot to write a backdrill side into, reusing the slot already holding that side or otherwise the canonical slot (top -> secondary, bottom -> tertiary).

Definition at line 499 of file padstack.cpp.

References B_Cu, F_Cu, findBackdrillDrill(), m_secondaryDrill, m_tertiaryDrill, PADSTACK::DRILL_PROPS::size, PADSTACK::DRILL_PROPS::start, and VECTOR2< T >::x.

Referenced by SetBackdrillEndLayer(), SetBackdrillMode(), and SetBackdrillSize().

◆ BackOuterLayers() [1/2]

◆ BackOuterLayers() [2/2]

const MASK_LAYER_PROPS & PADSTACK::BackOuterLayers ( ) const
inline

Definition at line 385 of file padstack.h.

References m_backMaskProps.

◆ BackPostMachining() [1/2]

◆ BackPostMachining() [2/2]

const POST_MACHINING_PROPS & PADSTACK::BackPostMachining ( ) const
inline

Definition at line 371 of file padstack.h.

References m_backPostMachining.

◆ ChamferPositions() [1/2]

int & PADSTACK::ChamferPositions ( PCB_LAYER_ID aLayer)

◆ ChamferPositions() [2/2]

const int & PADSTACK::ChamferPositions ( PCB_LAYER_ID aLayer) const

◆ ChamferRatio()

double PADSTACK::ChamferRatio ( PCB_LAYER_ID aLayer) const

◆ Clearance() [1/2]

◆ Clearance() [2/2]

const std::optional< int > & PADSTACK::Clearance ( PCB_LAYER_ID aLayer = F_Cu) const

Definition at line 1007 of file padstack.cpp.

References PADSTACK::COPPER_LAYER_PROPS::clearance, and CopperLayer().

◆ clearBackdrillSide()

void PADSTACK::clearBackdrillSide ( bool aTop)
private

Clear every slot whose start layer marks it as the given backdrill side, so a malformed padstack with the side duplicated across both slots is fully cleared.

Definition at line 517 of file padstack.cpp.

References B_Cu, F_Cu, m_secondaryDrill, and m_tertiaryDrill.

Referenced by SetBackdrillEndLayer(), SetBackdrillMode(), and SetBackdrillSize().

◆ ClearPrimitives()

void PADSTACK::ClearPrimitives ( PCB_LAYER_ID aLayer)

◆ Compare()

◆ CopperLayer() [1/2]

◆ CopperLayer() [2/2]

const PADSTACK::COPPER_LAYER_PROPS & PADSTACK::CopperLayer ( PCB_LAYER_ID aLayer) const

◆ CustomName()

const wxChar * PADSTACK::CustomName ( ) const

Definition at line 1608 of file padstack.cpp.

References m_customName.

Referenced by Compare(), Name(), operator=(), operator==(), and Similarity().

◆ CustomShapeInZoneMode()

CUSTOM_SHAPE_ZONE_MODE PADSTACK::CustomShapeInZoneMode ( ) const
inline

Definition at line 403 of file padstack.h.

References m_customShapeInZoneMode.

◆ DefaultThermalSpokeAngleForShape()

EDA_ANGLE PADSTACK::DefaultThermalSpokeAngleForShape ( PCB_LAYER_ID aLayer = F_Cu) const

◆ Deserialize() [1/2]

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

Deserializes the given protobuf message into this object.

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

Reimplemented from SERIALIZABLE.

Definition at line 464 of file padstack.cpp.

References Deserialize().

Referenced by Deserialize().

◆ Deserialize() [2/2]

◆ Drill() [1/2]

◆ Drill() [2/2]

const DRILL_PROPS & PADSTACK::Drill ( ) const
inline

Definition at line 359 of file padstack.h.

References m_drill.

◆ DrillShape()

PAD_DRILL_SHAPE PADSTACK::DrillShape ( ) const

Definition at line 888 of file padstack.cpp.

References m_drill.

◆ EffectiveLayerFor()

PCB_LAYER_ID PADSTACK::EffectiveLayerFor ( PCB_LAYER_ID aLayer) const

Determines which geometry layer should be used for the given input layer.

For example, for MODE::NORMAL, this will always be F_Cu, and for MODE::FRONT_INNER_BACK, this will be one of F_Cu, PADSTACK::INNER_LAYERS, and B_Cu depending on the input layer.

Parameters
aLayeris a valid board layer
Returns
the layer that the padstack's geometry is stored on for the given input layer

Definition at line 1295 of file padstack.cpp.

References ALL_LAYERS, B_Cu, F_Cu, FRONT_INNER_BACK, INNER_LAYERS, IsBackLayer(), IsFrontLayer(), IsNonCopperLayer(), m_copperProps, m_mode, and NORMAL.

Referenced by PCB_IO_IPC2581::addLocationNode(), PCB_IO_IPC2581::addPadStack(), EDA_DATA::PACKAGE::AddPin(), PCB_IO_IPC2581::addShape(), PAD::GetEffectivePolygon(), PAD::GetEffectiveShape(), HYPERLYNX_PAD_STACK::HYPERLYNX_PAD_STACK(), HYPERLYNX_PAD_STACK::HYPERLYNX_PAD_STACK(), and AR_MATRIX::PlacePad().

◆ EndLayer()

PCB_LAYER_ID PADSTACK::EndLayer ( ) const

Definition at line 1596 of file padstack.cpp.

References m_drill.

Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::getPropagationDelay().

◆ findBackdrillDrill() [1/2]

PADSTACK::DRILL_PROPS * PADSTACK::findBackdrillDrill ( bool aTop)
private

Definition at line 493 of file padstack.cpp.

◆ findBackdrillDrill() [2/2]

const PADSTACK::DRILL_PROPS * PADSTACK::findBackdrillDrill ( bool aTop) const
private

Return the drill slot holding the top (aTop true) or bottom backdrill, identified by its start layer (F_Cu for top, B_Cu for bottom) rather than by slot position, so layouts written by KiCad 10.0 - which stored the top backdrill in the tertiary slot - are read correctly.

Returns nullptr when that side is absent.

Definition at line 479 of file padstack.cpp.

References B_Cu, F_Cu, m_secondaryDrill, and m_tertiaryDrill.

Referenced by backdrillWriteSlot(), GetBackdrillEndLayer(), GetBackdrillMode(), and GetBackdrillSize().

◆ FlipLayers()

void PADSTACK::FlipLayers ( BOARD * aBoard)

Flips the padstack layers in the case that the pad's parent footprint is flipped to the other side of the board.

Parameters
aBoardprovides custom layer pairs, or nullptr to use the standard layer pairs.

Definition at line 1550 of file padstack.cpp.

References B_Cu, CUSTOM, F_Cu, BOARD::FlipLayer(), FlipLayer(), FRONT_INNER_BACK, INNER_LAYERS, m_backMaskProps, m_backPostMachining, m_copperProps, m_drill, m_frontMaskProps, m_frontPostMachining, m_mode, m_secondaryDrill, and m_tertiaryDrill.

◆ ForEachUniqueLayer()

void PADSTACK::ForEachUniqueLayer ( const std::function< void(PCB_LAYER_ID)> & aMethod) const

Runs the given callable for each active unique copper layer in this padstack, meaning F_Cu for MODE::NORMAL; F_Cu, PADSTACK::INNER_LAYERS, and B_Cu for top/inner/bottom, and an arbitrary set of layers for full-custom padstacks.

Parameters
aMethodwill be called once for each independent copper layer in the padstack

Definition at line 1261 of file padstack.cpp.

References ALL_LAYERS, B_Cu, F_Cu, FRONT_INNER_BACK, INNER_LAYERS, m_copperProps, m_mode, and NORMAL.

Referenced by PAD::BuildEffectivePolygon(), PAD::BuildEffectiveShapes(), PAD_UTILS::CheckPad(), PAD::Clone(), Compare(), doPushPadProperties(), PAD_TOOL::explodePad(), DIALOG_FP_EDIT_PAD_TABLE::fillGridRow(), PAD::Flip(), PAD::FlipPrimitives(), PCB_IO_KICAD_SEXPR::format(), PCB_WRITER_V10::format(), PCB_VIA::GetBoundingBox(), PAD::GetCoverageArea(), PAD::GetMsgPanelInfo(), PAD::HitTest(), PAD::HitTest(), PAD::HitTest(), PCB_VIA::HitTest(), PCB_VIA::HitTest(), PAD::ImportSettingsFrom(), PAD::IsNPTHWithNoCopper(), PAD::IsOnCopperLayer(), mirrorPad(), PAD::OnFootprintRescaled(), FOOTPRINT::cmp_pads::operator()(), operator=(), operator==(), LENGTH_DELAY_CALCULATION::optimiseVias(), padNeedsUpdate(), PADSTACK(), PAD::Recombine(), RelevantShapeLayers(), Serialize(), DIALOG_FP_EDIT_PAD_TABLE::setPadFromGridCell(), Similarity(), PAD::SwapShapePositions(), PNS_KICAD_IFACE_BASE::syncPad(), PNS_KICAD_IFACE_BASE::syncVia(), DIALOG_PAD_PROPERTIES::transferDataToPad(), UniqueLayers(), PAD_INFO_FORMATTER::UpdatePad(), viaNominalWidth(), viaStackName(), and PAD::ViewBBox().

◆ FrontOuterLayers() [1/2]

◆ FrontOuterLayers() [2/2]

const MASK_LAYER_PROPS & PADSTACK::FrontOuterLayers ( ) const
inline

Definition at line 382 of file padstack.h.

References m_frontMaskProps.

◆ FrontPostMachining() [1/2]

◆ FrontPostMachining() [2/2]

const POST_MACHINING_PROPS & PADSTACK::FrontPostMachining ( ) const
inline

Definition at line 368 of file padstack.h.

References m_frontPostMachining.

◆ GetBackdrillEndLayer()

◆ GetBackdrillMode()

◆ GetBackdrillSize()

◆ GetMaxHoleSize()

◆ GetOrientation()

EDA_ANGLE PADSTACK::GetOrientation ( ) const
inline

Definition at line 355 of file padstack.h.

References m_orientation.

◆ HasExplicitDefinitionForLayer()

bool PADSTACK::HasExplicitDefinitionForLayer ( PCB_LAYER_ID aLayer) const

Check if the padstack has an explicit definition for the given layer.

This is useful for detecting if a layer removal will cause data loss.

Definition at line 1491 of file padstack.cpp.

References m_copperProps.

Referenced by PCB_IO_KICAD_SEXPR::format(), and DIALOG_PAD_PROPERTIES::transferDataToPad().

◆ IsCapped()

std::optional< bool > PADSTACK::IsCapped ( ) const

Definition at line 1421 of file padstack.cpp.

References m_drill.

◆ IsCovered()

std::optional< bool > PADSTACK::IsCovered ( PCB_LAYER_ID aSide) const

◆ IsFilled()

std::optional< bool > PADSTACK::IsFilled ( ) const

Definition at line 1427 of file padstack.cpp.

References m_drill.

◆ IsPlugged()

std::optional< bool > PADSTACK::IsPlugged ( PCB_LAYER_ID aSide) const

◆ IsTented()

std::optional< bool > PADSTACK::IsTented ( PCB_LAYER_ID aSide) const

Checks if this padstack is tented (covered in soldermask) on the given side.

Parameters
aSideis a front or back layer (any will do)
Returns
true or false if this padstack contains a tenting override on the given layer, or std::nullopt if there is no override (meaning design rules should be used)

Definition at line 1388 of file padstack.cpp.

References BackOuterLayers(), FrontOuterLayers(), PADSTACK::MASK_LAYER_PROPS::has_solder_mask, IsBackLayer(), and IsFrontLayer().

◆ LayerSet() [1/2]

LSET & PADSTACK::LayerSet ( )
inline

Definition at line 332 of file padstack.h.

References m_layerSet.

◆ LayerSet() [2/2]

const LSET & PADSTACK::LayerSet ( ) const
inline

◆ Mode()

◆ Name()

wxString PADSTACK::Name ( ) const

! Returns the name of this padstack in IPC-7351 format

Definition at line 1602 of file padstack.cpp.

References CustomName().

◆ Offset() [1/2]

◆ Offset() [2/2]

const VECTOR2I & PADSTACK::Offset ( PCB_LAYER_ID aLayer) const

◆ operator!=()

bool PADSTACK::operator!= ( const PADSTACK & aOther) const
inline

Definition at line 303 of file padstack.h.

References operator==(), and PADSTACK().

◆ operator=()

◆ operator==()

◆ Primitives() [1/2]

std::vector< std::shared_ptr< PCB_SHAPE > > & PADSTACK::Primitives ( PCB_LAYER_ID aLayer)

Definition at line 1141 of file padstack.cpp.

References CopperLayer(), and PADSTACK::COPPER_LAYER_PROPS::custom_shapes.

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

◆ Primitives() [2/2]

const std::vector< std::shared_ptr< PCB_SHAPE > > & PADSTACK::Primitives ( PCB_LAYER_ID aLayer) const

Definition at line 1147 of file padstack.cpp.

References CopperLayer(), and PADSTACK::COPPER_LAYER_PROPS::custom_shapes.

◆ RelevantShapeLayers()

LSET PADSTACK::RelevantShapeLayers ( const PADSTACK & aOther) const

Returns the set of layers that must be considered if checking one padstack against another.

For example, two normal padstacks will just return a set with ALL_LAYERS, but if one of them is FRONT_INNER_BACK, there are three layers to check.

Definition at line 1330 of file padstack.cpp.

References ALL_LAYERS, ForEachUniqueLayer(), m_mode, NORMAL, PADSTACK(), and BASE_SET::set().

◆ ReplacePrimitives()

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

Clears the existing primitive list (freeing the owned shapes) and adds copies of the given shapes to the padstack for the given layer.

Parameters
aPrimitivesListis a list of shapes to add copies of to this PADSTACK
aLayeris the padstack layer to add to.

Definition at line 1173 of file padstack.cpp.

References AppendPrimitives(), and ClearPrimitives().

Referenced by operator=().

◆ RoundRectRadius()

int PADSTACK::RoundRectRadius ( PCB_LAYER_ID aLayer) const

Definition at line 954 of file padstack.cpp.

References KiROUND(), RoundRectRadiusRatio(), Size(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ RoundRectRadiusRatio()

double PADSTACK::RoundRectRadiusRatio ( PCB_LAYER_ID aLayer) const

◆ SecondaryDrill() [1/2]

◆ SecondaryDrill() [2/2]

const DRILL_PROPS & PADSTACK::SecondaryDrill ( ) const
inline

Definition at line 362 of file padstack.h.

References m_secondaryDrill.

◆ Serialize() [1/2]

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

Serializes this object to the given Any message.

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

Parameters
aContainerwill be filled with a message describing this object

Reimplemented from SERIALIZABLE.

Definition at line 848 of file padstack.cpp.

References Serialize().

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

◆ Serialize() [2/2]

◆ SetAnchorShape()

void PADSTACK::SetAnchorShape ( PAD_SHAPE aShape,
PCB_LAYER_ID aLayer )

◆ SetBackdrillEndLayer()

◆ SetBackdrillMode()

◆ SetBackdrillSize()

◆ SetChamferPositions()

void PADSTACK::SetChamferPositions ( int aPositions,
PCB_LAYER_ID aLayer )

◆ SetChamferRatio()

void PADSTACK::SetChamferRatio ( double aRatio,
PCB_LAYER_ID aLayer )

◆ SetCustomName()

void PADSTACK::SetCustomName ( const wxString & aCustomName)

Definition at line 1617 of file padstack.cpp.

References m_customName.

Referenced by operator=().

◆ SetCustomShapeInZoneMode()

void PADSTACK::SetCustomShapeInZoneMode ( CUSTOM_SHAPE_ZONE_MODE aM)
inline

Definition at line 404 of file padstack.h.

References m_customShapeInZoneMode.

◆ SetDrillShape()

void PADSTACK::SetDrillShape ( PAD_DRILL_SHAPE aShape)

Definition at line 894 of file padstack.cpp.

References m_drill.

◆ SetLayerSet()

void PADSTACK::SetLayerSet ( const LSET & aSet)
inline

Definition at line 333 of file padstack.h.

References m_layerSet.

Referenced by ALLEGRO::BOARD_BUILDER::buildPadItems(), and Deserialize().

◆ SetMode()

◆ SetOffset()

void PADSTACK::SetOffset ( const VECTOR2I & aOffset,
PCB_LAYER_ID aLayer )

◆ SetOrientation()

void PADSTACK::SetOrientation ( const EDA_ANGLE & aAngle)
inline

Definition at line 356 of file padstack.h.

References m_orientation.

Referenced by Deserialize(), and PAD::OnFootprintTransformed().

◆ SetRoundRectRadius()

void PADSTACK::SetRoundRectRadius ( double aRadius,
PCB_LAYER_ID aLayer )

Definition at line 961 of file padstack.cpp.

References SetRoundRectRadiusRatio(), Size(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ SetRoundRectRadiusRatio()

void PADSTACK::SetRoundRectRadiusRatio ( double aRatio,
PCB_LAYER_ID aLayer )

◆ SetShape()

◆ SetSize()

◆ SetThermalSpokeAngle()

void PADSTACK::SetThermalSpokeAngle ( EDA_ANGLE aAngle,
PCB_LAYER_ID aLayer = F_Cu )

◆ SetUnconnectedLayerMode()

◆ Shape()

◆ Similarity()

double PADSTACK::Similarity ( const PADSTACK & aOther) const

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)

Definition at line 1497 of file padstack.cpp.

References CopperLayer(), CustomName(), ForEachUniqueLayer(), m_backMaskProps, m_backPostMachining, m_customShapeInZoneMode, m_drill, m_frontMaskProps, m_frontPostMachining, m_layerSet, m_mode, m_orientation, m_secondaryDrill, m_tertiaryDrill, m_unconnectedLayerMode, PADSTACK(), and PADSTACK::COPPER_LAYER_PROPS::Similarity().

Referenced by PAD::Similarity().

◆ Size()

◆ SolderMaskMargin() [1/2]

std::optional< int > & PADSTACK::SolderMaskMargin ( PCB_LAYER_ID aLayer = F_Cu)

◆ SolderMaskMargin() [2/2]

const std::optional< int > & PADSTACK::SolderMaskMargin ( PCB_LAYER_ID aLayer = F_Cu) const

◆ SolderPasteMargin() [1/2]

std::optional< int > & PADSTACK::SolderPasteMargin ( PCB_LAYER_ID aLayer = F_Cu)

◆ SolderPasteMargin() [2/2]

const std::optional< int > & PADSTACK::SolderPasteMargin ( PCB_LAYER_ID aLayer = F_Cu) const

◆ SolderPasteMarginRatio() [1/2]

std::optional< double > & PADSTACK::SolderPasteMarginRatio ( PCB_LAYER_ID aLayer = F_Cu)

◆ SolderPasteMarginRatio() [2/2]

const std::optional< double > & PADSTACK::SolderPasteMarginRatio ( PCB_LAYER_ID aLayer = F_Cu) const

◆ StartLayer()

PCB_LAYER_ID PADSTACK::StartLayer ( ) const

Definition at line 1590 of file padstack.cpp.

References m_drill.

Referenced by TUNING_PROFILE_PARAMETERS_USER_DEFINED::getPropagationDelay().

◆ TertiaryDrill() [1/2]

◆ TertiaryDrill() [2/2]

const DRILL_PROPS & PADSTACK::TertiaryDrill ( ) const
inline

Definition at line 365 of file padstack.h.

References m_tertiaryDrill.

◆ ThermalGap() [1/2]

◆ ThermalGap() [2/2]

const std::optional< int > & PADSTACK::ThermalGap ( PCB_LAYER_ID aLayer = F_Cu) const

Definition at line 1109 of file padstack.cpp.

References CopperLayer(), and PADSTACK::COPPER_LAYER_PROPS::thermal_gap.

◆ ThermalSpokeAngle()

◆ ThermalSpokeWidth() [1/2]

std::optional< int > & PADSTACK::ThermalSpokeWidth ( PCB_LAYER_ID aLayer = F_Cu)

◆ ThermalSpokeWidth() [2/2]

const std::optional< int > & PADSTACK::ThermalSpokeWidth ( PCB_LAYER_ID aLayer = F_Cu) const

◆ TrapezoidDeltaSize() [1/2]

VECTOR2I & PADSTACK::TrapezoidDeltaSize ( PCB_LAYER_ID aLayer)

◆ TrapezoidDeltaSize() [2/2]

const VECTOR2I & PADSTACK::TrapezoidDeltaSize ( PCB_LAYER_ID aLayer) const

◆ UnconnectedLayerMode()

◆ UniqueLayers()

std::vector< PCB_LAYER_ID > PADSTACK::UniqueLayers ( ) const

◆ unpackCopperLayer()

◆ ZoneConnection() [1/2]

◆ ZoneConnection() [2/2]

const std::optional< ZONE_CONNECTION > & PADSTACK::ZoneConnection ( PCB_LAYER_ID aLayer = F_Cu) const

Definition at line 1085 of file padstack.cpp.

References CopperLayer(), and PADSTACK::COPPER_LAYER_PROPS::zone_connection.

Member Data Documentation

◆ ALL_LAYERS

PCB_LAYER_ID PADSTACK::ALL_LAYERS = F_Cu
staticconstexpr

! The layer identifier to use for the single defintion on normal padstacks

Definition at line 179 of file padstack.h.

Referenced by addFootprint(), TARGET3001_PCB_BUILDER::addPad(), AddPadToBoard(), addThroughVia(), PCAD2KICAD::PCAD_PAD::AddToBoard(), PCAD2KICAD::PCAD_PAD::AddToFootprint(), addTransformFeatures(), AddVia(), TARGET3001_PCB_BUILDER::addVia(), FEATURES_MANAGER::AddViaDrillHole(), DIALOG_TRACK_VIA_PROPERTIES::afterPadstackModeChanged(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), buildCoincidentFootprint(), DIALOG_VIA_STITCH_PROPERTIES::buildGuardPreview(), PCB_VIA_STACK::BuildMembers(), PCB_VIA_STITCH::buildPlacementCells(), EDIT_TOOL::ChangeTrackWidth(), configureStitch(), ALTIUM_PCB::ConvertFills6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertPads6ToFootprintItemOnCopper(), ALTIUM_PCB::ConvertShapeBasedRegions6ToFootprintItemOnLayer(), ALTIUM_PCB::ConvertVias6ToBoardItem(), ALTIUM_PCB::ConvertVias6ToFootprintItem(), CopperLayer(), CopperLayer(), BACKDRILL_TEST_FIXTURE::CreateBackdrilledVia(), MICROWAVE_TOOL::createBaseFootprint(), DIPTRACE::PCB_PARSER::CreateFootprint(), MICROWAVE_TOOL::createFootprint(), BACKDRILL_TEST_FIXTURE::CreateFootprintWithPad(), PCB_VIA_STACK::CreateFromItems(), MICROWAVE_TOOL::createMicrowaveInductor(), EASYPC_PCB::CreatePad(), PCB_IO_EASYEDAPRO_PARSER::createPAD(), BACKDRILL_TEST_FIXTURE::CreatePostMachinedVia(), DIPTRACE::PCB_PARSER::CreateStandaloneVias(), DIPTRACE::PCB_PARSER::CreateTracksAndVias(), PCB_IO_EASYEDAPRO_V3_PARSER::createV3PAD(), Deserialize(), doPushPadProperties(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), EffectiveLayerFor(), PCB_IO_AUTOTRAX::emitPad(), PCB_IO_AUTOTRAX::emitVia(), PCB_VIA_STACK::ExpandMultiHopMicrovias(), PAD_TOOL::explodePad(), FOOTPRINT_PAD_FIXUP_FIXTURE::FOOTPRINT_PAD_FIXUP_FIXTURE(), ForEachUniqueLayer(), PAD_INFO_FORMATTER::Format(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), PAD::GetSizeXProp(), PAD::GetSizeYProp(), PCB_VIA_STITCH::GetViaSize(), PCB_VIA::GetWidth(), ALTIUM_PCB::HelperFoldPendingCopper(), PCB_VIA_STITCH::InitializeDefaults(), FABMASTER::loadFootprints(), CADSTAR_PCB_ARCHIVE_LOADER::loadLibraryCoppers(), CADSTAR_PCB_ARCHIVE_LOADER::loadNetVia(), PCB_IO_KICAD_LEGACY::loadPAD(), PCB_IO_PADS::loadTestPoints(), PCB_IO_KICAD_LEGACY::loadTrackList(), PCB_IO_PADS::loadTracksAndVias(), FABMASTER::loadVias(), CLIP_LINE_TO_VIA_FIXTURE::MakeCircularPad(), PAD_MASTER_PROVIDER::MakeDefaultPad(), makeMicrovia(), makeMicrovia(), CLIP_LINE_TO_PAD_FIXTURE::MakePad(), makePthPad(), makeRoundPad(), makeSharedNetMultiHopPair(), CLIP_LINE_TO_VIA_FIXTURE::MakeVia(), DSN::SPECCTRA_DB::makeVia(), makeVia(), DIALOG_TRACK_VIA_PROPERTIES::onEditLayerChanged(), ROUTER_TOOL::onViaStackCommand(), PAD::PAD(), PAD_CHECK_FIXTURE::PAD_CHECK_FIXTURE(), PAD_DESC::PAD_DESC(), PADSTACK(), PCB_IO_EASYEDAPRO_PARSER::ParseBoard(), PCB_IO_EASYEDAPRO_V3_PARSER::ParseBoard(), PCB_IO_GEDA::parseElement(), ALTIUM_PCB::ParseFootprint(), GPCB_FPL_CACHE::parseFOOTPRINT(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), PCB_IO_GEDA::parseVia(), PCB_VIA::PCB_VIA(), DRAWING_TOOL::PlaceMicroviaStack(), playground_main_func(), PAD::Recombine(), RelevantShapeLayers(), PCB_VIA_STACK::reuseMembers(), RunStructuralChecks(), RunStructuralChecks(), Serialize(), PCB_VIA::SetSizeFromRules(), PAD::SetSizeXProp(), PAD::SetSizeYProp(), PCB_EDIT_FRAME::SetTrackSegmentWidth(), PCB_VIA_STITCH::SetViaSize(), PCB_VIA::SetWidth(), SILK_MASK_EXPANSION_FIXTURE::SILK_MASK_EXPANSION_FIXTURE(), unpackCopperLayer(), PCB_VIA_STITCH::Update(), BOARD_EDITOR_CONTROL::ViaSizeDec(), BOARD_EDITOR_CONTROL::ViaSizeInc(), PCB_TRACK::ViewBBox(), and DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::visitItem().

◆ INNER_LAYERS

◆ m_backMaskProps

MASK_LAYER_PROPS PADSTACK::m_backMaskProps
private

! The overrides applied to back outer technical layers

Definition at line 572 of file padstack.h.

Referenced by BackOuterLayers(), BackOuterLayers(), Compare(), FlipLayers(), operator=(), operator==(), and Similarity().

◆ m_backPostMachining

POST_MACHINING_PROPS PADSTACK::m_backPostMachining
private

◆ m_copperProps

std::unordered_map<PCB_LAYER_ID, COPPER_LAYER_PROPS> PADSTACK::m_copperProps
private

◆ m_customName

std::unique_ptr<wxString> PADSTACK::m_customName
private

! An override for the IPC-7351 padstack name

Definition at line 561 of file padstack.h.

Referenced by CustomName(), and SetCustomName().

◆ m_customShapeInZoneMode

CUSTOM_SHAPE_ZONE_MODE PADSTACK::m_customShapeInZoneMode
private

How to build the custom shape in zone, to create the clearance area: CUSTOM_SHAPE_ZONE_MODE::OUTLINE = use pad shape CUSTOM_SHAPE_ZONE_MODE::CONVEXHULL = use the convex hull of the pad shape.

Definition at line 581 of file padstack.h.

Referenced by Compare(), CustomShapeInZoneMode(), operator=(), operator==(), PADSTACK(), SetCustomShapeInZoneMode(), and Similarity().

◆ m_drill

DRILL_PROPS PADSTACK::m_drill
private

!

The primary drill parameters, which also define the start and end layers for through-hole vias and pads (F_Cu to B_Cu for normal holes; a subset of layers for blind/buried vias)

Definition at line 585 of file padstack.h.

Referenced by Compare(), Drill(), Drill(), DrillShape(), EndLayer(), FlipLayers(), IsCapped(), IsFilled(), operator=(), operator==(), PADSTACK(), Serialize(), SetBackdrillMode(), SetDrillShape(), Similarity(), and StartLayer().

◆ m_frontMaskProps

MASK_LAYER_PROPS PADSTACK::m_frontMaskProps
private

! The overrides applied to front outer technical layers

Definition at line 569 of file padstack.h.

Referenced by Compare(), FlipLayers(), FrontOuterLayers(), FrontOuterLayers(), operator=(), operator==(), and Similarity().

◆ m_frontPostMachining

POST_MACHINING_PROPS PADSTACK::m_frontPostMachining
private

◆ m_layerSet

LSET PADSTACK::m_layerSet
private

! The board layers that this padstack is active on

Definition at line 558 of file padstack.h.

Referenced by Compare(), LayerSet(), LayerSet(), operator=(), operator==(), Serialize(), SetLayerSet(), and Similarity().

◆ m_mode

MODE PADSTACK::m_mode
private

◆ m_orientation

EDA_ORIENTATION PADSTACK::m_orientation
private

! The rotation of the pad relative to an outer reference frame

Definition at line 564 of file padstack.h.

Referenced by Compare(), GetOrientation(), operator=(), operator==(), PADSTACK(), Serialize(), SetOrientation(), and Similarity().

◆ m_parent

BOARD_ITEM* PADSTACK::m_parent
private

! The BOARD_ITEM this PADSTACK belongs to; will be used as the parent for owned shapes

Definition at line 552 of file padstack.h.

Referenced by AppendPrimitives(), CopperLayer(), PADSTACK(), PADSTACK(), and unpackCopperLayer().

◆ m_secondaryDrill

DRILL_PROPS PADSTACK::m_secondaryDrill
private

! Secondary drill, used to define back-drilling starting from the bottom side

Definition at line 588 of file padstack.h.

Referenced by backdrillWriteSlot(), clearBackdrillSide(), Compare(), findBackdrillDrill(), FlipLayers(), operator=(), operator==(), PADSTACK(), SecondaryDrill(), SecondaryDrill(), Serialize(), and Similarity().

◆ m_tertiaryDrill

DRILL_PROPS PADSTACK::m_tertiaryDrill
private

! Tertiary drill, used to define back-drilling starting from the top side

Definition at line 591 of file padstack.h.

Referenced by backdrillWriteSlot(), clearBackdrillSide(), Compare(), findBackdrillDrill(), FlipLayers(), operator=(), operator==(), PADSTACK(), Serialize(), Similarity(), TertiaryDrill(), and TertiaryDrill().

◆ m_unconnectedLayerMode

UNCONNECTED_LAYER_MODE PADSTACK::m_unconnectedLayerMode
private

◆ TEMP_ALL_LAYERS


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