25#include <math/vector2d.h>
27#include <geometry/seg.h>
28#include <geometry/shape.h>
29#include <geometry/shape_line_chain.h>
58 m_shape = aSolid.m_shape->
Clone();
63 m_hole = aSolid.m_hole->
Clone();
68 m_padToDie = aSolid.m_padToDie;
69 m_orientation = aSolid.m_orientation;
72 static inline bool ClassOf(
const ITEM* aItem )
74 return aItem && SOLID_T == aItem->
Kind();
81 const SHAPE* Hole()
const override {
return m_hole; }
83 const SHAPE_LINE_CHAIN Hull(
int aClearance = 0,
int aWalkaroundThickness = 0,
84 int aLayer = -1 )
const override;
87 int aLayer )
const override;
89 void SetShape(
SHAPE* shape )
95 void SetHole(
SHAPE* shape )
101 const VECTOR2I& Pos()
const {
return m_pos; }
102 void SetPos(
const VECTOR2I& aCenter );
104 int GetPadToDie()
const {
return m_padToDie; }
105 void SetPadToDie(
int aLen ) { m_padToDie = aLen; }
107 virtual VECTOR2I Anchor(
int aN )
const override
112 virtual int AnchorCount()
const override
117 VECTOR2I Offset()
const {
return m_offset; }
118 void SetOffset(
const VECTOR2I& aOffset ) { m_offset = aOffset; }
120 double GetOrientation()
const {
return m_orientation; }
121 void SetOrientation(
double aOrientation ) { m_orientation = aOrientation; }
129 double m_orientation;
Base class for PNS router board items.
Definition pns_item.h:57
PnsKind Kind() const
Return the type (kind) of the item.
Definition pns_item.h:131
Definition pns_solid.h:36
const SHAPE * Shape() const override
Return the geometrical shape of the item.
Definition pns_solid.h:79
ITEM * Clone() const override
Return a deep copy of the item.
Definition pns_solid.cpp:170
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
Definition shape_line_chain.h:81
An abstract shape on 2D plane.
Definition shape.h:117
virtual SHAPE * Clone() const
Return a dynamically allocated copy of the shape.
Definition shape.h:139