VTK
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 =========================================================================*/
27 #ifndef vtkMathTextUtilities_h
28 #define vtkMathTextUtilities_h
29 
30 #include "vtkRenderingFreeTypeModule.h" // For export macro
31 #include "vtkObject.h"
32 #include "vtkTextRenderer.h" // for metrics
33 
34 class vtkImageData;
35 class vtkPath;
36 class vtkTextProperty;
37 class vtkTextActor;
38 class vtkViewport;
39 
40 //----------------------------------------------------------------------------
41 // Singleton cleanup
42 
43 class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilitiesCleanup
44 {
45 public:
48 
49 private:
51  vtkMathTextUtilitiesCleanup& operator=(const vtkMathTextUtilitiesCleanup& rhs) = delete;
52 };
53 
54 class VTKRENDERINGFREETYPE_EXPORT vtkMathTextUtilities : public vtkObject
55 {
56 public:
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59 
63  virtual bool IsAvailable() { return false; } // Override in subclasses.
64 
74 
79 
84  static void SetInstance(vtkMathTextUtilities *instance);
85 
90  virtual bool GetBoundingBox(vtkTextProperty *tprop, const char *str, int dpi,
91  int bbox[4]) = 0;
92 
96  virtual bool GetMetrics(vtkTextProperty *tprop, const char *str, int dpi,
97  vtkTextRenderer::Metrics &metrics) = 0;
98 
106  virtual bool RenderString(const char *str, vtkImageData *data,
107  vtkTextProperty *tprop, int dpi,
108  int textDims[2] = nullptr) = 0;
109 
114  virtual bool StringToPath(const char *str, vtkPath *path,
115  vtkTextProperty *tprop, int dpi) = 0;
116 
123  virtual int GetConstrainedFontSize(const char *str,
124  vtkTextProperty *tprop,
125  int targetWidth, int targetHeight,
126  int dpi);
127 
129 
134  virtual bool GetScaleToPowerOfTwo() = 0;
135  virtual void SetScaleToPowerOfTwo(bool scale) = 0;
137 
138 protected:
141 
142 private:
144  void operator=(const vtkMathTextUtilities&) = delete;
145 
147 
150  static vtkMathTextUtilities* Instance;
151  static vtkMathTextUtilitiesCleanup Cleanup;
152 };
154 
155 #endif
vtkMathTextUtilities::IsAvailable
virtual bool IsAvailable()
Returns true if mathtext rendering is available.
Definition: vtkMathTextUtilities.h:63
vtkMathTextUtilities::vtkMathTextUtilities
vtkMathTextUtilities()
vtkX3D::scale
@ scale
Definition: vtkX3D.h:229
vtkMathTextUtilities::GetMetrics
virtual bool GetMetrics(vtkTextProperty *tprop, const char *str, int dpi, vtkTextRenderer::Metrics &metrics)=0
Return the metrics for the rendered str, tprop, and dpi.
vtkX3D::data
@ data
Definition: vtkX3D.h:315
vtkMathTextUtilities::~vtkMathTextUtilities
~vtkMathTextUtilities() override
vtkPath
concrete dataset representing a path defined by Bezier curves.
Definition: vtkPath.h:36
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:60
vtkMathTextUtilities::SetInstance
static void SetInstance(vtkMathTextUtilities *instance)
Supply a user defined instance.
vtkMathTextUtilitiesCleanup
Definition: vtkMathTextUtilities.h:44
vtkTextRenderer.h
vtkMathTextUtilities::GetInstance
static vtkMathTextUtilities * GetInstance()
Return the singleton instance with no reference counting.
vtkMathTextUtilities
Abstract interface to equation rendering.
Definition: vtkMathTextUtilities.h:55
vtkMathTextUtilitiesCleanup::~vtkMathTextUtilitiesCleanup
~vtkMathTextUtilitiesCleanup()
vtkMathTextUtilities::GetScaleToPowerOfTwo
virtual bool GetScaleToPowerOfTwo()=0
Set to true if the graphics implementation requires texture image dimensions to be a power of two.
vtkMathTextUtilities::StringToPath
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.
vtkMathTextUtilities::GetConstrainedFontSize
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.
vtkMathTextUtilitiesCleanup::vtkMathTextUtilitiesCleanup
vtkMathTextUtilitiesCleanup()
vtkMathTextUtilities::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
vtkTextActor
An actor that displays text.
Definition: vtkTextActor.h:57
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:48
vtkObject.h
vtkMathTextUtilities::GetBoundingBox
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,...
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:40
vtkMathTextUtilities::SetScaleToPowerOfTwo
virtual void SetScaleToPowerOfTwo(bool scale)=0
vtkMathTextUtilities::New
static vtkMathTextUtilities * New()
This is a singleton pattern New.
vtkTextRenderer::Metrics
Definition: vtkTextRenderer.h:79
vtkMathTextUtilities::RenderString
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.