VTK  9.4.20250207
vtkMathTextUtilities.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
15#ifndef vtkMathTextUtilities_h
16#define vtkMathTextUtilities_h
17
18#include "vtkObject.h"
19#include "vtkRenderingFreeTypeModule.h" // For export macro
20#include "vtkTextRenderer.h" // for metrics
21
22VTK_ABI_NAMESPACE_BEGIN
23class vtkImageData;
24class vtkPath;
25class vtkTextProperty;
26class vtkTextActor;
27class vtkViewport;
28
29//----------------------------------------------------------------------------
30// Singleton cleanup
31
32class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilitiesCleanup
33{
34public:
37
38private:
40 vtkMathTextUtilitiesCleanup& operator=(const vtkMathTextUtilitiesCleanup& rhs) = delete;
41};
42
43class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilities : public vtkObject
44{
45public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
52 virtual bool IsAvailable() { return false; } // Override in subclasses.
53
63
68
73 static void SetInstance(vtkMathTextUtilities* instance);
74
79 virtual bool GetBoundingBox(vtkTextProperty* tprop, const char* str, int dpi, int bbox[4]) = 0;
80
84 virtual bool GetMetrics(
85 vtkTextProperty* tprop, const char* str, int dpi, vtkTextRenderer::Metrics& metrics) = 0;
86
94 virtual bool RenderString(const char* str, vtkImageData* data, vtkTextProperty* tprop, int dpi,
95 int textDims[2] = nullptr) = 0;
96
101 virtual bool StringToPath(const char* str, vtkPath* path, vtkTextProperty* tprop, int dpi) = 0;
102
110 const char* str, vtkTextProperty* tprop, int targetWidth, int targetHeight, int dpi);
111
113
118 virtual bool GetScaleToPowerOfTwo() = 0;
119 virtual void SetScaleToPowerOfTwo(bool scale) = 0;
121
122protected:
125
126private:
128 void operator=(const vtkMathTextUtilities&) = delete;
129
131
134 static vtkMathTextUtilities* Instance;
135 static vtkMathTextUtilitiesCleanup Cleanup;
137};
138
139VTK_ABI_NAMESPACE_END
140#endif
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
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:162
concrete dataset representing a path defined by Bezier curves.
Definition vtkPath.h:44
An actor that displays text.
represent text properties.
abstract specification for Viewports
Definition vtkViewport.h:65