KiCad PCB EDA Suite
ZONE_SETTINGS Class Reference

Class ZONE_SETTINGS handles zones parameters. More...

#include <zone_settings.h>

Public Types

enum  {
  SMOOTHING_UNDEFINED = -1, SMOOTHING_NONE = 0, SMOOTHING_CHAMFER, SMOOTHING_FILLET,
  SMOOTHING_LAST
}
 

Public Member Functions

 ZONE_SETTINGS ()
 class ZONE_SETTINGS used to handle zones parameters More...
 
ZONE_SETTINGSoperator<< (const ZONE_CONTAINER &aSource)
 operator << ( const ZONE_CONTAINER& ) was Function ImportSetting copies settings from a given zone into this object. More...
 
void SetupLayersList (wxDataViewListCtrl *aList, PCB_BASE_FRAME *aFrame, bool aShowCopper, bool aFpEditorMode=false)
 A helper routine for the various zone dialogs (copper, non-copper, keepout). More...
 
void ExportSetting (ZONE_CONTAINER &aTarget, bool aFullExport=true) const
 Function ExportSetting copy settings to a given zone. More...
 
void SetCornerSmoothingType (int aType)
 
int GetCornerSmoothingType () const
 
void SetCornerRadius (int aRadius)
 
unsigned int GetCornerRadius () const
 
ZoneConnection GetPadConnection () const
 
void SetPadConnection (ZoneConnection aPadConnection)
 
const bool GetIsKeepout () const
 Accessors to parameters used in Keepout zones: More...
 
const bool GetDoNotAllowCopperPour () const
 
const bool GetDoNotAllowVias () const
 
const bool GetDoNotAllowTracks () const
 
void SetIsKeepout (bool aEnable)
 
void SetDoNotAllowCopperPour (bool aEnable)
 
void SetDoNotAllowVias (bool aEnable)
 
void SetDoNotAllowTracks (bool aEnable)
 

Public Attributes

ZONE_FILL_MODE m_FillMode
 
int m_ZonePriority
 Priority (0 ... N) of the zone. More...
 
int m_ZoneClearance
 Clearance value. More...
 
int m_ZoneMinThickness
 Min thickness value in filled areas. More...
 
int m_HatchFillTypeThickness
 Grid style shape: thickness of lines (if 0 -> solid shape) More...
 
int m_HatchFillTypeGap
 Grid style shape: clearance between lines (0 -> solid shape) More...
 
double m_HatchFillTypeOrientation
 Grid style shape: orientation of grid lines in degrees. More...
 
int m_HatchFillTypeSmoothingLevel
 Grid pattern smoothing type, similar to corner smoothing type. More...
 
double m_HatchFillTypeSmoothingValue
 Grid pattern chamfer distance/fillet value. More...
 
int m_NetcodeSelection
 Net code selection for the current zone. More...
 
LSET m_Layers
 
PCB_LAYER_ID m_CurrentZone_Layer
 Layer used to create the current zone. More...
 
