VTK  9.3.20240419
vtkBalloonRepresentation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
64 #ifndef vtkBalloonRepresentation_h
65 #define vtkBalloonRepresentation_h
66 
67 #include "vtkInteractionWidgetsModule.h" // For export macro
69 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
70 
71 VTK_ABI_NAMESPACE_BEGIN
72 class vtkTextMapper;
73 class vtkTextActor;
74 class vtkTextProperty;
75 class vtkPoints;
76 class vtkCellArray;
77 class vtkPolyData;
79 class vtkActor2D;
80 class vtkProperty2D;
81 class vtkImageData;
82 class vtkTexture;
83 class vtkPoints;
84 class vtkPolyData;
86 class vtkTexturedActor2D;
87 
88 class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkBalloonRepresentation
90 {
91 public:
96 
98 
102  void PrintSelf(ostream& os, vtkIndent indent) override;
104 
106 
109  virtual void SetBalloonImage(vtkImageData* img);
110  vtkGetObjectMacro(BalloonImage, vtkImageData);
112 
114 
117  vtkGetStringMacro(BalloonText);
118  vtkSetStringMacro(BalloonText);
120 
122 
128  vtkSetVector2Macro(ImageSize, int);
129  vtkGetVector2Macro(ImageSize, int);
131 
133 
137  vtkGetObjectMacro(TextProperty, vtkTextProperty);
139 
141 
145  virtual void SetFrameProperty(vtkProperty2D* p);
146  vtkGetObjectMacro(FrameProperty, vtkProperty2D);
148 
150 
153  virtual void SetImageProperty(vtkProperty2D* p);
154  vtkGetObjectMacro(ImageProperty, vtkProperty2D);
156 
157  enum
158  {
159  ImageLeft = 0,
162  ImageTop
163  };
164 
166 
173  vtkSetMacro(BalloonLayout, int);
174  vtkGetMacro(BalloonLayout, int);
175  void SetBalloonLayoutToImageLeft() { this->SetBalloonLayout(ImageLeft); }
176  void SetBalloonLayoutToImageRight() { this->SetBalloonLayout(ImageRight); }
177  void SetBalloonLayoutToImageBottom() { this->SetBalloonLayout(ImageBottom); }
178  void SetBalloonLayoutToImageTop() { this->SetBalloonLayout(ImageTop); }
179  void SetBalloonLayoutToTextLeft() { this->SetBalloonLayout(ImageRight); }
180  void SetBalloonLayoutToTextRight() { this->SetBalloonLayout(ImageLeft); }
181  void SetBalloonLayoutToTextTop() { this->SetBalloonLayout(ImageBottom); }
182  void SetBalloonLayoutToTextBottom() { this->SetBalloonLayout(ImageTop); }
184 
186 
192  vtkSetVector2Macro(Offset, int);
193  vtkGetVector2Macro(Offset, int);
195 
197 
201  vtkSetClampMacro(Padding, int, 0, 100);
202  vtkGetMacro(Padding, int);
204 
206 
209  void StartWidgetInteraction(double e[2]) override;
210  void EndWidgetInteraction(double e[2]) override;
211  void BuildRepresentation() override;
212  int ComputeInteractionState(int X, int Y, int modify = 0) override;
214 
216 
220  int RenderOverlay(vtkViewport* viewport) override;
222 
227  {
228  Outside = 0,
230  OnImage
231  };
232 
233 protected:
236 
237  // The balloon text and image
238  char* BalloonText;
240 
241  // The layout of the balloon
243 
244  // Controlling placement
245  int Padding;
246  int Offset[2];
247  int ImageSize[2];
248 
249  // Represent the text
253 
254  // Represent the image
261 
262  // The frame
269 
270  // Internal variable controlling rendering process
273 
274  // Helper methods
275  void AdjustImageSize(double imageSize[2]);
276  void ScaleImage(double imageSize[2], double scale);
277 
278 private:
280  void operator=(const vtkBalloonRepresentation&) = delete;
281 };
282 
283 VTK_ABI_NAMESPACE_END
284 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:145
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:286
topologically and geometrically regular array of data
Definition: vtkImageData.h:156
a simple class to control print indentation
Definition: vtkIndent.h:108
represent and manipulate 3D points
Definition: vtkPoints.h:139
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:181
represent surface properties of a 2D image
An actor that displays text.
Definition: vtkTextActor.h:155
2D text annotation
represent text properties.
handles properties associated with a texture map
Definition: vtkTexture.h:167
actor that draws 2D data with texture support
abstract specification for Viewports
Definition: vtkViewport.h:65
abstract class defines interface between the widget and widget representation classes
window superclass for vtkRenderWindow
Definition: vtkWindow.h:48
@ scale
Definition: vtkX3D.h:229
#define VTK_MARSHALAUTO