VTK  9.3.0
vtkTextRepresentation.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
27 #ifndef vtkTextRepresentation_h
28 #define vtkTextRepresentation_h
29 
31 #include "vtkInteractionWidgetsModule.h" // For export macro
32 
33 VTK_ABI_NAMESPACE_BEGIN
34 class vtkRenderer;
35 class vtkTextActor;
36 class vtkTextProperty;
37 class vtkTextRepresentationObserver;
38 
39 class VTKINTERACTIONWIDGETS_EXPORT vtkTextRepresentation : public vtkBorderRepresentation
40 {
41 public:
46 
48 
52  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
56 
60  void SetTextActor(vtkTextActor* textActor);
61  vtkGetObjectMacro(TextActor, vtkTextActor);
63 
65 
68  void SetText(const char* text);
69  const char* GetText();
71 
75  void BuildRepresentation() override;
76  void GetSize(double size[2]) override
77  {
78  size[0] = 2.0;
79  size[1] = 2.0;
80  }
81 
83 
87  void GetActors2D(vtkPropCollection*) override;
89  int RenderOverlay(vtkViewport*) override;
94 
106  void SetWindowLocation(int enumLocation) override;
107 
109 
113  void SetPosition(double x, double y) override;
114  void SetPosition(double pos[2]) override { this->SetPosition(pos[0], pos[1]); }
116 
118 
121  void ExecuteTextPropertyModifiedEvent(vtkObject* obj, unsigned long enumEvent, void* p);
122  void ExecuteTextActorModifiedEvent(vtkObject* obj, unsigned long enumEvent, void* p);
124 
126 
131  vtkSetClampMacro(PaddingLeft, int, 0, 4000);
132  vtkGetMacro(PaddingLeft, int);
134 
136 
141  vtkSetClampMacro(PaddingRight, int, 0, 4000);
142  vtkGetMacro(PaddingRight, int);
144 
146 
151  vtkSetClampMacro(PaddingTop, int, 0, 4000);
152  vtkGetMacro(PaddingTop, int);
154 
156 
161  vtkSetClampMacro(PaddingBottom, int, 0, 4000);
162  vtkGetMacro(PaddingBottom, int);
164 
166 
171  void SetPadding(int padding);
173 
174 protected:
177 
178  // Initialize text actor
179  virtual void InitializeTextActor();
180 
181  // Check and adjust boundaries according to the size of the text
182  virtual void CheckTextBoundary();
183 
184  // the text to manage
187 
188  // observer to observe internal TextActor and TextProperty
189  vtkTextRepresentationObserver* Observer;
190 
191  int PaddingLeft = 0;
192  int PaddingRight = 0;
193  int PaddingTop = 0;
194  int PaddingBottom = 0;
195 
196 private:
198  void operator=(const vtkTextRepresentation&) = delete;
199 };
200 
201 VTK_ABI_NAMESPACE_END
202 #endif
represent a vtkBorderWidget
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract base class for most VTK objects
Definition: vtkObject.h:61
an ordered list of Props
abstract specification for renderers
Definition: vtkRenderer.h:71
An actor that displays text.
Definition: vtkTextActor.h:55
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.
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
void SetWindowLocation(int enumLocation) override
Set the text position, by enumeration ( vtkBorderRepresentation::AnyLocation = 0, vtkBorderRepresenta...
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:54
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
@ size
Definition: vtkX3D.h:253
int vtkTypeBool
Definition: vtkABI.h:64