int m_Zone_HatchingStyle
 Option to show the zone area (outlines only, short hatches or full hatches. More...
 
long m_ThermalReliefGap
 thickness of the gap in thermal reliefs More...
 
long m_ThermalReliefCopperBridge
 thickness of the copper bridge in thermal reliefs More...
 
bool m_Zone_45_Only
 

Private Attributes

int m_cornerSmoothingType
 Corner smoothing type. More...
 
unsigned int m_cornerRadius
 Corner chamfer distance / fillet radius. More...
 
ZoneConnection m_PadConnection
 
bool m_isKeepout
 
bool m_keepoutDoNotAllowCopperPour
 
bool m_keepoutDoNotAllowVias
 
bool m_keepoutDoNotAllowTracks
 

Detailed Description

Class ZONE_SETTINGS handles zones parameters.

Because a zone can be on copper or non copper layers, and can be also a keepout area, some parameters are irrelevant depending on the type of zone

Definition at line 49 of file zone_settings.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SMOOTHING_UNDEFINED 
SMOOTHING_NONE 
SMOOTHING_CHAMFER 
SMOOTHING_FILLET 
SMOOTHING_LAST 

Definition at line 52 of file zone_settings.h.

Constructor & Destructor Documentation

◆ ZONE_SETTINGS()

ZONE_SETTINGS::ZONE_SETTINGS ( )

class ZONE_SETTINGS used to handle zones parameters

Definition at line 44 of file zone_settings.cpp.

45 {
46  m_ZonePriority = 0;
47  m_FillMode = ZFM_POLYGONS; // Mode for filling zone : 1 use segments, 0 use polygons
48  // Zone clearance value
50  // Min thickness value in filled areas (this is the minimum width of copper to fill solid areas) :
52  m_HatchFillTypeThickness = 0; // good value of grid line thickness if m_FillMode = ZFM_GRID_PATTERN
53  m_HatchFillTypeGap = 0; // good value of grid line gap if m_FillMode = ZFM_GRID_PATTERN
54  m_HatchFillTypeOrientation = 0.0; // Grid style: orientation of grid lines in degrees
55  m_HatchFillTypeSmoothingLevel = 0; // Grid pattern smoothing type. 0 = no smoothing
56  m_HatchFillTypeSmoothingValue = 0.1; // Grid pattern chamfer value relative to the gap value
57  m_NetcodeSelection = 0; // Net code selection for the current zone
58  m_CurrentZone_Layer = F_Cu; // Layer used to create the current zone
59  m_Zone_HatchingStyle = ZONE_CONTAINER::DIAGONAL_EDGE; // Option to show the zone area (outlines only,
60  //short hatches or full hatches
61 
62  // thickness of the gap in thermal reliefs:
64  // thickness of the copper bridge in thermal reliefs:
66 
67  m_PadConnection = PAD_ZONE_CONN_THERMAL; // How pads are covered by copper in zone
68 
69  m_Zone_45_Only = false;
70 
72  m_cornerRadius = 0;
73 
74  SetIsKeepout( false );
75  SetDoNotAllowCopperPour( false );
76  SetDoNotAllowVias( true );
77  SetDoNotAllowTracks( true );
78 }
int m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:81
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:84
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:69
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:68
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:67
#define ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL
Definition: zones.h:39
void SetDoNotAllowVias(bool aEnable)
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:74
ZoneConnection m_PadConnection
Definition: zone_settings.h:91
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:89
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:62
#define ZONE_CLEARANCE_MIL
Definition: zones.h:42
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:64
void SetIsKeepout(bool aEnable)
void SetDoNotAllowTracks(bool aEnable)
#define ZONE_THICKNESS_MIL
Definition: zones.h:40
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:71
void SetDoNotAllowCopperPour(bool aEnable)
#define ZONE_THERMAL_RELIEF_GAP_MIL
Definition: zones.h:38
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:90
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:66
Use thermal relief for pads.
Definition: zones.h:53
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:78
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:83
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:65

References ZONE_CONTAINER::DIAGONAL_EDGE, F_Cu, m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, m_ZonePriority, PAD_ZONE_CONN_THERMAL, SetDoNotAllowCopperPour(), SetDoNotAllowTracks(), SetDoNotAllowVias(), SetIsKeepout(), SMOOTHING_NONE, ZFM_POLYGONS, ZONE_CLEARANCE_MIL, ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL, ZONE_THERMAL_RELIEF_GAP_MIL, and ZONE_THICKNESS_MIL.

Member Function Documentation

◆ ExportSetting()

void ZONE_SETTINGS::ExportSetting ( ZONE_CONTAINER aTarget,
bool  aFullExport = true 
) const

Function ExportSetting copy settings to a given zone.

Parameters
aTargetthe given zone
aFullExportif false: some parameters are NOT exported because they must not be exported when export settings from a zone to others zones Currently: m_NetcodeSelection

Definition at line 112 of file zone_settings.cpp.

113 {
114  aTarget.SetFillMode( m_FillMode );
126  aTarget.SetCornerRadius( m_cornerRadius );
127  aTarget.SetIsKeepout( GetIsKeepout() );
131  aTarget.SetHV45( m_Zone_45_Only );
132 
133  if( aFullExport )
134  {
135  aTarget.SetPriority( m_ZonePriority );
136 
137  // Keepout zones can have multiple layers and have no net
138  if( m_isKeepout )
139  {
140  aTarget.SetLayerSet( m_Layers );
141  }
142  else
143  {
144  aTarget.SetNetCode( m_NetcodeSelection );
145  aTarget.SetLayer( m_CurrentZone_Layer );
146  }
147  }
148 
149  // call SetHatch last, because hatch lines will be rebuilt,
150  // using new parameters values
151  aTarget.SetHatch( m_Zone_HatchingStyle, aTarget.GetDefaultHatchPitch(), true );
152 }
void SetDoNotAllowTracks(bool aEnable)
Definition: class_zone.h:638
int m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:81
void SetCornerSmoothingType(int aType)
Definition: class_zone.h:590
void SetHatchFillTypeSmoothingLevel(int aLevel)
Definition: class_zone.h:204
void SetHatchFillTypeSmoothingValue(double aValue)
Definition: class_zone.h:207
void SetCornerRadius(unsigned int aRadius)
Definition: class_zone.cpp:541
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:84
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:69
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:68
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:67
void SetHatch(int aHatchStyle, int aHatchPitch, bool aRebuildHatch)
Function SetHatch sets all hatch parameters for the zone.
Definition: class_zone.cpp:974
static int GetDefaultHatchPitch()
Function GetDefaultHatchPitchMils.
void SetDoNotAllowVias(bool aEnable)
Definition: class_zone.h:637
void SetPriority(unsigned aPriority)
Function SetPriority.
Definition: class_zone.h:97
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:74
ZoneConnection m_PadConnection
Definition: zone_settings.h:91
void SetLayerSet(LSET aLayerSet)
Definition: class_zone.cpp:238
void SetHatchFillTypeGap(int aStep)
Definition: class_zone.h:198
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:89
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:62
virtual void SetLayer(PCB_LAYER_ID aLayer) override
Function SetLayer sets the layer this item is on.
Definition: class_zone.cpp:230
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:64
bool SetNetCode(int aNetCode, bool aNoAssert=false)
Sets net using a net code.
const bool GetDoNotAllowVias() const
const bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
void SetZoneClearance(int aZoneClearance)
Definition: class_zone.h:180
const bool GetDoNotAllowTracks() const
void SetThermalReliefCopperBridge(int aThermalReliefCopperBridge)
Definition: class_zone.h:164
void SetDoNotAllowCopperPour(bool aEnable)
Definition: class_zone.h:636
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
void SetFillMode(ZONE_FILL_MODE aFillMode)
Definition: class_zone.h:158
void SetHatchFillTypeOrientation(double aStep)
Definition: class_zone.h:201
const bool GetDoNotAllowCopperPour() const
void SetHV45(bool aConstrain)
Definition: class_zone.h:690
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:71
void SetHatchFillTypeThickness(int aThickness)
Definition: class_zone.h:195
void SetIsKeepout(bool aEnable)
Definition: class_zone.h:635
void SetPadConnection(ZoneConnection aPadConnection)
Definition: class_zone.h:183
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:90
void SetMinThickness(int aMinThickness)
Definition: class_zone.h:186
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:66
void SetThermalReliefGap(int aThermalReliefGap)
Definition: class_zone.h:161
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:78
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:83
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:65

References ZONE_CONTAINER::GetDefaultHatchPitch(), GetDoNotAllowCopperPour(), GetDoNotAllowTracks(), GetDoNotAllowVias(), GetIsKeepout(), m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_isKeepout, m_Layers, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, m_ZonePriority, ZONE_CONTAINER::SetCornerRadius(), ZONE_CONTAINER::SetCornerSmoothingType(), ZONE_CONTAINER::SetDoNotAllowCopperPour(), ZONE_CONTAINER::SetDoNotAllowTracks(), ZONE_CONTAINER::SetDoNotAllowVias(), ZONE_CONTAINER::SetFillMode(), ZONE_CONTAINER::SetHatch(), ZONE_CONTAINER::SetHatchFillTypeGap(), ZONE_CONTAINER::SetHatchFillTypeOrientation(), ZONE_CONTAINER::SetHatchFillTypeSmoothingLevel(), ZONE_CONTAINER::SetHatchFillTypeSmoothingValue(), ZONE_CONTAINER::SetHatchFillTypeThickness(), ZONE_CONTAINER::SetHV45(), ZONE_CONTAINER::SetIsKeepout(), ZONE_CONTAINER::SetLayer(), ZONE_CONTAINER::SetLayerSet(), ZONE_CONTAINER::SetMinThickness(), BOARD_CONNECTED_ITEM::SetNetCode(), ZONE_CONTAINER::SetPadConnection(), ZONE_CONTAINER::SetPriority(), ZONE_CONTAINER::SetThermalReliefCopperBridge(), ZONE_CONTAINER::SetThermalReliefGap(), and ZONE_CONTAINER::SetZoneClearance().

Referenced by ZONE_CREATE_HELPER::createNewZone(), ZONE_CREATE_HELPER::createZoneFromExisting(), PCB_EDIT_FRAME::Edit_Zone_Params(), DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), ZONE_CONTAINER::ZONE_CONTAINER(), and PCB_EDITOR_CONTROL::ZoneDuplicate().

