33 #ifndef vtkOpenGLContextDevice2D_h 34 #define vtkOpenGLContextDevice2D_h 36 #include "vtkRenderingContextOpenGL2Module.h" 43 class vtkOpenGLExtensionManager;
70 void DrawPoly(
float *f,
int n,
unsigned char *colors =
nullptr,
71 int nc_comps = 0)
override;
79 void DrawLines(
float *f,
int n,
unsigned char *colors =
nullptr,
80 int nc_comps = 0)
override;
88 int nc_comps = 0)
override;
97 unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
111 unsigned char *colors =
nullptr,
int nc_comps = 0)
override;
119 vtkSetMacro(MaximumMarkerCacheSize,
int)
120 vtkGetMacro(MaximumMarkerCacheSize,
int)
138 unsigned char *colors =
nullptr,
139 int nc_comps = 0)
override;
154 float stopAngle)
override;
180 float bounds[4])
override;
196 float bounds[4])
override;
239 virtual void SetColor(
unsigned char color[3]);
330 bool SetStringRendererToFreeType();
336 bool SetStringRendererToQt();
355 virtual void ReleaseGraphicsResources(
vtkWindow *window);
376 int GetNumberOfArcIterations(
float rX,
408 void ReadyLinesCBOProgram();
410 void ReadyLinesBOProgram();
412 void ReadyVCBOProgram();
414 void ReadyVBOProgram();
416 void ReadyVTBOProgram();
418 void ReadySCBOProgram();
420 void ReadySBOProgram();
425 unsigned char *coolors,
int nc,
427 void CoreDrawTriangles(std::vector<float> &tverts,
unsigned char* colors =
nullptr,
437 void DrawMarkersGL2PS(
int shape,
bool highlight,
float *
points,
int n,
438 unsigned char *colors,
int nc_comps);
439 void DrawCrossMarkersGL2PS(
bool highlight,
float *
points,
int n,
440 unsigned char *colors,
int nc_comps);
441 void DrawPlusMarkersGL2PS(
bool highlight,
float *
points,
int n,
442 unsigned char *colors,
int nc_comps);
443 void DrawSquareMarkersGL2PS(
bool highlight,
float *
points,
int n,
444 unsigned char *colors,
int nc_comps);
445 void DrawCircleMarkersGL2PS(
bool highlight,
float *
points,
int n,
446 unsigned char *colors,
int nc_comps);
447 void DrawDiamondMarkersGL2PS(
bool highlight,
float *
points,
int n,
448 unsigned char *colors,
int nc_comps);
464 void DrawCircleGL2PS(
float x,
float y,
float rX,
float rY);
465 void DrawWedgeGL2PS(
float x,
float y,
float outRx,
float outRy,
466 float inRx,
float inRy);
472 void AddEllipseToPath(
vtkPath *path,
float x,
float y,
float rx,
float ry,
478 void TransformPath(
vtkPath *path)
const;
483 void TransformPoint(
float &x,
float &y)
const;
488 void TransformSize(
float &dx,
float &dy)
const;
502 class vtkMarkerCacheObject
509 return this->Key ==
key;
519 std::list<vtkMarkerCacheObject> MarkerCache;
520 int MaximumMarkerCacheSize;
530 #endif //vtkOpenGLContextDevice2D_h
Wrapper around std::string to keep symbols short.
virtual void SetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
unsigned short LinePattern
represent and manipulate 4x4 transformation matrices
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.
virtual void SetClipping(int *x)=0
Supply an int array of length 4 with x1, y1, width, height specifying clipping region for the device ...
virtual void BufferIdModeEnd()
Finalize BufferId creation Mode.
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 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.
concrete dataset representing a path defined by Bezier curves.
abstract specification for Viewports
virtual void DrawPolygon(float *p, int n)
Draw a polygon using the specified number of points.
Class for drawing 2D primitives using OpenGL 1.1+.
virtual void BufferIdModeBegin(vtkAbstractContextBufferId *bufferId)
Start BufferId creation Mode.
abstract specification for renderers
static vtkContextDevice2D * New()
concrete dataset represents vertices, lines, polygons, and triangle strips
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....
virtual void Begin(vtkViewport *)
Begin drawing, pass in the viewport to set up the view.
base class for classes that render supplied text to an image.
virtual void SetColor4(unsigned char color[4])=0
Set the color for the device using unsigned char of length 4, RGBA.
bool InRender
Is the device currently rendering? Prevent multiple End() calls.
window superclass for vtkRenderWindow
virtual void EnableClipping(bool enable)=0
Enable or disable the clipping of the scene.
virtual void SetLineWidth(float width)=0
Set the line width.
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.
vtkOpenGLRenderWindow * RenderWindow
The OpenGL render window being used by the device.
a simple class to control print indentation
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.
topologically and geometrically regular array of data
CellArrayHelper * PolyDataImpl
virtual void DrawQuadStrip(float *, int)
Draw a quad using the specified number of points.
Abstract class for drawing 2D primitives.
virtual void PopMatrix()=0
Pop the current matrix off of the stack.
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...
virtual void SetTexture(vtkImageData *image, int properties)=0
Set the texture for the device, it is used to fill the polygons.
virtual void DrawMathTextString(float *point, const vtkStdString &string)=0
Draw text using MathText markup for mathematical equations.
vtkOpenGLHelper * LinesBO
virtual void SetPointSize(float size)=0
Set the point size for glyphs/sprites.
dynamic, self-adjusting array of unsigned char
virtual void DrawQuad(float *, int)
Draw a quad using the specified number of points.
2D array of ids, used for picking.
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 MultiplyMatrix(vtkMatrix3x3 *m)=0
Multiply the current model view matrix by the supplied one.
virtual void DrawString(float *point, const vtkStdString &string)=0
Draw some text to the screen.
virtual void End()
End drawing, clean up the view.
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,...
vtkOpenGLHelper * LinesCBO
virtual void DrawColoredPolygon(float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0)
Draw a polygon using the specified number of points.
vtkRenderer * Renderer
We need to store a pointer to the renderer for the text rendering.
virtual void GetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
virtual void ComputeStringBounds(const vtkStdString &string, float bounds[4])=0
Compute the bounds of the supplied string.
VTKCOMMONCORE_EXPORT bool operator==(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
virtual void PushMatrix()=0
Push the current matrix onto the stack.
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....
represent and manipulate 3x3 transformation matrices
virtual void SetLineType(int type)=0
Set the line type type (using anonymous enum in vtkPen).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
String class that stores Unicode text.
The ShaderProgram uses one or more Shader objects.