VTK  9.3.0
vtkTextActor.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
29 #ifndef vtkTextActor_h
30 #define vtkTextActor_h
31 
32 #include "vtkRenderingCoreModule.h" // For export macro
33 #include "vtkTexturedActor2D.h"
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 class vtkImageData;
37 class vtkPoints;
38 class vtkPolyData;
40 class vtkProperty2D;
41 class vtkTextProperty;
42 class vtkTextRenderer;
43 class vtkTransform;
44 
45 class VTKRENDERINGCORE_EXPORT vtkTextActor : public vtkTexturedActor2D
46 {
47 public:
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
55  static vtkTextActor* New();
56 
61  void ShallowCopy(vtkProp* prop) override;
62 
64 
70  void SetInput(const char* inputString);
71  char* GetInput();
73 
75 
80  vtkSetVector2Macro(MinimumSize, int);
81  vtkGetVector2Macro(MinimumSize, int);
83 
85 
91  vtkSetMacro(MaximumLineHeight, float);
92  vtkGetMacro(MaximumLineHeight, float);
94 
96 
105  vtkSetClampMacro(TextScaleMode, int, TEXT_SCALE_MODE_NONE, TEXT_SCALE_MODE_VIEWPORT);
106  vtkGetMacro(TextScaleMode, int);
107  void SetTextScaleModeToNone() { this->SetTextScaleMode(TEXT_SCALE_MODE_NONE); }
108  void SetTextScaleModeToProp() { this->SetTextScaleMode(TEXT_SCALE_MODE_PROP); }
109  void SetTextScaleModeToViewport() { this->SetTextScaleMode(TEXT_SCALE_MODE_VIEWPORT); }
111 
112  enum
113  {
114  TEXT_SCALE_MODE_NONE = 0,
116  TEXT_SCALE_MODE_VIEWPORT
117  };
118 
120 
125  vtkSetMacro(UseBorderAlign, vtkTypeBool);
126  vtkGetMacro(UseBorderAlign, vtkTypeBool);
127  vtkBooleanMacro(UseBorderAlign, vtkTypeBool);
129 
131 
149 
151 
159  vtkGetMacro(Orientation, float);
161 
163 
167  vtkGetObjectMacro(TextProperty, vtkTextProperty);
169 
175  virtual void GetBoundingBox(vtkViewport* vport, double bbox[4]);
176 
180  virtual void GetSize(vtkViewport* vport, double size[2]);
181 
183 
188  virtual int SetConstrainedFontSize(vtkViewport*, int targetWidth, int targetHeight);
189  static int SetConstrainedFontSize(vtkTextActor*, vtkViewport*, int targetWidth, int targetHeight);
191 
198  static int SetMultipleConstrainedFontSize(vtkViewport*, int targetWidth, int targetHeight,
199  vtkTextActor** actors, int nbOfActors, int* maxResultingSize);
200 
210  virtual void SetNonLinearFontScale(double exponent, int target);
211 
216  void SpecifiedToDisplay(double* pos, vtkViewport* vport, int specified);
217 
222  void DisplayToSpecified(double* pos, vtkViewport* vport, int specified);
223 
228  virtual void ComputeScaledFont(vtkViewport* viewport);
229 
231 
235  vtkGetObjectMacro(ScaledTextProperty, vtkTextProperty);
237 
245  static float GetFontScale(vtkViewport* viewport);
246 
255 
257 
262  int RenderOpaqueGeometry(vtkViewport* viewport) override;
263  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
264  int RenderOverlay(vtkViewport* viewport) override;
266 
271 
272 protected:
276  virtual bool RenderImage(vtkTextProperty* tprop, vtkViewport* viewport);
277 
281  virtual bool GetImageBoundingBox(vtkTextProperty* tprop, vtkViewport* viewport, int bbox[4]);
282 
284  ~vtkTextActor() override;
285 
286  int MinimumSize[2];
290  float Orientation;
292 
298  int LastSize[2];
299  int LastOrigin[2];
300  char* Input;
304 
306 
307  // Stuff needed to display the image text as a texture map.
310 
311  virtual void ComputeRectangle(vtkViewport* viewport);
312 
326  virtual int UpdateRectangle(vtkViewport* viewport);
327 
328 private:
329  vtkTextActor(const vtkTextActor&) = delete;
330  void operator=(const vtkTextActor&) = delete;
331 };
332 
333 VTK_ABI_NAMESPACE_END
334 #endif
topologically and geometrically regular array of data
Definition: vtkImageData.h:43
a simple class to control print indentation
Definition: vtkIndent.h:29
represent and manipulate 3D points
Definition: vtkPoints.h:29
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:80
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:46
represent surface properties of a 2D image
Definition: vtkProperty2D.h:30
An actor that displays text.
Definition: vtkTextActor.h:46
vtkTextProperty * TextProperty
Definition: vtkTextActor.h:293
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
static int SetConstrainedFontSize(vtkTextActor *, 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...
int GetAlignmentPoint()
This method is being deprecated.
double FormerOrientation
Definition: vtkTextActor.h:302
void SetOrientation(float orientation)
Counterclockwise rotation around the Alignment point.
float MaximumLineHeight
Definition: vtkTextActor.h:287
void ShallowCopy(vtkProp *prop) override
Shallow copy of this text actor.
int RenderOverlay(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
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:297
vtkTextProperty * ScaledTextProperty
Definition: vtkTextActor.h:305
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()
Set the text string to be displayed.
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:294
vtkTextRenderer * TextRenderer
Definition: vtkTextActor.h:295
static vtkTextActor * New()
Instantiate object with a rectangle in normaled view coordinates of (0.2,0.85, 0.8,...
vtkPolyData * Rectangle
Definition: vtkTextActor.h:308
vtkTimeStamp BuildTime
Definition: vtkTextActor.h:296
virtual void ComputeRectangle(vtkViewport *viewport)
double FontScaleExponent
Definition: vtkTextActor.h:288
bool InputRendered
Definition: vtkTextActor.h:301
void SetTextScaleModeToProp()
Set how text should be scaled.
Definition: vtkTextActor.h:108
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()
Set how text should be scaled.
Definition: vtkTextActor.h:109
vtkPoints * RectanglePoints
Definition: vtkTextActor.h:309
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:291
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:290
void SetTextScaleModeToNone()
Set how text should be scaled.
Definition: vtkTextActor.h:107
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
Definition: vtkTextActor.h:263
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:25
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:50
abstract specification for Viewports
Definition: vtkViewport.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:28
@ point
Definition: vtkX3D.h:236
@ orientation
Definition: vtkX3D.h:262
@ size
Definition: vtkX3D.h:253
int vtkTypeBool
Definition: vtkABI.h:64
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)