25#ifndef vtkPDFContextDevice2D_h
26#define vtkPDFContextDevice2D_h
29#include "vtkIOExportPDFModule.h"
53 void DrawPoly(
float* points,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
54 void DrawLines(
float* f,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
55 void DrawPoints(
float* points,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
57 int nc_comps = 0)
override;
58 void DrawMarkers(
int shape,
bool highlight,
float* points,
int n,
unsigned char* colors =
nullptr,
59 int nc_comps = 0)
override;
64 float* points,
int numPoints,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
65 void DrawEllipseWedge(
float x,
float y,
float outRx,
float outRy,
float inRx,
float inRy,
66 float startAngle,
float stopAngle)
override;
68 float x,
float y,
float rX,
float rY,
float startAngle,
float stopAngle)
override;
82 int scalarMode)
override;
111 void Fill(
bool stroke =
false);
123 float x,
float y,
float rX,
float rY,
float startAngle,
float stopAngle,
bool startPath);
126 void DrawCrossMarkers(
bool highlight,
float* points,
int n,
unsigned char* colors,
int nc_comps);
127 void DrawPlusMarkers(
bool highlight,
float* points,
int n,
unsigned char* colors,
int nc_comps);
128 void DrawSquareMarkers(
bool highlight,
float* points,
int n,
unsigned char* colors,
int nc_comps);
129 void DrawCircleMarkers(
bool highlight,
float* points,
int n,
unsigned char* colors,
int nc_comps);
131 bool highlight,
float* points,
int n,
unsigned char* colors,
int nc_comps);
155 float a,
float b,
float c,
float d,
float x,
float y,
double mat3[9]);
168 float TextureBounds[4];
Some derived classes for the different colors commonly used.
Abstract class for drawing 2D primitives.
topologically and geometrically regular array of data
a simple class to control print indentation
represent and manipulate 3x3 transformation matrices
Allocate and hold a VTK object.
vtkContextDevice2D implementation for use with vtkPDFExporter.
void DrawEllipticArcSegments(float x, float y, float rX, float rY, float startAngle, float stopAngle, bool startPath)
void DrawQuadStrip(float *, int) override
Draw a quad using the specified number of points.
void DrawSquareMarkers(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
void Fill(bool stroke=false)
static void HPDFTransformToMatrix3(float a, float b, float c, float d, float x, float y, double mat3[9])
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....
void DrawString(float *point, const vtkUnicodeString &string) override
Draw some text to the screen.
int GetNumberOfArcIterations(float rX, float rY, float startAngle, float stopAngle)
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 ...
void ApplyLineType(int type)
void ApplyFillColor(unsigned char *color, int numComps)
static void Matrix4ToMatrix3(double mat4[16], vtkMatrix3x3 *mat3)
void SetRenderer(vtkRenderer *)
vtkNew< vtkTransform > Matrix
void DrawMathTextString(float *point, const vtkStdString &str) override
Draw text using MathText markup for mathematical equations.
static vtkPDFContextDevice2D * New()
void SetLineType(int type) override
Set the line type type (using anonymous enum in vtkPen).
void PushMatrix() override
Push the current matrix onto the stack.
void DrawImage(const vtkRectf &pos, vtkImageData *image) override
Draw the supplied image at the given position.
void ApplyPenStateAsFill()
void FillEvenOdd(bool stroke=false)
void ApplyLineWidth(float width)
void BeginClipPathForTexture()
void SetLineWidth(float width) override
Set the line width.
void DrawColoredPolygon(float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0) override
Draw a polygon using the specified number of points.
static void Matrix3ToMatrix4(vtkMatrix3x3 *mat3, double mat4[16])
~vtkPDFContextDevice2D() override
void ApplyTextPropertyState()
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.
void EnableClipping(bool enable) override
Enable or disable the clipping of the scene.
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.
void GetMatrix(vtkMatrix3x3 *m) override
Set the model view matrix for the display.
void ComputeStringBounds(const vtkStdString &string, float bounds[4]) override
Compute the bounds of the supplied string.
static void Matrix4ToMatrix3(double mat4[16], double mat3[9])
void DrawQuad(float *, int) override
Draw a quad using the specified number of points.
void SetHaruObjects(void *doc, void *page)
Set the HPDF_Doc and HPDF_Page to use while exporting the scene.
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....
void DrawPolygon(float *, int) override
Draw a polygon using the specified number of points.
vtkImageData * PrepareImageData(vtkImageData *in)
void SetColor4(unsigned char color[4]) override
Set the color for the device using unsigned char of length 4, RGBA.
void ApplyFillAlpha(unsigned char alpha)
vtkVector2f GetUnscaledPenWidth()
void DrawString(float *point, const vtkStdString &string) override
Draw some text to the screen.
void MultiplyMatrix(vtkMatrix3x3 *m) override
Multiply the current model view matrix by the supplied one.
void ComputeStringBounds(const vtkUnicodeString &string, float bounds[4]) override
Compute the bounds of the supplied string.
void ApplyStrokeColor(unsigned char *color, int numComps)
static void Matrix3ToHPDFTransform(const double mat3[9], float hpdfMat[6])
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.
static void Matrix4ToHPDFTransform(const double mat4[16], float hpdfMat[6])
void PopMatrix() override
Pop the current matrix off of the stack.
void DrawPlusMarkers(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
void SetPointSize(float size) override
Set the point size for glyphs/sprites.
void DrawPath(vtkPath *path, float x, float y)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetClipping(int *x) override
Supply an int array of length 4 with x1, y1, width, height specifying clipping region for the device ...
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... The lines will be c...
void SetTexture(vtkImageData *image, int properties) override
Set the texture for the device, it is used to fill the polygons.
void DrawCrossMarkers(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
void DrawDiamondMarkers(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
void DrawPoly(float *points, 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.
void DrawCircleMarkers(bool highlight, float *points, int n, unsigned char *colors, int nc_comps)
void SetMatrix(vtkMatrix3x3 *m) override
Set the model view matrix for the display.
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,...
void RegisterTexturePoints(float *data, int numPoints)
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...
concrete dataset representing a path defined by Bezier curves.
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
Wrapper around std::string to keep symbols short.
String class that stores Unicode text.
dynamic, self-adjusting array of unsigned char