KiCad PCB EDA Suite
ZONE_SETTINGS Class Reference

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
 
ZONE_CONNECTION GetPadConnection () const
 
void SetPadConnection (ZONE_CONNECTION 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...
 
ZONE_HATCH_STYLE 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...
 
ZONE_CONNECTION m_PadConnection
 
bool m_isKeepout
 
bool m_keepoutDoNotAllowCopperPour
 
bool m_keepoutDoNotAllowVias
 
bool m_keepoutDoNotAllowTracks
 

Detailed Description

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 58 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 61 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 = ZONE_FILL_MODE::POLYGONS; // Mode for filling zone
48  // Zone clearance value
50  // Min thickness value in filled areas (this is the minimum width of copper to fill solid areas) :
53  0; // good value of grid line thickness if m_FillMode = ZFM_GRID_PATTERN
54  m_HatchFillTypeGap = 0; // good value of grid line gap if m_FillMode = ZFM_GRID_PATTERN
55  m_HatchFillTypeOrientation = 0.0; // Grid style: orientation of grid lines in degrees
56  m_HatchFillTypeSmoothingLevel = 0; // Grid pattern smoothing type. 0 = no smoothing
57  m_HatchFillTypeSmoothingValue = 0.1; // Grid pattern chamfer value relative to the gap value
58  m_NetcodeSelection = 0; // Net code selection for the current zone
59  m_CurrentZone_Layer = F_Cu; // Layer used to create the current zone
61  ZONE_HATCH_STYLE::DIAGONAL_EDGE; // Option to show the zone area (outlines only,
62  //short hatches or full hatches
63 
64  // thickness of the gap in thermal reliefs:
66  // thickness of the copper bridge in thermal reliefs:
68 
69  m_PadConnection = ZONE_CONNECTION::THERMAL; // How pads are covered by copper in zone
70 
71  m_Zone_45_Only = false;
72 
74  m_cornerRadius = 0;
75 
76  SetIsKeepout( false );
77  SetDoNotAllowCopperPour( false );
78  SetDoNotAllowVias( true );
79  SetDoNotAllowTracks( true );
80 }
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:93
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:78
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:77
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:76
#define ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL
Definition: zones.h:39
ZONE_CONNECTION m_PadConnection
void SetDoNotAllowVias(bool aEnable)
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:83
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:98
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:71
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:90
#define ZONE_CLEARANCE_MIL
Definition: zones.h:42
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:73
void SetIsKeepout(bool aEnable)
void SetDoNotAllowTracks(bool aEnable)
#define ZONE_THICKNESS_MIL
Definition: zones.h:40
Use thermal relief for pads.
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:69
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:80
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:99
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:75
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:87
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:92
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:74

References 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, POLYGONS, SetDoNotAllowCopperPour(), SetDoNotAllowTracks(), SetDoNotAllowVias(), SetIsKeepout(), SMOOTHING_NONE, THERMAL, 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 114 of file zone_settings.cpp.

115 {
116  aTarget.SetFillMode( m_FillMode );
128  aTarget.SetCornerRadius( m_cornerRadius );
129  aTarget.SetIsKeepout( GetIsKeepout() );
133  aTarget.SetHV45( m_Zone_45_Only );
134 
135  if( aFullExport )
136  {
137  aTarget.SetPriority( m_ZonePriority );
138 
139  // Keepout zones can have multiple layers and have no net
140  if( m_isKeepout )
141  {
142  aTarget.SetLayerSet( m_Layers );
143  }
144  else
145  {
146  aTarget.SetNetCode( m_NetcodeSelection );
147  aTarget.SetLayer( m_CurrentZone_Layer );
148  }
149  }
150 
151  // call SetHatch last, because hatch lines will be rebuilt,
152  // using new parameters values
153  aTarget.SetHatch( m_Zone_HatchingStyle, aTarget.GetDefaultHatchPitch(), true );
154 }
void SetDoNotAllowTracks(bool aEnable)
Definition: class_zone.h:639
void SetCornerSmoothingType(int aType)
Definition: class_zone.h:591
void SetHatch(ZONE_HATCH_STYLE aHatchStyle, int aHatchPitch, bool aRebuildHatch)
Function SetHatch sets all hatch parameters for the zone.
Definition: class_zone.cpp:958
void SetHatchFillTypeSmoothingLevel(int aLevel)
Definition: class_zone.h:205
void SetHatchFillTypeSmoothingValue(double aValue)
Definition: class_zone.h:208
void SetPadConnection(ZONE_CONNECTION aPadConnection)
Definition: class_zone.h:181
void SetCornerRadius(unsigned int aRadius)
Definition: class_zone.cpp:542
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:93
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:78
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:77
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:76
ZONE_CONNECTION m_PadConnection
static int GetDefaultHatchPitch()
Function GetDefaultHatchPitchMils.
void SetDoNotAllowVias(bool aEnable)
Definition: class_zone.h:638
void SetPriority(unsigned aPriority)
Function SetPriority.
Definition: class_zone.h:94
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:83
void SetLayerSet(LSET aLayerSet)
Definition: class_zone.cpp:239
void SetHatchFillTypeGap(int aStep)
Definition: class_zone.h:199
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:98
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:71
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:90
virtual void SetLayer(PCB_LAYER_ID aLayer) override
Function SetLayer sets the layer this item is on.
Definition: class_zone.cpp:231
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:73
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:177
const bool GetDoNotAllowTracks() const
void SetThermalReliefCopperBridge(int aThermalReliefCopperBridge)
Definition: class_zone.h:161
void SetDoNotAllowCopperPour(bool aEnable)
Definition: class_zone.h:637
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:69
void SetFillMode(ZONE_FILL_MODE aFillMode)
Definition: class_zone.h:155
void SetHatchFillTypeOrientation(double aStep)
Definition: class_zone.h:202
const bool GetDoNotAllowCopperPour() const
void SetHV45(bool aConstrain)
Definition: class_zone.h:691
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:80
void SetHatchFillTypeThickness(int aThickness)
Definition: class_zone.h:196
void SetIsKeepout(bool aEnable)
Definition: class_zone.h:636
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:99
void SetMinThickness(int aMinThickness)
Definition: class_zone.h:187
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:75
void SetThermalReliefGap(int aThermalReliefGap)
Definition: class_zone.h:158
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:87
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:92
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:74

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 153 of file zone_settings.h.

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

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 168 of file zone_settings.h.

