VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
vtkSVGContextDevice2D Class Reference

vtkContextDevice2D implementation for use with vtkSVGExporter. More...

#include <vtkSVGContextDevice2D.h>

Inheritance diagram for vtkSVGContextDevice2D:
[legend]
Collaboration diagram for vtkSVGContextDevice2D:
[legend]

Public Types

typedef vtkContextDevice2D Superclass
 
- Public Types inherited from vtkContextDevice2D
enum  TextureProperty { Nearest = 0x01, Linear = 0x02, Stretch = 0x04, Repeat = 0x08 }
 
typedef vtkObject Superclass
 

Public Member Functions

virtual vtkTypeBool IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class. More...
 
vtkSVGContextDevice2DNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
void SetSVGContext (vtkXMLDataElement *context, vtkXMLDataElement *defs)
 The svg container element to draw into, and the global definitions element. More...
 
void GenerateDefinitions ()
 Write any definition information (fonts, images, etc) that are accumulated between actors. More...
 
void Begin (vtkViewport *) override
 Begin drawing, pass in the viewport to set up the view. More...
 
void End () override
 End drawing, clean up the view. More...
 
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. More...
 
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... More...
 
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. More...
 
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. More...
 
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. More...
 
void DrawQuad (float *, int) override
 Draw a quad using the specified number of points. More...
 
void DrawQuadStrip (float *, int) override
 Draw a quad using the specified number of points. More...
 
void DrawPolygon (float *, int) override
 Draw a polygon using the specified number of points. More...
 
void DrawColoredPolygon (float *points, int numPoints, unsigned char *colors=nullptr, int nc_comps=0) override
 Draw a polygon using the specified number of points. More...
 
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, inRy between angles startAngle and stopAngle (expressed in degrees). More...
 
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 (expressed in degrees). More...
 
void DrawString (float *point, const vtkStdString &string) override
 Draw some text to the screen. More...
 
void ComputeStringBounds (const vtkStdString &string, float bounds[4]) override
 Compute the bounds of the supplied string. More...
 
void DrawString (float *point, const vtkUnicodeString &string) override
 Draw some text to the screen. More...
 
void ComputeStringBounds (const vtkUnicodeString &string, float bounds[4]) override
 Compute the bounds of the supplied string. More...
 
void ComputeJustifiedStringBounds (const char *string, float bounds[4]) override
 Compute the bounds of the supplied string while taking into account the justification of the currently applied text property. More...
 
void DrawMathTextString (float *point, const vtkStdString &str) override
 Draw text using MathText markup for mathematical equations. More...
 
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.0 would match the image). More...
 
void DrawImage (const vtkRectf &pos, vtkImageData *image) override
 Draw the supplied image at the given position. More...
 
void SetColor4 (unsigned char color[4]) override
 Set the color for the device using unsigned char of length 4, RGBA. More...
 
void SetTexture (vtkImageData *image, int properties) override
 Set the texture for the device, it is used to fill the polygons. More...
 
void SetPointSize (float size) override
 Set the point size for glyphs/sprites. More...
 
void SetLineWidth (float width) override
 Set the line width. More...
 
void SetLineType (int type) override
 Set the line type type (using anonymous enum in vtkPen). More...
 
void SetMatrix (vtkMatrix3x3 *m) override
 Set the model view matrix for the display. More...
 
void GetMatrix (vtkMatrix3x3 *m) override
 Set the model view matrix for the display. More...
 
void MultiplyMatrix (vtkMatrix3x3 *m) override
 Multiply the current model view matrix by the supplied one. More...
 
void PushMatrix () override
 Push the current matrix onto the stack. More...
 
void PopMatrix () override
 Pop the current matrix off of the stack. More...
 
void SetClipping (int *x) override
 Supply an int array of length 4 with x1, y1, width, height specifying clipping region for the device in pixels. More...
 
void EnableClipping (bool enable) override
 Enable or disable the clipping of the scene. More...
 
virtual void SetEmbedFonts (bool)
 EXPERIMENTAL: If true, the font glyph information will be embedded in the output. More...
 
virtual bool GetEmbedFonts ()
 EXPERIMENTAL: If true, the font glyph information will be embedded in the output. More...
 
virtual void EmbedFontsOn ()
 EXPERIMENTAL: If true, the font glyph information will be embedded in the output. More...
 
virtual void EmbedFontsOff ()
 EXPERIMENTAL: If true, the font glyph information will be embedded in the output. More...
 
virtual void SetTextAsPath (bool)
 If true, draw all text as path objects rather than text objects. More...
 
virtual bool GetTextAsPath ()
 If true, draw all text as path objects rather than text objects. More...
 
virtual void TextAsPathOn ()
 If true, draw all text as path objects rather than text objects. More...
 
