VTK  9.7.1
vtkBiDimensionalWidget.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
88 #ifndef vtkBiDimensionalWidget_h
89 #define vtkBiDimensionalWidget_h
90 
91 #include "vtkAbstractWidget.h"
92 #include "vtkInteractionWidgetsModule.h" // For export macro
93 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
94 
95 VTK_ABI_NAMESPACE_BEGIN
97 class vtkHandleWidget;
98 class vtkBiDimensionalWidgetCallback;
99 
100 class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkBiDimensionalWidget : public vtkAbstractWidget
101 {
102 public:
106  static vtkBiDimensionalWidget* New();
107 
109 
113  void PrintSelf(ostream& os, vtkIndent indent) override;
115 
121  void SetEnabled(int) override;
122 
129  {
130  this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));
131  }
132 
137  {
138  return reinterpret_cast<vtkBiDimensionalRepresentation*>(this->WidgetRep);
139  }
140 
144  void CreateDefaultRepresentation() override;
145 
150  int IsMeasureValid();
151 
155  enum
156  {
157  EndWidgetSelectEvent = 10050
158  };
159 
164  void SetProcessEvents(vtkTypeBool) override;
165 
172  enum
173  {
174  Start = 0,
176  Manipulate
177  };
178 
180 
190  virtual void SetWidgetStateToStart();
191  virtual void SetWidgetStateToManipulate();
193 
197  virtual int GetWidgetState() { 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 VTK_ABI_NAMESPACE_END
243 #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:64
vtkBiDimensionalWidgetCallback * BiDimensionalWidgetCallback2
a simple class to control print indentation
Definition: vtkIndent.h:28
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.
#define VTK_MARSHALAUTO
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.