168 { return m_isKeepout; }

References m_isKeepout.

Referenced by ExportSetting().

◆ GetPadConnection()

ZONE_CONNECTION ZONE_SETTINGS::GetPadConnection ( ) const
inline

Definition at line 155 of file zone_settings.h.

156  {
157  return m_PadConnection;
158  }
ZONE_CONNECTION m_PadConnection

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 83 of file zone_settings.cpp.

84 {
85  m_ZonePriority = aSource.GetPriority();
86  m_FillMode = aSource.GetFillMode();
94  m_NetcodeSelection = aSource.GetNetCode();
100  m_cornerRadius = aSource.GetCornerRadius();
101  m_isKeepout = aSource.GetIsKeepout();
105  m_Zone_45_Only = aSource.GetHV45();
106 
107  m_CurrentZone_Layer = aSource.GetLayer();
108  m_Layers = aSource.GetLayerSet();
109 
110  return *this;
111 }
int GetNetCode() const
Function GetNetCode.
int GetThermalReliefCopperBridge(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:533
int GetHatchFillTypeThickness() const
Definition: class_zone.h:195
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:93
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:78
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:77
virtual PCB_LAYER_ID GetLayer() const override
Function GetLayer returns the primary layer this item is on.
Definition: class_zone.cpp:204
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:76
double GetHatchFillTypeOrientation() const
Definition: class_zone.h:201
double GetHatchFillTypeSmoothingValue() const
Definition: class_zone.h:207
ZONE_CONNECTION m_PadConnection
int GetThermalReliefGap(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:524
bool GetDoNotAllowVias() const
Definition: class_zone.h:633
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:268
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:83
unsigned int GetCornerRadius() const
Definition: class_zone.h:597
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:98
ZONE_FILL_MODE GetFillMode() const
Definition: class_zone.h:156
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:71
bool GetDoNotAllowCopperPour() const
Definition: class_zone.h:632
ZONE_HATCH_STYLE m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:90
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:73
ZONE_CONNECTION GetPadConnection(D_PAD *aPad=NULL) const
Definition: class_zone.cpp:867
ZONE_HATCH_STYLE GetHatchStyle() const
Definition: class_zone.h:520
int GetCornerSmoothingType() const
Definition: class_zone.h:593
bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
Definition: class_zone.h:631
bool GetHV45() const
Definition: class_zone.h:690
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:69
unsigned GetPriority() const
Function GetPriority.
Definition: class_zone.h:100
bool m_keepoutDoNotAllowCopperPour
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:80
int GetMinThickness() const
Definition: class_zone.h:186
bool GetDoNotAllowTracks() const
Definition: class_zone.h:634
int GetHatchFillTypeSmoothingLevel() const
Definition: class_zone.h:204
bool m_keepoutDoNotAllowTracks
int GetZoneClearance() const
Definition: class_zone.h:176
unsigned int m_cornerRadius
Corner chamfer distance / fillet radius.
Definition: zone_settings.h:99
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:75
int GetHatchFillTypeGap() const
Definition: class_zone.h:198
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:87
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:92
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:74
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 157 of file zone_settings.cpp.

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

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 147 of file zone_settings.h.

147 { m_cornerSmoothingType = aType; }
int m_cornerSmoothingType
Corner smoothing type.
Definition: zone_settings.h:98

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 ( ZONE_CONNECTION  aPadConnection)
inline

Definition at line 160 of file zone_settings.h.

161  {
162  m_PadConnection = aPadConnection;
163  }
ZONE_CONNECTION m_PadConnection

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 174 of file zone_settings.cpp.

176 {
177  BOARD* board = aFrame->GetBoard();
178  COLOR4D backgroundColor = aFrame->Settings().Colors().GetLayerColor( LAYER_PCB_BACKGROUND );
179  LSET layers = aShowCopper ? LSET::AllCuMask( board->GetCopperLayerCount() )
180  : LSET::AllNonCuMask();
181 
182  wxDataViewColumn* checkColumn = aList->AppendToggleColumn( wxEmptyString );
183  wxDataViewColumn* layerColumn = aList->AppendIconTextColumn( wxEmptyString );
184  wxDataViewColumn* layerIDColumn = aList->AppendTextColumn( wxEmptyString );
185  layerIDColumn->SetHidden( true );
186 
187  int textWidth = 0;
188 
189  for( LSEQ layer = layers.UIOrder(); layer; ++layer )
190  {
191  PCB_LAYER_ID layerID = *layer;
192  wxString layerName = board->GetLayerName( layerID );
193  if( aFpEditorMode && layerID == In1_Cu )
194  layerName = _( "Inner layers" );
195 
196  // wxCOL_WIDTH_AUTOSIZE doesn't work on all platforms, so we calculate width here
197  textWidth = std::max( textWidth, GetTextSize( layerName, aList ).x );
198 
199  COLOR4D layerColor = aFrame->Settings().Colors().GetLayerColor( layerID );
200  auto bitmap = COLOR_SWATCH::MakeBitmap( layerColor, backgroundColor, LAYER_BITMAP_SIZE );
201  wxIcon icon;
202  icon.CopyFromBitmap( bitmap );
203 
204  wxVector<wxVariant> row;
205  row.push_back( wxVariant( m_Layers.test( layerID ) ) );
206  row.push_back( wxVariant( wxDataViewIconText( layerName, icon ) ) );
207  row.push_back( wxVariant( wxString::Format( "%i", layerID ) ) );
208  aList->AppendItem( row );
209 
210  if( m_CurrentZone_Layer == layerID )
211  aList->SetToggleValue( true, (unsigned) aList->GetItemCount() - 1, 0 );
212  }
213 
214  int checkColSize = 22;
215  int layerColSize = textWidth + LAYER_BITMAP_SIZE.x + 15;
216 
217  // You'd think the fact that m_layers is a list would encourage wxWidgets not to save room
218  // for the tree expanders... but you'd be wrong. Force indent to 0.
219  aList->SetIndent( 0 );
220  aList->SetMinClientSize( wxSize( checkColSize + layerColSize, aList->GetMinClientSize().y ) );
221 
222  checkColumn->SetWidth( checkColSize );
223  layerColumn->SetWidth( layerColSize );
224 }
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:686
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:709
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:113
COLOR4D GetLayerColor(LAYER_NUM aLayer) const
Function GetLayerColor.
PCB_LAYER_ID
A quick note on layer IDs:
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.
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
BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:160
#define _(s)
Definition: 3d_actions.cpp:31
int GetCopperLayerCount() const
Function GetCopperLayerCount.
BOARD * GetBoard() const
static const wxSize LAYER_BITMAP_SIZE(24, 16)
LSEQ UIOrder() const
Definition: lset.cpp:813
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:87
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(), 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 99 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 98 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 105 of file zone_settings.h.

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

◆ m_keepoutDoNotAllowCopperPour

bool ZONE_SETTINGS::m_keepoutDoNotAllowCopperPour
private

Definition at line 110 of file zone_settings.h.

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

◆ m_keepoutDoNotAllowTracks

bool ZONE_SETTINGS::m_keepoutDoNotAllowTracks
private

Definition at line 112 of file zone_settings.h.

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

◆ m_keepoutDoNotAllowVias

bool ZONE_SETTINGS::m_keepoutDoNotAllowVias
private

Definition at line 111 of file zone_settings.h.

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

◆ m_Layers

◆ m_NetcodeSelection

int ZONE_SETTINGS::m_NetcodeSelection

◆ m_PadConnection

ZONE_CONNECTION ZONE_SETTINGS::m_PadConnection
private

◆ m_ThermalReliefCopperBridge

long ZONE_SETTINGS::m_ThermalReliefCopperBridge

thickness of the copper bridge in thermal reliefs

Definition at line 93 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 92 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: