KiCad PCB EDA Suite
Loading...
Searching...
No Matches
GRAPHICS_IMPORTER_BUFFER Class Reference

#include <graphics_importer_buffer.h>

Inheritance diagram for GRAPHICS_IMPORTER_BUFFER:
GRAPHICS_IMPORTER

Public Types

enum  POLY_FILL_RULE { PF_NONZERO = 0 , PF_EVEN_ODD }
 

Public Member Functions

void AddLine (const VECTOR2D &aStart, const VECTOR2D &aEnd, const IMPORTED_STROKE &aStroke) override
 Create an object representing a line segment.
 
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.
 
void AddArc (const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, const IMPORTED_STROKE &aStroke) override
 Create an object representing an arc.
 
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 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.
 
void ImportTo (GRAPHICS_IMPORTER &aImporter)
 
void AddShape (std::unique_ptr< IMPORTED_SHAPE > &aShape)
 
std::list< std::unique_ptr< IMPORTED_SHAPE > > & GetShapes ()
 
void ClearShapes ()
 
void PostprocessNestedPolygons ()
 
void SetPlugin (std::unique_ptr< GRAPHICS_IMPORT_PLUGIN > aPlugin)
 Set the import plugin used to obtain shapes from a file.
 
bool Load (const wxString &aFileName)
 Load file and get its basic data.
 
bool Import (const VECTOR2D &aScale=VECTOR2D(1.0, 1.0))
 Import shapes from loaded file.
 
const wxString & GetMessages () const
 Collect warning and error messages after loading/importing.
 
void ReportMsg (const wxString &aMessage)
 
double GetImageWidthMM () const
 Get original image Width.
 
double GetImageHeightMM () const
 Get original image Height.
 
void SetLineWidthMM (double aWidth)
 Set the line width for the imported outlines (in mm).
 
double GetLineWidthMM () const
 Return the line width used for importing the outlines (in mm).
 
VECTOR2D GetScale () const
 
const VECTOR2DGetImportOffsetMM () const
 
void SetImportOffsetMM (const VECTOR2D &aOffset)
 Set the offset in millimeters to add to coordinates when importing graphic items.
 
void SetScale (const VECTOR2D &aScale)
 Set the scale factor affecting the imported shapes.
 
double GetMillimeterToIuFactor ()
 
VECTOR2D ImportScalingFactor () const
 
std::list< std::unique_ptr< EDA_ITEM > > & GetItems ()
 Return the list of objects representing the imported shapes.
 
void ClearItems ()
 Empties out the imported shapes list.
 
virtual void NewShape (POLY_FILL_RULE aFillRule=PF_NONZERO)
 

Static Public Attributes

static constexpr unsigned int DEFAULT_LINE_WIDTH_DFX = 1
 Default line thickness (in mm).
 

Protected Member Functions

void addItem (std::unique_ptr< EDA_ITEM > aItem)
 Add an item to the imported shapes list.
 
bool setupSplineOrLine (EDA_SHAPE &aShape, int aAccuracy)
 Configure a shape as a spline or a line segment if it's degenerate.
 

Protected Attributes

std::list< std::unique_ptr< IMPORTED_SHAPE > > m_shapes
 List of imported shapes.
 
double m_millimeterToIu
 Factor to convert millimeters to Internal Units.
 
VECTOR2D m_offsetCoordmm
 Offset (in mm) for imported coordinates.
 
std::vector< POLY_FILL_RULEm_shapeFillRules
 

Private Attributes

std::list< std::unique_ptr< EDA_ITEM > > m_items
 List of imported items.
 
std::unique_ptr< GRAPHICS_IMPORT_PLUGINm_plugin
 Plugin used to load a file.
 
double m_originalWidth
 Total image width.
 
double m_originalHeight
 Total image Height.
 
VECTOR2D m_scale
 Scale factor applied to the imported graphics.
 
double m_lineWidth
 Default line thickness for the imported graphics.
 

Detailed Description

Definition at line 356 of file graphics_importer_buffer.h.

Member Enumeration Documentation

◆ POLY_FILL_RULE

Enumerator
PF_NONZERO 
PF_EVEN_ODD 

Definition at line 79 of file graphics_importer.h.

Member Function Documentation

◆ AddArc()

void GRAPHICS_IMPORTER_BUFFER::AddArc ( const VECTOR2D & aCenter,
const VECTOR2D & aStart,
const EDA_ANGLE & aAngle,
const IMPORTED_STROKE & aStroke )
overridevirtual

Create an object representing an arc.

Parameters
aCenteris the arc center point expressed in mm.
aStartis the arc arm end point expressed in mm. Its length is the arc radius.
aAngleis the arc angle.
aStrokeis the shape stroke parameters.

