VTK
vtkGL2PSContextDevice2D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGL2PSContextDevice2D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
29 #ifndef vtkGL2PSContextDevice2D_h
30 #define vtkGL2PSContextDevice2D_h
31 
32 #include "vtkRenderingGL2PSModule.h" // For export macro
33 #include "vtkOpenGLContextDevice2D.h"
34 
35 class vtkPath;
36 
37 class VTKRENDERINGGL2PS_EXPORT vtkGL2PSContextDevice2D
39 {
40 public:
42  void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE;
43 
44  static vtkGL2PSContextDevice2D *New();
45 
54  void DrawPoly(float *f, int n, unsigned char *colors = 0,
55  int nc_comps = 0) VTK_OVERRIDE;
56 
61  void DrawPoints(float *points, int n, unsigned char* colors = 0,
62  int nc_comps = 0) VTK_OVERRIDE;
63 
71  void DrawPointSprites(vtkImageData *sprite, float *points, int n,
72  unsigned char *colors = 0, int nc_comps = 0) VTK_OVERRIDE;
73 
77  void DrawQuadStrip(float *, int) VTK_OVERRIDE;
78 
82  void DrawPolygon(float *, int) VTK_OVERRIDE;
83 
95  void DrawEllipseWedge(float x, float y, float outRx, float outRy,
96  float inRx, float inRy, float startAngle,
97  float stopAngle) VTK_OVERRIDE;
98 
105  void DrawEllipticArc(float x, float y, float rX, float rY,
106  float startAngle, float stopAngle) VTK_OVERRIDE;
107 
119  void DrawMarkers(int shape, bool highlight, float *points, int n,
120  unsigned char *colors = 0, int nc_comps = 0) VTK_OVERRIDE;
121 
125  void DrawQuad(float *points, int n) VTK_OVERRIDE;
126 
130  void DrawString(float *point, const vtkStdString &string) VTK_OVERRIDE;
131 
135  void DrawString(float *point, const vtkUnicodeString &string) VTK_OVERRIDE;
136 
141  void DrawMathTextString(float point[2], const vtkStdString &string) VTK_OVERRIDE;
142 
148  void ApplyPen(vtkPen *pen) VTK_OVERRIDE;
149 
153  void SetPointSize(float size) VTK_OVERRIDE;
154 
158  void SetLineWidth(float width) VTK_OVERRIDE;
159 
163  void SetLineType(int type) VTK_OVERRIDE;
164 
165 protected:
167  ~vtkGL2PSContextDevice2D() VTK_OVERRIDE;
168 
169 private:
170  vtkGL2PSContextDevice2D(const vtkGL2PSContextDevice2D &) VTK_DELETE_FUNCTION;
171  void operator=(const vtkGL2PSContextDevice2D &) VTK_DELETE_FUNCTION;
172 
173  void DrawCrossMarkers(bool highlight, float *points, int n,
174  unsigned char *colors, int nc_comps);
175  void DrawPlusMarkers(bool highlight, float *points, int n,
176  unsigned char *colors, int nc_comps);
177  void DrawSquareMarkers(bool highlight, float *points, int n,
178  unsigned char *colors, int nc_comps);
179  void DrawCircleMarkers(bool highlight, float *points, int n,
180  unsigned char *colors, int nc_comps);
181  void DrawDiamondMarkers(bool highlight, float *points, int n,
182  unsigned char *colors, int nc_comps);
183  void AddEllipseToPath(vtkPath *path, float x, float y, float rx, float ry,
184  bool reverse);
185 
186  // Transform the path using the current modelview matrix.
187  void TransformPath(vtkPath *path) const;
188 
189  // Transform the 2D point using the current modelview matrix.
190  void TransformPoint(float &x, float &y) const;
191 
192  // Transform the width and height from pixels to data units.
193  void TransformSize(float &dx, float &dy) const;
194 };
195 
196 #endif //vtkGL2PSContextDevice2D_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:41
concrete dataset representing a path defined by Bezier curves.
Definition: vtkPath.h:32
Class for drawing 2D primitives using OpenGL 1.1+.
static vtkOpenGLContextDevice2D * New()
Creates a 2D Painter object.
void DrawPoly(float *f, int n, unsigned char *colors=0, int nc_comps=0) override
Draw a poly line using the points - fastest code path due to memory layout of the coordinates...
a simple class to control print indentation
Definition: vtkIndent.h:33
topologically and geometrically regular array of data
Definition: vtkImageData.h:39
Class for drawing 2D primitives using GL2PS.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:36
String class that stores Unicode text.