virtual void TextAsPathOff ()
 If true, draw all text as path objects rather than text objects. More...
 
virtual void SetSubdivisionThreshold (float)
 Set the threshold for subdividing gradient-shaded polygons/line. More...
 
virtual float GetSubdivisionThreshold ()
 Set the threshold for subdividing gradient-shaded polygons/line. More...
 
- Public Member Functions inherited from vtkContextDevice2D
vtkContextDevice2DNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual bool MathTextIsSupported ()
 Return true if MathText rendering available on this device. More...
 
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.0 would match the actual dataset). More...
 
virtual void ApplyPen (vtkPen *pen)
 Apply the supplied pen which controls the outlines of shapes, as well as lines, points and related primitives. More...
 
virtual vtkPenGetPen ()
 Get the pen which controls the outlines of shapes, as well as lines, points and related primitives. More...
 
virtual void ApplyBrush (vtkBrush *brush)
 Apply the supplied brush which controls the outlines of shapes, as well as lines, points and related primitives. More...
 
virtual vtkBrushGetBrush ()
 Get the pen which controls the outlines of shapes as well as lines, points and related primitives. More...
 
virtual void ApplyTextProp (vtkTextProperty *prop)
 Apply the supplied text property which controls how text is rendered. More...
 
virtual vtkTextPropertyGetTextProp ()
 Get the text properties object for the vtkContext2D. More...
 
virtual int GetWidth ()
 Get the width of the device in pixels. More...
 
virtual int GetHeight ()
 Get the width of the device in pixels. More...
 
virtual void DisableClipping ()
 Disable clipping of the display. More...
 
virtual bool GetBufferIdMode () const
 Tell if the device context is in BufferId creation mode. More...
 
virtual void BufferIdModeBegin (vtkAbstractContextBufferId *bufferId)
 Start BufferId creation Mode. More...
 
virtual void BufferIdModeEnd ()
 Finalize BufferId creation Mode. More...
 
virtual void SetViewportSize (const vtkVector2i &size)
 
virtual vtkVector2i GetViewportSize ()
 
virtual void SetViewportRect (const vtkRecti &rect)
 
virtual vtkRecti GetViewportRect ()
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on. More...
 
virtual void DebugOff ()
 Turn debugging output off. More...
 
bool GetDebug ()
 Get the value of the debug flag. More...
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag. More...
 
virtual void Modified ()
 Update the modification time for this object. More...
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time. More...
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 
vtkCommandGetCommand (unsigned long tag)
 
void RemoveObserver (vtkCommand *)
 
void RemoveObservers (unsigned long event, vtkCommand *)
 
void RemoveObservers (const char *event, vtkCommand *)
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
vtkTypeBool HasObserver (unsigned long event)
 
vtkTypeBool HasObserver (const char *event)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method. More...
 
int InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
int InvokeEvent (const char *event, void *callData)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string. More...
 
virtual void Delete ()
 Delete a VTK object. More...
 
virtual void FastDelete ()
 Delete a reference to this object. More...
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream. More...
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 
virtual void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object). More...
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object). More...
 
int GetReferenceCount ()
 Return the current reference count of this object. More...
 
void SetReferenceCount (int)
 Sets the reference count. More...
 
void PrintRevisions (ostream &)
 Legacy. More...
 

Static Public Member Functions

static vtkSVGContextDevice2DNew ()
 
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkSVGContextDevice2DSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkContextDevice2D
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkContextDevice2DSafeDownCast (vtkObjectBase *o)
 
static vtkContextDevice2DNew ()
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes. More...
 
static void SetGlobalWarningDisplay (int val)
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOn ()
 
static void GlobalWarningDisplayOff ()
 
static int GetGlobalWarningDisplay ()
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class. More...
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkSVGContextDevice2D ()
 
 ~vtkSVGContextDevice2D () override
 
void SetViewport (vtkViewport *)
 
void PushGraphicsState ()
 
void PopGraphicsState ()
 
void SetupClippingAndTransform ()
 
void ApplyPenStateToNode (vtkXMLDataElement *node)
 
void ApplyPenColorToNode (vtkXMLDataElement *node)
 
void ApplyPenOpacityToNode (vtkXMLDataElement *node)
 
void ApplyPenWidthToNode (vtkXMLDataElement *node)
 
void ApplyPenStippleToNode (vtkXMLDataElement *node)
 
void ApplyPenAsFillColorToNode (vtkXMLDataElement *node)
 
void ApplyPenAsFillOpacityToNode (vtkXMLDataElement *node)
 
void ApplyBrushStateToNode (vtkXMLDataElement *node)
 
void ApplyBrushColorToNode (vtkXMLDataElement *node)
 
void ApplyBrushOpacityToNode (vtkXMLDataElement *node)
 
void ApplyBrushTextureToNode (vtkXMLDataElement *node)
 
