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
60class vtkTextMapper;
61class vtkTextActor;
62class vtkTextProperty;
63class vtkPoints;
64class vtkCellArray;
65class vtkPolyData;
67class vtkActor2D;
68class vtkProperty2D;
69class vtkImageData;
70class vtkTexture;
71class vtkPoints;
72class vtkPolyData;
75
76class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
77{
78public:
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
133 vtkGetObjectMacro(FrameProperty, vtkProperty2D);
135
137
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
220protected:
223
224 // The balloon text and image
227
228 // The layout of the balloon
230
231 // Controlling placement
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
265private:
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