27#ifndef GRAPHICS_IMPORTER_BUFFER_H
28#define GRAPHICS_IMPORTER_BUFFER_H
41 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const = 0;
68 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
70 return std::make_unique<IMPORTED_LINE>( *
this );
102 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
104 return std::make_unique<IMPORTED_CIRCLE>( *
this );
112 newRadius = aTransform * newRadius;
143 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
145 return std::make_unique<IMPORTED_ARC>( *
this );
176 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
178 return std::make_unique<IMPORTED_POLYGON>( *
this );
185 vert = aTransform * vert + aTranslation;
222 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
224 return std::make_unique<IMPORTED_TEXT>( *
this );
262 virtual std::unique_ptr<IMPORTED_SHAPE>
clone()
const override
264 return std::make_unique<IMPORTED_SPLINE>( *
this );
289 void AddCircle(
const VECTOR2D& aCenter,
double aRadius,
double aWidth,
bool aFilled )
override;
292 double aWidth )
override;
294 void AddPolygon(
const std::vector< VECTOR2D >& aVertices,
double aWidth )
override;
296 void AddText(
const VECTOR2D& aOrigin,
const wxString& aText,
double aHeight,
double aWidth,
301 const VECTOR2D& BezierControl2,
const VECTOR2D& aEnd ,
double aWidth )
override;
304 void AddShape( std::unique_ptr<IMPORTED_SHAPE>& aShape );
320 std::list< std::unique_ptr< IMPORTED_SHAPE > >
m_shapes;
std::list< std::unique_ptr< IMPORTED_SHAPE > > & GetShapes()
void AddCircle(const VECTOR2D &aCenter, double aRadius, double aWidth, bool aFilled) override
Create an object representing a circle.
void PostprocessNestedPolygons()
void AddSpline(const VECTOR2D &aStart, const VECTOR2D &BezierControl1, const VECTOR2D &BezierControl2, const VECTOR2D &aEnd, double aWidth) override
Create an object representing an arc.
void ImportTo(GRAPHICS_IMPORTER &aImporter)
void AddArc(const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, double aWidth) override
Create an object representing an arc.
void AddPolygon(const std::vector< VECTOR2D > &aVertices, double aWidth) override
std::list< std::unique_ptr< IMPORTED_SHAPE > > m_shapes
< List of imported shapes
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) override
Create an object representing a text.
void AddShape(std::unique_ptr< IMPORTED_SHAPE > &aShape)
void AddLine(const VECTOR2D &aStart, const VECTOR2D &aEnd, double aWidth) override
Create an object representing a line segment.
Interface that creates objects representing shapes for a given data model.
virtual void AddSpline(const VECTOR2D &aStart, const VECTOR2D &aBezierControl1, const VECTOR2D &aBezierControl2, const VECTOR2D &aEnd, double aWidth)=0
Create an object representing an arc.
virtual void AddLine(const VECTOR2D &aOrigin, const VECTOR2D &aEnd, double aWidth)=0
Create an object representing a line segment.
virtual void AddArc(const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, double aWidth)=0
Create an object representing an arc.
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)=0
Create an object representing a text.
virtual void AddPolygon(const std::vector< VECTOR2D > &aVertices, double aWidth)=0
virtual void AddCircle(const VECTOR2D &aCenter, double aRadius, double aWidth, bool aFilled)=0
Create an object representing a circle.
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
IMPORTED_ARC(const VECTOR2D &aCenter, const VECTOR2D &aStart, const EDA_ANGLE &aAngle, double aWidth)
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
IMPORTED_CIRCLE(const VECTOR2D &aCenter, double aRadius, double aWidth, bool aFilled)
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
IMPORTED_LINE(const VECTOR2D &aStart, const VECTOR2D &aEnd, double aWidth)
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
std::vector< VECTOR2D > & Vertices()
IMPORTED_POLYGON(const std::vector< VECTOR2D > &aVertices, double aWidth)
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
std::vector< VECTOR2D > m_vertices
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
int GetParentShapeIndex() const
virtual ~IMPORTED_SHAPE()
virtual void ImportTo(GRAPHICS_IMPORTER &aImporter) const =0
void SetParentShapeIndex(int aIndex)
virtual void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation)=0
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const =0
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
VECTOR2D m_bezierControl2
IMPORTED_SPLINE(const VECTOR2D &aStart, const VECTOR2D &aBezierControl1, const VECTOR2D &aBezierControl2, const VECTOR2D &aEnd, double aWidth)
VECTOR2D m_bezierControl1
void Transform(const MATRIX3x3D &aTransform, const VECTOR2D &aTranslation) override
IMPORTED_TEXT(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)
GR_TEXT_H_ALIGN_T m_hJustify
GR_TEXT_V_ALIGN_T m_vJustify
virtual std::unique_ptr< IMPORTED_SHAPE > clone() const override
void ImportTo(GRAPHICS_IMPORTER &aImporter) const override
T EuclideanNorm() const
Compute the Euclidean norm of the vector, which is defined as sqrt(x ** 2 + y ** 2).
VECTOR2< double > VECTOR2D