void ApplyTextPropertyStateToNode (vtkXMLDataElement *node, float x, float y)
 
void ApplyTextPropertyStateToNodeForPath (vtkXMLDataElement *node, float x, float y)
 
void ApplyTransform ()
 
std::string AddCrossSymbol (bool highlight)
 
std::string AddPlusSymbol (bool highlight)
 
std::string AddSquareSymbol (bool highlight)
 
std::string AddCircleSymbol (bool highlight)
 
std::string AddDiamondSymbol (bool highlight)
 
void DrawPath (vtkPath *path, std::ostream &out)
 
void DrawLineGradient (const vtkVector2f &p1, const vtkColor4ub &c1, const vtkVector2f &p2, const vtkColor4ub &c2, bool useAlpha)
 
void DrawTriangleGradient (const vtkVector2f &p1, const vtkColor4ub &c1, const vtkVector2f &p2, const vtkColor4ub &c2, const vtkVector2f &p3, const vtkColor4ub &c3, bool useAlpha)
 
bool AreaLessThanTolerance (const vtkVector2f &p1, const vtkVector2f &p2, const vtkVector2f &p3)
 
bool LengthLessThanTolerance (const vtkVector2f &p1, const vtkVector2f &p2)
 
bool ColorsAreClose (const vtkColor4ub &c1, const vtkColor4ub &c2, bool useAlpha)
 
bool ColorsAreClose (const vtkColor4ub &c1, const vtkColor4ub &c2, const vtkColor4ub &c3, bool useAlpha)
 
void WriteFonts ()
 
void WriteImages ()
 
void WritePatterns ()
 
void WriteClipRects ()
 
void AdjustMatrixForSVG (const double in[9], double out[9])
 
void GetSVGMatrix (double svg[9])
 
float GetScaledPenWidth ()
 
void GetScaledPenWidth (float &x, float &y)
 
void TransformSize (float &x, float &y)
 
vtkImageDataPreparePointSprite (vtkImageData *in)
 
- Protected Member Functions inherited from vtkContextDevice2D
 vtkContextDevice2D ()
 
 ~vtkContextDevice2D () override
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events. More...
 
void InternalReleaseFocus ()
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Static Protected Member Functions

static bool Transform2DEqual (const double mat3[9], const double mat4[16])
 
static void Matrix3ToMatrix4 (const double mat3[9], double mat4[16])
 
static void Matrix4ToMatrix3 (const double mat4[16], double mat3[9])
 

Protected Attributes

Details * Impl
 
vtkViewportViewport
 
vtkXMLDataElementContextNode
 
vtkXMLDataElementActiveNode
 
vtkXMLDataElementDefinitionNode
 
vtkNew< vtkTransformMatrix
 
std::array< double, 9 > ActiveNodeTransform
 
std::array< int, 4 > ClipRect
 
std::array< int, 4 > ActiveNodeClipRect
 
float CanvasHeight
 
float SubdivisionThreshold
 
bool IsClipping
 
bool ActiveNodeIsClipping
 
bool EmbedFonts
 
bool TextAsPath
 
- Protected Attributes inherited from vtkContextDevice2D
int Geometry [2]
 Store the width and height of the device in pixels. More...
 
vtkVector2i ViewportSize
 Store the size of the total viewport. More...
 
vtkRecti ViewportRect
 Store our origin and size in the total viewport. More...
 
vtkAbstractContextBufferIdBufferId
 
vtkPenPen
 
vtkBrushBrush
 
vtkTextPropertyTextProp
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

vtkContextDevice2D implementation for use with vtkSVGExporter.

Limitations:

Definition at line 56 of file vtkSVGContextDevice2D.h.

Member Typedef Documentation

◆ Superclass

Definition at line 60 of file vtkSVGContextDevice2D.h.

Constructor & Destructor Documentation

◆ vtkSVGContextDevice2D()

vtkSVGContextDevice2D::vtkSVGContextDevice2D ( )
protected

◆ ~vtkSVGContextDevice2D()

vtkSVGContextDevice2D::~vtkSVGContextDevice2D ( )
overrideprotected

Member Function Documentation

◆ New()

static vtkSVGContextDevice2D* vtkSVGContextDevice2D::New ( )
static

◆ IsTypeOf()

static vtkTypeBool vtkSVGContextDevice2D::IsTypeOf ( const char *  type)
static

◆ IsA()

virtual vtkTypeBool vtkSVGContextDevice2D::IsA ( const char *  name)
virtual

Return 1 if this class is the same type of (or a subclass of) the named class.

Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkContextDevice2D.

◆ SafeDownCast()

static vtkSVGContextDevice2D* vtkSVGContextDevice2D::SafeDownCast ( vtkObjectBase o)
static

◆ NewInstanceInternal()

