40 if( aOverallSize.
x > aOverallSize.
y )
42 width = aOverallSize.
y;
43 segVec.x = aOverallSize.
x - width;
47 width = aOverallSize.
x;
48 segVec.y = aOverallSize.
y - width;
53 return SHAPE_SEGMENT( aCenter - segVec / 2, aCenter + segVec / 2, width );
63 ss <<
"SHAPE_SEGMENT( VECTOR2I( ";
67 ss <<
"), VECTOR2I( ";
98 ss <<
"SHAPE_CIRCLE( VECTOR2I( ";
129 double f = fmod( mag.
AsDegrees(), 45.0 );
132 if( f >= 45.0 - d || f <= d )
ERROR_LOC
When approximating an arc or circle, should the error be placed on the outside or inside of the curve...
void TransformToPolygon(SHAPE_POLY_SET &aBuffer, int aError, ERROR_LOC aErrorLoc) const override
Fills a SHAPE_POLY_SET with a polygon representation of this shape.
virtual const std::string Format(bool aCplusPlus=true) const override
Represent a set of closed polygons.
bool Is45Degree(EDA_ANGLE aTollerance=EDA_ANGLE(1.0, DEGREES_T)) const
virtual const std::string Format(bool aCplusPlus=true) const override
void TransformToPolygon(SHAPE_POLY_SET &aBuffer, int aError, ERROR_LOC aErrorLoc) const override
Fills a SHAPE_POLY_SET with a polygon representation of this shape.
static SHAPE_SEGMENT BySizeAndCenter(const VECTOR2I &aSize, const VECTOR2I &aCenter, const EDA_ANGLE &aRotation)
virtual const std::string Format(bool aCplusPlus=true) const
void TransformCircleToPolygon(SHAPE_LINE_CHAIN &aBuffer, const VECTOR2I &aCenter, int aRadius, int aError, ERROR_LOC aErrorLoc, int aMinSegCount=0)
Convert a circle to a polygon, using multiple straight lines.
void TransformOvalToPolygon(SHAPE_POLY_SET &aBuffer, const VECTOR2I &aStart, const VECTOR2I &aEnd, int aWidth, int aError, ERROR_LOC aErrorLoc, int aMinSegCount=0)
Convert a oblong shape to a polygon, using multiple segments.
void RotatePoint(int *pX, int *pY, const EDA_ANGLE &aAngle)
Calculate the new point of coord coord pX, pY, for a rotation center 0, 0.
VECTOR2< int32_t > VECTOR2I