VTK  9.5.20251127
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
23
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
31VTK_ABI_NAMESPACE_BEGIN
32class vtkLineWidget2;
34
35class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkMultiLineWidget : public vtkAbstractWidget
36{
37public:
39
41 void PrintSelf(ostream& os, vtkIndent indent) override;
42
47 void SetEnabled(int enabling) override;
48
55
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
83
88
93 void SetProcessEvents(vtkTypeBool enabled) override;
94
99 void SetInteractor(vtkRenderWindowInteractor* interactor) override;
100
101protected:
104
105private:
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
121VTK_ABI_NAMESPACE_END
122#endif
a simple class to control print indentation
Definition vtkIndent.h:108
3D widget for manipulating a finite, straight line
a class defining the representation for a vtkMultiLineWidget
static void SelectAction(vtkAbstractWidget *widget)
These methods handle events.
vtkMTimeType GetMTime() override
Return this object's modified time by checking the modified time of the superclass and the modified t...
void SetRepresentation(vtkMultiLineRepresentation *repr)
Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene.
static void MoveAction(vtkAbstractWidget *widget)
These methods handle events.
void SetEnabled(int enabling) override
Override superclasses' SetEnabled() method because the multi line widget must enable its internal vtk...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard macros implementing standard VTK methods.
void CreateDefaultRepresentation() override
Create the default widget representation if one is not set.
void SetInteractor(vtkRenderWindowInteractor *interactor) override
Override superclasses' SetInteractor() method because the multi line widget must set the interactor f...
vtkMultiLineRepresentation * GetMultiLineRepresentation()
Return the representation as a vtkMultiLineRepresentation.
void SetLineCount(int count)
Set the number of vtkLineWidget2 in this widget.
void SetProcessEvents(vtkTypeBool enabled) override
Methods to change the whether the widget responds to interaction.
static void EndSelectAction(vtkAbstractWidget *widget)
These methods handle events.
static vtkMultiLineWidget * New()
platform-independent render window interaction including picking and frame rate control.
Hold a reference to a vtkObjectBase instance.
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:322
#define VTK_MARSHALAUTO