VTK  9.1.20211115
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 =========================================================================*/
73 #ifndef vtkBalloonRepresentation_h
74 #define vtkBalloonRepresentation_h
75 
76 #include "vtkInteractionWidgetsModule.h" // For export macro
78 
79 class vtkTextMapper;
80 class vtkTextActor;
81 class vtkTextProperty;
82 class vtkPoints;
83 class vtkCellArray;
84 class vtkPolyData;
86 class vtkActor2D;
87 class vtkProperty2D;
88 class vtkImageData;
89 class vtkTexture;
90 class vtkPoints;
91 class vtkPolyData;
93 class vtkTexturedActor2D;
94 
95 class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
96 {
97 public:
102 
104 
108  void PrintSelf(ostream& os, vtkIndent indent) override;
110 
112 
115  virtual void SetBalloonImage(vtkImageData* img);
116  vtkGetObjectMacro(BalloonImage, vtkImageData);
118 
120 
123  vtkGetStringMacro(BalloonText);
124  vtkSetStringMacro(BalloonText);
126 
128 
134  vtkSetVector2Macro(ImageSize, int);
135  vtkGetVector2Macro(ImageSize, int);
137 
139 
143  vtkGetObjectMacro(TextProperty, vtkTextProperty);
145 
147 
151  virtual void SetFrameProperty(vtkProperty2D* p);
152  vtkGetObjectMacro(FrameProperty, vtkProperty2D);
154 
156 
159  virtual void SetImageProperty(vtkProperty2D* p);
160  vtkGetObjectMacro(ImageProperty, vtkProperty2D);
162 
163  enum
164  {
165  ImageLeft = 0,
168  ImageTop
169  };
170 
172 
179  vtkSetMacro(BalloonLayout, int);
180  vtkGetMacro(BalloonLayout, int);
181  void SetBalloonLayoutToImageLeft() { this->SetBalloonLayout(ImageLeft); }
182  void SetBalloonLayoutToImageRight() { this->SetBalloonLayout(ImageRight); }
183  void SetBalloonLayoutToImageBottom() { this->SetBalloonLayout(ImageBottom); }
184  void SetBalloonLayoutToImageTop() { this->SetBalloonLayout(ImageTop); }
185  void SetBalloonLayoutToTextLeft() { this->SetBalloonLayout(ImageRight); }
186  void SetBalloonLayoutToTextRight() { this->SetBalloonLayout(ImageLeft); }
187  void SetBalloonLayoutToTextTop() { this->SetBalloonLayout(ImageBottom); }
188  void SetBalloonLayoutToTextBottom() { this->SetBalloonLayout(ImageTop); }
190 
192 
198  vtkSetVector2Macro(Offset, int);
199  vtkGetVector2Macro(Offset, int);
201 
203 
207  vtkSetClampMacro(Padding, int, 0, 100);
208  vtkGetMacro(Padding, int);
210 
212 
215  void StartWidgetInteraction(double e[2]) override;
216  void EndWidgetInteraction(double e[2]) override;
217  void BuildRepresentation() override;
218  int ComputeInteractionState(int X, int Y, int modify = 0) override;
220 
222 
226  int RenderOverlay(vtkViewport* viewport) override;
228 
233  {
234  Outside = 0,
236  OnImage
237  };
238 
239 protected:
242 
243  // The balloon text and image
244  char* BalloonText;
246 
247  // The layout of the balloon
249 
250  // Controlling placement
251  int Padding;
252  int Offset[2];
253  int ImageSize[2];
254 
255  // Represent the text
259 
260  // Represent the image
267 
268  // The frame
275 
276  // Internal variable controlling rendering process
279 
280  // Helper methods
281  void AdjustImageSize(double imageSize[2]);
282  void ScaleImage(double imageSize[2], double scale);
283 
284 private:
286  void operator=(const vtkBalloonRepresentation&) = delete;
287 };
288 
289 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:149
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.
_InteractionState
State is either outside, or inside (on the text portion of the image).
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.
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:290
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
represent and manipulate 3D points
Definition: vtkPoints.h:143
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:194
represent surface properties of a 2D image
An actor that displays text.
Definition: vtkTextActor.h:160
2D text annotation
represent text properties.
handles properties associated with a texture map
Definition: vtkTexture.h:175
actor that draws 2D data with texture support
abstract specification for Viewports
Definition: vtkViewport.h:47
abstract class defines interface between the widget and widget representation classes
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ scale
Definition: vtkX3D.h:235