VTK
vtkContextDevice2D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkContextDevice2D.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
26#ifndef vtkContextDevice2D_h
27#define vtkContextDevice2D_h
28
29#include "vtkRenderingContext2DModule.h" // For export macro
30#include "vtkObject.h"
31#include "vtkVector.h" // For vtkVector2i ivar
32#include "vtkRect.h" // For vtkRecti ivar
33#include "vtkRenderingCoreEnums.h" // For marker enum
34
35class vtkWindow;
36class vtkViewport;
37class vtkStdString;
39class vtkTextProperty;
40class vtkPoints2D;
41class vtkImageData;
42class vtkMatrix3x3;
44class vtkPen;
45class vtkBrush;
46class vtkRectf;
47
48class VTKRENDERINGCONTEXT2D_EXPORT vtkContextDevice2D : public vtkObject
49{
50public:
52 virtual void PrintSelf(ostream &os, vtkIndent indent);
53
55
63 virtual void DrawPoly(float *points, int n,
64 unsigned char *colors = 0, int nc_comps = 0) = 0;
65
72 virtual void DrawLines(float *f, int n, unsigned char *colors = 0,
73 int nc_comps = 0) = 0;
74
79 virtual void DrawPoints(float *points, int n, unsigned char* colors = 0,
80 int nc_comps = 0) = 0;
81
89 virtual void DrawPointSprites(vtkImageData *sprite, float *points, int n,
90 unsigned char *colors = 0, int nc_comps = 0) = 0;
91
103 virtual void DrawMarkers(int shape, bool highlight, float *points, int n,
104 unsigned char *colors = 0, int nc_comps = 0);
105
109 virtual void DrawQuad(float *, int) { ; }
110
114 virtual void DrawQuadStrip(float *, int) { ; }
115
119 virtual void DrawPolygon(float *, int) { ; }
120
132 virtual void DrawEllipseWedge(float x, float y, float outRx, float outRy,
133 float inRx, float inRy, float startAngle,
134 float stopAngle)=0;
135
142 virtual void DrawEllipticArc(float x, float y, float rX, float rY,
143 float startAngle, float stopAngle)=0;
144
148 virtual void DrawString(float *point, const vtkStdString &string) = 0;
149
157 virtual void ComputeStringBounds(const vtkStdString &string,
158 float bounds[4]) = 0;
159
163 virtual void DrawString(float *point, const vtkUnicodeString &string) = 0;
164
172 virtual void ComputeStringBounds(const vtkUnicodeString &string,
173 float bounds[4]) = 0;
174
180 virtual void ComputeJustifiedStringBounds(const char* string, float bounds[4]) = 0;
181
186 virtual void DrawMathTextString(float *point, const vtkStdString &string) = 0;
187
191 virtual bool MathTextIsSupported();
192
197 virtual void DrawImage(float p[2], float scale, vtkImageData *image) = 0;
198
204 virtual void DrawImage(const vtkRectf& pos, vtkImageData *image) = 0;
205
211 virtual void ApplyPen(vtkPen *pen);
212
214
219 vtkGetObjectMacro(Pen, vtkPen);
221
227 virtual void ApplyBrush(vtkBrush *brush);
228
230
234 vtkGetObjectMacro(Brush, vtkBrush);
236
242 virtual void ApplyTextProp(vtkTextProperty *prop);
243
245
248 vtkGetObjectMacro(TextProp, vtkTextProperty);
250
254 virtual void SetColor4(unsigned char color[4]) = 0;
255
257 Nearest = 0x01,
258 Linear = 0x02,
259 Stretch = 0x04,
260 Repeat = 0x08
261 };
265 virtual void SetTexture(vtkImageData* image, int properties) = 0;
266
270 virtual void SetPointSize(float size) = 0;
271
275 virtual void SetLineWidth(float width) = 0;
276
280 virtual void SetLineType(int type) = 0;
281
285 virtual int GetWidth() { return this->Geometry[0]; }
286
290 virtual int GetHeight() { return this->Geometry[1]; }
291
295 virtual void SetMatrix(vtkMatrix3x3 *m) = 0;
296
300 virtual void GetMatrix(vtkMatrix3x3 *m) = 0;
301
305 virtual void MultiplyMatrix(vtkMatrix3x3 *m) = 0;
306
310 virtual void PushMatrix() = 0;
311
315 virtual void PopMatrix() = 0;
316
321 virtual void SetClipping(int *x) = 0;
322
327 virtual void DisableClipping() { this->EnableClipping(false); }
328
332 virtual void EnableClipping(bool enable) = 0;
333
337 virtual void Begin(vtkViewport*) { }
338
342 virtual void End() { }
343
348 virtual bool GetBufferIdMode() const;
349
358
366 virtual void BufferIdModeEnd();
367
368 virtual void SetViewportSize(const vtkVector2i &size)
369 {
370 this->ViewportSize = size;
371 }
372 vtkGetMacro(ViewportSize, vtkVector2i)
373
374 virtual void SetViewportRect(const vtkRecti &rect)
375 {
376 this->ViewportRect = rect;
377 }
378 vtkGetMacro(ViewportRect, vtkRecti)
379
380protected:
383
387 int Geometry[2];
388
393
398
400
401 vtkPen *Pen; // Outlining
402 vtkBrush *Brush; // Fills
403 vtkTextProperty *TextProp; // Text property
404
405private:
406 vtkContextDevice2D(const vtkContextDevice2D &) VTK_DELETE_FUNCTION;
407 void operator=(const vtkContextDevice2D &) VTK_DELETE_FUNCTION;
408
409};
410
411#endif //vtkContextDevice2D_h
2D array of ids, used for picking.
provides a brush that fills shapes drawn by vtkContext2D.
Definition: vtkBrush.h:38
Abstract class for drawing 2D primitives.
virtual void DrawPoints(float *points, int n, unsigned char *colors=0, int nc_comps=0)=0
Draw a series of points - fastest code path due to memory layout of the coordinates.
virtual void SetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
virtual void DrawImage(const vtkRectf &pos, vtkImageData *image)=0
Draw the supplied image at the given position.
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void ComputeStringBounds(const vtkUnicodeString &string, float bounds[4])=0
Compute the bounds of the supplied string.
virtual void ComputeJustifiedStringBounds(const char *string, float bounds[4])=0
Compute the bounds of the supplied string while taking into account the justification of the currentl...
virtual void DrawPolygon(float *, int)
Draw a polygon using the specified number of points.
virtual void ComputeStringBounds(const vtkStdString &string, float bounds[4])=0
Compute the bounds of the supplied string.
virtual void ApplyPen(vtkPen *pen)
Apply the supplied pen which controls the outlines of shapes, as well as lines, points and related pr...
virtual void DrawLines(float *f, int n, unsigned char *colors=0, int nc_comps=0)=0
Draw lines using the points - memory layout is as follows: l1p1,l1p2,l2p1,l2p2... The lines will be c...
virtual void SetPointSize(float size)=0
Set the point size for glyphs/sprites.
virtual void SetLineType(int type)=0
Set the line type type (using anonymous enum in vtkPen).
virtual void DrawPointSprites(vtkImageData *sprite, float *points, int n, unsigned char *colors=0, int nc_comps=0)=0
Draw a series of point sprites, images centred at the points supplied.
virtual void SetTexture(vtkImageData *image, int properties)=0
Set the texture for the device, it is used to fill the polygons.
virtual void DrawString(float *point, const vtkStdString &string)=0
Draw some text to the screen.
virtual void DrawImage(float p[2], float scale, vtkImageData *image)=0
Draw the supplied image at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1....
virtual void BufferIdModeBegin(vtkAbstractContextBufferId *bufferId)
Start BufferId creation Mode.
virtual void End()
End drawing, clean up the view.
virtual void Begin(vtkViewport *)
Begin drawing, pass in the viewport to set up the view.
vtkVector2i ViewportSize
Store the size of the total viewport.
virtual bool GetBufferIdMode() const
Tell if the device context is in BufferId creation mode.
vtkTextProperty * TextProp
virtual void PopMatrix()=0
Pop the current matrix off of the stack.
virtual void ApplyBrush(vtkBrush *brush)
Apply the supplied brush which controls the outlines of shapes, as well as lines, points and related ...
virtual void SetColor4(unsigned char color[4])=0
Set the color for the device using unsigned char of length 4, RGBA.
virtual void SetViewportSize(const vtkVector2i &size)
vtkAbstractContextBufferId * BufferId
static vtkContextDevice2D * New()
vtkRecti ViewportRect
Store our origin and size in the total viewport.
virtual void DrawEllipseWedge(float x, float y, float outRx, float outRy, float inRx, float inRy, float startAngle, float stopAngle)=0
Draw an elliptic wedge with center at x, y, outer radii outRx, outRy, inner radii inRx,...
virtual void GetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
virtual void DrawString(float *point, const vtkUnicodeString &string)=0
Draw some text to the screen.
virtual void DrawQuadStrip(float *, int)
Draw a quad using the specified number of points.
virtual void DrawQuad(float *, int)
Draw a quad using the specified number of points.
virtual void DisableClipping()
Disable clipping of the display.
virtual void DrawPoly(float *points, int n, unsigned char *colors=0, int nc_comps=0)=0
Draw a poly line using the points - fastest code path due to memory layout of the coordinates.
virtual void DrawMarkers(int shape, bool highlight, float *points, int n, unsigned char *colors=0, int nc_comps=0)
Draw a series of markers centered at the points supplied.
virtual void ApplyTextProp(vtkTextProperty *prop)
Apply the supplied text property which controls how text is rendered.
virtual int GetWidth()
Get the width of the device in pixels.
virtual void BufferIdModeEnd()
Finalize BufferId creation Mode.
virtual int GetHeight()
Get the width of the device in pixels.
virtual void EnableClipping(bool enable)=0
Enable or disable the clipping of the scene.
virtual bool MathTextIsSupported()
Return true if MathText rendering available on this device.
virtual void SetLineWidth(float width)=0
Set the line width.
virtual void DrawEllipticArc(float x, float y, float rX, float rY, float startAngle, float stopAngle)=0
Draw an elliptic arc with center at x,y with radii rX and rY between angles startAngle and stopAngle ...
virtual void SetClipping(int *x)=0
Supply a float array of length 4 with x1, y1, width, height specifying clipping region for the device...
virtual void MultiplyMatrix(vtkMatrix3x3 *m)=0
Multiply the current model view matrix by the supplied one.
virtual void PushMatrix()=0
Push the current matrix onto the stack.
virtual void DrawMathTextString(float *point, const vtkStdString &string)=0
Draw text using MathText markup for mathematical equations.
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
a simple class to control print indentation
Definition: vtkIndent.h:40
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:37
abstract base class for most VTK objects
Definition: vtkObject.h:60
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition: vtkPen.h:40
represent and manipulate 2D points
Definition: vtkPoints2D.h:37
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:49
represent text properties.
String class that stores Unicode text.
Some derived classes for the different vectors commonly used.
Definition: vtkVector.h:328
abstract specification for Viewports
Definition: vtkViewport.h:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ point
Definition: vtkX3D.h:236
@ points
Definition: vtkX3D.h:446
@ startAngle
Definition: vtkX3D.h:486
@ scale
Definition: vtkX3D.h:229
@ type
Definition: vtkX3D.h:516
@ color
Definition: vtkX3D.h:221
@ image
Definition: vtkX3D.h:374
@ size
Definition: vtkX3D.h:253