39 #ifndef vtkSVGContextDevice2D_h 40 #define vtkSVGContextDevice2D_h 43 #include "vtkIOExportModule.h" 77 vtkSetMacro(EmbedFonts,
bool);
78 vtkGetMacro(EmbedFonts,
bool);
79 vtkBooleanMacro(EmbedFonts,
bool);
97 vtkSetMacro(TextAsPath,
bool);
98 vtkGetMacro(TextAsPath,
bool);
99 vtkBooleanMacro(TextAsPath,
bool);
117 vtkSetMacro(SubdivisionThreshold,
float);
118 vtkGetMacro(SubdivisionThreshold,
float);
125 void GenerateDefinitions();
130 void DrawPoly(
float*
points,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
131 void DrawLines(
float* f,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
132 void DrawPoints(
float*
points,
int n,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
134 int nc_comps = 0)
override;
135 void DrawMarkers(
int shape,
bool highlight,
float*
points,
int n,
unsigned char* colors =
nullptr,
136 int nc_comps = 0)
override;
137 void DrawQuad(
float*,
int)
override;
141 float*
points,
int numPoints,
unsigned char* colors =
nullptr,
int nc_comps = 0)
override;
142 void DrawEllipseWedge(
float x,
float y,
float outRx,
float outRy,
float inRx,
float inRy,
145 float x,
float y,
float rX,
float rY,
float startAngle,
float stopAngle)
override;
174 void PushGraphicsState();
175 void PopGraphicsState();
178 void SetupClippingAndTransform();
199 void ApplyTextPropertyStateToNodeForPath(
vtkXMLDataElement* node,
float x,
float y);
201 void ApplyTransform();
210 void DrawPath(
vtkPath* path, std::ostream& out);
228 void WritePatterns();
229 void WriteClipRects();
231 void AdjustMatrixForSVG(
const double in[9],
double out[9]);
232 void GetSVGMatrix(
double svg[9]);
233 static bool Transform2DEqual(
const double mat3[9],
const double mat4[16]);
234 static void Matrix3ToMatrix4(
const double mat3[9],
double mat4[16]);
235 static void Matrix4ToMatrix3(
const double mat4[16],
double mat3[9]);
237 float GetScaledPenWidth();
238 void GetScaledPenWidth(
float& x,
float& y);
239 void TransformSize(
float& x,
float& y);
270 #endif // vtkSVGContextDevice2D_h
Wrapper around std::string to keep symbols short.
virtual void SetMatrix(vtkMatrix3x3 *m)=0
Set the model view matrix for the display.
float SubdivisionThreshold
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 ...
Represents an XML element and those nested inside.
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.
std::array< int, 4 > ActiveNodeClipRect
vtkContextDevice2D implementation for use with vtkSVGExporter.
vtkXMLDataElement * DefinitionNode
std::array< double, 9 > ActiveNodeTransform
abstract specification for renderers
static vtkContextDevice2D * New()
virtual void Begin(vtkViewport *)
Begin drawing, pass in the viewport to set up the view.
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.
bool ActiveNodeIsClipping
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.
vtkNew< vtkTransform > Matrix
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.
virtual void SetPointSize(float size)=0
Set the point size for glyphs/sprites.
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 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...
std::array< int, 4 > ClipRect
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.
vtkXMLDataElement * ContextNode
vtkXMLDataElement * ActiveNode
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.