VTK
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 =========================================================================*/
60 #ifndef vtkBalloonRepresentation_h
61 #define vtkBalloonRepresentation_h
62 
63 #include "vtkInteractionWidgetsModule.h" // For export macro
65 
66 class vtkTextMapper;
67 class vtkTextActor;
68 class vtkTextProperty;
69 class vtkPoints;
70 class vtkCellArray;
71 class vtkPolyData;
73 class vtkActor2D;
74 class vtkProperty2D;
75 class vtkImageData;
76 class vtkTexture;
77 class vtkPoints;
78 class vtkPolyData;
80 class vtkTexturedActor2D;
81 
82 class VTKINTERACTIONWIDGETS_EXPORT vtkBalloonRepresentation : public vtkWidgetRepresentation
83 {
84 public:
88  static vtkBalloonRepresentation *New();
89 
91 
95  void PrintSelf(ostream& os, vtkIndent indent) override;
97 
99 
102  virtual void SetBalloonImage(vtkImageData *img);
103  vtkGetObjectMacro(BalloonImage,vtkImageData);
105 
107 
110  vtkGetStringMacro(BalloonText);
111  vtkSetStringMacro(BalloonText);
113 
115 
121  vtkSetVector2Macro(ImageSize,int);
122  vtkGetVector2Macro(ImageSize,int);
124 
126 
129  virtual void SetTextProperty(vtkTextProperty *p);
130  vtkGetObjectMacro(TextProperty,vtkTextProperty);
132 
134 
138  virtual void SetFrameProperty(vtkProperty2D *p);
139  vtkGetObjectMacro(FrameProperty,vtkProperty2D);
141 
143 
146  virtual void SetImageProperty(vtkProperty2D *p);
147  vtkGetObjectMacro(ImageProperty,vtkProperty2D);
149 
150  enum {ImageLeft=0,ImageRight,ImageBottom,ImageTop};
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 
206  void ReleaseGraphicsResources(vtkWindow *w) override;
207  int RenderOverlay(vtkViewport *viewport) override;
209 
213  enum _InteractionState {Outside=0, OnText, OnImage};
214 
215 protected:
217  ~vtkBalloonRepresentation() override;
218 
219  // The balloon text and image
220  char *BalloonText;
222 
223  // The layout of the balloon
225 
226  // Controlling placement
227  int Padding;
228  int Offset[2];
229  int ImageSize[2];
230 
231  // Represent the text
235 
236  // Represent the image
243 
244  // The frame
251 
252  // Internal variable controlling rendering process
255 
256  // Helper methods
257  void AdjustImageSize(double imageSize[2]);
258  void ScaleImage(double imageSize[2],double scale);
259 
260 private:
262  void operator=(const vtkBalloonRepresentation&) = delete;
263 };
264 
265 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instances of this class.
void SetBalloonLayoutToImageLeft()
Specify the layout of the image and text within the balloon.
virtual void EndWidgetInteraction(double newEventPos[2])
actor that draws 2D data with texture support
void SetBalloonLayoutToImageRight()
Specify the layout of the image and text within the balloon.
virtual int ComputeInteractionState(int X, int Y, int modify=0)
abstract specification for Viewports
Definition: vtkViewport.h:47
virtual void StartWidgetInteraction(double eventPos[2])
void SetBalloonLayoutToTextLeft()
Specify the layout of the image and text within the balloon.
a actor that draws 2D data
Definition: vtkActor2D.h:45
void SetBalloonLayoutToTextTop()
Specify the layout of the image and text within the balloon.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
void SetBalloonLayoutToTextRight()
Specify the layout of the image and text within the balloon.
abstract class defines interface between the widget and widget representation classes ...
virtual void BuildRepresentation()=0
Subclasses of vtkWidgetRepresentation must implement these methods.
2D text annotation
Definition: vtkTextMapper.h:53
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
An actor that displays text.
Definition: vtkTextActor.h:56
void SetBalloonLayoutToImageBottom()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToImageTop()
Specify the layout of the image and text within the balloon.
void SetBalloonLayoutToTextBottom()
Specify the layout of the image and text within the balloon.
a simple class to control print indentation
Definition: vtkIndent.h:39
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
handles properties associated with a texture map
Definition: vtkTexture.h:71
_InteractionState
State is either outside, or inside (on the text portion of the image).
vtkPolyDataMapper2D * TextureMapper
represent text properties.
represent the vtkBalloonWidget
int RenderOverlay(vtkViewport *vtkNotUsed(viewport)) override
object to represent cell connectivity
Definition: vtkCellArray.h:50
represent surface properties of a 2D image
Definition: vtkProperty2D.h:40
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkPolyDataMapper2D * FrameMapper
draw vtkPolyData onto the image plane
represent and manipulate 3D points
Definition: vtkPoints.h:39