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=========================================================================*/
73#ifndef vtkBalloonRepresentation_h
74#define vtkBalloonRepresentation_h
75
76#include "vtkInteractionWidgetsModule.h" // For export macro
78
79class vtkTextMapper;
80class vtkTextActor;
81class vtkTextProperty;
82class vtkPoints;
83class vtkCellArray;
84class vtkPolyData;
86class vtkActor2D;
87class vtkProperty2D;
88class vtkImageData;
89class vtkTexture;
90class vtkPoints;
91class vtkPolyData;
94
95class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
96{
97public:
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
152 vtkGetObjectMacro(FrameProperty, vtkProperty2D);
154
156
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
239protected:
242
243 // The balloon text and image
246
247 // The layout of the balloon
249
250 // Controlling placement
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
284private:
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:195
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:36
@ scale
Definition: vtkX3D.h:235