61               const EDA_ANGLE& aCenterAngle, 
int aWidth = 0 );
 
   80    SHAPE_ARC( 
const SEG& aSegmentA, 
const SEG& aSegmentB, 
int aRadius, 
int aWidth = 0 );
 
  103                                           const EDA_ANGLE& aAngle, 
double aWidth = 0 );
 
  115                                            const VECTOR2I& aCenter, 
bool aClockwise = 
false,
 
  123    const BOX2I BBox( 
int aClearance = 0 ) 
const override;
 
  167    bool Collide( 
const SEG& aSeg, 
int aClearance = 0, 
int* aActual = 
nullptr,
 
  168                  VECTOR2I* aLocation = 
nullptr ) 
const override;
 
  169    bool Collide( 
const VECTOR2I& aP, 
int aClearance = 0, 
int* aActual = 
nullptr,
 
  170                  VECTOR2I* aLocation = 
nullptr ) 
const override;
 
  173    bool Collide( 
const SHAPE* aShape, 
int aClearance = 0, 
int* aActual = 
nullptr,
 
  174                  VECTOR2I* aLocation = 
nullptr )
 const override 
 
  187    int IntersectLine( 
const SEG& aSeg, std::vector<VECTOR2I>* aIpsBuffer ) 
const;
 
  196    int Intersect( 
const CIRCLE& aArc, std::vector<VECTOR2I>* aIpsBuffer ) 
const;
 
  301                                              int* aActualError = 
nullptr ) 
const;
 
  320        return v1.Cross( 
v2 ) > 0;
 
 
 
ERROR_LOC
When approximating an arc or circle, should the error be placed on the outside or inside of the curve...
 
constexpr int ARC_HIGH_DEF
 
Represent basic circle geometry with utility geometry functions.
 
EDA_ANGLE GetCentralAngle() const
Get the "central angle" of the arc - this is the angle at the point of the "pie slice".
 
const VECTOR2I & GetArcMid() const
 
VECTOR2I GetEnd() const override
 
void TransformToPolygon(SHAPE_POLY_SET &aBuffer, int aMaxError, ERROR_LOC aErrorLoc) const override
Fills a SHAPE_POLY_SET with a polygon representation of this shape.
 
bool Collide(const SHAPE *aShape, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const override
 
void Move(const VECTOR2I &aVector) override
 
SHAPE_ARC & ConstructFromStartEndAngle(const VECTOR2I &aStart, const VECTOR2I &aEnd, const EDA_ANGLE &aAngle, double aWidth=0)
Construct this arc from the given start, end and angle.
 
const BOX2I BBox(int aClearance=0) const override
Compute a bounding box of the shape, with a margin of aClearance a collision.
 
int GetWidth() const override
 
EDA_ANGLE GetEndAngle() const
 
void Rotate(const EDA_ANGLE &aAngle, const VECTOR2I &aCenter) override
Rotate the arc by a given angle about a point.
 
bool sliceContainsPoint(const VECTOR2I &p) const
 
const SHAPE_LINE_CHAIN ConvertToPolyline(int aMaxError=DefaultAccuracyForPCB(), int *aActualError=nullptr) const
Construct a SHAPE_LINE_CHAIN of segments from a given arc.
 
VECTOR2I NearestPoint(const VECTOR2I &aP) const
 
int Intersect(const CIRCLE &aArc, std::vector< VECTOR2I > *aIpsBuffer) const
Find intersection points between this arc and a CIRCLE.
 
SHAPE_ARC & ConstructFromStartEndCenter(const VECTOR2I &aStart, const VECTOR2I &aEnd, const VECTOR2I &aCenter, bool aClockwise=false, double aWidth=0)
Constructs this arc from the given start, end and center.
 
void Mirror(const VECTOR2I &aRef, FLIP_DIRECTION aFlipDirection)
 
SHAPE_ARC Reversed() const
 
const VECTOR2I & GetP1() const
 
int IntersectLine(const SEG &aSeg, std::vector< VECTOR2I > *aIpsBuffer) const
Find intersection points between this arc and aSeg, treating aSeg as an infinite line.
 
bool Collide(const SEG &aSeg, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const override
Check if the boundary of shape (this) lies closer to the segment aSeg than aClearance,...
 
static int DefaultAccuracyForPCB()
 
EDA_ANGLE GetStartAngle() const
 
bool operator==(SHAPE_ARC const &aArc) const
 
bool IsEffectiveLine() const
 
SHAPE * Clone() const override
Return a dynamically allocated copy of the shape.
 
bool NearestPoints(const SHAPE_ARC &aArc, VECTOR2I &aPtA, VECTOR2I &aPtB, int64_t &aDistSq) const
Compute closest points between this arc and aArc.
 
const VECTOR2I & GetP0() const
 
bool IsSolid() const override
 
void SetWidth(int aWidth) override
 
VECTOR2I GetStart() const override
 
const VECTOR2I & GetCenter() const
 
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
 
Represent a set of closed polygons.
 
virtual bool Collide(const VECTOR2I &aP, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const
Check if the boundary of shape (this) lies closer to the point aP than aClearance,...
 
SHAPE(SHAPE_TYPE aType)
Create an empty shape of type aType.
 
std::ostream & operator<<(std::ostream &aStream, const SHAPE_ARC &aArc)
 
VECTOR2< int32_t > VECTOR2I
 
VECTOR2< int64_t > VECTOR2L