56 m_viaType = VIATYPE::THROUGH;
63 int aNet = -1, VIATYPE aViaType = VIATYPE::THROUGH ) :
69 m_diameter = aDiameter;
83 SetLayers( aB.Layers() );
85 m_diameter = aB.m_diameter;
88 m_marker = aB.m_marker;
91 m_viaType = aB.m_viaType;
92 m_isFree = aB.m_isFree;
93 m_isVirtual = aB.m_isVirtual;
94 m_definition = aB.m_definition;
97 static inline bool ClassOf(
const ITEM* aItem )
99 return aItem && VIA_T == aItem->
Kind();
102 const VECTOR2I& Pos()
const {
return m_pos; }
107 m_shape.SetCenter( aPos );
108 m_hole.SetCenter( aPos );
111 VIATYPE ViaType()
const {
return m_viaType; }
112 void SetViaType( VIATYPE aViaType ) { m_viaType = aViaType; }
114 int Diameter()
const {
return m_diameter; }
116 void SetDiameter(
int aDiameter )
118 m_diameter = aDiameter;
119 m_shape.SetRadius( m_diameter / 2 );
122 int Drill()
const {
return m_drill; }
124 void SetDrill(
int aDrill )
127 m_hole.SetRadius( m_drill / 2 );
130 bool IsFree()
const {
return m_isFree; }
131 void SetIsFree(
bool aIsFree ) { m_isFree = aIsFree; }
134 bool aSolidsOnly =
true,
int aMaxIterations = 10 );
138 const SHAPE_CIRCLE* Hole()
const override {
return &m_hole; }
139 void SetHole(
const SHAPE_CIRCLE& aHole ) { m_hole = aHole; }
141 VIA*
Clone()
const override;
143 const SHAPE_LINE_CHAIN Hull(
int aClearance = 0,
int aWalkaroundThickness = 0,
144 int aLayer = -1 )
const override;
146 virtual VECTOR2I Anchor(
int n )
const override
151 virtual int AnchorCount()
const override
156 int Definition()
const {
return m_definition; }
157 void SetDefinition(
int aDef ) { m_definition = aDef; }
159 OPT_BOX2I ChangedArea(
const VIA* aOther )
const;
161 const VIA_HANDLE MakeHandle()
const;
VIA * Clone() const override
Return a deep copy of the item.
Definition pns_via.cpp:89