VTK  9.0.1
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 =========================================================================*/
94 #ifndef vtkBiDimensionalWidget_h
95 #define vtkBiDimensionalWidget_h
96 
97 #include "vtkAbstractWidget.h"
98 #include "vtkInteractionWidgetsModule.h" // For export macro
99 
101 class vtkHandleWidget;
102 class vtkBiDimensionalWidgetCallback;
103 
104 class VTKINTERACTIONWIDGETS_EXPORT vtkBiDimensionalWidget : public vtkAbstractWidget
105 {
106 public:
110  static vtkBiDimensionalWidget* New();
111 
113 
117  void PrintSelf(ostream& os, vtkIndent indent) override;
119 
125  void SetEnabled(int) override;
126 
133  {
134  this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));
135  }
136 
141  {
142  return reinterpret_cast<vtkBiDimensionalRepresentation*>(this->WidgetRep);
143  }
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
177  {
178  Start = 0,
180  Manipulate
181  };
182 
184 
194  virtual void SetWidgetStateToStart();
195  virtual void SetWidgetStateToManipulate();
197 
201  virtual int GetWidgetState() { return this->WidgetState; }
202 
203 protected:
205  ~vtkBiDimensionalWidget() override;
206 
207  // The state of the widget
217 
218  // Callback interface to capture events when
219  // placing the widget.
220  static void AddPointAction(vtkAbstractWidget*);
221  static void MoveAction(vtkAbstractWidget*);
222  static void EndSelectAction(vtkAbstractWidget*);
223 
224  // The positioning handle widgets
229  vtkBiDimensionalWidgetCallback* BiDimensionalWidgetCallback1;
230  vtkBiDimensionalWidgetCallback* BiDimensionalWidgetCallback2;
231  vtkBiDimensionalWidgetCallback* BiDimensionalWidgetCallback3;
232  vtkBiDimensionalWidgetCallback* BiDimensionalWidgetCallback4;
233 
234  // Methods invoked when the handles at the
235  // end points of the widget are manipulated
236  void StartBiDimensionalInteraction();
237  virtual void EndBiDimensionalInteraction();
238 
239  friend class vtkBiDimensionalWidgetCallback;
240 
241 private:
243  void operator=(const vtkBiDimensionalWidget&) = delete;
244 };
245 
246 #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:33
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.