KiCad PCB EDA Suite
plotter.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2016 Jean-Pierre Charras, jp.charras at wanadoo.fr
5  * Copyright (C) 2016-2021 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, you may find one here:
19  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org website for the version 2 license,
21  * or you may write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23  */
24 
31 #ifndef PLOT_COMMON_H_
32 #define PLOT_COMMON_H_
33 
34 #include <fill_type.h>
35 #include <vector>
36 #include <math/box2.h>
37 #include <gr_text.h>
38 #include <page_info.h>
39 #include <outline_mode.h>
40 #include <gal/color4d.h>
41 #include <render_settings.h>
42 
43 class COLOR_SETTINGS;
44 class SHAPE_ARC;
45 class SHAPE_POLY_SET;
46 class SHAPE_LINE_CHAIN;
48 class PROJECT;
49 
51 
52 
53 // Must be in the same order as the drop-down list in the plot dialog inside pcbnew
54 // Units (inch/mm for DXF plotter
55 enum class DXF_UNITS
56 {
57  INCHES = 0,
58  MILLIMETERS = 1
59 };
60 
61 
67 enum class PLOT_FORMAT
68 {
69  UNDEFINED = -1,
70  FIRST_FORMAT = 0,
72  GERBER,
73  POST,
74  DXF,
75  PDF,
76  SVG,
78 };
79 
93 enum class PLOT_TEXT_MODE
94 {
95  STROKE,
96  NATIVE,
97  PHANTOM,
98  DEFAULT
99 };
100 
104 enum class PLOT_DASH_TYPE
105 {
106  DEFAULT = -1,
107  SOLID = 0,
108  FIRST_TYPE = SOLID,
109  DASH,
110  DOT,
111  DASHDOT,
113 };
114 
121 class PLOTTER
122 {
123 public:
124  // These values are used as flag for pen or aperture selection
125  static const int DO_NOT_SET_LINE_WIDTH = -2; // Skip selection
126  static const int USE_DEFAULT_LINE_WIDTH = -1; // use the default pen
127 
128  PLOTTER();
129 
130  virtual ~PLOTTER();
131 
137  virtual PLOT_FORMAT GetPlotterType() const = 0;
138 
139  virtual bool StartPlot() = 0;
140  virtual bool EndPlot() = 0;
141 
142  virtual void SetNegative( bool aNegative )
143  {
144  m_negativeMode = aNegative;
145  }
146 
152  virtual void SetColorMode( bool aColorMode ) { m_colorMode = aColorMode; }
153  bool GetColorMode() const { return m_colorMode; }
154 
155  void SetRenderSettings( RENDER_SETTINGS* aSettings ) { m_renderSettings = aSettings; }
157 
158  virtual void SetPageSettings( const PAGE_INFO& aPageSettings ) { m_pageInfo = aPageSettings; }
160 
167  virtual void SetCurrentLineWidth( int width, void* aData = nullptr ) = 0;
168  virtual int GetCurrentLineWidth() const { return m_currentPenWidth; }
169 
170  virtual void SetColor( const COLOR4D& color ) = 0;
171 
172  virtual void SetDash( PLOT_DASH_TYPE dashed ) = 0;
173 
174  virtual void SetCreator( const wxString& aCreator ) { m_creator = aCreator; }
175 
176  virtual void SetTitle( const wxString& aTitle ) { m_title = aTitle; }
177 
183  void AddLineToHeader( const wxString& aExtraString )
184  {
185  m_headerExtraLines.Add( aExtraString );
186  }
187 
192  {
193  m_headerExtraLines.Clear();
194  }
195 
206  virtual void SetViewport( const wxPoint& aOffset, double aIusPerDecimil,
207  double aScale, bool aMirror ) = 0;
208 
218  virtual bool OpenFile( const wxString& aFullFilename );
219 
225  double GetIUsPerDecimil() const { return m_IUsPerDecimil; }
226 
227  int GetPlotterArcLowDef() const { return m_IUsPerDecimil * 8; }
228  int GetPlotterArcHighDef() const { return m_IUsPerDecimil * 2; }
229 
230  // Low level primitives
231  virtual void Rect( const wxPoint& p1, const wxPoint& p2, FILL_TYPE fill,
232  int width = USE_DEFAULT_LINE_WIDTH ) = 0;
233  virtual void Circle( const wxPoint& pos, int diametre, FILL_TYPE fill,
234  int width = USE_DEFAULT_LINE_WIDTH ) = 0;
235 
239  virtual void Arc( const wxPoint& centre, double StAngle, double EndAngle,
240  int rayon, FILL_TYPE fill, int width = USE_DEFAULT_LINE_WIDTH );
241  virtual void Arc( const SHAPE_ARC& aArc );
242 
248  virtual void BezierCurve( const wxPoint& aStart, const wxPoint& aControl1,
249  const wxPoint& aControl2, const wxPoint& aEnd,
250  int aTolerance, int aLineThickness = USE_DEFAULT_LINE_WIDTH );
251 
260  virtual void PenTo( const wxPoint& pos, char plume ) = 0;
261 
262  // Convenience functions for PenTo
263  void MoveTo( const wxPoint& pos )
264  {
265  PenTo( pos, 'U' );
266  }
267 
268  void LineTo( const wxPoint& pos )
269  {
270  PenTo( pos, 'D' );
271  }
272 
273  void FinishTo( const wxPoint& pos )
274  {
275  PenTo( pos, 'D' );
276  PenTo( pos, 'Z' );
277  }
278 
279  void PenFinish()
280  {
281  // The point is not important with Z motion
282  PenTo( wxPoint( 0, 0 ), 'Z' );
283  }
284 
293  virtual void PlotPoly( const std::vector< wxPoint >& aCornerList, FILL_TYPE aFill,
294  int aWidth = USE_DEFAULT_LINE_WIDTH, void* aData = nullptr ) = 0;
295 
304  virtual void PlotPoly( const SHAPE_LINE_CHAIN& aCornerList, FILL_TYPE aFill,
305  int aWidth = USE_DEFAULT_LINE_WIDTH, void* aData = nullptr );
306 
317  virtual void PlotImage( const wxImage& aImage, const wxPoint& aPos, double aScaleFactor );
318 
319  // Higher level primitives -- can be drawn as line, sketch or 'filled'
320  virtual void ThickSegment( const wxPoint& start, const wxPoint& end, int width,
321  OUTLINE_MODE tracemode, void* aData );
322  virtual void ThickArc( const wxPoint& centre, double StAngle, double EndAngle,
323  int rayon, int width, OUTLINE_MODE tracemode, void* aData );
324  virtual void ThickRect( const wxPoint& p1, const wxPoint& p2, int width,
325  OUTLINE_MODE tracemode, void* aData );
326  virtual void ThickCircle( const wxPoint& pos, int diametre, int width,
327  OUTLINE_MODE tracemode, void* aData );
328  virtual void FilledCircle( const wxPoint& pos, int diametre,
329  OUTLINE_MODE tracemode, void* aData );
330 
331 
332  // Flash primitives
333 
340  virtual void FlashPadCircle( const wxPoint& aPadPos, int aDiameter,
341  OUTLINE_MODE aTraceMode, void* aData ) = 0;
342 
350  virtual void FlashPadOval( const wxPoint& aPadPos, const wxSize& aSize, double aPadOrient,
351  OUTLINE_MODE aTraceMode, void* aData ) = 0;
352 
360  virtual void FlashPadRect( const wxPoint& aPadPos, const wxSize& aSize,
361  double aPadOrient, OUTLINE_MODE aTraceMode, void* aData ) = 0;
362 
371  virtual void FlashPadRoundRect( const wxPoint& aPadPos, const wxSize& aSize,
372  int aCornerRadius, double aOrient,
373  OUTLINE_MODE aTraceMode, void* aData ) = 0;
374 
383  virtual void FlashPadCustom( const wxPoint& aPadPos, const wxSize& aSize,
384  double aPadOrient, SHAPE_POLY_SET* aPolygons,
385  OUTLINE_MODE aTraceMode, void* aData ) = 0;
386 
397  virtual void FlashPadTrapez( const wxPoint& aPadPos, const wxPoint *aCorners,
398  double aPadOrient, OUTLINE_MODE aTraceMode,
399  void* aData ) = 0;
400 
411  virtual void FlashRegularPolygon( const wxPoint& aShapePos, int aDiameter, int aCornerCount,
412  double aOrient, OUTLINE_MODE aTraceMode, void* aData ) = 0 ;
413 
420  virtual void Text( const wxPoint& aPos,
421  const COLOR4D& aColor,
422  const wxString& aText,
423  double aOrient,
424  const wxSize& aSize,
425  enum EDA_TEXT_HJUSTIFY_T aH_justify,
426  enum EDA_TEXT_VJUSTIFY_T aV_justify,
427  int aWidth,
428  bool aItalic,
429  bool aBold,
430  bool aMultilineAllowed = false,
431  void* aData = nullptr );
432 
436  static const unsigned MARKER_COUNT = 58;
437 
445  void Marker( const wxPoint& position, int diametre, unsigned aShapeId );
446 
456  virtual void SetLayerPolarity( bool aPositive )
457  {
458  // NOP for most plotters
459  }
460 
465  virtual void SetTextMode( PLOT_TEXT_MODE mode )
466  {
467  // NOP for most plotters.
468  }
469 
470  virtual void SetGerberCoordinatesFormat( int aResolution, bool aUseInches = false )
471  {
472  // NOP for most plotters. Only for Gerber plotter
473  }
474 
475  virtual void SetSvgCoordinatesFormat( unsigned aResolution, bool aUseInches = false )
476  {
477  // NOP for most plotters. Only for SVG plotter
478  }
479 
487  virtual void StartBlock( void* aData ) {}
488 
496  virtual void EndBlock( void* aData ) {}
497 
498 
499 protected:
500  // These are marker subcomponents
504  void markerCircle( const wxPoint& pos, int radius );
505 
509  void markerHBar( const wxPoint& pos, int radius );
510 
514  void markerSlash( const wxPoint& pos, int radius );
515 
519  void markerBackSlash( const wxPoint& pos, int radius );
520 
524  void markerVBar( const wxPoint& pos, int radius );
525 
529  void markerSquare( const wxPoint& position, int radius );
530 
534  void markerLozenge( const wxPoint& position, int radius );
535 
536  // Helper function for sketched filler segment
537 
541  void segmentAsOval( const wxPoint& start, const wxPoint& end, int width,
542  OUTLINE_MODE tracemode );
543 
544  void sketchOval( const wxPoint& pos, const wxSize& size, double orient, int width );
545 
546  // Coordinate and scaling conversion functions
547 
553  virtual DPOINT userToDeviceCoordinates( const wxPoint& aCoordinate );
554 
558  virtual DPOINT userToDeviceSize( const wxSize& size );
559 
563  virtual double userToDeviceSize( double size ) const;
564 
565  double GetDotMarkLenIU() const;
566 
567  double GetDashMarkLenIU() const;
568 
569  double GetDashGapLenIU() const;
570 
571 protected: // variables used in most of plotters:
573  double m_plotScale;
574 
575  /* Caller scale (how many IUs in a decimil - always); it's a double
576  * because in Eeschema there are 0.1 IUs in a decimil (Eeschema
577  * always works in mils internally) while PcbNew can work in decimil
578  * or nanometers, so this value would be >= 1 */
580 
581  double m_iuPerDeviceUnit; // Device scale (from IUs to plotter device units;
582  // usually decimils)
583  wxPoint m_plotOffset; // Plot offset (in IUs)
584  bool m_plotMirror; // X axis orientation (SVG)
585  // and plot mirrored (only for PS, PDF HPGL and SVG)
586  bool m_mirrorIsHorizontal; // true to mirror horizontally (else vertically)
587  bool m_yaxisReversed; // true if the Y axis is top to bottom (SVG)
588 
591 
592  // Pen handling
593  bool m_colorMode; // true to plot in color, otherwise black & white
594  bool m_negativeMode; // true to generate a negative image (PS mode mainly)
596  char m_penState; // current pen state: 'U', 'D' or 'Z' (see PenTo)
597  wxPoint m_penLastpos; // last pen position; -1,-1 when pen is at rest
598 
599  wxString m_creator;
600  wxString m_filename;
601  wxString m_title;
603  wxSize m_paperSize; // Paper size in IU - not in mils
604 
605  wxArrayString m_headerExtraLines; // a set of string to print in header file
606 
608 };
609 
610 
611 class TITLE_BLOCK;
612 
613 void PlotDrawingSheet( PLOTTER* plotter, const PROJECT* aProject, const TITLE_BLOCK& aTitleBlock,
614  const PAGE_INFO& aPageInfo, const wxString& aSheetNumber, int aSheetCount,
615  const wxString& aSheetDesc, const wxString& aFilename,
616  COLOR4D aColor = COLOR4D::UNSPECIFIED, bool aIsFirstPage = true );
617 
620 wxString GetDefaultPlotExtension( PLOT_FORMAT aFormat );
621 
622 
623 #endif // PLOT_COMMON_H_
void segmentAsOval(const wxPoint &start, const wxPoint &end, int width, OUTLINE_MODE tracemode)
Convert a thick segment and plot it as an oval.
Definition: plotter.cpp:460
void FinishTo(const wxPoint &pos)
Definition: plotter.h:273
OUTLINE_MODE
Definition: outline_mode.h:24
double GetDotMarkLenIU() const
Definition: plotter.cpp:139
void markerHBar(const wxPoint &pos, int radius)
Plot a - bar centered on the position.
Definition: plotter.cpp:310
virtual void SetCreator(const wxString &aCreator)
Definition: plotter.h:174
EDA_TEXT_HJUSTIFY_T
Definition: eda_text.h:61
virtual void PlotPoly(const std::vector< wxPoint > &aCornerList, FILL_TYPE aFill, int aWidth=USE_DEFAULT_LINE_WIDTH, void *aData=nullptr)=0
Draw a polygon ( filled or not ).
void PenFinish()
Definition: plotter.h:279
virtual void FlashPadRoundRect(const wxPoint &aPadPos, const wxSize &aSize, int aCornerRadius, double aOrient, OUTLINE_MODE aTraceMode, void *aData)=0
Container for project specific data.
Definition: project.h:62
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...
Definition: plotter.h:496
FILL_TYPE
The set of fill types used in plotting or drawing enclosed areas.
Definition: fill_type.h:28
wxString GetDefaultPlotExtension(PLOT_FORMAT aFormat)
Returns the default plot extension for a format.
virtual void ThickCircle(const wxPoint &pos, int diametre, int width, OUTLINE_MODE tracemode, void *aData)
Definition: plotter.cpp:595
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
virtual bool StartPlot()=0
wxString m_filename
Definition: plotter.h:600
virtual void Rect(const wxPoint &p1, const wxPoint &p2, FILL_TYPE fill, int width=USE_DEFAULT_LINE_WIDTH)=0
virtual void SetTitle(const wxString &aTitle)
Definition: plotter.h:176
static const unsigned MARKER_COUNT
Draw a marker (used for the drill map).
Definition: plotter.h:436
virtual bool OpenFile(const wxString &aFullFilename)
Open or create the plot file aFullFilename.
Definition: plotter.cpp:76
virtual void SetColorMode(bool aColorMode)
Plot in B/W or color.
Definition: plotter.h:152
virtual void SetLayerPolarity(bool aPositive)
Set the current Gerber layer polarity to positive or negative by writing %LPD*% or %LPC*% to the Gerb...
Definition: plotter.h:456
int color
Definition: DXF_plotter.cpp:57
virtual void FlashPadOval(const wxPoint &aPadPos, const wxSize &aSize, double aPadOrient, OUTLINE_MODE aTraceMode, void *aData)=0
void SetRenderSettings(RENDER_SETTINGS *aSettings)
Definition: plotter.h:155
FILE * m_outputFile
Output file.
Definition: plotter.h:590
double m_iuPerDeviceUnit
Definition: plotter.h:581
virtual void StartBlock(void *aData)
calling this function allows one to define the beginning of a group of drawing items,...
Definition: plotter.h:487
virtual void PenTo(const wxPoint &pos, char plume)=0
Moveto/lineto primitive, moves the 'pen' to the specified direction.
virtual void ThickRect(const wxPoint &p1, const wxPoint &p2, int width, OUTLINE_MODE tracemode, void *aData)
Definition: plotter.cpp:571
virtual void FilledCircle(const wxPoint &pos, int diametre, OUTLINE_MODE tracemode, void *aData)
Definition: plotter.cpp:611
virtual void Arc(const wxPoint &centre, double StAngle, double EndAngle, int rayon, FILL_TYPE fill, int width=USE_DEFAULT_LINE_WIDTH)
Generic fallback: arc rendered as a polyline.
Definition: plotter.cpp:164
virtual void BezierCurve(const wxPoint &aStart, const wxPoint &aControl1, const wxPoint &aControl2, const wxPoint &aEnd, int aTolerance, int aLineThickness=USE_DEFAULT_LINE_WIDTH)
Generic fallback: Cubic Bezier curve rendered as a polyline In KiCad the bezier curves have 4 control...
Definition: plotter.cpp:211
virtual ~PLOTTER()
Definition: plotter.cpp:68
void AddLineToHeader(const wxString &aExtraString)
Add a line to the list of free lines to print at the beginning of the file.
Definition: plotter.h:183
Information which can be added in a gerber file as attribute of an object.
double m_IUsPerDecimil
Definition: plotter.h:579
Hold the information shown in the lower right corner of a plot, printout, or editing view.
Definition: title_block.h:40
wxArrayString m_headerExtraLines
Definition: plotter.h:605
virtual void ThickSegment(const wxPoint &start, const wxPoint &end, int width, OUTLINE_MODE tracemode, void *aData)
Definition: plotter.cpp:529
virtual void SetGerberCoordinatesFormat(int aResolution, bool aUseInches=false)
Definition: plotter.h:470
virtual void SetSvgCoordinatesFormat(unsigned aResolution, bool aUseInches=false)
Definition: plotter.h:475
PLOTTER()
Definition: plotter.cpp:49
void PlotDrawingSheet(PLOTTER *plotter, const PROJECT *aProject, const TITLE_BLOCK &aTitleBlock, const PAGE_INFO &aPageInfo, const wxString &aSheetNumber, int aSheetCount, const wxString &aSheetDesc, const wxString &aFilename, COLOR4D aColor=COLOR4D::UNSPECIFIED, bool aIsFirstPage=true)
virtual void FlashPadTrapez(const wxPoint &aPadPos, const wxPoint *aCorners, double aPadOrient, OUTLINE_MODE aTraceMode, void *aData)=0
Flash a trapezoidal pad.
double GetDashGapLenIU() const
Definition: plotter.cpp:151
double m_plotScale
Plot scale - chosen by the user (even implicitly with 'fit in a4')
Definition: plotter.h:573
virtual int GetCurrentLineWidth() const
Definition: plotter.h:168
bool m_yaxisReversed
Definition: plotter.h:587
virtual bool EndPlot()=0
void LineTo(const wxPoint &pos)
Definition: plotter.h:268
static const int USE_DEFAULT_LINE_WIDTH
Definition: plotter.h:126
virtual void FlashPadRect(const wxPoint &aPadPos, const wxSize &aSize, double aPadOrient, OUTLINE_MODE aTraceMode, void *aData)=0
bool m_plotMirror
Definition: plotter.h:584
bool m_colorMode
Definition: plotter.h:593
int m_currentPenWidth
Definition: plotter.h:595
Represent a set of closed polygons.
PLOT_FORMAT
The set of supported output plot formats.
Definition: plotter.h:67
virtual PLOT_FORMAT GetPlotterType() const =0
Returns the effective plot engine in use.
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:53
wxString m_title
Definition: plotter.h:601
virtual void SetTextMode(PLOT_TEXT_MODE mode)
Change the current text mode.
Definition: plotter.h:465
wxPoint m_penLastpos
Definition: plotter.h:597
double GetIUsPerDecimil() const
The IUs per decimil are an essential scaling factor when plotting; they are set and saved when establ...
Definition: plotter.h:225
RENDER_SETTINGS * m_renderSettings
Definition: plotter.h:607
virtual DPOINT userToDeviceSize(const wxSize &size)
Modify size according to the plotter scale factors (wxSize version, returns a DPOINT).
Definition: plotter.cpp:123
bool m_negativeMode
Definition: plotter.h:594
virtual void Circle(const wxPoint &pos, int diametre, FILL_TYPE fill, int width=USE_DEFAULT_LINE_WIDTH)=0
virtual void SetNegative(bool aNegative)
Definition: plotter.h:142
void markerSlash(const wxPoint &pos, int radius)
Plot a / bar centered on the position.
Definition: plotter.cpp:317
virtual void SetViewport(const wxPoint &aOffset, double aIusPerDecimil, double aScale, bool aMirror)=0
Set the plot offset and scaling for the current plot.
virtual void FlashRegularPolygon(const wxPoint &aShapePos, int aDiameter, int aCornerCount, double aOrient, OUTLINE_MODE aTraceMode, void *aData)=0
Flash a regular polygon.
void Marker(const wxPoint &position, int diametre, unsigned aShapeId)
Draw a pattern shape number aShapeId, to coord position.
Definition: plotter.cpp:338
virtual void SetColor(const COLOR4D &color)=0
PLOT_DASH_TYPE
Dashed line types.
Definition: plotter.h:104
EDA_TEXT_VJUSTIFY_T
Definition: eda_text.h:68
void MoveTo(const wxPoint &pos)
Definition: plotter.h:263
virtual DPOINT userToDeviceCoordinates(const wxPoint &aCoordinate)
Modify coordinates according to the orientation, scale factor, and offsets trace.
Definition: plotter.cpp:92
int GetPlotterArcLowDef() const
Definition: plotter.h:227
Base plotter engine class.
Definition: plotter.h:121
virtual void PlotImage(const wxImage &aImage, const wxPoint &aPos, double aScaleFactor)
Only PostScript plotters can plot bitmaps.
Definition: plotter.cpp:239
RENDER_SETTINGS * RenderSettings()
Definition: plotter.h:156
wxPoint m_plotOffset
Definition: plotter.h:583
PAGE_INFO m_pageInfo
Definition: plotter.h:602
double GetDashMarkLenIU() const
Definition: plotter.cpp:145
Represent a polyline (an zero-thickness chain of connected line segments).
void markerLozenge(const wxPoint &position, int radius)
Plot a lozenge centered on the position.
Definition: plotter.cpp:286
void markerCircle(const wxPoint &pos, int radius)
Plot a circle centered on the position.
Definition: plotter.cpp:280
int GetPlotterArcHighDef() const
Definition: plotter.h:228
char m_penState
Definition: plotter.h:596
void ClearHeaderLinesList()
Remove all lines from the list of free lines to print at the beginning of the file.
Definition: plotter.h:191
DXF_UNITS
Definition: plotter.h:55
virtual void ThickArc(const wxPoint &centre, double StAngle, double EndAngle, int rayon, int width, OUTLINE_MODE tracemode, void *aData)
Definition: plotter.cpp:553
virtual void FlashPadCustom(const wxPoint &aPadPos, const wxSize &aSize, double aPadOrient, SHAPE_POLY_SET *aPolygons, OUTLINE_MODE aTraceMode, void *aData)=0
Color settings are a bit different than most of the settings objects in that there can be more than o...
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=nullptr)
Draw text with the plotter.
Definition: gr_text.cpp:219
PLOT_TEXT_MODE
Which kind of text to output with the PSLIKE plotters.
Definition: plotter.h:93
static const int DO_NOT_SET_LINE_WIDTH
Definition: plotter.h:125
PAGE_INFO & PageSettings()
Definition: plotter.h:159
void markerVBar(const wxPoint &pos, int radius)
Plot a | bar centered on the position.
Definition: plotter.cpp:331
wxSize m_paperSize
Definition: plotter.h:603
void markerSquare(const wxPoint &position, int radius)
Plot a square centered on the position.
Definition: plotter.cpp:255
virtual void SetCurrentLineWidth(int width, void *aData=nullptr)=0
Set the line width for the next drawing.
void markerBackSlash(const wxPoint &pos, int radius)
Plot a \ bar centered on the position.
Definition: plotter.cpp:324
void sketchOval(const wxPoint &pos, const wxSize &size, double orient, int width)
Definition: plotter.cpp:481
virtual void FlashPadCircle(const wxPoint &aPadPos, int aDiameter, OUTLINE_MODE aTraceMode, void *aData)=0
virtual void SetDash(PLOT_DASH_TYPE dashed)=0
bool m_mirrorIsHorizontal
Definition: plotter.h:586
wxString m_creator
Definition: plotter.h:599
virtual void SetPageSettings(const PAGE_INFO &aPageSettings)
Definition: plotter.h:158
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:103
bool GetColorMode() const
Definition: plotter.h:153