Implements GRAPHICS_IMPORTER.

Definition at line 57 of file graphics_importer_buffer.cpp.

References m_shapes, and make_shape().

Referenced by DXF_IMPORT_PLUGIN::addArc(), and DXF_IMPORT_PLUGIN::insertArc().

◆ AddCircle()

void GRAPHICS_IMPORTER_BUFFER::AddCircle ( const VECTOR2D & aCenter,
double aRadius,
const IMPORTED_STROKE & aStroke,
bool aFilled,
const COLOR4D & aFillColor = COLOR4D::UNSPECIFIED )
overridevirtual

Create an object representing a circle.

Parameters
aCenteris the circle center point expressed in mm.
aRadiusis the circle radius expressed in mm.
aStrokeis the shape stroke parameters.

Implements GRAPHICS_IMPORTER.

Definition at line 48 of file graphics_importer_buffer.cpp.

References m_shapes, and make_shape().

Referenced by DXF_IMPORT_PLUGIN::addCircle(), and DXF_IMPORT_PLUGIN::addPoint().

◆ addItem()

◆ AddLine()

void GRAPHICS_IMPORTER_BUFFER::AddLine ( const VECTOR2D & aOrigin,
const VECTOR2D & aEnd,
const IMPORTED_STROKE & aStroke )
overridevirtual

Create an object representing a line segment.

Parameters
aOriginis the segment origin point expressed in mm.
aEndis the segment end point expressed in mm.
aStrokeis the shape stroke parameters.

Implements GRAPHICS_IMPORTER.

Definition at line 41 of file graphics_importer_buffer.cpp.

References m_shapes, and make_shape().

Referenced by DXF_IMPORT_PLUGIN::addLine(), and DXF_IMPORT_PLUGIN::insertLine().

◆ AddPolygon()

void GRAPHICS_IMPORTER_BUFFER::AddPolygon ( const std::vector< VECTOR2D > & aVertices,
const IMPORTED_STROKE & aStroke,
bool aFilled,
const COLOR4D & aFillColor = COLOR4D::UNSPECIFIED )
overridevirtual

Create an object representing a polygon.

Parameters
aVerticesis the array of vertices.
aWidthis the stroke width.
aStrokeis the shape stroke parameters.
aFillColoris the fill color.

Implements GRAPHICS_IMPORTER.

Definition at line 64 of file graphics_importer_buffer.cpp.

References GRAPHICS_IMPORTER::m_shapeFillRules, m_shapes, and make_shape().

◆ AddShape()

void GRAPHICS_IMPORTER_BUFFER::AddShape ( std::unique_ptr< IMPORTED_SHAPE > & aShape)

Definition at line 93 of file graphics_importer_buffer.cpp.

References m_shapes.

◆ AddSpline()

void GRAPHICS_IMPORTER_BUFFER::AddSpline ( const VECTOR2D & aStart,
const VECTOR2D & aBezierControl1,
const VECTOR2D & aBezierControl2,
const VECTOR2D & aEnd,
const IMPORTED_STROKE & aStroke )
overridevirtual

Create an object representing an arc.

Parameters
aStartis the curve start point expressed in mm.
aBezierControl1is the first Bezier control point expressed in mm.
aBezierControl2is the second Bezier control point expressed in mm.
aEndis the curve end point expressed in mm.
aStrokeis the shape stroke parameters.

Implements GRAPHICS_IMPORTER.

Definition at line 84 of file graphics_importer_buffer.cpp.

References m_shapes, and make_shape().

Referenced by DXF_IMPORT_PLUGIN::addEllipse(), and DXF_IMPORT_PLUGIN::insertSpline().

◆ AddText()

void GRAPHICS_IMPORTER_BUFFER::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 )
overridevirtual

Create an object representing a text.

Parameters
aOriginis the text position.
aTextis the displayed text.
aHeightis the text height expressed in mm.
aWidthis the text width expressed in mm.
aOrientationis the text orientation angle expressed in degrees.
aHJustifyis the text horizontal justification.
aVJustifyis the text vertical justification.
aWidthis the segment thickness in mm. Use -1 for default line thickness
aColoris the shape color

Implements GRAPHICS_IMPORTER.

Definition at line 74 of file graphics_importer_buffer.cpp.

References m_shapes, and make_shape().

Referenced by DXF_IMPORT_PLUGIN::addMText(), and DXF_IMPORT_PLUGIN::addText().

◆ ClearItems()

void GRAPHICS_IMPORTER::ClearItems ( )
inlineinherited

Empties out the imported shapes list.

Definition at line 231 of file graphics_importer.h.

References m_items.

◆ ClearShapes()

void GRAPHICS_IMPORTER_BUFFER::ClearShapes ( )
inline

