VTK  9.1.0
vtkOpenGLContextDevice2D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenGLContextDevice2D.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 
49 #ifndef vtkOpenGLContextDevice2D_h
50 #define vtkOpenGLContextDevice2D_h
51 
52 #include "vtkContextDevice2D.h"
53 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
54 
55 #include <list> // for std::list
56 #include <vector> // STL Header
57 
58 class vtkMatrix4x4;
59 class vtkOpenGLExtensionManager;
60 class vtkOpenGLHelper;
62 class vtkPath;
63 class vtkRenderer;
64 class vtkShaderProgram;
65 class vtkStringToImage;
66 class vtkTransform;
67 class vtkViewport;
68 class vtkWindow;
69 
70 class VTKRENDERINGCONTEXTOPENGL2_EXPORT vtkOpenGLContextDevice2D : public vtkContextDevice2D
71 {
72 public:
74  void PrintSelf(ostream& os, vtkIndent indent) override;
75 
80 
86  void DrawPoly(float* f, int n, unsigned char* colors = nullptr, int nc_comps = 0) override;
87 
94  void DrawLines(float* f, int n, unsigned char* colors = nullptr, int nc_comps = 0) override;
95 
101  void DrawPoints(float* points, int n, unsigned char* colors = nullptr, int nc_comps = 0) override;
102 
109  void DrawPointSprites(vtkImageData* sprite, float* points, int n, unsigned char* colors = nullptr,
110  int nc_comps = 0) override;
111 
127  void DrawMarkers(int shape, bool highlight, float* points, int n, unsigned char* colors = nullptr,
128  int nc_comps = 0) override;
129 
131 
136  vtkSetMacro(MaximumMarkerCacheSize, int);
137  vtkGetMacro(MaximumMarkerCacheSize, int);
139 
143  void DrawQuad(float* points, int n) override;
144 
148  void DrawQuadStrip(float* points, int n) override;
149 
153  void DrawPolygon(float*, int) override;
155  float* points, int numPoints, unsigned char* colors = nullptr, int nc_comps = 0) override;
156 
168  void DrawEllipseWedge(float x, float y, float outRx, float outRy, float inRx, float inRy,
169  float startAngle, float stopAngle) override;
170 
178  float x, float y, float rX, float rY, float startAngle, float stopAngle) override;
179 
183  void DrawString(float* point, const vtkStdString& string) override;
184 
193  void ComputeStringBounds(const vtkStdString& string, float bounds[4]) override;
194 
198  void DrawString(float* point, const vtkUnicodeString& string) override;
199 
208  void ComputeStringBounds(const vtkUnicodeString& string, float bounds[4]) override;
209 
215  void ComputeJustifiedStringBounds(const char* string, float bounds[4]) override;
216 
221  void DrawMathTextString(float point[2], const vtkStdString& string) override;
222 
227  void DrawImage(float p[2], float scale, vtkImageData* image) override;
228 
234  void DrawImage(const vtkRectf& pos, vtkImageData* image) override;
235 
240  void DrawPolyData(float p[2], float scale, vtkPolyData* polyData, vtkUnsignedCharArray* colors,
241  int scalarMode) override;
242 
246  void SetColor4(unsigned char color[4]) override;
247 
251  virtual void SetColor(unsigned char color[3]);
252 
256  void SetTexture(vtkImageData* image, int properties = 0) override;
257 
261  void SetPointSize(float size) override;
262 
266  void SetLineWidth(float width) override;
267 
271  void SetLineType(int type) override;
272 
276  void MultiplyMatrix(vtkMatrix3x3* m) override;
277 
281  void SetMatrix(vtkMatrix3x3* m) override;
282 
286  void GetMatrix(vtkMatrix3x3* m) override;
287 
291  void PushMatrix() override;
292 
296  void PopMatrix() override;
297 
298  /*
299  * Supply an int array of length 4 with x1, y1, width, height specifying
300  * clipping region for the device in pixels.
301  */
302  void SetClipping(int* x) override;
303 
307  void EnableClipping(bool enable) override;
308 
312  void Begin(vtkViewport* viewport) override;
313 
317  void End() override;
318 
327 
335  void BufferIdModeEnd() override;
336 
343 
349 
353  bool HasGLSL();
354 
356 
359  vtkGetObjectMacro(RenderWindow, vtkOpenGLRenderWindow);
361 
367  virtual void ReleaseGraphicsResources(vtkWindow* window);
368 
370 
376 
377 protected:
380 
388  int GetNumberOfArcIterations(float rX, float rY, float startAngle, float stopAngle);
389 
394 
398  bool InRender;
399 
401 
404  class Private;
406 
407  class CellArrayHelper;
410 
415 
416  vtkOpenGLHelper* LinesCBO; // vertex + color
420  vtkOpenGLHelper* VCBO; // vertex + color
422  vtkOpenGLHelper* VBO; // vertex
424  vtkOpenGLHelper* VTBO; // vertex + tcoord
426  vtkOpenGLHelper* SCBO; // sprite + color
428  vtkOpenGLHelper* SBO; // sprite
430 
432  void BuildVBO(
433  vtkOpenGLHelper* cbo, float* v, int nv, unsigned char* coolors, int nc, float* tcoords);
435  std::vector<float>& tverts, unsigned char* colors = nullptr, int numComp = 0);
436  // used for stipples
437  unsigned short LinePattern;
438 
440 
445  int shape, bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
447  bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
449  bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
451  bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
453  bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
455  bool highlight, float* points, int n, unsigned char* colors, int nc_comps);
457 
459 
462  void DrawImageGL2PS(float p[2], vtkImageData* image);
463  void DrawImageGL2PS(float p[2], float scale, vtkImageData* image);
466 
468 
471  void DrawCircleGL2PS(float x, float y, float rX, float rY);
472  void DrawWedgeGL2PS(float x, float y, float outRx, float outRy, float inRx, float inRy);
474 
478  void AddEllipseToPath(vtkPath* path, float x, float y, float rx, float ry, bool reverse);
479 
483  void TransformPath(vtkPath* path) const;
484 
488  void TransformPoint(float& x, float& y) const;
489 
493  void TransformSize(float& dx, float& dy) const;
494 
495 private:
497  void operator=(const vtkOpenGLContextDevice2D&) = delete;
498 
505  vtkImageData* GetMarker(int shape, int size, bool highlight);
506 
507  class vtkMarkerCacheObject
508  {
509  public:
510  vtkTypeUInt64 Key;
511  vtkImageData* Value;
512  bool operator==(vtkTypeUInt64 key) { return this->Key == key; }
513  };
514 
515  void ComputeStringBoundsInternal(const vtkUnicodeString& string, float bounds[4]);
516 
517  vtkTransform* ProjectionMatrix;
518  vtkTransform* ModelMatrix;
519 
520  std::list<vtkMarkerCacheObject> MarkerCache;
521  int MaximumMarkerCacheSize;
522 
527  vtkImageData* GenerateMarker(int shape, int size, bool highlight);
528 };
529 
530 #endif // vtkOpenGLContextDevice2D_h
vtkOpenGLContextDevice2D::ReadyLinesCBOProgram
void ReadyLinesCBOProgram()
vtkOpenGLContextDevice2D::Private
Definition: vtkOpenGLContextDevice2DPrivate.h:270
vtkOpenGLContextDevice2D::ReadySBOProgram
void ReadySBOProgram()
vtkOpenGLContextDevice2D::ReadyVCBOProgram
void ReadyVCBOProgram()
vtkOpenGLContextDevice2D::BufferIdModeEnd
void BufferIdModeEnd() override
Finalize BufferId creation Mode.
vtkOpenGLContextDevice2D::SBO
vtkOpenGLHelper * SBO
Definition: vtkOpenGLContextDevice2D.h:428
vtkOpenGLContextDevice2D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOpenGLContextDevice2D::DrawPoints
void DrawPoints(float *points, int n, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a series of points - fastest code path due to memory layout of the coordinates.
vtkOpenGLContextDevice2D::DrawPointSprites
void DrawPointSprites(vtkImageData *sprite, float *points, int n, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a series of point sprites, images centred at the points supplied.
vtkOpenGLContextDevice2D::DrawPolyData
void DrawPolyData(float p[2], float scale, vtkPolyData *polyData, vtkUnsignedCharArray *colors, int scalarMode) override
Draw the supplied PolyData at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1....
vtkOpenGLContextDevice2D::GetModelMatrix
vtkMatrix4x4 * GetModelMatrix()
Get the projection matrix this is needed.
vtkX3D::scale
@ scale
Definition: vtkX3D.h:235
vtkOpenGLContextDevice2D::VTBO
vtkOpenGLHelper * VTBO
Definition: vtkOpenGLContextDevice2D.h:424
vtkOpenGLContextDevice2D::PolyDataImpl
CellArrayHelper * PolyDataImpl
Definition: vtkOpenGLContextDevice2D.h:407
vtkOpenGLContextDevice2D::LinePattern
unsigned short LinePattern
Definition: vtkOpenGLContextDevice2D.h:437
vtkOpenGLContextDevice2D::DrawImage
void DrawImage(float p[2], float scale, vtkImageData *image) override
Draw the supplied image at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1....
vtkX3D::type
@ type
Definition: vtkX3D.h:522
vtkOpenGLContextDevice2D::~vtkOpenGLContextDevice2D
~vtkOpenGLContextDevice2D() override
vtkOpenGLContextDevice2D::ReadyVBOProgram
void ReadyVBOProgram()
vtkOpenGLContextDevice2D::SetMatrix
void SetMatrix(vtkMatrix3x3 *m) override
Set the model view matrix for the display.
vtkOpenGLContextDevice2D::EnableClipping
void EnableClipping(bool enable) override
Disable clipping of the display.
vtkOpenGLContextDevice2D::LinesCBO
vtkOpenGLHelper * LinesCBO
Definition: vtkOpenGLContextDevice2D.h:416
vtkOpenGLContextDevice2D::SetColor4
void SetColor4(unsigned char color[4]) override
Set the color for the device using unsigned char of length 4, RGBA.
vtkOpenGLContextDevice2D::DrawString
void DrawString(float *point, const vtkUnicodeString &string) override
Draw some text to the screen.
vtkX3D::key
@ key
Definition: vtkX3D.h:263
vtkOpenGLContextDevice2D::DrawLines
void DrawLines(float *f, int n, unsigned char *colors=nullptr, int nc_comps=0) override
Draw lines using the points - memory layout is as follows: l1p1,l1p2,l2p1,l2p2...
vtkX3D::image
@ image
Definition: vtkX3D.h:380
vtkOpenGLContextDevice2D::DrawPlusMarkersGL2PS
void DrawPlusMarkersGL2PS(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkPath
concrete dataset representing a path defined by Bezier curves.
Definition: vtkPath.h:33
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:145
vtkOpenGLContextDevice2D::CoreDrawTriangles
void CoreDrawTriangles(std::vector< float > &tverts, unsigned char *colors=nullptr, int numComp=0)
vtkOpenGLContextDevice2D::HasGLSL
bool HasGLSL()
Check whether the current context device has support for GLSL.
vtkOpenGLContextDevice2D::DrawCircleMarkersGL2PS
void DrawCircleMarkersGL2PS(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkStringToImage
base class for classes that render supplied text to an image.
Definition: vtkStringToImage.h:39
vtkOpenGLContextDevice2D::DrawImageGL2PS
void DrawImageGL2PS(float p[2], vtkImageData *image)
Embed an RGBA image in the GL2PS output at the supplied point.
vtkOpenGLContextDevice2D::PushMatrix
void PushMatrix() override
Push the current matrix onto the stack.
vtkOpenGLContextDevice2D::PopMatrix
void PopMatrix() override
Pop the current matrix off of the stack.
vtkOpenGLContextDevice2D::GetNumberOfArcIterations
int GetNumberOfArcIterations(float rX, float rY, float startAngle, float stopAngle)
Factorized code called by DrawEllipseWedge() and DrawEllipticArc() to figure out the number of iterat...
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:164
vtkMatrix3x3
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:63
vtkOpenGLContextDevice2D::VCBO
vtkOpenGLHelper * VCBO
Definition: vtkOpenGLContextDevice2D.h:420
vtkOpenGLContextDevice2D::ComputeJustifiedStringBounds
void ComputeJustifiedStringBounds(const char *string, float bounds[4]) override
Compute the bounds of the supplied string while taking into account the justification of the currentl...
vtkOpenGLContextDevice2D::DrawEllipseWedge
void DrawEllipseWedge(float x, float y, float outRx, float outRy, float inRx, float inRy, float startAngle, float stopAngle) override
Draw an elliptic wedge with center at x, y, outer radii outRx, outRy, inner radii inRx,...
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkOpenGLContextDevice2D::DrawMathTextString
void DrawMathTextString(float point[2], const vtkStdString &string) override
Draw text using MathText markup for mathematical equations.
vtkOpenGLContextDevice2D::BuildVBO
void BuildVBO(vtkOpenGLHelper *cbo, float *v, int nv, unsigned char *coolors, int nc, float *tcoords)
vtkOpenGLContextDevice2D::DrawMarkersGL2PS
void DrawMarkersGL2PS(int shape, bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkAbstractContextBufferId
2D array of ids, used for picking.
Definition: vtkAbstractContextBufferId.h:47
vtkOpenGLContextDevice2D::BufferIdModeBegin
void BufferIdModeBegin(vtkAbstractContextBufferId *bufferId) override
Start BufferId creation Mode.
vtkX3D::color
@ color
Definition: vtkX3D.h:227
vtkOpenGLContextDevice2D::DrawImageGL2PS
void DrawImageGL2PS(float p[2], float scale, vtkImageData *image)
Embed an RGBA image in the GL2PS output at the supplied point.
vtkX3D::points
@ points
Definition: vtkX3D.h:452
vtkOpenGLContextDevice2D::DrawCircleGL2PS
void DrawCircleGL2PS(float x, float y, float rX, float rY)
Inject smooth primitives into the GL2PS stream.
vtkX3D::point
@ point
Definition: vtkX3D.h:242
vtkOpenGLContextDevice2D::DrawImageGL2PS
void DrawImageGL2PS(const vtkRectf &rect, vtkImageData *image)
Embed an RGBA image in the GL2PS output at the supplied point.
vtkOpenGLContextDevice2D::vtkOpenGLContextDevice2D
vtkOpenGLContextDevice2D()
vtkOpenGLContextDevice2D::DrawCrossMarkersGL2PS
void DrawCrossMarkersGL2PS(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkOpenGLContextDevice2D::ComputeStringBounds
void ComputeStringBounds(const vtkUnicodeString &string, float bounds[4]) override
Compute the bounds of the supplied string.
vtkOpenGLContextDevice2D::DrawMarkers
void DrawMarkers(int shape, bool highlight, float *points, int n, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a series of markers centered at the points supplied.
vtkOpenGLContextDevice2D
Class for drawing 2D primitives using OpenGL 1.1+.
Definition: vtkOpenGLContextDevice2D.h:71
vtkOpenGLContextDevice2D::SCBO
vtkOpenGLHelper * SCBO
Definition: vtkOpenGLContextDevice2D.h:426
vtkOpenGLContextDevice2D::CellArrayHelper
Definition: vtkOpenGLContextDevice2DPrivate.h:528
vtkShaderProgram
The ShaderProgram uses one or more Shader objects.
Definition: vtkShaderProgram.h:124
vtkOpenGLContextDevice2D::SetMatrices
void SetMatrices(vtkShaderProgram *prog)
vtkOpenGLContextDevice2D::SetTexture
void SetTexture(vtkImageData *image, int properties=0) override
Set the texture for the device, it is used to fill the polygons.
vtkOpenGLHelper
Definition: vtkOpenGLHelper.h:31
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:145
vtkUnicodeString
String class that stores Unicode text.
Definition: vtkUnicodeString.h:80
vtkOpenGLContextDevice2D::SetLineWidth
void SetLineWidth(float width) override
Set the line width for glyphs/sprites.
vtkOpenGLContextDevice2D::SetStringRendererToQt
bool SetStringRendererToQt()
Force the use of the Qt based string render strategy.
vtkOpenGLContextDevice2D::ComputeStringBounds
void ComputeStringBounds(const vtkStdString &string, float bounds[4]) override
Compute the bounds of the supplied string.
vtkOpenGLContextDevice2D::DrawDiamondMarkersGL2PS
void DrawDiamondMarkersGL2PS(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkOpenGLContextDevice2D::SetColor
virtual void SetColor(unsigned char color[3])
Set the color for the device using unsigned char of length 3, RGB.
vtkOpenGLContextDevice2D::Begin
void Begin(vtkViewport *viewport) override
Begin drawing, pass in the viewport to set up the view.
vtkOpenGLContextDevice2D::ReadySCBOProgram
void ReadySCBOProgram()
vtkOpenGLContextDevice2D::DrawPoly
void DrawPoly(float *f, int n, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a poly line using the points - fastest code path due to memory layout of the coordinates.
vtkOpenGLContextDevice2D::DrawQuadStrip
void DrawQuadStrip(float *points, int n) override
Draws a rectangle.
vtkX3D::startAngle
@ startAngle
Definition: vtkX3D.h:492
operator==
VTKCOMMONCORE_EXPORT bool operator==(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkOpenGLContextDevice2D::MultiplyMatrix
void MultiplyMatrix(vtkMatrix3x3 *m) override
Multiply the current model view matrix by the supplied one.
vtkOpenGLContextDevice2D::SetLineType
void SetLineType(int type) override
Set the line type type (using anonymous enum in vtkPen).
vtkOpenGLContextDevice2D::GetMatrix
void GetMatrix(vtkMatrix3x3 *m) override
Set the model view matrix for the display.
vtkContextDevice2D
Abstract class for drawing 2D primitives.
Definition: vtkContextDevice2D.h:52
vtkOpenGLContextDevice2D::DrawColoredPolygon
void DrawColoredPolygon(float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a polygon using the specified number of points.
vtkOpenGLContextDevice2D::ReadyVTBOProgram
void ReadyVTBOProgram()
vtkOpenGLContextDevice2D::DrawImage
void DrawImage(const vtkRectf &pos, vtkImageData *image) override
Draw the supplied image at the given position.
vtkOpenGLContextDevice2D::Renderer
vtkRenderer * Renderer
We need to store a pointer to the renderer for the text rendering.
Definition: vtkOpenGLContextDevice2D.h:393
vtkOpenGLContextDevice2D::SetPointSize
void SetPointSize(float size) override
Set the point size for glyphs/sprites.
vtkOpenGLContextDevice2D::DrawWedgeGL2PS
void DrawWedgeGL2PS(float x, float y, float outRx, float outRy, float inRx, float inRy)
Inject smooth primitives into the GL2PS stream.
vtkOpenGLContextDevice2D::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *window)
Release any graphics resources that are being consumed by this device.
vtkOpenGLContextDevice2D::TransformSize
void TransformSize(float &dx, float &dy) const
Transform the width and height from pixels to data units.
vtkOpenGLContextDevice2D::Storage
Private * Storage
Definition: vtkOpenGLContextDevice2D.h:404
vtkOpenGLContextDevice2D::SetStringRendererToFreeType
bool SetStringRendererToFreeType()
Force the use of the freetype based render strategy.
vtkOpenGLContextDevice2D::LinesBO
vtkOpenGLHelper * LinesBO
Definition: vtkOpenGLContextDevice2D.h:418
vtkOpenGLContextDevice2D::SetClipping
void SetClipping(int *x) override
Supply an int array of length 4 with x1, y1, width, height specifying clipping region for the device ...
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:182
vtkOpenGLContextDevice2D::VBO
vtkOpenGLHelper * VBO
Definition: vtkOpenGLContextDevice2D.h:422
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkOpenGLContextDevice2D::New
static vtkOpenGLContextDevice2D * New()
Creates a 2D Painter object.
vtkOpenGLContextDevice2D::DrawSquareMarkersGL2PS
void DrawSquareMarkersGL2PS(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
Draw the markers as paths/polydata instead of sprites for detailed GL2PS capture.
vtkOpenGLContextDevice2D::DrawString
void DrawString(float *point, const vtkStdString &string) override
Draw some text to the screen!
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkOpenGLRenderWindow.h:83
vtkOpenGLContextDevice2D::DrawEllipticArc
void DrawEllipticArc(float x, float y, float rX, float rY, float startAngle, float stopAngle) override
Draw an elliptic arc with center at x,y with radii rX and rY between angles startAngle and stopAngle ...
vtkOpenGLContextDevice2D::InRender
bool InRender
Is the device currently rendering? Prevent multiple End() calls.
Definition: vtkOpenGLContextDevice2D.h:398
vtkOpenGLContextDevice2D::DrawPolygon
void DrawPolygon(float *, int) override
Draw a polygon using the specified number of points.
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:105
vtkOpenGLContextDevice2D::AddEllipseToPath
void AddEllipseToPath(vtkPath *path, float x, float y, float rx, float ry, bool reverse)
Add an ellipse to a vtkPath.
vtkOpenGLContextDevice2D::RenderWindow
vtkOpenGLRenderWindow * RenderWindow
The OpenGL render window being used by the device.
Definition: vtkOpenGLContextDevice2D.h:414
vtkOpenGLContextDevice2D::TransformPoint
void TransformPoint(float &x, float &y) const
Transform the 2D point using the current modelview matrix.
vtkRectf
Definition: vtkRect.h:336
vtkOpenGLContextDevice2D::GetProjectionMatrix
vtkMatrix4x4 * GetProjectionMatrix()
Get the projection matrix this is needed.
vtkOpenGLContextDevice2D::TransformPath
void TransformPath(vtkPath *path) const
Transform the path using the current modelview matrix.
vtkOpenGLContextDevice2D::End
void End() override
End drawing, clean up the view.
vtkOpenGLContextDevice2D::DrawQuad
void DrawQuad(float *points, int n) override
Draws a rectangle.
vtkContextDevice2D.h
vtkOpenGLContextDevice2D::ReadyLinesBOProgram
void ReadyLinesBOProgram()