◆ GetCornerRadius()

unsigned int ZONE_SETTINGS::GetCornerRadius ( ) const
inline

Definition at line 144 of file zone_settings.h.

144 { return m_cornerRadius; }
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:90

References m_cornerRadius.

Referenced by DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ GetCornerSmoothingType()

int ZONE_SETTINGS::GetCornerSmoothingType ( ) const
inline

◆ GetDoNotAllowCopperPour()

const bool ZONE_SETTINGS::GetDoNotAllowCopperPour ( ) const
inline

◆ GetDoNotAllowTracks()

const bool ZONE_SETTINGS::GetDoNotAllowTracks ( ) const
inline

◆ GetDoNotAllowVias()

const bool ZONE_SETTINGS::GetDoNotAllowVias ( ) const
inline

◆ GetIsKeepout()

const bool ZONE_SETTINGS::GetIsKeepout ( ) const
inline

Accessors to parameters used in Keepout zones:

Definition at line 152 of file zone_settings.h.

152 { return m_isKeepout; }

References m_isKeepout.

Referenced by ExportSetting().

◆ GetPadConnection()

ZoneConnection ZONE_SETTINGS::GetPadConnection ( ) const
inline

Definition at line 146 of file zone_settings.h.

146 { return m_PadConnection; }
ZoneConnection m_PadConnection
Definition: zone_settings.h:91

