Go to the documentation of this file.
30 #ifndef vtkOpenGLContextDevice2D_h
31 #define vtkOpenGLContextDevice2D_h
33 #include "vtkRenderingContextOpenGL2Module.h"
40 class vtkOpenGLExtensionManager;
67 void DrawPoly(
float *f,
int n,
unsigned char *colors =
nullptr,
68 int nc_comps = 0)
override;
76 void DrawLines(
float *f,
int n,
unsigned char *colors =
nullptr,
77 int nc_comps = 0)
override;
85 int nc_comps = 0)
override;
94 unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
108 unsigned char *colors =
nullptr,
int nc_comps = 0)
override;
116 vtkSetMacro(MaximumMarkerCacheSize,
int)
117 vtkGetMacro(MaximumMarkerCacheSize,
int)
135 unsigned char *colors =
nullptr,
136 int nc_comps = 0)
override;
151 float stopAngle)
override;
177 float bounds[4])
override;
193 float bounds[4])
override;
236 virtual void SetColor(
unsigned char color[3]);
327 bool SetStringRendererToFreeType();
333 bool SetStringRendererToQt();
352 virtual void ReleaseGraphicsResources(
vtkWindow *window);
373 int GetNumberOfArcIterations(
float rX,
405 void ReadyLinesCBOProgram();
407 void ReadyLinesBOProgram();
409 void ReadyVCBOProgram();
411 void ReadyVBOProgram();
413 void ReadyVTBOProgram();
415 void ReadySCBOProgram();
417 void ReadySBOProgram();
422 unsigned char *coolors,
int nc,
424 void CoreDrawTriangles(std::vector<float> &tverts,
unsigned char* colors =
nullptr,
434 void DrawMarkersGL2PS(
int shape,
bool highlight,
float *
points,
int n,
435 unsigned char *colors,
int nc_comps);
436 void DrawCrossMarkersGL2PS(
bool highlight,
float *
points,
int n,
437 unsigned char *colors,
int nc_comps);
438 void DrawPlusMarkersGL2PS(
bool highlight,
float *
points,
int n,
439 unsigned char *colors,
int nc_comps);
440 void DrawSquareMarkersGL2PS(
bool highlight,
float *
points,
int n,
441 unsigned char *colors,
int nc_comps);
442 void DrawCircleMarkersGL2PS(
bool highlight,
float *
points,
int n,
443 unsigned char *colors,
int nc_comps);
444 void DrawDiamondMarkersGL2PS(
bool highlight,
float *
points,
int n,
445 unsigned char *colors,
int nc_comps);
461 void DrawCircleGL2PS(
float x,
float y,
float rX,
float rY);
462 void DrawWedgeGL2PS(
float x,
float y,
float outRx,
float outRy,
463 float inRx,
float inRy);
469 void AddEllipseToPath(
vtkPath *path,
float x,
float y,
float rx,
float ry,
475 void TransformPath(
vtkPath *path)
const;
480 void TransformPoint(
float &x,
float &y)
const;
485 void TransformSize(
float &dx,
float &dy)
const;
499 class vtkMarkerCacheObject
506 return this->Key ==
key;
516 std::list<vtkMarkerCacheObject> MarkerCache;
517 int MaximumMarkerCacheSize;
527 #endif //vtkOpenGLContextDevice2D_h
virtual void DrawMarkers(int shape, bool highlight, float *points, int n, unsigned char *colors=nullptr, int nc_comps=0)
Draw a series of markers centered at the points supplied.
virtual void ComputeStringBounds(const vtkStdString &string, float bounds[4])=0
Compute the bounds of the supplied string.
virtual void DrawQuadStrip(float *, int)
Draw a quad using the specified number of points.
static vtkContextDevice2D * New()
virtual void PopMatrix()=0
Pop the current matrix off of the stack.
virtual void BufferIdModeBegin(vtkAbstractContextBufferId *bufferId)
Start BufferId creation Mode.
virtual void DrawPolyData(float p[2], float scale, vtkPolyData *polyData, vtkUnsignedCharArray *colors, int scalarMode)
Draw the supplied PolyData at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1....
CellArrayHelper * PolyDataImpl
unsigned short LinePattern
virtual void End()
End drawing, clean up the view.
virtual void DrawQuad(float *, int)
Draw a quad using the specified number of points.
virtual void MultiplyMatrix(vtkMatrix3x3 *m)=0
Multiply the current model view matrix by the supplied one.
vtkOpenGLHelper * LinesCBO
virtual void SetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
concrete dataset representing a path defined by Bezier curves.
virtual void DrawString(float *point, const vtkStdString &string)=0
Draw some text to the screen.
dynamic, self-adjusting array of unsigned char
virtual void SetColor4(unsigned char color[4])=0
Set the color for the device using unsigned char of length 4, RGBA.
base class for classes that render supplied text to an image.
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 DrawColoredPolygon(float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0)
Draw a polygon using the specified number of points.
virtual void PushMatrix()=0
Push the current matrix onto the stack.
represent and manipulate 3x3 transformation matrices
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...
window superclass for vtkRenderWindow
virtual void DrawPolygon(float *p, int n)
Draw a polygon using the specified number of points.
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....
2D array of ids, used for picking.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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 SetLineType(int type)=0
Set the line type type (using anonymous enum in vtkPen).
virtual void SetPointSize(float size)=0
Set the point size for glyphs/sprites.
Class for drawing 2D primitives using OpenGL 1.1+.
The ShaderProgram uses one or more Shader objects.
topologically and geometrically regular array of data
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
String class that stores Unicode text.
virtual void DrawPointSprites(vtkImageData *sprite, float *points, int n, unsigned char *colors=nullptr, int nc_comps=0)=0
Draw a series of point sprites, images centred at the points supplied.
VTKCOMMONCORE_EXPORT bool operator==(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
virtual void BufferIdModeEnd()
Finalize BufferId creation Mode.
virtual void DrawPoly(float *points, int n, unsigned char *colors=nullptr, int nc_comps=0)=0
Draw a poly line using the points - fastest code path due to memory layout of the coordinates.
virtual void GetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
abstract specification for Viewports
Abstract class for drawing 2D primitives.
vtkRenderer * Renderer
We need to store a pointer to the renderer for the text rendering.
virtual void DrawLines(float *f, int n, unsigned char *colors=nullptr, int nc_comps=0)=0
Draw lines using the points - memory layout is as follows: l1p1,l1p2,l2p1,l2p2...
vtkOpenGLHelper * LinesBO
virtual void SetTexture(vtkImageData *image, int properties)=0
Set the texture for the device, it is used to fill the polygons.
abstract specification for renderers
virtual void DrawMathTextString(float *point, const vtkStdString &string)=0
Draw text using MathText markup for mathematical equations.
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void Begin(vtkViewport *)
Begin drawing, pass in the viewport to set up the view.
bool InRender
Is the device currently rendering? Prevent multiple End() calls.
Wrapper around std::string to keep symbols short.
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,...
vtkOpenGLRenderWindow * RenderWindow
The OpenGL render window being used by the device.
virtual void SetLineWidth(float width)=0
Set the line width.
virtual void EnableClipping(bool enable)=0
Enable or disable the clipping of the scene.
virtual void DrawPoints(float *points, int n, unsigned char *colors=nullptr, int nc_comps=0)=0
Draw a series of points - fastest code path due to memory layout of the coordinates.