25 #ifndef vtkPDFContextDevice2D_h 26 #define vtkPDFContextDevice2D_h 29 #include "vtkIOExportPDFModule.h" 49 void SetHaruObjects(
void* doc,
void* page);
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,
68 float x,
float y,
float rX,
float rY,
float startAngle,
float stopAngle)
override;
82 int scalarMode)
override;
97 void PushGraphicsState();
98 void PopGraphicsState();
100 void ApplyPenState();
101 void ApplyStrokeColor(
unsigned char*
color,
int numComps);
102 void ApplyLineWidth(
float width);
103 void ApplyLineType(
int type);
106 void ApplyPenStateAsFill();
107 void ApplyBrushState();
108 void ApplyTextPropertyState();
109 void ApplyFillColor(
unsigned char*
color,
int numComps);
110 void ApplyFillAlpha(
unsigned char alpha);
111 void Fill(
bool stroke =
false);
112 void FillEvenOdd(
bool stroke =
false);
114 void BeginClipPathForTexture();
115 void RegisterTexturePoints(
float*
data,
int numPoints);
122 void DrawEllipticArcSegments(
123 float x,
float y,
float rX,
float rY,
float startAngle,
float stopAngle,
bool startPath);
124 int GetNumberOfArcIterations(
float rX,
float rY,
float startAngle,
float stopAngle);
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);
130 void DrawDiamondMarkers(
131 bool highlight,
float*
points,
int n,
unsigned char* colors,
int nc_comps);
133 void DrawPath(
vtkPath* path,
float x,
float y);
135 void ApplyTransform();
143 static void Matrix3ToMatrix4(
vtkMatrix3x3* mat3,
double mat4[16]);
144 static void Matrix4ToMatrix3(
double mat4[16],
vtkMatrix3x3* mat3);
145 static void Matrix4ToMatrix3(
double mat4[16],
double mat3[9]);
152 static void Matrix4ToHPDFTransform(
const double mat4[16],
float hpdfMat[6]);
153 static void Matrix3ToHPDFTransform(
const double mat4[9],
float hpdfMat[6]);
154 static void HPDFTransformToMatrix3(
155 float a,
float b,
float c,
float d,
float x,
float y,
double mat3[9]);
168 float TextureBounds[4];
175 #endif // vtkPDFContextDevice2D_h
Wrapper around std::string to keep symbols short.
virtual void SetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
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 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.
virtual void DrawPolygon(float *p, int n)
Draw a polygon using the specified number of points.
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 SetColor4(unsigned char color[4])=0
Set the color for the device using unsigned char of length 4, RGBA.
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.
Some derived classes for the different colors commonly used.
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
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.
vtkContextDevice2D implementation for use with vtkPDFExporter.
virtual void DrawMathTextString(float *point, const vtkStdString &string)=0
Draw text using MathText markup for mathematical equations.
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.
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 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 DrawColoredPolygon(float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0)
Draw a polygon using the specified number of points.
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.
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.
vtkNew< vtkTransform > Matrix