VTK  9.0.1
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:
44  static vtkTextRepresentation* New();
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;
87  void ReleaseGraphicsResources(vtkWindow*) override;
88  int RenderOverlay(vtkViewport*) override;
89  int RenderOpaqueGeometry(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 
138 protected:
140  ~vtkTextRepresentation() override;
141 
142  // Initialize text actor
143  virtual void InitializeTextActor();
144 
145  // Check and adjust boundaries according to the size of the text
146  virtual void CheckTextBoundary();
147 
148  // the text to manage
151 
152  // Window location by enumeration
154  virtual void UpdateWindowLocation();
155 
156  // observer to observe internal TextActor and TextProperty
157  vtkTextRepresentationObserver* Observer;
158 
159 private:
161  void operator=(const vtkTextRepresentation&) = delete;
162 };
163 
164 #endif
int RenderOverlay(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
abstract base class for most VTK objects
Definition: vtkObject.h:62
virtual void SetPosition(float x[2])
Specify opposite corners of the box defining the boundary of the widget.
vtkTypeBool HasTranslucentPolygonalGeometry() override
These methods are necessary to make this representation behave as a vtkProp.
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkTextProperty * TextProperty
vtkTextRepresentationObserver * Observer
void GetSize(double size[2]) override
Subclasses should implement these methods.
int RenderOpaqueGeometry(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
void GetActors2D(vtkPropCollection *) override
These methods are necessary to make this representation behave as a vtkProp.
abstract specification for renderers
Definition: vtkRenderer.h:67
represent text for vtkTextWidget
static vtkBorderRepresentation * New()
Instantiate this class.
an ordered list of Props
void PrintSelf(ostream &os, vtkIndent indent) override
Define standard methods.
int vtkTypeBool
Definition: vtkABI.h:69
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
An actor that displays text.
Definition: vtkTextActor.h:50
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
These methods are necessary to make this representation behave as a vtkProp.
void BuildRepresentation() override
Subclasses should implement these methods.
a simple class to control print indentation
Definition: vtkIndent.h:33
void ReleaseGraphicsResources(vtkWindow *) override
These methods are necessary to make this representation behave as a vtkProp.
represent a vtkBorderWidget
represent text properties.
void SetPosition(double pos[2]) override
Set the text position, by overriding the same function of vtkBorderRepresentation so that the Modifie...