Definition at line 385 of file graphics_importer_buffer.h.

References m_shapes.

◆ GetImageHeightMM()

double GRAPHICS_IMPORTER::GetImageHeightMM ( ) const
inlineinherited

Get original image Height.

Returns
Height of the loaded image in mm.

Definition at line 149 of file graphics_importer.h.

References m_originalHeight.

◆ GetImageWidthMM()

double GRAPHICS_IMPORTER::GetImageWidthMM ( ) const
inlineinherited

Get original image Width.

Returns
Width of the loaded image in mm.

Definition at line 139 of file graphics_importer.h.

References m_originalWidth.

◆ GetImportOffsetMM()

const VECTOR2D & GRAPHICS_IMPORTER::GetImportOffsetMM ( ) const
inlineinherited
Returns
the offset in millimeters to add to coordinates when importing graphic items.

Definition at line 181 of file graphics_importer.h.

References m_offsetCoordmm.

Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo(), GRAPHICS_IMPORTER_LIB_SYMBOL::MapCoordinate(), GRAPHICS_IMPORTER_PCBNEW::MapCoordinate(), and GRAPHICS_IMPORTER_SCH::MapCoordinate().

◆ GetItems()

std::list< std::unique_ptr< EDA_ITEM > > & GRAPHICS_IMPORTER::GetItems ( )
inlineinherited

Return the list of objects representing the imported shapes.

Definition at line 223 of file graphics_importer.h.

References m_items.

Referenced by SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), and SCH_EASYEDA_PARSER::ParseSymbolShapes().

◆ GetLineWidthMM()

double GRAPHICS_IMPORTER::GetLineWidthMM ( ) const
inlineinherited

Return the line width used for importing the outlines (in mm).

Definition at line 165 of file graphics_importer.h.

References m_lineWidth.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::MapLineWidth(), GRAPHICS_IMPORTER_PCBNEW::MapLineWidth(), and GRAPHICS_IMPORTER_SCH::MapLineWidth().

◆ GetMessages()

const wxString & GRAPHICS_IMPORTER::GetMessages ( ) const
inlineinherited

Collect warning and error messages after loading/importing.

Returns
the list of messages in one string. Each message ends by '
'

Definition at line 124 of file graphics_importer.h.

References m_plugin.

◆ GetMillimeterToIuFactor()

double GRAPHICS_IMPORTER::GetMillimeterToIuFactor ( )
inlineinherited

◆ GetScale()

VECTOR2D GRAPHICS_IMPORTER::GetScale ( ) const
inlineinherited

◆ GetShapes()

std::list< std::unique_ptr< IMPORTED_SHAPE > > & GRAPHICS_IMPORTER_BUFFER::GetShapes ( )
inline

Definition at line 383 of file graphics_importer_buffer.h.

References m_shapes.

Referenced by DXF_IMPORT_PLUGIN::addInsert().

◆ Import()

bool GRAPHICS_IMPORTER::Import ( const VECTOR2D & aScale = VECTOR2D( 1.0, 1.0 ))
inherited

Import shapes from loaded file.

It is important to have the file loaded before importing.

Parameters
aScaleallow import graphic items with a non 1:1 import ratio VECTOR2D( 1.0, 1.0 ) to import graphics with their actual size.

Definition at line 70 of file graphics_importer.cpp.

References m_plugin, and SetScale().

◆ ImportScalingFactor()

VECTOR2D GRAPHICS_IMPORTER::ImportScalingFactor ( ) const
inlineinherited

◆ ImportTo()

◆ Load()

bool GRAPHICS_IMPORTER::Load ( const wxString & aFileName)
inherited

Load file and get its basic data.

Definition at line 46 of file graphics_importer.cpp.

References m_items, m_originalHeight, m_originalWidth, and m_plugin.

◆ NewShape()

void GRAPHICS_IMPORTER::NewShape ( POLY_FILL_RULE aFillRule = PF_NONZERO)
virtualinherited

Definition at line 99 of file graphics_importer.cpp.

References m_shapeFillRules.

◆ PostprocessNestedPolygons()

◆ ReportMsg()

void GRAPHICS_IMPORTER::ReportMsg ( const wxString & aMessage)
inlineinherited

Definition at line 129 of file graphics_importer.h.

References m_plugin.

Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo().

◆ SetImportOffsetMM()

void GRAPHICS_IMPORTER::SetImportOffsetMM ( const VECTOR2D & aOffset)
inlineinherited

◆ SetLineWidthMM()

void GRAPHICS_IMPORTER::SetLineWidthMM ( double aWidth)
inlineinherited

Set the line width for the imported outlines (in mm).

Definition at line 157 of file graphics_importer.h.

