49 return wxString( wxT(
"gbr" ) );
58 virtual bool EndPlot()
override;
68 virtual void SetViewport(
const wxPoint& aOffset,
double aIusPerDecimil,
69 double aScale,
bool aMirror )
override;
72 virtual void Rect(
const wxPoint& p1,
const wxPoint& p2,
FILL_TYPE fill,
76 virtual void Arc(
const wxPoint& aCenter,
double aStAngle,
double aEndAngle,
80 virtual void ThickSegment(
const wxPoint& start,
const wxPoint& end,
int width,
83 virtual void ThickArc(
const wxPoint& centre,
double StAngle,
double EndAngle,
84 int rayon,
int width,
OUTLINE_MODE tracemode,
void* aData )
override;
85 virtual void ThickRect(
const wxPoint& p1,
const wxPoint& p2,
int width,
87 virtual void ThickCircle(
const wxPoint& pos,
int diametre,
int width,
89 virtual void FilledCircle(
const wxPoint& pos,
int diametre,
96 virtual void PlotPoly(
const std::vector< wxPoint >& aCornerList,
98 void* aData =
nullptr )
override;
100 virtual void PenTo(
const wxPoint& pos,
char plume )
override;
102 virtual void Text(
const wxPoint& aPos,
104 const wxString& aText,
112 bool aMultilineAllowed =
false,
113 void* aData =
NULL )
override;
121 virtual void FlashPadOval(
const wxPoint& aPadPos,
const wxSize& size,
double orient,
124 virtual void FlashPadRect(
const wxPoint& aPadPos,
const wxSize& size,
125 double orient,
OUTLINE_MODE trace_mode,
void* aData )
override;
128 int aCornerRadius,
double aOrient,
130 virtual void FlashPadCustom(
const wxPoint& aPadPos,
const wxSize& aSize,
134 virtual void FlashPadTrapez(
const wxPoint& aPadPos,
const wxPoint *aCorners,
135 double aPadOrient,
OUTLINE_MODE aTraceMode,
void* aData )
override;
137 virtual void FlashRegularPolygon(
const wxPoint& aShapePos,
int aDiameter,
int aCornerCount,
138 double aOrient,
OUTLINE_MODE aTraceMode,
void* aData )
override;
157 int aCornerRadius,
double aChamferRatio,
158 int aChamferPositions,
159 double aPadOrient,
OUTLINE_MODE aPlotMode,
void* aData );
167 void * aData =
NULL );
201 virtual void StartBlock(
void* aData )
override;
209 virtual void EndBlock(
void* aData )
override;
251 int aCornerRadius,
double aOrient );
263 void plotArc(
const wxPoint& aCenter,
double aStAngle,
double aEndAngle,
264 int aRadius,
bool aPlotInRegion );
271 void selectAperture(
const wxSize& aSize,
int aRadius,
double aRotDegree,
273 int aApertureAttribute );
280 void selectAperture(
const std::vector<wxPoint>& aCorners,
double aPolygonRotation,
virtual void FlashRegularPolygon(const wxPoint &aShapePos, int aDiameter, int aCornerCount, double aOrient, OUTLINE_MODE aTraceMode, void *aData) override
Flash a regular polygon.
void writeApertureList()
Generate the table of D codes.
void clearNetAttribute()
clear a Gerber net attribute record (clear object attribute dictionary) and output the clear object a...
Plot settings, and plotting engines (PostScript, Gerber, HPGL and DXF)
virtual void PenTo(const wxPoint &pos, char plume) override
moveto/lineto primitive, moves the 'pen' to the specified direction
void UseX2NetAttributes(bool aEnable)
void plotRoundRectAsRegion(const wxPoint &aRectCenter, const wxSize &aSize, int aCornerRadius, double aOrient)
Plot a round rect (a round rect shape in fact) as a Gerber region using lines and arcs for corners.
FILL_TYPE
The set of fill types used in plotting or drawing enclosed areas.
virtual void SetLayerPolarity(bool aPositive) override
Change the plot polarity and begin a new layer Used to 'scratch off' silk screen away from solder mas...
virtual void EndBlock(void *aData) override
calling this function allows one to define the end of a group of drawing items the group is started b...
bool m_hasApertureChamferedRect
virtual void ThickSegment(const wxPoint &start, const wxPoint &end, int width, OUTLINE_MODE tracemode, void *aData) override
void FlashPadChamferRoundRect(const wxPoint &aShapePos, const wxSize &aPadSize, int aCornerRadius, double aChamferRatio, int aChamferPositions, double aPadOrient, OUTLINE_MODE aPlotMode, void *aData)
flash a chamfered round rect pad.
void formatNetAttribute(GBR_NETLIST_METADATA *aData)
print a Gerber net attribute object record.
virtual void FlashPadTrapez(const wxPoint &aPadPos, const wxPoint *aCorners, double aPadOrient, OUTLINE_MODE aTraceMode, void *aData) override
Flash a trapezoidal pad.
bool m_hasApertureRotOval
void UseX2format(bool aEnable)
void plotArc(const wxPoint &aCenter, double aStAngle, double aEndAngle, int aRadius, bool aPlotInRegion)
Plot a Gerber arc.
virtual void ThickArc(const wxPoint ¢re, double StAngle, double EndAngle, int rayon, int width, OUTLINE_MODE tracemode, void *aData) override
APER_MACRO_FREEPOLY_LIST m_am_freepoly_list
static wxString GetDefaultFileExtension()
virtual void FlashPadRect(const wxPoint &aPadPos, const wxSize &size, double orient, OUTLINE_MODE trace_mode, void *aData) override
bool m_hasApertureOutline4P
virtual bool StartPlot() override
Function StartPlot Write GERBER header to file initialize global variable g_Plot_PlotOutputFile.
bool m_hasApertureRoundRect
virtual void Text(const wxPoint &aPos, const COLOR4D aColor, const wxString &aText, double aOrient, const wxSize &aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, bool aMultilineAllowed=false, void *aData=NULL) override
Draws text with the plotter.
virtual void PlotPoly(const std::vector< wxPoint > &aCornerList, FILL_TYPE aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void *aData=nullptr) override
Gerber polygon: they can (and should) be filled with the appropriate G36/G37 sequence.
virtual void FlashPadCustom(const wxPoint &aPadPos, const wxSize &aSize, double aPadOrient, SHAPE_POLY_SET *aPolygons, OUTLINE_MODE aTraceMode, void *aData) override
static const int USE_DEFAULT_LINE_WIDTH
std::vector< APERTURE > m_apertures
virtual void Arc(const wxPoint &aCenter, double aStAngle, double aEndAngle, int aRadius, FILL_TYPE aFill, int aWidth=USE_DEFAULT_LINE_WIDTH) override
Generic fallback: arc rendered as a polyline.
void ClearAllAttributes()
Remove (clear) all attributes from object attributes dictionary (TO.
virtual void SetCurrentLineWidth(int width, void *aData=NULL) override
Set the line width for the next drawing.
virtual void FlashPadRoundRect(const wxPoint &aPadPos, const wxSize &aSize, int aCornerRadius, double aOrient, OUTLINE_MODE aTraceMode, void *aData) override
virtual void ThickCircle(const wxPoint &pos, int diametre, int width, OUTLINE_MODE tracemode, void *aData) override
Represent a set of closed polygons.
PLOT_FORMAT
The set of supported output plot formats.
virtual void Circle(const wxPoint &pos, int diametre, FILL_TYPE fill, int width=USE_DEFAULT_LINE_WIDTH) override
virtual void SetViewport(const wxPoint &aOffset, double aIusPerDecimil, double aScale, bool aMirror) override
Set the plot offset and scaling for the current plot.
virtual void FlashPadOval(const wxPoint &aPadPos, const wxSize &size, double orient, OUTLINE_MODE trace_mode, void *aData) override
void emitDcode(const DPOINT &pt, int dcode)
Emit a D-Code record, using proper conversions to format a leading zero omitted gerber coordinate (fo...
virtual PLOT_FORMAT GetPlotterType() const override
Returns the effective plot engine in use.
bool m_hasApertureRotRect
void selectAperture(const wxSize &aSize, int aRadius, double aRotDegree, APERTURE::APERTURE_TYPE aType, int aApertureAttribute)
Pick an existing aperture or create a new one, matching the size, type and attributes.
PLOT_DASH_TYPE
Dashed line types.
void DisableApertMacros(bool aDisable)
Disable Aperture Macro (AM) command, only for broken Gerber Readers Regions will be used instead of A...
Base plotter engine class.
virtual void ThickRect(const wxPoint &p1, const wxPoint &p2, int width, OUTLINE_MODE tracemode, void *aData) override
virtual void StartBlock(void *aData) override
calling this function allows one to define the beginning of a group of drawing items (used in X2 form...
int GetOrCreateAperture(const wxSize &aSize, int aRadius, double aRotDegree, APERTURE::APERTURE_TYPE aType, int aApertureAttribute)
virtual void Rect(const wxPoint &p1, const wxPoint &p2, FILL_TYPE fill, int width=USE_DEFAULT_LINE_WIDTH) override
void PlotGerberRegion(const std::vector< wxPoint > &aCornerList, void *aData=NULL)
Plot a Gerber region: similar to PlotPoly but plot only filled polygon, and add the TA....
virtual bool EndPlot() override
virtual void SetColor(COLOR4D color) override
std::string m_objectAttributesDictionnary
virtual void SetGerberCoordinatesFormat(int aResolution, bool aUseInches=false) override
Function SetGerberCoordinatesFormat selection of Gerber units and resolution (number of digits in man...
virtual void FlashPadCircle(const wxPoint &pos, int diametre, OUTLINE_MODE trace_mode, void *aData) override
Filled circular flashes are stored as apertures.
virtual void FilledCircle(const wxPoint &pos, int diametre, OUTLINE_MODE tracemode, void *aData) override
bool m_gerberDisableApertMacros
virtual void SetDash(PLOT_DASH_TYPE dashed) override
A color representation with 4 components: red, green, blue, alpha.