virtual vtkObjectBase* vtkSVGContextDevice2D::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkContextDevice2D.

◆ NewInstance()

vtkSVGContextDevice2D* vtkSVGContextDevice2D::NewInstance ( ) const

◆ PrintSelf()

void vtkSVGContextDevice2D::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

◆ SetSVGContext()

void vtkSVGContextDevice2D::SetSVGContext ( vtkXMLDataElement context,
vtkXMLDataElement defs 
)

The svg container element to draw into, and the global definitions element.

◆ SetEmbedFonts()

virtual void vtkSVGContextDevice2D::SetEmbedFonts ( bool  )
virtual

EXPERIMENTAL: If true, the font glyph information will be embedded in the output.

Default is false.

Note
This feature is experimental and not well tested, as most browsers and SVG viewers do not support rendering embedded fonts. As such, enabling this option typically just increases file size for no real benefit.

◆ GetEmbedFonts()

virtual bool vtkSVGContextDevice2D::GetEmbedFonts ( )
virtual

EXPERIMENTAL: If true, the font glyph information will be embedded in the output.

Default is false.

Note
This feature is experimental and not well tested, as most browsers and SVG viewers do not support rendering embedded fonts. As such, enabling this option typically just increases file size for no real benefit.

◆ EmbedFontsOn()

virtual void vtkSVGContextDevice2D::EmbedFontsOn ( )
virtual

EXPERIMENTAL: If true, the font glyph information will be embedded in the output.

Default is false.

Note
This feature is experimental and not well tested, as most browsers and SVG viewers do not support rendering embedded fonts. As such, enabling this option typically just increases file size for no real benefit.

◆ EmbedFontsOff()

virtual void vtkSVGContextDevice2D::EmbedFontsOff ( )
virtual

EXPERIMENTAL: If true, the font glyph information will be embedded in the output.

Default is false.

Note
This feature is experimental and not well tested, as most browsers and SVG viewers do not support rendering embedded fonts. As such, enabling this option typically just increases file size for no real benefit.

◆ SetTextAsPath()

virtual void vtkSVGContextDevice2D::SetTextAsPath ( bool  )
virtual

If true, draw all text as path objects rather than text objects.

Enabling this option will:

  • Improve portability (text will look exactly the same everywhere).
  • Increase file size (text objects are much more compact than paths).
  • Prevent text from being easily edited (text metadata is lost).

Note that some text (e.g. MathText) is always rendered as a path.

The default is true, as many browsers and SVG viewers render text objects inconsistently.

◆ GetTextAsPath()

virtual bool vtkSVGContextDevice2D::GetTextAsPath ( )
virtual

If true, draw all text as path objects rather than text objects.

Enabling this option will:

  • Improve portability (text will look exactly the same everywhere).
  • Increase file size (text objects are much more compact than paths).
  • Prevent text from being easily edited (text metadata is lost).

Note that some text (e.g. MathText) is always rendered as a path.

The default is true, as many browsers and SVG viewers render text objects inconsistently.

◆ TextAsPathOn()

virtual void vtkSVGContextDevice2D::TextAsPathOn ( )
virtual

If true, draw all text as path objects rather than text objects.

Enabling this option will:

  • Improve portability (text will look exactly the same everywhere).
  • Increase file size (text objects are much more compact than paths).
  • Prevent text from being easily edited (text metadata is lost).

Note that some text (e.g. MathText) is always rendered as a path.

The default is true, as many browsers and SVG viewers render text objects inconsistently.

◆ TextAsPathOff()

virtual void vtkSVGContextDevice2D::TextAsPathOff ( )
virtual

If true, draw all text as path objects rather than text objects.

Enabling this option will:

  • Improve portability (text will look exactly the same everywhere).
  • Increase file size (text objects are much more compact than paths).
  • Prevent text from being easily edited (text metadata is lost).

Note that some text (e.g. MathText) is always rendered as a path.

The default is true, as many browsers and SVG viewers render text objects inconsistently.

◆ SetSubdivisionThreshold()

virtual void vtkSVGContextDevice2D::SetSubdivisionThreshold ( float  )
virtual

Set the threshold for subdividing gradient-shaded polygons/line.

Default value is 1, and lower values yield higher quality and larger files. Larger values will reduce the number of primitives, but will decrease quality.

A triangle / line will not be subdivided further if all of it's vertices satisfy the equation:

|v1 - v2|^2 < thresh

e.g. the squared norm of the vector between any verts must be greater than the threshold for subdivision to occur.

◆ GetSubdivisionThreshold()

virtual float vtkSVGContextDevice2D::GetSubdivisionThreshold ( )
virtual

Set the threshold for subdividing gradient-shaded polygons/line.

Default value is 1, and lower values yield higher quality and larger files. Larger values will reduce the number of primitives, but will decrease quality.

