22 #ifndef __PNS_SIZES_SETTINGS_H
23 #define __PNS_SIZES_SETTINGS_H
26 #include <core/optional.h>
28 #include "../class_track.h"
31 class BOARD_DESIGN_SETTINGS;
37 class SIZES_SETTINGS {
41 m_trackWidth( 155000 ),
42 m_diffPairWidth( 125000 ),
43 m_diffPairGap( 180000 ),
44 m_diffPairViaGap( 180000 ),
45 m_viaDiameter( 600000 ),
47 m_diffPairViaGapSameAsTraceGap( true ),
48 m_widthFromRules( false),
49 m_viaType( VIA_THROUGH )
54 void ClearLayerPairs();
55 void AddLayerPair(
int aL1,
int aL2 );
57 int TrackWidth()
const {
return m_trackWidth; }
58 void SetTrackWidth(
int aWidth ) { m_trackWidth = aWidth; }
60 int DiffPairWidth()
const {
return m_diffPairWidth; }
61 int DiffPairGap()
const {
return m_diffPairGap; }
63 int DiffPairViaGap()
const {
64 if( m_diffPairViaGapSameAsTraceGap )
67 return m_diffPairViaGap;
70 bool DiffPairViaGapSameAsTraceGap()
const {
return m_diffPairViaGapSameAsTraceGap; }
71 bool WidthFromRules()
const {
return m_widthFromRules; }
73 void SetDiffPairWidth(
int aWidth ) { m_diffPairWidth = aWidth; }
74 void SetDiffPairGap(
int aGap ) { m_diffPairGap = aGap; }
75 void SetDiffPairViaGapSameAsTraceGap (
bool aEnable ) { m_diffPairViaGapSameAsTraceGap = aEnable; }
76 void SetDiffPairViaGap(
int aGap ) { m_diffPairViaGap = aGap; }
78 void SetWidthFromRules(
int aEnable ) { m_widthFromRules = aEnable; }
80 int ViaDiameter()
const {
return m_viaDiameter; }
81 void SetViaDiameter(
int aDiameter ) { m_viaDiameter = aDiameter; }
83 int ViaDrill()
const {
return m_viaDrill; }
84 void SetViaDrill(
int aDrill ) { m_viaDrill = aDrill; }
86 OPT<int> PairedLayer(
int aLayerId )
88 if( m_layerPairs.find(aLayerId) == m_layerPairs.end() )
91 return m_layerPairs[aLayerId];
94 int GetLayerTop()
const;
95 int GetLayerBottom()
const;
97 void SetViaType( VIATYPE_T aViaType ) { m_viaType = aViaType; }
98 VIATYPE_T ViaType()
const {
return m_viaType; }
102 int inheritTrackWidth( ITEM* aItem );
107 int m_diffPairViaGap;
111 bool m_diffPairViaGapSameAsTraceGap;
112 bool m_widthFromRules;
116 std::map<int, int> m_layerPairs;
121 #endif // __PNS_SIZES_SETTINGS_H