|  | VTK
    9.0.1
    | 
 
 
 
Go to the documentation of this file.
   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 
  
vtkXMLDataElement * ActiveNode
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.
float SubdivisionThreshold
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.
std::array< int, 4 > ClipRect
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.
vtkContextDevice2D implementation for use with vtkSVGExporter.
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.
virtual void SetColor4(unsigned char color[4])=0
Set the color for the device using unsigned char of length 4, RGBA.
std::array< int, 4 > ActiveNodeClipRect
vtkXMLDataElement * ContextNode
bool ActiveNodeIsClipping
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 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...
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....
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.
vtkNew< vtkTransform > Matrix
topologically and geometrically regular array of data
a simple class to control print indentation
String class that stores Unicode text.
vtkXMLDataElement * DefinitionNode
Represents an XML element and those nested inside.
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 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.
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.
abstract specification for renderers
Some derived classes for the different colors commonly used.
virtual void DrawMathTextString(float *point, const vtkStdString &string)=0
Draw text using MathText markup for mathematical equations.
virtual void Begin(vtkViewport *)
Begin drawing, pass in the viewport to set up the view.
std::array< double, 9 > ActiveNodeTransform
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,...
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.