22 #ifndef __PNS_SEGMENT_H
23 #define __PNS_SEGMENT_H
25 #include <math/vector2d.h>
27 #include <geometry/seg.h>
28 #include <geometry/shape_segment.h>
29 #include <geometry/shape_line_chain.h>
46 ITEM( SEGMENT_T ), m_seg( aSeg, 0 )
53 m_seg( aSeg, aParentLine.
Width() )
55 m_net = aParentLine.
Net();
56 m_layers = aParentLine.
Layers();
57 m_marker = aParentLine.Marker();
58 m_rank = aParentLine.Rank();
61 static inline bool ClassOf(
const ITEM* aItem )
63 return aItem && SEGMENT_T == aItem->
Kind();
70 return static_cast<const SHAPE*
>( &m_seg );
73 void SetLayer(
int aLayer )
83 void SetWidth(
int aWidth )
85 m_seg.SetWidth(aWidth);
90 return m_seg.GetWidth();
93 const SEG& Seg()
const
95 return m_seg.GetSeg();
105 m_seg.SetSeg(
SEG ( a, b ) );
110 SEG tmp = m_seg.GetSeg();
111 m_seg.SetSeg(
SEG (tmp.B , tmp.A ) );
114 const SHAPE_LINE_CHAIN Hull(
int aClearance,
int aWalkaroundThickness )
const override;
116 virtual VECTOR2I Anchor(
int n )
const override
119 return m_seg.GetSeg().A;
121 return m_seg.GetSeg().B;
124 virtual int AnchorCount()
const override
SEGMENT * Clone() const override
Function Clone()
Definition: pns_line.cpp:122
Definition: pns_line.h:61
const LAYER_RANGE & Layers() const
Function Layers()
Definition: pns_item.h:215
Class LAYER_RANGE.
Definition: pns_layerset.h:33
int Layer() const override
Function Layer()
Definition: pns_segment.h:78
Definition: pns_segment.h:39
int Net() const
Function Net()
Definition: pns_item.h:180
const SHAPE * Shape() const override
Function Shape()
Definition: pns_segment.h:68
Definition: shape_segment.h:31
void SetLayers(const LAYER_RANGE &aLayers)
Function SetLayers()
Definition: pns_item.h:195
Class ITEM.
Definition: pns_item.h:55
Class SHAPE_LINE_CHAIN.
Definition: shape_line_chain.h:50
PnsKind Kind() const
Function Kind()
Definition: pns_item.h:123
Class SHAPE.
Definition: shape.h:59
int Width() const
Returns line width
Definition: pns_line.h:161