References m_lineWidth.

◆ SetPlugin()

void GRAPHICS_IMPORTER::SetPlugin ( std::unique_ptr< GRAPHICS_IMPORT_PLUGIN > aPlugin)
inlineinherited

Set the import plugin used to obtain shapes from a file.

Definition at line 94 of file graphics_importer.h.

References m_plugin.

◆ SetScale()

void GRAPHICS_IMPORTER::SetScale ( const VECTOR2D & aScale)
inlineinherited

Set the scale factor affecting the imported shapes.

This allows conversion between imported shapes units and millimeters.

Definition at line 199 of file graphics_importer.h.

References m_scale.

Referenced by ConvertSVGToLibShapes(), Import(), SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), and SCH_EASYEDA_PARSER::ParseSymbolShapes().

◆ setupSplineOrLine()

bool GRAPHICS_IMPORTER::setupSplineOrLine ( EDA_SHAPE & aShape,
int aAccuracy )
protectedinherited

Configure a shape as a spline or a line segment if it's degenerate.

Returns
false if the shape is near-zero length and should be ignored.

Definition at line 111 of file graphics_importer.cpp.

References BEZIER, EDA_SHAPE::GetBezierC1(), EDA_SHAPE::GetBezierC2(), EDA_SHAPE::GetBezierPoints(), EDA_SHAPE::GetEnd(), EDA_SHAPE::GetStart(), MIN_SEG_LEN_ACCEPTABLE_NM, EDA_SHAPE::RebuildBezierToSegmentsPointsList(), SEGMENT, and EDA_SHAPE::SetShape().

Referenced by GRAPHICS_IMPORTER_PCBNEW::AddSpline(), and GRAPHICS_IMPORTER_SCH::AddSpline().

Member Data Documentation

◆ DEFAULT_LINE_WIDTH_DFX

unsigned int GRAPHICS_IMPORTER::DEFAULT_LINE_WIDTH_DFX = 1
staticconstexprinherited

Default line thickness (in mm).

Definition at line 237 of file graphics_importer.h.

Referenced by GRAPHICS_IMPORTER().

◆ m_items

std::list<std::unique_ptr<EDA_ITEM> > GRAPHICS_IMPORTER::m_items
privateinherited

List of imported items.

Definition at line 336 of file graphics_importer.h.

Referenced by addItem(), ClearItems(), GetItems(), and Load().

◆ m_lineWidth

double GRAPHICS_IMPORTER::m_lineWidth
privateinherited

Default line thickness for the imported graphics.

Definition at line 356 of file graphics_importer.h.

Referenced by GetLineWidthMM(), GRAPHICS_IMPORTER(), and SetLineWidthMM().

◆ m_millimeterToIu

double GRAPHICS_IMPORTER::m_millimeterToIu
protectedinherited

◆ m_offsetCoordmm

VECTOR2D GRAPHICS_IMPORTER::m_offsetCoordmm
protectedinherited

Offset (in mm) for imported coordinates.

Definition at line 330 of file graphics_importer.h.

Referenced by GetImportOffsetMM(), and SetImportOffsetMM().

◆ m_originalHeight

double GRAPHICS_IMPORTER::m_originalHeight
privateinherited

Total image Height.

Definition at line 345 of file graphics_importer.h.

Referenced by GetImageHeightMM(), GRAPHICS_IMPORTER(), and Load().

◆ m_originalWidth

double GRAPHICS_IMPORTER::m_originalWidth
privateinherited

Total image width.

Definition at line 342 of file graphics_importer.h.

Referenced by GetImageWidthMM(), GRAPHICS_IMPORTER(), and Load().

◆ m_plugin

std::unique_ptr<GRAPHICS_IMPORT_PLUGIN> GRAPHICS_IMPORTER::m_plugin
privateinherited

Plugin used to load a file.

Definition at line 339 of file graphics_importer.h.

Referenced by GetMessages(), Import(), Load(), ReportMsg(), and SetPlugin().

◆ m_scale

VECTOR2D GRAPHICS_IMPORTER::m_scale
privateinherited

Scale factor applied to the imported graphics.

1.0 does not change the size of imported items scale < 1.0 reduce the size of imported items

Definition at line 353 of file graphics_importer.h.

Referenced by GetScale(), GRAPHICS_IMPORTER(), ImportScalingFactor(), and SetScale().

◆ m_shapeFillRules

std::vector<POLY_FILL_RULE> GRAPHICS_IMPORTER::m_shapeFillRules
protectedinherited

◆ m_shapes

std::list<std::unique_ptr<IMPORTED_SHAPE> > GRAPHICS_IMPORTER_BUFFER::m_shapes
protected

The documentation for this class was generated from the following files: