57    if( aLineWidth <= 0.0 )
 
   61    return int( aLineWidth * 
scale );
 
 
   89    line->AddPoint( pt0 );
 
   90    line->AddPoint( pt1 );
 
 
  103    circle->SetFillColor( aFillColor );
 
  104    circle->SetFilled( aFilled );
 
 
  137    double           radius = ( 
center - arc->GetStart() ).EuclideanNorm();
 
  138    constexpr double rd_max_value = std::numeric_limits<VECTOR2I::coord_type>::max() / 2.0;
 
  140    if( 
radius >= rd_max_value )
 
 
  157    std::vector<VECTOR2I> convertedPoints;
 
  158    convertedPoints.reserve( aVertices.size() );
 
  160    for( 
const VECTOR2D& precisePoint : aVertices )
 
  161        convertedPoints.emplace_back( 
MapCoordinate( precisePoint ) );
 
  163    if( convertedPoints.empty() )
 
  168    polygon->SetUnit( 
m_unit );
 
  176    polygon->SetFillColor( aFillColor );
 
  177    polygon->SetPolyPoints( convertedPoints );
 
  178    polygon->AddPoint( convertedPoints[0] ); 
 
  182    if( polygon->IsPolyShapeValid() )
 
  183        addItem( std::move( polygon ) );
 
 
  188                                            double aHeight, 
double aWidth, 
double aThickness,
 
  194    textItem->SetUnit( 
m_unit );
 
  195    textItem->SetTextColor( aColor );
 
  196    textItem->SetTextThickness( 
MapLineWidth( aThickness ) );
 
  200    textItem->SetVertJustify( aVJustify );
 
  201    textItem->SetHorizJustify( aHJustify );
 
  203    addItem( std::move( textItem ) );
 
 
  214    spline->SetUnit( 
m_unit );
 
  224    if( spline->GetBezierPoints().size() <= 2 )
 
  230#define MIN_SEG_LEN_ACCEPTABLE_NM 20 
  235    addItem( std::move( spline ) );
 
 
constexpr EDA_IU_SCALE schIUScale
 
constexpr double ARC_LOW_DEF_MM
 
constexpr BOX2I KiROUND(const BOX2D &aBoxD)
 
static const COLOR4D UNSPECIFIED
For legacy support; used as a value to indicate color hasn't been set yet.
 
VECTOR2I MapCoordinate(const VECTOR2D &aCoordinate)
Convert an imported coordinate to a board coordinate, according to the internal units,...
 
void AddText(const VECTOR2D &aOrigin, const wxString &aText, double aHeight, double aWidth, double aThickness, double aOrientation, GR_TEXT_H_ALIGN_T aHJustify, GR_TEXT_V_ALIGN_T aVJustify, const COLOR4D &aColor=COLOR4D::UNSPECIFIED) override
Create an object representing a text.
 
void AddSpline(const VECTOR2D &aStart, const VECTOR2D &aBezierControl1, const VECTOR2D &aBezierControl2, const VECTOR2D &aEnd, const IMPORTED_STROKE &aStroke) override
Create an object representing an arc.
 
STROKE_PARAMS MapStrokeParams(const IMPORTED_STROKE &aStroke)
 
void AddPolygon(const std::vector< VECTOR2D > &aVertices, const IMPORTED_STROKE &aStroke, bool aFilled, const COLOR4D &aFillColor=COLOR4D::UNSPECIFIED) override
Create an object representing a polygon.
 
void AddLine(const VECTOR2D &aStart, const VECTOR2D &aEnd, const IMPORTED_STROKE &aStroke) override
Create an object representing a line segment.
 
void AddArc(const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, const IMPORTED_STROKE &aStroke) override
Create an object representing an arc.
 
int MapLineWidth(double aLineWidth)
If aLineWidth < 0, the default line thickness value is returned.
 
void AddCircle(const VECTOR2D &aCenter, double aRadius, const IMPORTED_STROKE &aStroke, bool aFilled, const COLOR4D &aFillColor=COLOR4D::UNSPECIFIED) override
Create an object representing a circle.
 
GRAPHICS_IMPORTER_LIB_SYMBOL(LIB_SYMBOL *aSymbol, int aUnit)
 
VECTOR2D GetScale() const
 
double GetMillimeterToIuFactor()
 
double GetLineWidthMM() const
Return the line width used for importing the outlines (in mm).
 
void addItem(std::unique_ptr< EDA_ITEM > aItem)
Add an item to the imported shapes list.
 
double m_millimeterToIu
Factor to convert millimeters to Internal Units.
 
const VECTOR2D & GetImportOffsetMM() const
 
VECTOR2D ImportScalingFactor() const
 
A clone of IMPORTED_STROKE, but with floating-point width.
 
LINE_STYLE GetPlotStyle() const
 
KIGFX::COLOR4D GetColor() const
 
A color representation with 4 components: red, green, blue, alpha.
 
Define a library symbol object.
 
Simple container to manage line stroke parameters.
 
T EuclideanNorm() const
Compute the Euclidean norm of the vector, which is defined as sqrt(x ** 2 + y ** 2).
 
@ FILLED_SHAPE
Fill with object color.
 
#define MIN_SEG_LEN_ACCEPTABLE_NM
 
EDA_ANGLE abs(const EDA_ANGLE &aAngle)
 
SHAPE_CIRCLE circle(c.m_circle_center, c.m_circle_radius)
 
GR_TEXT_H_ALIGN_T
This is API surface mapped to common.types.HorizontalAlignment.
 
GR_TEXT_V_ALIGN_T
This is API surface mapped to common.types.VertialAlignment.
 
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.
 
const VECTOR2I CalcArcCenter(const VECTOR2I &aStart, const VECTOR2I &aMid, const VECTOR2I &aEnd)
Determine the center of an arc or circle given three points on its circumference.
 
VECTOR2< int32_t > VECTOR2I
 
VECTOR2< double > VECTOR2D