VTK  9.2.6
vtkBalloonRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBalloonRepresentation.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 =========================================================================*/
76 #ifndef vtkBalloonRepresentation_h
77 #define vtkBalloonRepresentation_h
78 
79 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_2_0
80 #include "vtkInteractionWidgetsModule.h" // For export macro
82 
83 class vtkTextMapper;
84 class vtkTextActor;
85 class vtkTextProperty;
86 class vtkPoints;
87 class vtkCellArray;
88 class vtkPolyData;
90 class vtkActor2D;
91 class vtkProperty2D;
92 class vtkImageData;
93 class vtkTexture;
94 class vtkPoints;
95 class vtkPolyData;
97 class vtkTexturedActor2D;
98 
99 class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
100 {
101 public:
106 
108 
112  void PrintSelf(ostream& os, vtkIndent indent) override;
114 
116 
119  virtual void SetBalloonImage(vtkImageData* img);
120  vtkGetObjectMacro(BalloonImage, vtkImageData);
122 
124 
127  vtkGetStringMacro(BalloonText);
128  vtkSetStringMacro(BalloonText);
130 
132 
138  vtkSetVector2Macro(ImageSize, int);
139  vtkGetVector2Macro(ImageSize, int);
141 
143 
147  vtkGetObjectMacro(TextProperty, vtkTextProperty);
149 
151 
155  virtual void SetFrameProperty(vtkProperty2D* p);
156  vtkGetObjectMacro(FrameProperty, vtkProperty2D);
158 
160 
163  virtual void SetImageProperty(vtkProperty2D* p);
164  vtkGetObjectMacro(ImageProperty, vtkProperty2D);
166 
167  enum
168  {
169  ImageLeft = 0,
172  ImageTop
173  };
174 
176 
183  vtkSetMacro(BalloonLayout, int);
184  vtkGetMacro(BalloonLayout, int);
185  void SetBalloonLayoutToImageLeft() { this->SetBalloonLayout(ImageLeft); }
186  void SetBalloonLayoutToImageRight() { this->SetBalloonLayout(ImageRight); }
187  void SetBalloonLayoutToImageBottom() { this->SetBalloonLayout(ImageBottom); }
188  void SetBalloonLayoutToImageTop() { this->SetBalloonLayout(ImageTop); }
189  void SetBalloonLayoutToTextLeft() { this->SetBalloonLayout(ImageRight); }
190  void SetBalloonLayoutToTextRight() { this->SetBalloonLayout(ImageLeft); }
191  void SetBalloonLayoutToTextTop() { this->SetBalloonLayout(ImageBottom); }
192  void SetBalloonLayoutToTextBottom() { this->SetBalloonLayout(ImageTop); }
194 
196 
202  vtkSetVector2Macro(Offset, int);
203  vtkGetVector2Macro(Offset, int);
205 
207 
211  vtkSetClampMacro(Padding, int, 0, 100);
212  vtkGetMacro(Padding, int);
214 
216 
219  void StartWidgetInteraction(double e[2]) override;
220  void EndWidgetInteraction(double e[2]) override;
221  void BuildRepresentation() override;
222  int ComputeInteractionState(int X, int Y, int modify = 0) override;
224 
226 
230  int RenderOverlay(vtkViewport* viewport) override;
232 
237  {
238  Outside = 0,
240  OnImage
241  };
242 #if !defined(VTK_LEGACY_REMOVE)
243  VTK_DEPRECATED_IN_9_2_0("because leading underscore is reserved")
245 #endif
246 
247 protected:
250 
251  // The balloon text and image
252  char* BalloonText;
254 
255  // The layout of the balloon
257 
258  // Controlling placement
259  int Padding;
260  int Offset[2];
261  int ImageSize[2];
262 
263  // Represent the text
267 
268  // Represent the image
275 
276  // The frame
283 
284  // Internal variable controlling rendering process
287 
288  // Helper methods
289  void AdjustImageSize(double imageSize[2]);
290  void ScaleImage(double imageSize[2], double scale);
291 
292 private:
294  void operator=(const vtkBalloonRepresentation&) = delete;
295 };
296 
297 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:155
represent the vtkBalloonWidget
void SetBalloonLayoutToTextRight()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToImageLeft()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToTextTop()
Specify the layout of the image and text within the balloon.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
void BuildRepresentation() override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void SetBalloonImage(vtkImageData *img)
Specify/retrieve the image to display in the balloon.
void SetBalloonLayoutToImageRight()
Specify the layout of the image and text within the balloon.
vtkPolyDataMapper2D * TextureMapper
void EndWidgetInteraction(double e[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
void StartWidgetInteraction(double e[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
int ComputeInteractionState(int X, int Y, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void SetTextProperty(vtkTextProperty *p)
Set/get the text property (relevant only if text is shown).
vtkPolyDataMapper2D * FrameMapper
void SetBalloonLayoutToImageTop()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToTextLeft()
Specify the layout of the image and text within the balloon.
void AdjustImageSize(double imageSize[2])
void SetBalloonLayoutToImageBottom()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToTextBottom()
Specify the layout of the image and text within the balloon.
InteractionStateType
State is either outside, or inside (on the text portion of the image).
virtual void SetImageProperty(vtkProperty2D *p)
Set/get the image property (relevant only if an image is shown).
~vtkBalloonRepresentation() override
void ScaleImage(double imageSize[2], double scale)
void ReleaseGraphicsResources(vtkWindow *w) override
Methods required by vtkProp superclass.
static vtkBalloonRepresentation * New()
Instantiate the class.
int RenderOverlay(vtkViewport *viewport) override
Methods required by vtkProp superclass.
virtual void SetFrameProperty(vtkProperty2D *p)
Set/get the frame property (relevant only if text is shown).
object to represent cell connectivity
Definition: vtkCellArray.h:296
topologically and geometrically regular array of data
Definition: vtkImageData.h:163
a simple class to control print indentation
Definition: vtkIndent.h:119
represent and manipulate 3D points
Definition: vtkPoints.h:149
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:200
represent surface properties of a 2D image
An actor that displays text.
Definition: vtkTextActor.h:166
2D text annotation
represent text properties.
handles properties associated with a texture map
Definition: vtkTexture.h:178
actor that draws 2D data with texture support
abstract specification for Viewports
Definition: vtkViewport.h:56
abstract class defines interface between the widget and widget representation classes
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ scale
Definition: vtkX3D.h:235
#define VTK_DEPRECATED_IN_9_2_0(reason)