A triangle / line will not be subdivided further if all of it's vertices satisfy the equation:

|v1 - v2|^2 < thresh

e.g. the squared norm of the vector between any verts must be greater than the threshold for subdivision to occur.

◆ GenerateDefinitions()

void vtkSVGContextDevice2D::GenerateDefinitions ( )

Write any definition information (fonts, images, etc) that are accumulated between actors.

◆ Begin()

void vtkSVGContextDevice2D::Begin ( vtkViewport )
overridevirtual

Begin drawing, pass in the viewport to set up the view.

Reimplemented from vtkContextDevice2D.

◆ End()

void vtkSVGContextDevice2D::End ( )
overridevirtual

End drawing, clean up the view.

Reimplemented from vtkContextDevice2D.

◆ DrawPoly()

void vtkSVGContextDevice2D::DrawPoly ( float points,
int  n,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw a poly line using the points - fastest code path due to memory layout of the coordinates.

The line will be colored by the colors array, which must be have nc_comps components (defining a single color).

See also
DrawLines()

Implements vtkContextDevice2D.

◆ DrawLines()

void vtkSVGContextDevice2D::DrawLines ( float f,
int  n,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw lines using the points - memory layout is as follows: l1p1,l1p2,l2p1,l2p2...

The lines will be colored by colors array which has nc_comps components (defining a single color).

See also
DrawPoly()

Implements vtkContextDevice2D.

◆ DrawPoints()

void vtkSVGContextDevice2D::DrawPoints ( float points,
int  n,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw a series of points - fastest code path due to memory layout of the coordinates.

The colors and nc_comps are optional - color array.

Implements vtkContextDevice2D.

◆ DrawPointSprites()

void vtkSVGContextDevice2D::DrawPointSprites ( vtkImageData sprite,
float points,
int  n,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw a series of point sprites, images centred at the points supplied.

The supplied vtkImageData is the sprite to be drawn, only squares will be drawn and the size is set using SetPointSize.

Parameters
colorsis an optional array of colors.
nc_compsis the number of components for the color.

Implements vtkContextDevice2D.

◆ DrawMarkers()

void vtkSVGContextDevice2D::DrawMarkers ( int  shape,
bool  highlight,
float points,
int  n,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw a series of markers centered at the points supplied.

The shape argument controls the marker shape, and can be one of

  • VTK_MARKER_CROSS
  • VTK_MARKER_PLUS
  • VTK_MARKER_SQUARE
  • VTK_MARKER_CIRCLE
  • VTK_MARKER_DIAMOND
    Parameters
    colorsis an optional array of colors.
    nc_compsis the number of components for the color.

Reimplemented from vtkContextDevice2D.

◆ DrawQuad()

void vtkSVGContextDevice2D::DrawQuad ( float ,
int   
)
overridevirtual

Draw a quad using the specified number of points.

Reimplemented from vtkContextDevice2D.

◆ DrawQuadStrip()

void vtkSVGContextDevice2D::DrawQuadStrip ( float ,
int   
)
overridevirtual

Draw a quad using the specified number of points.

Reimplemented from vtkContextDevice2D.

◆ DrawPolygon()

void vtkSVGContextDevice2D::DrawPolygon ( float p,
int  n 
)
overridevirtual

Draw a polygon using the specified number of points.

Reimplemented from vtkContextDevice2D.

◆ DrawColoredPolygon()

void vtkSVGContextDevice2D::DrawColoredPolygon ( float points,
int  numPoints,
unsigned char *  colors = nullptr,
int  nc_comps = 0 
)
overridevirtual

Draw a polygon using the specified number of points.

Reimplemented from vtkContextDevice2D.

◆ DrawEllipseWedge()

void vtkSVGContextDevice2D::DrawEllipseWedge ( float  x,
float  y,
float  outRx,
float  outRy,
float  inRx,
float  inRy,
float  startAngle,
float  stopAngle 
)
overridevirtual

Draw an elliptic wedge with center at x, y, outer radii outRx, outRy, inner radii inRx, inRy between angles startAngle and stopAngle (expressed in degrees).

Precondition
positive_outRx: outRx>=0
positive_outRy: outRy>=0
positive_inRx: inRx>=0
positive_inRy: inRy>=0
ordered_rx: inRx<=outRx
ordered_ry: inRy<=outRy

Implements vtkContextDevice2D.

◆ DrawEllipticArc()

void vtkSVGContextDevice2D::DrawEllipticArc ( float  x,
float  y,
float  rX,
float  rY,
float  startAngle,
float  stopAngle 
)
overridevirtual

Draw an elliptic arc with center at x,y with radii rX and rY between angles startAngle and stopAngle (expressed in degrees).

Precondition
positive_rX: rX>=0
positive_rY: rY>=0

Implements vtkContextDevice2D.

◆ DrawString() [1/2]

void vtkSVGContextDevice2D::DrawString ( float point,
const vtkStdString string 
)
overridevirtual

Draw some text to the screen.

Implements vtkContextDevice2D.

◆ ComputeStringBounds() [1/2]

void vtkSVGContextDevice2D::ComputeStringBounds ( const vtkStdString string,
float  bounds[4] 
)
overridevirtual

Compute the bounds of the supplied string.

The bounds will be copied to the supplied bounds variable, the first two elements are the bottom corner of the string, and the second two elements are the width and height of the bounding box. NOTE: This function does not take account of the text rotation or justification.

Implements vtkContextDevice2D.

◆ DrawString() [2/2]

void vtkSVGContextDevice2D::DrawString ( float point,
const vtkUnicodeString string 
)
overridevirtual

Draw some text to the screen.

Implements vtkContextDevice2D.

◆ ComputeStringBounds() [2/2]

void vtkSVGContextDevice2D::ComputeStringBounds ( const vtkUnicodeString string,
float  bounds[4] 
)
overridevirtual

Compute the bounds of the supplied string.

The bounds will be copied to the supplied bounds variable, the first two elements are the bottom corner of the string, and the second two elements are the width and height of the bounding box. NOTE: This function does not take account of the text rotation or justification.

Implements vtkContextDevice2D.

◆ ComputeJustifiedStringBounds()

void vtkSVGContextDevice2D::ComputeJustifiedStringBounds ( const char *  string,
float  bounds[4] 
)
overridevirtual

Compute the bounds of the supplied string while taking into account the justification of the currently applied text property.

Simple rotations (0, 90, 180, 270) are also correctly taken into account.

Implements vtkContextDevice2D.

◆ DrawMathTextString()

void vtkSVGContextDevice2D::DrawMathTextString ( float point,
const vtkStdString string 
)
overridevirtual

Draw text using MathText markup for mathematical equations.

See http://matplotlib.sourceforge.net/users/mathtext.html for more information.

Implements vtkContextDevice2D.

◆ DrawImage() [1/2]

void vtkSVGContextDevice2D::DrawImage ( float  p[2],
float  scale,
vtkImageData image 
)
overridevirtual

Draw the supplied image at the given x, y (p[0], p[1]) (bottom corner), scaled by scale (1.0 would match the image).

Implements vtkContextDevice2D.

◆ DrawImage() [2/2]

void vtkSVGContextDevice2D::DrawImage ( const vtkRectf pos,
vtkImageData image 
)
overridevirtual

Draw the supplied image at the given position.

The origin, width, and height are specified by the supplied vtkRectf variable pos. The image will be drawn scaled to that size.

Implements vtkContextDevice2D.

◆ SetColor4()

void vtkSVGContextDevice2D::SetColor4 ( unsigned char  color[4])
overridevirtual

Set the color for the device using unsigned char of length 4, RGBA.

Implements vtkContextDevice2D.

◆ SetTexture()

void vtkSVGContextDevice2D::SetTexture ( vtkImageData image,
int  properties 
)
overridevirtual

Set the texture for the device, it is used to fill the polygons.

Implements vtkContextDevice2D.

◆ SetPointSize()

void vtkSVGContextDevice2D::SetPointSize ( float  size)
overridevirtual

Set the point size for glyphs/sprites.

Implements vtkContextDevice2D.

◆ SetLineWidth()

void vtkSVGContextDevice2D::SetLineWidth ( float  width)
overridevirtual

Set the line width.

Implements vtkContextDevice2D.

◆ SetLineType()

void vtkSVGContextDevice2D::SetLineType ( int  type)
overridevirtual

Set the line type type (using anonymous enum in vtkPen).

Implements vtkContextDevice2D.

◆ SetMatrix()

void vtkSVGContextDevice2D::SetMatrix ( vtkMatrix3x3 m)
overridevirtual

Set the model view matrix for the display.

Implements vtkContextDevice2D.

◆ GetMatrix()

void vtkSVGContextDevice2D::GetMatrix ( vtkMatrix3x3 m)
overridevirtual

Set the model view matrix for the display.

Implements vtkContextDevice2D.

◆ MultiplyMatrix()

void vtkSVGContextDevice2D::MultiplyMatrix ( vtkMatrix3x3 m)
overridevirtual

Multiply the current model view matrix by the supplied one.

Implements vtkContextDevice2D.

◆ PushMatrix()

void vtkSVGContextDevice2D::PushMatrix ( )
overridevirtual

Push the current matrix onto the stack.

Implements vtkContextDevice2D.

◆ PopMatrix()

void vtkSVGContextDevice2D::PopMatrix ( )
overridevirtual

Pop the current matrix off of the stack.

Implements vtkContextDevice2D.

◆ SetClipping()

void vtkSVGContextDevice2D::SetClipping ( int x)
overridevirtual

Supply an int array of length 4 with x1, y1, width, height specifying clipping region for the device in pixels.

Implements vtkContextDevice2D.

◆ EnableClipping()

void vtkSVGContextDevice2D::EnableClipping ( bool  enable)
overridevirtual

Enable or disable the clipping of the scene.

Implements vtkContextDevice2D.

◆ SetViewport()

void vtkSVGContextDevice2D::SetViewport ( vtkViewport )
protected

◆ PushGraphicsState()

void vtkSVGContextDevice2D::PushGraphicsState ( )
protected

◆ PopGraphicsState()

void vtkSVGContextDevice2D::PopGraphicsState ( )
protected

◆ SetupClippingAndTransform()

void vtkSVGContextDevice2D::SetupClippingAndTransform ( )
protected

◆ ApplyPenStateToNode()

void vtkSVGContextDevice2D::ApplyPenStateToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenColorToNode()

void vtkSVGContextDevice2D::ApplyPenColorToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenOpacityToNode()

void vtkSVGContextDevice2D::ApplyPenOpacityToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenWidthToNode()

void vtkSVGContextDevice2D::ApplyPenWidthToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenStippleToNode()

void vtkSVGContextDevice2D::ApplyPenStippleToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenAsFillColorToNode()

void vtkSVGContextDevice2D::ApplyPenAsFillColorToNode ( vtkXMLDataElement node)
protected

◆ ApplyPenAsFillOpacityToNode()

void vtkSVGContextDevice2D::ApplyPenAsFillOpacityToNode ( vtkXMLDataElement node)
protected

◆ ApplyBrushStateToNode()

void vtkSVGContextDevice2D::ApplyBrushStateToNode ( vtkXMLDataElement node)
protected

◆ ApplyBrushColorToNode()

void vtkSVGContextDevice2D::ApplyBrushColorToNode ( vtkXMLDataElement node)
protected

◆ ApplyBrushOpacityToNode()

void vtkSVGContextDevice2D::ApplyBrushOpacityToNode ( vtkXMLDataElement node)
protected

◆ ApplyBrushTextureToNode()

void vtkSVGContextDevice2D::ApplyBrushTextureToNode ( vtkXMLDataElement node)
protected

◆ ApplyTextPropertyStateToNode()

void vtkSVGContextDevice2D::ApplyTextPropertyStateToNode ( vtkXMLDataElement node,
float  x,
float  y 
)
protected

◆ ApplyTextPropertyStateToNodeForPath()

void vtkSVGContextDevice2D::ApplyTextPropertyStateToNodeForPath ( vtkXMLDataElement node,
float  x,
float  y 
)
protected

◆ ApplyTransform()

void vtkSVGContextDevice2D::ApplyTransform ( )
protected

◆ AddCrossSymbol()

std::string vtkSVGContextDevice2D::AddCrossSymbol ( bool  highlight)
protected

◆ AddPlusSymbol()

std::string vtkSVGContextDevice2D::AddPlusSymbol ( bool  highlight)
protected

◆ AddSquareSymbol()

std::string vtkSVGContextDevice2D::AddSquareSymbol ( bool  highlight)
protected

◆ AddCircleSymbol()

std::string vtkSVGContextDevice2D::AddCircleSymbol ( bool  highlight)
protected

◆ AddDiamondSymbol()

std::string vtkSVGContextDevice2D::AddDiamondSymbol ( bool  highlight)
protected

◆ DrawPath()

void vtkSVGContextDevice2D::DrawPath ( vtkPath path,
std::ostream &  out 
)
protected

◆ DrawLineGradient()

void vtkSVGContextDevice2D::DrawLineGradient ( const vtkVector2f p1,
const vtkColor4ub c1,
const vtkVector2f p2,
const vtkColor4ub c2,
bool  useAlpha 
)
protected

◆ DrawTriangleGradient()

void vtkSVGContextDevice2D::DrawTriangleGradient ( const vtkVector2f p1,
const vtkColor4ub c1,
const vtkVector2f p2,
const vtkColor4ub c2,
const vtkVector2f p3,
const vtkColor4ub c3,
bool  useAlpha 
)
protected

◆ AreaLessThanTolerance()

bool vtkSVGContextDevice2D::AreaLessThanTolerance ( const vtkVector2f p1,
const vtkVector2f p2,
const vtkVector2f p3 
)
protected

◆ LengthLessThanTolerance()

bool vtkSVGContextDevice2D::LengthLessThanTolerance ( const vtkVector2f p1,
const vtkVector2f p2 
)
protected

◆ ColorsAreClose() [1/2]

bool vtkSVGContextDevice2D::ColorsAreClose ( const vtkColor4ub c1,
const vtkColor4ub c2,
bool  useAlpha 
)
protected

◆ ColorsAreClose() [2/2]

bool vtkSVGContextDevice2D::ColorsAreClose ( const vtkColor4ub c1,
const vtkColor4ub c2,
const vtkColor4ub c3,
bool  useAlpha 
)
protected

◆ WriteFonts()

void vtkSVGContextDevice2D::WriteFonts ( )
protected

◆ WriteImages()

void vtkSVGContextDevice2D::WriteImages ( )
protected

◆ WritePatterns()

void vtkSVGContextDevice2D::WritePatterns ( )
protected

◆ WriteClipRects()

void vtkSVGContextDevice2D::WriteClipRects ( )
protected

◆ AdjustMatrixForSVG()

void vtkSVGContextDevice2D::AdjustMatrixForSVG ( const double  in[9],
double  out[9] 
)
protected

◆ GetSVGMatrix()

void vtkSVGContextDevice2D::GetSVGMatrix ( double  svg[9])
protected

◆ Transform2DEqual()

static bool vtkSVGContextDevice2D::Transform2DEqual ( const double  mat3[9],
const double  mat4[16] 
)
staticprotected

◆ Matrix3ToMatrix4()

static void vtkSVGContextDevice2D::Matrix3ToMatrix4 ( const double  mat3[9],
double  mat4[16] 
)
staticprotected

◆ Matrix4ToMatrix3()

static void vtkSVGContextDevice2D::Matrix4ToMatrix3 ( const double  mat4[16],
double  mat3[9] 
)
staticprotected

◆ GetScaledPenWidth() [1/2]

float vtkSVGContextDevice2D::GetScaledPenWidth ( )
protected

◆ GetScaledPenWidth() [2/2]

void vtkSVGContextDevice2D::GetScaledPenWidth ( float x,
float y 
)
protected

◆ TransformSize()

void vtkSVGContextDevice2D::TransformSize ( float x,
float y 
)
protected

◆ PreparePointSprite()

vtkImageData* vtkSVGContextDevice2D::PreparePointSprite ( vtkImageData in)
protected

Member Data Documentation

◆ Impl

Details* vtkSVGContextDevice2D::Impl
protected

Definition at line 261 of file vtkSVGContextDevice2D.h.

◆ Viewport

vtkViewport* vtkSVGContextDevice2D::Viewport
protected

Definition at line 264 of file vtkSVGContextDevice2D.h.

◆ ContextNode

vtkXMLDataElement* vtkSVGContextDevice2D::ContextNode
protected

Definition at line 265 of file vtkSVGContextDevice2D.h.

◆ ActiveNode

vtkXMLDataElement* vtkSVGContextDevice2D::ActiveNode
protected

Definition at line 266 of file vtkSVGContextDevice2D.h.

◆ DefinitionNode

vtkXMLDataElement* vtkSVGContextDevice2D::DefinitionNode
protected

Definition at line 267 of file vtkSVGContextDevice2D.h.

◆ Matrix

vtkNew<vtkTransform> vtkSVGContextDevice2D::Matrix
protected

Definition at line 270 of file vtkSVGContextDevice2D.h.

◆ ActiveNodeTransform

std::array<double, 9> vtkSVGContextDevice2D::ActiveNodeTransform
protected

Definition at line 271 of file vtkSVGContextDevice2D.h.

◆ ClipRect

std::array<int, 4> vtkSVGContextDevice2D::ClipRect
protected

Definition at line 273 of file vtkSVGContextDevice2D.h.

◆ ActiveNodeClipRect

std::array<int, 4> vtkSVGContextDevice2D::ActiveNodeClipRect
protected

Definition at line 274 of file vtkSVGContextDevice2D.h.

◆ CanvasHeight

float vtkSVGContextDevice2D::CanvasHeight
protected

Definition at line 276 of file vtkSVGContextDevice2D.h.

◆ SubdivisionThreshold

float vtkSVGContextDevice2D::SubdivisionThreshold
protected

Definition at line 277 of file vtkSVGContextDevice2D.h.

◆ IsClipping

bool vtkSVGContextDevice2D::IsClipping
protected

Definition at line 278 of file vtkSVGContextDevice2D.h.

◆ ActiveNodeIsClipping

bool vtkSVGContextDevice2D::ActiveNodeIsClipping
protected

Definition at line 279 of file vtkSVGContextDevice2D.h.

◆ EmbedFonts

bool vtkSVGContextDevice2D::EmbedFonts
protected

Definition at line 280 of file vtkSVGContextDevice2D.h.

◆ TextAsPath

bool vtkSVGContextDevice2D::TextAsPath
protected

Definition at line 281 of file vtkSVGContextDevice2D.h.


The documentation for this class was generated from the following file: