VTK  9.1.0
vtkMathTextUtilities.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMathTextUtilities.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
24#ifndef vtkMathTextUtilities_h
25#define vtkMathTextUtilities_h
26
27#include "vtkObject.h"
28#include "vtkRenderingFreeTypeModule.h" // For export macro
29#include "vtkTextRenderer.h" // for metrics
30
31class vtkImageData;
32class vtkPath;
33class vtkTextProperty;
34class vtkTextActor;
35class vtkViewport;
36
37//----------------------------------------------------------------------------
38// Singleton cleanup
39
40class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilitiesCleanup
41{
42public:
45
46private:
48 vtkMathTextUtilitiesCleanup& operator=(const vtkMathTextUtilitiesCleanup& rhs) = delete;
49};
50
51class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilities : public vtkObject
52{
53public:
55 void PrintSelf(ostream& os, vtkIndent indent) override;
56
60 virtual bool IsAvailable() { return false; } // Override in subclasses.
61
71
76
81 static void SetInstance(vtkMathTextUtilities* instance);
82
87 virtual bool GetBoundingBox(vtkTextProperty* tprop, const char* str, int dpi, int bbox[4]) = 0;
88
92 virtual bool GetMetrics(
93 vtkTextProperty* tprop, const char* str, int dpi, vtkTextRenderer::Metrics& metrics) = 0;
94
102 virtual bool RenderString(const char* str, vtkImageData* data, vtkTextProperty* tprop, int dpi,
103 int textDims[2] = nullptr) = 0;
104
109 virtual bool StringToPath(const char* str, vtkPath* path, vtkTextProperty* tprop, int dpi) = 0;
110
118 const char* str, vtkTextProperty* tprop, int targetWidth, int targetHeight, int dpi);
119
121
126 virtual bool GetScaleToPowerOfTwo() = 0;
127 virtual void SetScaleToPowerOfTwo(bool scale) = 0;
129
130protected:
133
134private:
136 void operator=(const vtkMathTextUtilities&) = delete;
137
139
142 static vtkMathTextUtilities* Instance;
143 static vtkMathTextUtilitiesCleanup Cleanup;
145};
146
147#endif
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
Abstract interface to equation rendering.
static vtkMathTextUtilities * New()
This is a singleton pattern New.
virtual bool GetScaleToPowerOfTwo()=0
Set to true if the graphics implementation requires texture image dimensions to be a power of two.
virtual int GetConstrainedFontSize(const char *str, vtkTextProperty *tprop, int targetWidth, int targetHeight, int dpi)
This function returns the font size (in points) required to fit the string in the target rectangle.
virtual bool IsAvailable()
Returns true if mathtext rendering is available.
~vtkMathTextUtilities() override
virtual bool GetBoundingBox(vtkTextProperty *tprop, const char *str, int dpi, int bbox[4])=0
Determine the dimensions of the image that RenderString will produce for a given str,...
virtual bool GetMetrics(vtkTextProperty *tprop, const char *str, int dpi, vtkTextRenderer::Metrics &metrics)=0
Return the metrics for the rendered str, tprop, and dpi.
static void SetInstance(vtkMathTextUtilities *instance)
Supply a user defined instance.
virtual bool RenderString(const char *str, vtkImageData *data, vtkTextProperty *tprop, int dpi, int textDims[2]=nullptr)=0
Render the given string str into the vtkImageData data with a resolution of dpi.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetScaleToPowerOfTwo(bool scale)=0
Set to true if the graphics implementation requires texture image dimensions to be a power of two.
virtual bool StringToPath(const char *str, vtkPath *path, vtkTextProperty *tprop, int dpi)=0
Parse the MathText expression in str and fill path with a contour of the glyphs.
static vtkMathTextUtilities * GetInstance()
Return the singleton instance with no reference counting.
abstract base class for most VTK objects
Definition: vtkObject.h:82
concrete dataset representing a path defined by Bezier curves.
Definition: vtkPath.h:33
An actor that displays text.
Definition: vtkTextActor.h:160
represent text properties.
abstract specification for Viewports
Definition: vtkViewport.h:47