VTK
dox/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkMathTextFreeTypeTextRenderer.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 
00030 #ifndef __vtkMathTextFreeTypeTextRenderer_h
00031 #define __vtkMathTextFreeTypeTextRenderer_h
00032 
00033 #include "vtkRenderingFreeTypeModule.h" // For export macro
00034 #include "vtkTextRenderer.h"
00035 
00036 class vtkFreeTypeTools;
00037 class vtkMathTextUtilities;
00038 
00039 class VTKRENDERINGFREETYPE_EXPORT vtkMathTextFreeTypeTextRenderer :
00040     public vtkTextRenderer
00041 {
00042 public:
00043   vtkTypeMacro(vtkMathTextFreeTypeTextRenderer, vtkTextRenderer)
00044   void PrintSelf(ostream &os, vtkIndent indent);
00045 
00046   static vtkMathTextFreeTypeTextRenderer *New();
00047 
00048 protected:
00049   vtkMathTextFreeTypeTextRenderer();
00050   ~vtkMathTextFreeTypeTextRenderer();
00051 
00053 
00054   bool GetBoundingBoxInternal(vtkTextProperty *tprop, const vtkStdString &str,
00055                               int bbox[4], int dpi, int backend);
00056   bool GetBoundingBoxInternal(vtkTextProperty *tprop,
00057                               const vtkUnicodeString &str,
00058                               int bbox[4], int dpi, int backend);
00059   bool RenderStringInternal(vtkTextProperty *tprop, const vtkStdString &str,
00060                             vtkImageData *data, int textDims[2], int dpi,
00061                             int backend);
00062   bool RenderStringInternal(vtkTextProperty *tprop, const vtkUnicodeString &str,
00063                             vtkImageData *data, int textDims[2], int dpi,
00064                             int backend);
00065   int GetConstrainedFontSizeInternal(const vtkStdString &str,
00066                                      vtkTextProperty *tprop,
00067                                      int targetWidth, int targetHeight, int dpi,
00068                                      int backend);
00069   int GetConstrainedFontSizeInternal(const vtkUnicodeString &str,
00070                                      vtkTextProperty *tprop,
00071                                      int targetWidth, int targetHeight, int dpi,
00072                                      int backend);
00073   bool StringToPathInternal(vtkTextProperty *tprop, const vtkStdString &str,
00074                             vtkPath *path, int backend);
00075   bool StringToPathInternal(vtkTextProperty *tprop, const vtkUnicodeString &str,
00076                             vtkPath *path, int backend);
00077   void SetScaleToPowerOfTwoInternal(bool scale);
00079 
00080 private:
00081   vtkMathTextFreeTypeTextRenderer(const vtkMathTextFreeTypeTextRenderer &); // Not implemented.
00082   void operator=(const vtkMathTextFreeTypeTextRenderer &); // Not implemented.
00083 
00084   vtkFreeTypeTools *FreeTypeTools;
00085   vtkMathTextUtilities *MathTextUtilities;
00086 };
00087 
00088 #endif //__vtkMathTextFreeTypeTextRenderer_h