VTK  9.1.0
vtkTextRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTextRepresentation.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 vtkTextRepresentation_h
28 #define vtkTextRepresentation_h
29 
31 #include "vtkInteractionWidgetsModule.h" // For export macro
32 
33 class vtkRenderer;
34 class vtkTextActor;
35 class vtkTextProperty;
36 class vtkTextRepresentationObserver;
37 
38 class VTKINTERACTIONWIDGETS_EXPORT vtkTextRepresentation : public vtkBorderRepresentation
39 {
40 public:
45 
47 
51  void PrintSelf(ostream& os, vtkIndent indent) override;
53 
55 
59  void SetTextActor(vtkTextActor* textActor);
60  vtkGetObjectMacro(TextActor, vtkTextActor);
62 
64 
67  void SetText(const char* text);
68  const char* GetText();
70 
74  void BuildRepresentation() override;
75  void GetSize(double size[2]) override
76  {
77  size[0] = 2.0;
78  size[1] = 2.0;
79  }
80 
82 
86  void GetActors2D(vtkPropCollection*) override;
88  int RenderOverlay(vtkViewport*) override;
93 
94  enum
95  {
96  AnyLocation = 0,
102  UpperCenter
103  };
104 
106 
117  virtual void SetWindowLocation(int enumLocation);
118  vtkGetMacro(WindowLocation, int);
120 
122 
126  void SetPosition(double x, double y) override;
127  void SetPosition(double pos[2]) override { this->SetPosition(pos[0], pos[1]); }
129 
131 
134  void ExecuteTextPropertyModifiedEvent(vtkObject* obj, unsigned long enumEvent, void* p);
135  void ExecuteTextActorModifiedEvent(vtkObject* obj, unsigned long enumEvent, void* p);
137 
139 
144  vtkSetClampMacro(PaddingLeft, int, 0, 4000);
145  vtkGetMacro(PaddingLeft, int);
147 
149 
154  vtkSetClampMacro(PaddingRight, int, 0, 4000);
155  vtkGetMacro(PaddingRight, int);
157 
159 
164  vtkSetClampMacro(PaddingTop, int, 0, 4000);
165  vtkGetMacro(PaddingTop, int);
167 
169 
174  vtkSetClampMacro(PaddingBottom, int, 0, 4000);
175  vtkGetMacro(PaddingBottom, int);
177 
179 
184  void SetPadding(int padding);
186 
187 protected:
190 
191  // Initialize text actor
192  virtual void InitializeTextActor();
193 
194  // Check and adjust boundaries according to the size of the text
195  virtual void CheckTextBoundary();
196 
197  // the text to manage
200 
201  // Window location by enumeration
203  virtual void UpdateWindowLocation();
204 
205  // observer to observe internal TextActor and TextProperty
206  vtkTextRepresentationObserver* Observer;
207 
208  int PaddingLeft = 0;
209  int PaddingRight = 0;
210  int PaddingTop = 0;
211  int PaddingBottom = 0;
212 
213 private:
215  void operator=(const vtkTextRepresentation&) = delete;
216 };
217 
218 #endif
represent a vtkBorderWidget
a simple class to control print indentation
Definition: vtkIndent.h:34
abstract base class for most VTK objects
Definition: vtkObject.h:63
an ordered list of Props
abstract specification for renderers
Definition: vtkRenderer.h:73
An actor that displays text.
Definition: vtkTextActor.h:51
represent text properties.
represent text for vtkTextWidget
void GetSize(double size[2]) override
Subclasses should implement these methods.
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
virtual void InitializeTextActor()
virtual void CheckTextBoundary()
void ReleaseGraphicsResources(vtkWindow *) override
These methods are necessary to make this representation behave as a vtkProp.
virtual void UpdateWindowLocation()
int RenderOverlay(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
const char * GetText()
Get/Set the text string display by this representation.
vtkTypeBool HasTranslucentPolygonalGeometry() override
These methods are necessary to make this representation behave as a vtkProp.
void SetTextActor(vtkTextActor *textActor)
Specify the vtkTextActor to manage.
static vtkTextRepresentation * New()
Instantiate class.
void SetText(const char *text)
Get/Set the text string display by this representation.
void SetPadding(int padding)
Set the padding between the text and the left/right/top/bottom border, in pixels unit.
void SetPosition(double x, double y) override
Set the text position, by overriding the same function of vtkBorderRepresentation so that the Modifie...
void BuildRepresentation() override
Satisfy the superclasses API.
void SetPosition(double pos[2]) override
Set the text position, by overriding the same function of vtkBorderRepresentation so that the Modifie...
void ExecuteTextActorModifiedEvent(vtkObject *obj, unsigned long enumEvent, void *p)
Internal.
void ExecuteTextPropertyModifiedEvent(vtkObject *obj, unsigned long enumEvent, void *p)
Internal.
void GetActors2D(vtkPropCollection *) override
These methods are necessary to make this representation behave as a vtkProp.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
vtkTextProperty * TextProperty
virtual void SetWindowLocation(int enumLocation)
Set the text position, by enumeration ( AnyLocation = 0, LowerLeftCorner, LowerRightCorner,...
vtkTextRepresentationObserver * Observer
~vtkTextRepresentation() override
int RenderOpaqueGeometry(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
abstract specification for Viewports
Definition: vtkViewport.h:47
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ size
Definition: vtkX3D.h:259
int vtkTypeBool
Definition: vtkABI.h:69