138 virtual bool StartPlot(
const wxString& aPageNumber ) = 0;
207 double aScale,
bool aMirror ) = 0;
218 virtual bool OpenFile(
const wxString& aFullFilename );
235 FILL_T aFill,
int aWidth );
248 int aTolerance,
int aLineThickness );
291 virtual void PlotPoly(
const std::vector<VECTOR2I>& aCornerList,
FILL_T aFill,
int aWidth,
316 virtual void PlotImage(
const wxImage& aImage,
const VECTOR2I& aPos,
double aScaleFactor );
324 const EDA_ANGLE& aAngle,
double aRadius,
int aWidth,
void* aData );
333 int aWidth,
void* aData );
353 const EDA_ANGLE& aPadOrient,
void* aData ) = 0;
362 const EDA_ANGLE& aPadOrient,
void* aData ) = 0;
372 int aCornerRadius,
const EDA_ANGLE& aOrient,
396 const EDA_ANGLE& aPadOrient,
void* aData ) = 0;
409 const EDA_ANGLE& aOrient,
void* aData ) = 0;
434 const wxString& aText,
442 bool aMultilineAllowed,
445 void* aData =
nullptr );
449 const wxString& aText,
453 void* aData =
nullptr );
483 const wxString& aGroupName = wxEmptyString )
500 void Marker(
const VECTOR2I& position,
int diametre,
unsigned aShapeId );
688 const PAGE_INFO& aPageInfo,
const std::map<wxString, wxString>*aProperties,
689 const wxString& aSheetNumber,
int aSheetCount,
const wxString& aSheetName,
690 const wxString& aSheetPath,
const wxString& aFilename,
Color settings are a bit different than most of the settings objects in that there can be more than o...
FONT is an abstract base class for both outline and stroke fonts.
static const METRICS & Default()
A color representation with 4 components: red, green, blue, alpha.
static const COLOR4D UNSPECIFIED
For legacy support; used as a value to indicate color hasn't been set yet.
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
Describe the page size and margins of a paper page on which to eventually print or plot.
Base plotter engine class.
double GetDotMarkLenIU(int aLineWidth) const
virtual void PlotImage(const wxImage &aImage, const VECTOR2I &aPos, double aScaleFactor)
Only PostScript plotters can plot bitmaps.
virtual void FlashPadRoundRect(const VECTOR2I &aPadPos, const VECTOR2I &aSize, int aCornerRadius, const EDA_ANGLE &aOrient, void *aData)=0
wxArrayString m_headerExtraLines
static const unsigned MARKER_COUNT
Draw a marker (used for the drill map).
double GetDashGapLenIU(int aLineWidth) const
const PROJECT * m_project
virtual void Circle(const VECTOR2I &pos, int diametre, FILL_T fill, int width)=0
virtual bool OpenFile(const wxString &aFullFilename)
Open or create the plot file aFullFilename.
virtual void SetAuthor(const wxString &aAuthor)
bool m_mirrorIsHorizontal
virtual void SetNegative(bool aNegative)
virtual void SetSvgCoordinatesFormat(unsigned aPrecision)
Set the number of digits for mantissa in coordinates in mm for SVG plotter.
virtual void ThickPoly(const SHAPE_POLY_SET &aPoly, int aWidth, void *aData)
virtual void SetPageSettings(const PAGE_INFO &aPageSettings)
void SetRenderSettings(RENDER_SETTINGS *aSettings)
static const int USE_DEFAULT_LINE_WIDTH
virtual void SetTitle(const wxString &aTitle)
virtual void FilledCircle(const VECTOR2I &pos, int diametre, void *aData)
virtual void FlashPadOval(const VECTOR2I &aPadPos, const VECTOR2I &aSize, const EDA_ANGLE &aPadOrient, void *aData)=0
void MoveTo(const VECTOR2I &pos)
virtual void FlashPadRect(const VECTOR2I &aPadPos, const VECTOR2I &aSize, const EDA_ANGLE &aPadOrient, void *aData)=0
virtual void ThickOval(const VECTOR2I &aPos, const VECTOR2I &aSize, const EDA_ANGLE &aOrient, int aWidth, void *aData)
virtual void SetDash(int aLineWidth, LINE_STYLE aLineStyle)=0
void markerSlash(const VECTOR2I &pos, int radius)
Plot a / bar centered on the position.
void FinishTo(const VECTOR2I &pos)
virtual bool StartPlot(const wxString &aPageNumber)=0
virtual void polyArc(const VECTOR2D &aCentre, const EDA_ANGLE &aStartAngle, const EDA_ANGLE &aAngle, double aRadius, FILL_T aFill, int aWidth)
Generic fallback: arc rendered as a polyline.
virtual void Rect(const VECTOR2I &p1, const VECTOR2I &p2, FILL_T fill, int width)=0
RENDER_SETTINGS * RenderSettings()
virtual VECTOR2D userToDeviceCoordinates(const VECTOR2I &aCoordinate)
Modify coordinates according to the orientation, scale factor, and offsets trace.
double GetIUsPerDecimil() const
The IUs per decimil are an essential scaling factor when plotting; they are set and saved when establ...
virtual void SetGerberCoordinatesFormat(int aResolution, bool aUseInches=false)
bool GetPlotMirrored() const
virtual void FlashRegularPolygon(const VECTOR2I &aShapePos, int aDiameter, int aCornerCount, const EDA_ANGLE &aOrient, void *aData)=0
Flash a regular polygon.
virtual VECTOR2D userToDeviceSize(const VECTOR2I &size)
Modify size according to the plotter scale factors (VECTOR2I version, returns a VECTOR2D).
virtual void Bookmark(const BOX2I &aBox, const wxString &aName, const wxString &aGroupName=wxEmptyString)
Create a bookmark to a symbol.
virtual PLOT_FORMAT GetPlotterType() const =0
Return the effective plot engine in use.
virtual void ThickArc(const EDA_SHAPE &aArcShape, void *aData, int aWidth)
virtual void SetTextMode(PLOT_TEXT_MODE mode)
Change the current text mode.
int GetPlotterArcHighDef() const
void Marker(const VECTOR2I &position, int diametre, unsigned aShapeId)
Draw a pattern shape number aShapeId, to coord position.
virtual void BezierCurve(const VECTOR2I &aStart, const VECTOR2I &aControl1, const VECTOR2I &aControl2, const VECTOR2I &aEnd, int aTolerance, int aLineThickness)
Generic fallback: Cubic Bezier curve rendered as a polyline.
virtual void SetCreator(const wxString &aCreator)
void markerHBar(const VECTOR2I &pos, int radius)
Plot a - bar centered on the position.
virtual void HyperlinkBox(const BOX2I &aBox, const wxString &aDestinationURL)
Create a clickable hyperlink with a rectangular click area.
double m_plotScale
Plot scale - chosen by the user (even implicitly with 'fit in a4')
VECTOR2I GetPlotOffsetUserUnits()
void ClearHeaderLinesList()
Remove all lines from the list of free lines to print at the beginning of the file.
void markerCircle(const VECTOR2I &pos, int radius)
Plot a circle centered on the position.
virtual void FlashPadTrapez(const VECTOR2I &aPadPos, const VECTOR2I *aCorners, const EDA_ANGLE &aPadOrient, void *aData)=0
Flash a trapezoidal pad.
bool GetColorMode() const
PAGE_INFO & PageSettings()
virtual void SetViewport(const VECTOR2I &aOffset, double aIusPerDecimil, double aScale, bool aMirror)=0
Set the plot offset and scaling for the current plot.
void AddLineToHeader(const wxString &aExtraString)
Add a line to the list of free lines to print at the beginning of the file.
FILE * m_outputFile
Output file.
virtual void SetColorMode(bool aColorMode)
Plot in B/W or color.
virtual void SetCurrentLineWidth(int width, void *aData=nullptr)=0
Set the line width for the next drawing.
void LineTo(const VECTOR2I &pos)
virtual void StartBlock(void *aData)
calling this function allows one to define the beginning of a group of drawing items,...
virtual void PenTo(const VECTOR2I &pos, char plume)=0
Moveto/lineto primitive, moves the 'pen' to the specified direction.
virtual void FlashPadCustom(const VECTOR2I &aPadPos, const VECTOR2I &aSize, const EDA_ANGLE &aPadOrient, SHAPE_POLY_SET *aPolygons, void *aData)=0
static const int DO_NOT_SET_LINE_WIDTH
virtual void ThickSegment(const VECTOR2I &start, const VECTOR2I &end, int width, void *aData)
virtual void PlotText(const VECTOR2I &aPos, const COLOR4D &aColor, const wxString &aText, const TEXT_ATTRIBUTES &aAttributes, KIFONT::FONT *aFont=nullptr, const KIFONT::METRICS &aFontMetrics=KIFONT::METRICS::Default(), void *aData=nullptr)
void markerLozenge(const VECTOR2I &position, int radius)
Plot a lozenge centered on the position.
virtual void PlotPoly(const std::vector< VECTOR2I > &aCornerList, FILL_T aFill, int aWidth, void *aData)=0
Draw a polygon ( filled or not ).
virtual void ThickRect(const VECTOR2I &p1, const VECTOR2I &p2, int width, void *aData)
virtual void FlashPadCircle(const VECTOR2I &aPadPos, int aDiameter, void *aData)=0
RENDER_SETTINGS * m_renderSettings
virtual void Text(const VECTOR2I &aPos, const COLOR4D &aColor, const wxString &aText, const EDA_ANGLE &aOrient, const VECTOR2I &aSize, enum GR_TEXT_H_ALIGN_T aH_justify, enum GR_TEXT_V_ALIGN_T aV_justify, int aPenWidth, bool aItalic, bool aBold, bool aMultilineAllowed, KIFONT::FONT *aFont, const KIFONT::METRICS &aFontMetrics, void *aData=nullptr)
Draw text with the plotter.
void markerBackSlash(const VECTOR2I &pos, int radius)
Plot a \ bar centered on the position.
virtual void SetSubject(const wxString &aSubject)
int GetPlotterArcLowDef() const
void SetPlotMirrored(bool aMirror)
virtual void HyperlinkMenu(const BOX2I &aBox, const std::vector< wxString > &aDestURLs)
Create a clickable hyperlink menu with a rectangular click area.
virtual void SetLayerPolarity(bool aPositive)
Set the current Gerber layer polarity to positive or negative by writing %LPD*% or %LPC*% to the Gerb...
void markerVBar(const VECTOR2I &pos, int radius)
Plot a | bar centered on the position.
void markerSquare(const VECTOR2I &position, int radius)
Plot a square centered on the position.
virtual void ThickCircle(const VECTOR2I &pos, int diametre, int width, void *aData)
virtual int GetCurrentLineWidth() const
double GetDashMarkLenIU(int aLineWidth) const
virtual void SetColor(const COLOR4D &color)=0
virtual void Arc(const VECTOR2D &aStart, const VECTOR2D &aMid, const VECTOR2D &aEnd, FILL_T aFill, int aWidth)
virtual void EndBlock(void *aData)
calling this function allows one to define the end of a group of drawing items for instance in SVG or...
virtual DXF_OUTLINE_MODE GetDXFPlotMode() const
virtual PLOT_TEXT_MODE GetTextMode() const
Container for project specific data.
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
Represent a set of closed polygons.
Hold the information shown in the lower right corner of a plot, printout, or editing view.
void PlotDrawingSheet(PLOTTER *plotter, const PROJECT *aProject, const TITLE_BLOCK &aTitleBlock, const PAGE_INFO &aPageInfo, const std::map< wxString, wxString > *aProperties, const wxString &aSheetNumber, int aSheetCount, const wxString &aSheetName, const wxString &aSheetPath, const wxString &aFilename, COLOR4D aColor=COLOR4D::UNSPECIFIED, bool aIsFirstPage=true)
PLOT_TEXT_MODE
Which kind of text to output with the PSLIKE plotters.
wxString GetDefaultPlotExtension(PLOT_FORMAT aFormat)
Return the default plot extension for a format.
DXF_OUTLINE_MODE
Options to draw items with thickness ( segments, arcs, circles, texts...)
PLOT_FORMAT
The set of supported output plot formats.
LINE_STYLE
Dashed line types.
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.
VECTOR2< int32_t > VECTOR2I