VTK  9.7.1
vtkMultiLineWidget.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
24 #ifndef vtkMultiLineWidget_h
25 #define vtkMultiLineWidget_h
26 
27 #include "vtkAbstractWidget.h"
28 #include "vtkInteractionWidgetsModule.h" // For export macro
29 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class vtkLineWidget2;
34 
35 class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkMultiLineWidget : public vtkAbstractWidget
36 {
37 public:
38  static vtkMultiLineWidget* New();
39 
41  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
47  void SetEnabled(int enabling) override;
48 
54  void SetRepresentation(vtkMultiLineRepresentation* repr);
55 
60  vtkMTimeType GetMTime() override;
61 
63 
66  static void SelectAction(vtkAbstractWidget* widget);
67  static void EndSelectAction(vtkAbstractWidget* widget);
68  static void MoveAction(vtkAbstractWidget* widget);
70 
72 
75  void SetLineCount(int count);
76  vtkGetMacro(LineCount, int)
78 
82  vtkMultiLineRepresentation* GetMultiLineRepresentation();
83 
87  void CreateDefaultRepresentation() override;
88 
93  void SetProcessEvents(vtkTypeBool enabled) override;
94 
99  void SetInteractor(vtkRenderWindowInteractor* interactor) override;
100 
101 protected:
103  ~vtkMultiLineWidget() override;
104 
105 private:
106  vtkMultiLineWidget(const vtkMultiLineWidget&) = delete;
107  void operator=(const vtkMultiLineWidget&) = delete;
108 
109  std::vector<vtkSmartPointer<vtkLineWidget2>> LineWidgetVector;
110  int LineCount = 0;
111 
112  // Manage the state of the widget (and his corresponding enum in vtkLineWidget2)
113  enum WidgetStateType
114  {
115  NOT_SELECTED = 0, // Start
116  ACTIVE_SELECTION // Active
117  };
118  int WidgetState = vtkMultiLineWidget::NOT_SELECTED;
119 };
120 
121 VTK_ABI_NAMESPACE_END
122 #endif
3D widget for manipulating multiple lines
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:318
void PrintSelf(ostream &os, vtkIndent indent) override
Standard macros implementing standard VTK methods.
Hold a reference to a vtkObjectBase instance.
Definition: vtkMeta.h:23
3D widget for manipulating a finite, straight line
int vtkTypeBool
Definition: vtkABI.h:64
platform-independent render window interaction including picking and frame rate control.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual vtkMTimeType GetMTime()
Return this object's modified time.
define the API for widget / widget representation
a class defining the representation for a vtkMultiLineWidget
void SetEnabled(int) override
Methods for activating this widget.
#define VTK_MARSHALAUTO
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...