VTK
vtkBiDimensionalWidget.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBiDimensionalWidget.h,v
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 =========================================================================*/
97 #ifndef vtkBiDimensionalWidget_h
98 #define vtkBiDimensionalWidget_h
99 
100 #include "vtkInteractionWidgetsModule.h" // For export macro
101 #include "vtkAbstractWidget.h"
102 
104 class vtkHandleWidget;
105 class vtkBiDimensionalWidgetCallback;
106 
107 
108 class VTKINTERACTIONWIDGETS_EXPORT vtkBiDimensionalWidget : public vtkAbstractWidget
109 {
110 public:
114  static vtkBiDimensionalWidget *New();
115 
117 
121  void PrintSelf(ostream& os, vtkIndent indent) override;
123 
129  void SetEnabled(int) override;
130 
137  {this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));}
138 
143  {return reinterpret_cast<vtkBiDimensionalRepresentation*>(this->WidgetRep);}
144 
148  void CreateDefaultRepresentation() override;
149 
154  int IsMeasureValid();
155 
159  enum
160  {
161  EndWidgetSelectEvent = 10050
162  };
163 
168  void SetProcessEvents(vtkTypeBool) override;
169 
176  enum {Start=0,Define,Manipulate};
177 
179 
189  virtual void SetWidgetStateToStart();
190  virtual void SetWidgetStateToManipulate();
192 
196  virtual int GetWidgetState()
197  {return this->WidgetState;}
198 
199 protected:
201  ~vtkBiDimensionalWidget() override;
202 
203  // The state of the widget
213 
214  // Callback interface to capture events when
215  // placing the widget.
216  static void AddPointAction(vtkAbstractWidget*);
217  static void MoveAction(vtkAbstractWidget*);
218  static void EndSelectAction(vtkAbstractWidget*);
219 
220  // The positioning handle widgets
225  vtkBiDimensionalWidgetCallback *BiDimensionalWidgetCallback1;
226  vtkBiDimensionalWidgetCallback *BiDimensionalWidgetCallback2;
227  vtkBiDimensionalWidgetCallback *BiDimensionalWidgetCallback3;
228  vtkBiDimensionalWidgetCallback *BiDimensionalWidgetCallback4;
229 
230  // Methods invoked when the handles at the
231  // end points of the widget are manipulated
232  void StartBiDimensionalInteraction();
233  virtual void EndBiDimensionalInteraction();
234 
235  friend class vtkBiDimensionalWidgetCallback;
236 
237 private:
239  void operator=(const vtkBiDimensionalWidget&) = delete;
240 };
241 
242 #endif
measure the bi-dimensional lengths of an object
vtkBiDimensionalWidgetCallback * BiDimensionalWidgetCallback1
represent the vtkBiDimensionalWidget
void PrintSelf(ostream &os, vtkIndent indent) override
Standard macros implementing standard VTK methods.
a general widget for moving handles
virtual void CreateDefaultRepresentation()=0
Create the default widget representation if one is not set.
vtkBiDimensionalWidgetCallback * BiDimensionalWidgetCallback4
vtkWidgetRepresentation * WidgetRep
void SetRepresentation(vtkBiDimensionalRepresentation *r)
Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene...
int vtkTypeBool
Definition: vtkABI.h:69
vtkBiDimensionalWidgetCallback * BiDimensionalWidgetCallback2
a simple class to control print indentation
Definition: vtkIndent.h:39
define the API for widget / widget representation
virtual void SetProcessEvents(vtkTypeBool)
Methods to change whether the widget responds to interaction.
void SetEnabled(int) override
Methods for activating this widget.
virtual int GetWidgetState()
Return the current widget state.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkBiDimensionalWidgetCallback * BiDimensionalWidgetCallback3
vtkBiDimensionalRepresentation * GetBiDimensionalRepresentation()
Return the representation as a vtkBiDimensionalRepresentation.