28 #include <geometry/shape.h>
29 #include <geometry/seg.h>
37 SHAPE( SH_ARC ), m_width( 0 ) {};
40 double aCenterAngle,
int aWidth = 0 ) :
41 SHAPE( SH_ARC ), m_p0( aArcStartPoint ), m_pc( aArcCenter ), m_centralAngle( aCenterAngle ),
51 m_centralAngle = aOther.m_centralAngle;
52 m_width = aOther.m_width;
62 const VECTOR2I& GetP0()
const {
return m_p0; }
64 const VECTOR2I& GetCenter()
const {
return m_pc; }
66 const BOX2I BBox(
int aClearance = 0 )
const override;
68 bool Collide(
const SEG& aSeg,
int aClearance = 0 )
const override;
71 void SetWidth(
int aWidth )
81 bool IsSolid()
const override
86 void Move(
const VECTOR2I& aVector )
override
92 int GetRadius()
const;
96 return SEG( m_p0, GetP1() );
99 double GetCentralAngle()
const;
100 double GetStartAngle()
const;
101 double GetEndAngle()
const;
131 return (ecoord) ( aC.y - aA.y ) * ( aB.x - aA.x ) >
132 (ecoord) ( aB.y - aA.y ) * ( aC.x - aA.x );
137 double m_centralAngle;