VTK  9.0.1
vtkTextActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTextActor.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 =========================================================================*/
35 #ifndef vtkTextActor_h
36 #define vtkTextActor_h
37 
38 #include "vtkRenderingCoreModule.h" // For export macro
39 #include "vtkTexturedActor2D.h"
40 
41 class vtkImageData;
42 class vtkPoints;
43 class vtkPolyData;
45 class vtkProperty2D;
46 class vtkTextProperty;
47 class vtkTextRenderer;
48 class vtkTransform;
49 
50 class VTKRENDERINGCORE_EXPORT vtkTextActor : public vtkTexturedActor2D
51 {
52 public:
54  void PrintSelf(ostream& os, vtkIndent indent) override;
55 
60  static vtkTextActor* New();
61 
66  void ShallowCopy(vtkProp* prop) override;
67 
69 
75  void SetInput(const char* inputString);
76  char* GetInput();
78 
80 
85  vtkSetVector2Macro(MinimumSize, int);
86  vtkGetVector2Macro(MinimumSize, int);
88 
90 
96  vtkSetMacro(MaximumLineHeight, float);
97  vtkGetMacro(MaximumLineHeight, float);
99 
101 
110  vtkSetClampMacro(TextScaleMode, int, TEXT_SCALE_MODE_NONE, TEXT_SCALE_MODE_VIEWPORT);
111  vtkGetMacro(TextScaleMode, int);
112  void SetTextScaleModeToNone() { this->SetTextScaleMode(TEXT_SCALE_MODE_NONE); }
113  void SetTextScaleModeToProp() { this->SetTextScaleMode(TEXT_SCALE_MODE_PROP); }
114  void SetTextScaleModeToViewport() { this->SetTextScaleMode(TEXT_SCALE_MODE_VIEWPORT); }
116 
117  enum
118  {
119  TEXT_SCALE_MODE_NONE = 0,
121  TEXT_SCALE_MODE_VIEWPORT
122  };
123 
125 
130  vtkSetMacro(UseBorderAlign, vtkTypeBool);
131  vtkGetMacro(UseBorderAlign, vtkTypeBool);
132  vtkBooleanMacro(UseBorderAlign, vtkTypeBool);
134 
136 
154 
156 
164  vtkGetMacro(Orientation, float);
166 
168 
172  vtkGetObjectMacro(TextProperty, vtkTextProperty);
174 
180  virtual void GetBoundingBox(vtkViewport* vport, double bbox[4]);
181 
185  virtual void GetSize(vtkViewport* vport, double size[2]);
186 
188 
193  virtual int SetConstrainedFontSize(vtkViewport*, int targetWidth, int targetHeight);
194  static int SetConstrainedFontSize(vtkTextActor*, vtkViewport*, int targetWidth, int targetHeight);
196 
203  static int SetMultipleConstrainedFontSize(vtkViewport*, int targetWidth, int targetHeight,
204  vtkTextActor** actors, int nbOfActors, int* maxResultingSize);
205 
215  virtual void SetNonLinearFontScale(double exponent, int target);
216 
221  void SpecifiedToDisplay(double* pos, vtkViewport* vport, int specified);
222 
227  void DisplayToSpecified(double* pos, vtkViewport* vport, int specified);
228 
233  virtual void ComputeScaledFont(vtkViewport* viewport);
234 
236 
240  vtkGetObjectMacro(ScaledTextProperty, vtkTextProperty);
242 
250  static float GetFontScale(vtkViewport* viewport);
251 
260 
262 
267  int RenderOpaqueGeometry(vtkViewport* viewport) override;
268  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
269  int RenderOverlay(vtkViewport* viewport) override;
271 
276 
277 protected:
281  virtual bool RenderImage(vtkTextProperty* tprop, vtkViewport* viewport);
282 
286  virtual bool GetImageBoundingBox(vtkTextProperty* tprop, vtkViewport* viewport, int bbox[4]);
287 
289  ~vtkTextActor() override;
290 
291  int MinimumSize[2];
295  float Orientation;
297 
303  int LastSize[2];
304  int LastOrigin[2];
305  char* Input;
309 
311 
312  // Stuff needed to display the image text as a texture map.
315 
316  virtual void ComputeRectangle(vtkViewport* viewport);
317 
331  virtual int UpdateRectangle(vtkViewport* viewport);
332 
333 private:
334  vtkTextActor(const vtkTextActor&) = delete;
335  void operator=(const vtkTextActor&) = delete;
336 };
337 
338 #endif
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
a simple class to control print indentation
Definition: vtkIndent.h:34
represent and manipulate 3D points
Definition: vtkPoints.h:34
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
represent surface properties of a 2D image
Definition: vtkProperty2D.h:38
An actor that displays text.
Definition: vtkTextActor.h:51
vtkTextProperty * TextProperty
Definition: vtkTextActor.h:298
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
static int SetConstrainedFontSize(vtkTextActor *, vtkViewport *, int targetWidth, int targetHeight)
int GetAlignmentPoint()
double FormerOrientation
Definition: vtkTextActor.h:307
void SetOrientation(float orientation)
Counterclockwise rotation around the Alignment point.
float MaximumLineHeight
Definition: vtkTextActor.h:292
void ShallowCopy(vtkProp *prop) override
Shallow copy of this text actor.
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
virtual bool RenderImage(vtkTextProperty *tprop, vtkViewport *viewport)
Render Input to Image using the supplied font property.
vtkTransform * Transform
Definition: vtkTextActor.h:302
vtkTextProperty * ScaledTextProperty
Definition: vtkTextActor.h:310
int RenderOpaqueGeometry(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
void SetInput(const char *inputString)
Set the text string to be displayed.
virtual int UpdateRectangle(vtkViewport *viewport)
Ensure that Rectangle and RectanglePoints are valid and up-to-date.
void SetAlignmentPoint(int point)
This method is being deprecated.
char * GetInput()
virtual bool GetImageBoundingBox(vtkTextProperty *tprop, vtkViewport *viewport, int bbox[4])
Get the bounding box for Input using the supplied font property.
~vtkTextActor() override
vtkImageData * ImageData
Definition: vtkTextActor.h:299
vtkTextRenderer * TextRenderer
Definition: vtkTextActor.h:300
static vtkTextActor * New()
Instantiate object with a rectangle in normaled view coordinates of (0.2,0.85, 0.8,...
vtkPolyData * Rectangle
Definition: vtkTextActor.h:313
vtkTimeStamp BuildTime
Definition: vtkTextActor.h:301
virtual void ComputeRectangle(vtkViewport *viewport)
double FontScaleExponent
Definition: vtkTextActor.h:293
bool InputRendered
Definition: vtkTextActor.h:306
void SetTextScaleModeToProp()
Definition: vtkTextActor.h:113
virtual void SetNonLinearFontScale(double exponent, int target)
Enable non-linear scaling of font sizes.
virtual void GetSize(vtkViewport *vport, double size[2])
Syntactic sugar to get the size of text instead of the entire bounding box.
void SetTextScaleModeToViewport()
Definition: vtkTextActor.h:114
vtkPoints * RectanglePoints
Definition: vtkTextActor.h:314
static float GetFontScale(vtkViewport *viewport)
Provide a font scaling based on a viewport.
virtual void SetTextProperty(vtkTextProperty *p)
Set/Get the text property.
vtkTypeBool UseBorderAlign
Definition: vtkTextActor.h:296
virtual int SetConstrainedFontSize(vtkViewport *, int targetWidth, int targetHeight)
Set and return the font size required to make this mapper fit in a given target rectangle (width x he...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float Orientation
Definition: vtkTextActor.h:295
void SetTextScaleModeToNone()
Definition: vtkTextActor.h:112
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Definition: vtkTextActor.h:268
static int SetMultipleConstrainedFontSize(vtkViewport *, int targetWidth, int targetHeight, vtkTextActor **actors, int nbOfActors, int *maxResultingSize)
Set and return the font size required to make each element of an array of mappers fit in a given rect...
void SpecifiedToDisplay(double *pos, vtkViewport *vport, int specified)
This is just a simple coordinate conversion method used in the render process.
void DisplayToSpecified(double *pos, vtkViewport *vport, int specified)
This is just a simple coordinate conversion method used in the render process.
virtual void ComputeScaledFont(vtkViewport *viewport)
Compute the scale the font should be given the viewport.
virtual void GetBoundingBox(vtkViewport *vport, double bbox[4])
Return the bounding box coordinates of the text in pixels.
represent text properties.
Interface for generating images and path data from string data, using multiple backends.
actor that draws 2D data with texture support
record modification and/or execution time
Definition: vtkTimeStamp.h:33
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:55
abstract specification for Viewports
Definition: vtkViewport.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ point
Definition: vtkX3D.h:242
@ orientation
Definition: vtkX3D.h:268
@ size
Definition: vtkX3D.h:259
int vtkTypeBool
Definition: vtkABI.h:69
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)