KiCad PCB EDA Suite
|
Interface that creates objects representing shapes for a given data model. More...
#include <graphics_importer.h>
Public Types | |
enum | POLY_FILL_RULE { PF_NONZERO = 0 , PF_EVEN_ODD } |
Public Member Functions | |
GRAPHICS_IMPORTER () | |
virtual | ~GRAPHICS_IMPORTER () |
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 VECTOR2D & | GetImportOffsetMM () 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) |
virtual void | AddLine (const VECTOR2D &aOrigin, const VECTOR2D &aEnd, const IMPORTED_STROKE &aStroke)=0 |
Create an object representing a line segment. | |
virtual void | AddCircle (const VECTOR2D &aCenter, double aRadius, const IMPORTED_STROKE &aStroke, bool aFilled, const COLOR4D &aFillColor)=0 |
Create an object representing a circle. | |
virtual void | AddArc (const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, const IMPORTED_STROKE &aStroke)=0 |
Create an object representing an arc. | |
virtual void | AddPolygon (const std::vector< VECTOR2D > &aVertices, const IMPORTED_STROKE &aStroke, bool aFilled, const COLOR4D &aFillColor)=0 |
Create an object representing a polygon. | |
virtual 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)=0 |
Create an object representing a text. | |
virtual void | AddSpline (const VECTOR2D &aStart, const VECTOR2D &aBezierControl1, const VECTOR2D &aBezierControl2, const VECTOR2D &aEnd, const IMPORTED_STROKE &aStroke)=0 |
Create an object representing an arc. | |
Static Public Attributes | |
static constexpr unsigned int | DEFAULT_LINE_WIDTH_DFX = 1 |
Protected Member Functions | |
void | addItem (std::unique_ptr< EDA_ITEM > aItem) |
< Add an item to the imported shapes list. | |
Protected Attributes | |
double | m_millimeterToIu |
Offset (in mm) for imported coordinates. | |
VECTOR2D | m_offsetCoordmm |
std::vector< POLY_FILL_RULE > | m_shapeFillRules |
Private Attributes | |
std::list< std::unique_ptr< EDA_ITEM > > | m_items |
< List of imported items | |
std::unique_ptr< GRAPHICS_IMPORT_PLUGIN > | m_plugin |
Total image width. | |
double | m_originalWidth |
Total image Height;. | |
double | m_originalHeight |
VECTOR2D | m_scale |
Scale factor applied to the imported graphics. | |
double | m_lineWidth |
Interface that creates objects representing shapes for a given data model.
Definition at line 75 of file graphics_importer.h.
Enumerator | |
---|---|
PF_NONZERO | |
PF_EVEN_ODD |
Definition at line 78 of file graphics_importer.h.
GRAPHICS_IMPORTER::GRAPHICS_IMPORTER | ( | ) |
Definition at line 32 of file graphics_importer.cpp.
References DEFAULT_LINE_WIDTH_DFX, m_lineWidth, m_millimeterToIu, m_originalHeight, m_originalWidth, and m_scale.
|
inlinevirtual |
Definition at line 86 of file graphics_importer.h.
|
pure virtual |
Create an object representing an arc.
aCenter | is the arc center point expressed in mm. |
aStart | is the arc arm end point expressed in mm. Its length is the arc radius. |
aAngle | is the arc angle. |
aStroke | is the shape stroke parameters. |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_ARC::ImportTo().
|
pure virtual |
Create an object representing a circle.
aCenter | is the circle center point expressed in mm. |
aRadius | is the circle radius expressed in mm. |
aStroke | is the shape stroke parameters. |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_CIRCLE::ImportTo().
|
inlineprotected |
< Add an item to the imported shapes list.
factor to convert millimeters to Internal Units
Definition at line 316 of file graphics_importer.h.
References m_items.
Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddCircle(), GRAPHICS_IMPORTER_SCH::AddCircle(), GRAPHICS_IMPORTER_PCBNEW::AddCircle(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddLine(), GRAPHICS_IMPORTER_SCH::AddLine(), GRAPHICS_IMPORTER_PCBNEW::AddLine(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddPolygon(), GRAPHICS_IMPORTER_SCH::AddPolygon(), GRAPHICS_IMPORTER_PCBNEW::AddPolygon(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddSpline(), GRAPHICS_IMPORTER_SCH::AddSpline(), GRAPHICS_IMPORTER_PCBNEW::AddSpline(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddText(), GRAPHICS_IMPORTER_SCH::AddText(), and GRAPHICS_IMPORTER_PCBNEW::AddText().
|
pure virtual |
Create an object representing a line segment.
aOrigin | is the segment origin point expressed in mm. |
aEnd | is the segment end point expressed in mm. |
aStroke | is the shape stroke parameters. |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_LINE::ImportTo().
|
pure virtual |
Create an object representing a polygon.
aVertices | is the array of vertices. |
aWidth | is the stroke width. |
aStroke | is the shape stroke parameters. |
aFillColor | is the fill color. |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_POLYGON::ImportTo().
|
pure virtual |
Create an object representing an arc.
aStart | is the curve start point expressed in mm. |
aBezierControl1 | is the first Bezier control point expressed in mm. |
aBezierControl2 | is the second Bezier control point expressed in mm. |
aEnd | is the curve end point expressed in mm. |
aStroke | is the shape stroke parameters. |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_SPLINE::ImportTo().
|
pure virtual |
Create an object representing a text.
aOrigin | is the text position. |
aText | is the displayed text. |
aHeight | is the text height expressed in mm. |
aWidth | is the text width expressed in mm. |
aOrientation | is the text orientation angle expressed in degrees. |
aHJustify | is the text horizontal justification. |
aVJustify | is the text vertical justification. |
aWidth | is the segment thickness in mm. Use -1 for default line thickness |
aColor | is the shape color |
Implemented in GRAPHICS_IMPORTER_BUFFER, GRAPHICS_IMPORTER_LIB_SYMBOL, GRAPHICS_IMPORTER_SCH, and GRAPHICS_IMPORTER_PCBNEW.
Referenced by IMPORTED_TEXT::ImportTo().
|
inline |
Empties out the imported shapes list.
Default line thickness (in mm)
Definition at line 230 of file graphics_importer.h.
References m_items.
|
inline |
Get original image Height.
Definition at line 148 of file graphics_importer.h.
References m_originalHeight.
|
inline |
Get original image Width.
Definition at line 138 of file graphics_importer.h.
References m_originalWidth.
|
inline |
Definition at line 180 of file graphics_importer.h.
References m_offsetCoordmm.
Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo(), GRAPHICS_IMPORTER_LIB_SYMBOL::MapCoordinate(), GRAPHICS_IMPORTER_SCH::MapCoordinate(), and GRAPHICS_IMPORTER_PCBNEW::MapCoordinate().
|
inline |
Return the list of objects representing the imported shapes.
Definition at line 222 of file graphics_importer.h.
References m_items.
Referenced by SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), and SCH_EASYEDA_PARSER::ParseSymbolShapes().
|
inline |
Return the line width used for importing the outlines (in mm).
Definition at line 164 of file graphics_importer.h.
References m_lineWidth.
Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::MapLineWidth(), GRAPHICS_IMPORTER_SCH::MapLineWidth(), GRAPHICS_IMPORTER_PCBNEW::MapLineWidth(), and DXF_IMPORT_PLUGIN::SetImporter().
|
inline |
Collect warning and error messages after loading/importing.
Definition at line 123 of file graphics_importer.h.
References m_plugin.
|
inline |
Definition at line 206 of file graphics_importer.h.
References m_millimeterToIu.
Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo(), GRAPHICS_IMPORTER_LIB_SYMBOL::MapCoordinate(), GRAPHICS_IMPORTER_SCH::MapCoordinate(), and GRAPHICS_IMPORTER_PCBNEW::MapCoordinate().
|
inline |
Definition at line 172 of file graphics_importer.h.
References m_scale.
Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo(), GRAPHICS_IMPORTER_LIB_SYMBOL::MapCoordinate(), GRAPHICS_IMPORTER_SCH::MapCoordinate(), and GRAPHICS_IMPORTER_PCBNEW::MapCoordinate().
Import shapes from loaded file.
It is important to have the file loaded before importing.
aScale | allow 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 66 of file graphics_importer.cpp.
References m_plugin, and SetScale().
|
inline |
Definition at line 214 of file graphics_importer.h.
References m_millimeterToIu, and m_scale.
Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddText(), GRAPHICS_IMPORTER_SCH::AddText(), GRAPHICS_IMPORTER_PCBNEW::AddText(), GRAPHICS_IMPORTER_LIB_SYMBOL::MapLineWidth(), GRAPHICS_IMPORTER_SCH::MapLineWidth(), and GRAPHICS_IMPORTER_PCBNEW::MapLineWidth().
bool GRAPHICS_IMPORTER::Load | ( | const wxString & | aFileName | ) |
Load file and get its basic data.
Definition at line 42 of file graphics_importer.cpp.
References m_items, m_originalHeight, m_originalWidth, and m_plugin.
|
virtual |
Definition at line 95 of file graphics_importer.cpp.
References m_shapeFillRules.
Referenced by SVG_IMPORT_PLUGIN::Import().
|
inline |
Definition at line 128 of file graphics_importer.h.
References m_plugin.
Referenced by GRAPHICS_IMPORTER_BUFFER::ImportTo().
|
inline |
Set the offset in millimeters to add to coordinates when importing graphic items.
Definition at line 188 of file graphics_importer.h.
References m_offsetCoordmm.
Referenced by ConvertSVGToLibShapes(), GRAPHICS_IMPORTER_BUFFER::ImportTo(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), and SCH_EASYEDA_PARSER::ParseSymbolShapes().
|
inline |
Set the line width for the imported outlines (in mm).
Definition at line 156 of file graphics_importer.h.
References m_lineWidth.
|
inline |
Set the import plugin used to obtain shapes from a file.
Definition at line 93 of file graphics_importer.h.
References m_plugin.
|
inline |
Set the scale factor affecting the imported shapes.
This allows conversion between imported shapes units and millimeters.
Definition at line 198 of file graphics_importer.h.
References m_scale.
Referenced by ConvertSVGToLibShapes(), Import(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), and SCH_EASYEDA_PARSER::ParseSymbolShapes().
|
staticconstexpr |
Definition at line 236 of file graphics_importer.h.
Referenced by GRAPHICS_IMPORTER().
|
private |
< List of imported items
Plugin used to load a file
Definition at line 331 of file graphics_importer.h.
Referenced by addItem(), ClearItems(), GetItems(), and Load().
|
private |
Definition at line 350 of file graphics_importer.h.
Referenced by GetLineWidthMM(), GRAPHICS_IMPORTER(), and SetLineWidthMM().
|
protected |
Offset (in mm) for imported coordinates.
Definition at line 322 of file graphics_importer.h.
Referenced by GetMillimeterToIuFactor(), GRAPHICS_IMPORTER(), GRAPHICS_IMPORTER_LIB_SYMBOL::GRAPHICS_IMPORTER_LIB_SYMBOL(), GRAPHICS_IMPORTER_PCBNEW::GRAPHICS_IMPORTER_PCBNEW(), GRAPHICS_IMPORTER_SCH::GRAPHICS_IMPORTER_SCH(), and ImportScalingFactor().
|
protected |
Definition at line 325 of file graphics_importer.h.
Referenced by GetImportOffsetMM(), and SetImportOffsetMM().
|
private |
Definition at line 340 of file graphics_importer.h.
Referenced by GetImageHeightMM(), GRAPHICS_IMPORTER(), and Load().
|
private |
Total image Height;.
Definition at line 337 of file graphics_importer.h.
Referenced by GetImageWidthMM(), GRAPHICS_IMPORTER(), and Load().
|
private |
Total image width.
Definition at line 334 of file graphics_importer.h.
Referenced by GetMessages(), Import(), Load(), ReportMsg(), and SetPlugin().
|
private |
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 Default line thickness for the imported graphics
Definition at line 347 of file graphics_importer.h.
Referenced by GetScale(), GRAPHICS_IMPORTER(), ImportScalingFactor(), and SetScale().
|
protected |
Definition at line 327 of file graphics_importer.h.
Referenced by GRAPHICS_IMPORTER_BUFFER::AddPolygon(), NewShape(), and GRAPHICS_IMPORTER_BUFFER::PostprocessNestedPolygons().