References m_PadConnection.

Referenced by DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ operator<<()

ZONE_SETTINGS & ZONE_SETTINGS::operator<< ( const ZONE_CONTAINER aSource)

operator << ( const ZONE_CONTAINER& ) was Function ImportSetting copies settings from a given zone into this object.

Parameters
aSourcethe given zone

Definition at line 81 of file zone_settings.cpp.

82 {
83  m_ZonePriority = aSource.GetPriority();
84  m_FillMode = aSource.GetFillMode();
92  m_NetcodeSelection = aSource.GetNetCode();
98  m_cornerRadius = aSource.GetCornerRadius();
99  m_isKeepout = aSource.GetIsKeepout();
103  m_Zone_45_Only = aSource.GetHV45();
104 
105  m_CurrentZone_Layer = aSource.GetLayer();
106  m_Layers = aSource.GetLayerSet();
107 
108  return *this;
109 }
int m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:81
int GetNetCode() const
Function GetNetCode.
int GetThermalReliefCopperBridge(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:532
int GetHatchFillTypeThickness() const
Definition: class_zone.h:194
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:84
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:69
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:68
virtual PCB_LAYER_ID GetLayer() const override
Function GetLayer returns the primary layer this item is on.
Definition: class_zone.cpp:203
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:67
double GetHatchFillTypeOrientation() const
Definition: class_zone.h:200
double GetHatchFillTypeSmoothingValue() const
Definition: class_zone.h:206
int GetThermalReliefGap(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:523
bool GetDoNotAllowVias() const
Definition: class_zone.h:632
virtual LSET GetLayerSet() const override
Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segme...
Definition: class_zone.cpp:267
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:74
ZoneConnection m_PadConnection
Definition: zone_settings.h:91
HATCH_STYLE GetHatchStyle() const
Definition: class_zone.h:519
unsigned int GetCornerRadius() const
Definition: class_zone.h:596
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:89
ZONE_FILL_MODE GetFillMode() const
Definition: class_zone.h:159
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:62
bool GetDoNotAllowCopperPour() const
Definition: class_zone.h:631
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:64
int GetCornerSmoothingType() const
Definition: class_zone.h:592
bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
Definition: class_zone.h:630
bool GetHV45() const
Definition: class_zone.h:689
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
unsigned GetPriority() const
Function GetPriority.
Definition: class_zone.h:103
ZoneConnection GetPadConnection(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:883
bool m_keepoutDoNotAllowCopperPour
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:71
int GetMinThickness() const
Definition: class_zone.h:185
bool GetDoNotAllowTracks() const
Definition: class_zone.h:633
int GetHatchFillTypeSmoothingLevel() const
Definition: class_zone.h:203
bool m_keepoutDoNotAllowTracks
int GetZoneClearance() const
Definition: class_zone.h:179
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:90
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:66
int GetHatchFillTypeGap() const
Definition: class_zone.h:197
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:78
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:83
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:65
bool m_keepoutDoNotAllowVias

References ZONE_CONTAINER::GetCornerRadius(), ZONE_CONTAINER::GetCornerSmoothingType(), ZONE_CONTAINER::GetDoNotAllowCopperPour(), ZONE_CONTAINER::GetDoNotAllowTracks(), ZONE_CONTAINER::GetDoNotAllowVias(), ZONE_CONTAINER::GetFillMode(), ZONE_CONTAINER::GetHatchFillTypeGap(), ZONE_CONTAINER::GetHatchFillTypeOrientation(), ZONE_CONTAINER::GetHatchFillTypeSmoothingLevel(), ZONE_CONTAINER::GetHatchFillTypeSmoothingValue(), ZONE_CONTAINER::GetHatchFillTypeThickness(), ZONE_CONTAINER::GetHatchStyle(), ZONE_CONTAINER::GetHV45(), ZONE_CONTAINER::GetIsKeepout(), ZONE_CONTAINER::GetLayer(), ZONE_CONTAINER::GetLayerSet(), ZONE_CONTAINER::GetMinThickness(), BOARD_CONNECTED_ITEM::GetNetCode(), ZONE_CONTAINER::GetPadConnection(), ZONE_CONTAINER::GetPriority(), ZONE_CONTAINER::GetThermalReliefCopperBridge(), ZONE_CONTAINER::GetThermalReliefGap(), ZONE_CONTAINER::GetZoneClearance(), m_cornerRadius, m_cornerSmoothingType, m_CurrentZone_Layer, m_FillMode, m_HatchFillTypeGap, m_HatchFillTypeOrientation, m_HatchFillTypeSmoothingLevel, m_HatchFillTypeSmoothingValue, m_HatchFillTypeThickness, m_isKeepout, m_keepoutDoNotAllowCopperPour, m_keepoutDoNotAllowTracks, m_keepoutDoNotAllowVias, m_Layers, m_NetcodeSelection, m_PadConnection, m_ThermalReliefCopperBridge, m_ThermalReliefGap, m_Zone_45_Only, m_Zone_HatchingStyle, m_ZoneClearance, m_ZoneMinThickness, and m_ZonePriority.

◆ SetCornerRadius()

void ZONE_SETTINGS::SetCornerRadius ( int  aRadius)

Definition at line 155 of file zone_settings.cpp.

156 {
157  if( aRadius < 0 )
158  m_cornerRadius = 0;
159  else
160  m_cornerRadius = aRadius;
161 }
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:90

References m_cornerRadius.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), and DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow().

◆ SetCornerSmoothingType()

void ZONE_SETTINGS::SetCornerSmoothingType ( int  aType)
inline

Definition at line 138 of file zone_settings.h.

138 { m_cornerSmoothingType = aType; }
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:89

References m_cornerSmoothingType.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), and DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow().

◆ SetDoNotAllowCopperPour()

void ZONE_SETTINGS::SetDoNotAllowCopperPour ( bool  aEnable)
inline

◆ SetDoNotAllowTracks()

void ZONE_SETTINGS::SetDoNotAllowTracks ( bool  aEnable)
inline

◆ SetDoNotAllowVias()

void ZONE_SETTINGS::SetDoNotAllowVias ( bool  aEnable)
inline

◆ SetIsKeepout()

void ZONE_SETTINGS::SetIsKeepout ( bool  aEnable)
inline

◆ SetPadConnection()

void ZONE_SETTINGS::SetPadConnection ( ZoneConnection  aPadConnection)
inline

Definition at line 147 of file zone_settings.h.

147 { m_PadConnection = aPadConnection; }
ZoneConnection m_PadConnection
Definition: zone_settings.h:91

References m_PadConnection.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions().

◆ SetupLayersList()

void ZONE_SETTINGS::SetupLayersList ( wxDataViewListCtrl *  aList,
PCB_BASE_FRAME aFrame,
bool  aShowCopper,
bool  aFpEditorMode = false 
)

A helper routine for the various zone dialogs (copper, non-copper, keepout).

Parameters
aListthe wxDataViewListCtrl to populate
aFramethe parent editor frame
aShowCopperindicates whether copper or technical layers should be shown
aFpEditorModetrue to show (when aShowCopper = true) the option: all inner layers

Definition at line 172 of file zone_settings.cpp.

174 {
175  BOARD* board = aFrame->GetBoard();
176  COLOR4D backgroundColor = aFrame->Settings().Colors().GetLayerColor( LAYER_PCB_BACKGROUND );
177  LSET layers = aShowCopper ? LSET::AllCuMask( board->GetCopperLayerCount() )
178  : LSET::AllNonCuMask();
179 
180  wxDataViewColumn* checkColumn = aList->AppendToggleColumn( wxEmptyString );
181  wxDataViewColumn* layerColumn = aList->AppendIconTextColumn( wxEmptyString );
182  wxDataViewColumn* layerIDColumn = aList->AppendTextColumn( wxEmptyString );
183  layerIDColumn->SetHidden( true );
184 
185  int textWidth = 0;
186 
187  for( LSEQ layer = layers.UIOrder(); layer; ++layer )
188  {
189  PCB_LAYER_ID layerID = *layer;
190  wxString layerName = board->GetLayerName( layerID );
191  if( aFpEditorMode && layerID == In1_Cu )
192  layerName = _( "Inner layers" );
193 
194  // wxCOL_WIDTH_AUTOSIZE doesn't work on all platforms, so we calculate width here
195  textWidth = std::max( textWidth, GetTextSize( layerName, aList ).x );
196 
197  COLOR4D layerColor = aFrame->Settings().Colors().GetLayerColor( layerID );
198  auto bitmap = COLOR_SWATCH::MakeBitmap( layerColor, backgroundColor, LAYER_BITMAP_SIZE );
199  wxIcon icon;
200  icon.CopyFromBitmap( bitmap );
201 
202  wxVector<wxVariant> row;
203  row.push_back( wxVariant( m_Layers.test( layerID ) ) );
204  row.push_back( wxVariant( wxDataViewIconText( layerName, icon ) ) );
205  row.push_back( wxVariant( wxString::Format( "%i", layerID ) ) );
206  aList->AppendItem( row );
207 
208  if( m_CurrentZone_Layer == layerID )
209  aList->SetToggleValue( true, (unsigned) aList->GetItemCount() - 1, 0 );
210  }
211 
212  int checkColSize = 22;
213  int layerColSize = textWidth + LAYER_BITMAP_SIZE.x + 15;
214 
215  // You'd think the fact that m_layers is a list would encourage wxWidgets not to save room
216  // for the tree expanders... but you'd be wrong. Force indent to 0.
217  aList->SetIndent( 0 );
218  aList->SetMinClientSize( wxSize( checkColSize + layerColSize, aList->GetMinClientSize().y ) );
219 
220  checkColumn->SetWidth( checkColSize );
221  layerColumn->SetWidth( layerColSize );
222 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:676
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
static LSET AllNonCuMask()
Function AllNonCuMask returns a mask holding all layer minus CU layers.
Definition: lset.cpp:699
wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...
Definition: common.cpp:115
COLOR4D GetLayerColor(LAYER_NUM aLayer) const
Function GetLayerColor.
PCB_LAYER_ID
A quick note on layer IDs:
Class LSET is a set of PCB_LAYER_IDs.
PCB_GENERAL_SETTINGS & Settings()
static wxBitmap MakeBitmap(KIGFX::COLOR4D aColor, KIGFX::COLOR4D aBackground, wxSize aSize)
Make a simple color swatch bitmap.
#define _(s)
Class LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
COLORS_DESIGN_SETTINGS & Colors()
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
#define max(a, b)
Definition: auxiliary.h:86
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:161
int GetCopperLayerCount() const
Function GetCopperLayerCount.
BOARD * GetBoard() const
static const wxSize LAYER_BITMAP_SIZE(24, 16)
LSEQ UIOrder() const
Definition: lset.cpp:803
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:78
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39

References _, LSET::AllCuMask(), LSET::AllNonCuMask(), PCB_GENERAL_SETTINGS::Colors(), Format(), PCB_BASE_FRAME::GetBoard(), BOARD::GetCopperLayerCount(), COLORS_DESIGN_SETTINGS::GetLayerColor(), BOARD::GetLayerName(), GetTextSize(), In1_Cu, LAYER_BITMAP_SIZE(), LAYER_PCB_BACKGROUND, m_CurrentZone_Layer, m_Layers, COLOR_SWATCH::MakeBitmap(), max, PCB_BASE_FRAME::Settings(), and LSET::UIOrder().

Referenced by DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), and DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR().

Member Data Documentation

◆ m_cornerRadius

unsigned int ZONE_SETTINGS::m_cornerRadius
private

Corner chamfer distance / fillet radius.

Definition at line 90 of file zone_settings.h.

Referenced by ExportSetting(), GetCornerRadius(), operator<<(), SetCornerRadius(), and ZONE_SETTINGS().

◆ m_cornerSmoothingType

int ZONE_SETTINGS::m_cornerSmoothingType
private

Corner smoothing type.

Definition at line 89 of file zone_settings.h.

Referenced by ExportSetting(), GetCornerSmoothingType(), operator<<(), SetCornerSmoothingType(), and ZONE_SETTINGS().

◆ m_CurrentZone_Layer

◆ m_FillMode

◆ m_HatchFillTypeGap

◆ m_HatchFillTypeOrientation

◆ m_HatchFillTypeSmoothingLevel

int ZONE_SETTINGS::m_HatchFillTypeSmoothingLevel

◆ m_HatchFillTypeSmoothingValue

double ZONE_SETTINGS::m_HatchFillTypeSmoothingValue

◆ m_HatchFillTypeThickness

◆ m_isKeepout

bool ZONE_SETTINGS::m_isKeepout
private

Definition at line 96 of file zone_settings.h.

Referenced by ExportSetting(), GetIsKeepout(), operator<<(), and SetIsKeepout().

◆ m_keepoutDoNotAllowCopperPour

bool ZONE_SETTINGS::m_keepoutDoNotAllowCopperPour
private

Definition at line 101 of file zone_settings.h.

Referenced by GetDoNotAllowCopperPour(), operator<<(), and SetDoNotAllowCopperPour().

◆ m_keepoutDoNotAllowTracks

bool ZONE_SETTINGS::m_keepoutDoNotAllowTracks
private

Definition at line 103 of file zone_settings.h.

Referenced by GetDoNotAllowTracks(), operator<<(), and SetDoNotAllowTracks().

◆ m_keepoutDoNotAllowVias

bool ZONE_SETTINGS::m_keepoutDoNotAllowVias
private

Definition at line 102 of file zone_settings.h.

Referenced by GetDoNotAllowVias(), operator<<(), and SetDoNotAllowVias().

◆ m_Layers

◆ m_NetcodeSelection

int ZONE_SETTINGS::m_NetcodeSelection

◆ m_PadConnection

ZoneConnection ZONE_SETTINGS::m_PadConnection
private

◆ m_ThermalReliefCopperBridge

long ZONE_SETTINGS::m_ThermalReliefCopperBridge

thickness of the copper bridge in thermal reliefs

Definition at line 84 of file zone_settings.h.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), ExportSetting(), operator<<(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and ZONE_SETTINGS().

◆ m_ThermalReliefGap

long ZONE_SETTINGS::m_ThermalReliefGap

thickness of the gap in thermal reliefs

Definition at line 83 of file zone_settings.h.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), ExportSetting(), operator<<(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and ZONE_SETTINGS().

◆ m_Zone_45_Only

◆ m_Zone_HatchingStyle

◆ m_ZoneClearance

◆ m_ZoneMinThickness

◆ m_ZonePriority


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