VTK  9.1.0
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 =========================================================================*/
54 #ifndef vtkBalloonRepresentation_h
55 #define vtkBalloonRepresentation_h
56 
57 #include "vtkInteractionWidgetsModule.h" // For export macro
59 
60 class vtkTextMapper;
61 class vtkTextActor;
62 class vtkTextProperty;
63 class vtkPoints;
64 class vtkCellArray;
65 class vtkPolyData;
67 class vtkActor2D;
68 class vtkProperty2D;
69 class vtkImageData;
70 class vtkTexture;
71 class vtkPoints;
72 class vtkPolyData;
74 class vtkTexturedActor2D;
75 
76 class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
77 {
78 public:
83 
85 
89  void PrintSelf(ostream& os, vtkIndent indent) override;
91 
93 
96  virtual void SetBalloonImage(vtkImageData* img);
97  vtkGetObjectMacro(BalloonImage, vtkImageData);
99 
101 
104  vtkGetStringMacro(BalloonText);
105  vtkSetStringMacro(BalloonText);
107 
109 
115  vtkSetVector2Macro(ImageSize, int);
116  vtkGetVector2Macro(ImageSize, int);
118 
120 
124  vtkGetObjectMacro(TextProperty, vtkTextProperty);
126 
128 
132  virtual void SetFrameProperty(vtkProperty2D* p);
133  vtkGetObjectMacro(FrameProperty, vtkProperty2D);
135 
137 
140  virtual void SetImageProperty(vtkProperty2D* p);
141  vtkGetObjectMacro(ImageProperty, vtkProperty2D);
143 
144  enum
145  {
146  ImageLeft = 0,
149  ImageTop
150  };
151 
153 
160  vtkSetMacro(BalloonLayout, int);
161  vtkGetMacro(BalloonLayout, int);
162  void SetBalloonLayoutToImageLeft() { this->SetBalloonLayout(ImageLeft); }
163  void SetBalloonLayoutToImageRight() { this->SetBalloonLayout(ImageRight); }
164  void SetBalloonLayoutToImageBottom() { this->SetBalloonLayout(ImageBottom); }
165  void SetBalloonLayoutToImageTop() { this->SetBalloonLayout(ImageTop); }
166  void SetBalloonLayoutToTextLeft() { this->SetBalloonLayout(ImageRight); }
167  void SetBalloonLayoutToTextRight() { this->SetBalloonLayout(ImageLeft); }
168  void SetBalloonLayoutToTextTop() { this->SetBalloonLayout(ImageBottom); }
169  void SetBalloonLayoutToTextBottom() { this->SetBalloonLayout(ImageTop); }
171 
173 
179  vtkSetVector2Macro(Offset, int);
180  vtkGetVector2Macro(Offset, int);
182 
184 
188  vtkSetClampMacro(Padding, int, 0, 100);
189  vtkGetMacro(Padding, int);
191 
193 
196  void StartWidgetInteraction(double e[2]) override;
197  void EndWidgetInteraction(double e[2]) override;
198  void BuildRepresentation() override;
199  int ComputeInteractionState(int X, int Y, int modify = 0) override;
201 
203 
207  int RenderOverlay(vtkViewport* viewport) override;
209 
214  {
215  Outside = 0,
217  OnImage
218  };
219 
220 protected:
223 
224  // The balloon text and image
225  char* BalloonText;
227 
228  // The layout of the balloon
230 
231  // Controlling placement
232  int Padding;
233  int Offset[2];
234  int ImageSize[2];
235 
236  // Represent the text
240 
241  // Represent the image
248 
249  // The frame
256 
257  // Internal variable controlling rendering process
260 
261  // Helper methods
262  void AdjustImageSize(double imageSize[2]);
263  void ScaleImage(double imageSize[2], double scale);
264 
265 private:
267  void operator=(const vtkBalloonRepresentation&) = delete;
268 };
269 
270 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:40
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:181
topologically and geometrically regular array of data
Definition: vtkImageData.h:48
a simple class to control print indentation
Definition: vtkIndent.h:34
represent and manipulate 3D points
Definition: vtkPoints.h:34
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
represent surface properties of a 2D image
Definition: vtkProperty2D.h:38
An actor that displays text.
Definition: vtkTextActor.h:51
2D text annotation
Definition: vtkTextMapper.h:48
represent text properties.
handles properties associated with a texture map
Definition: vtkTexture.h:66
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