VTK  9.6.2
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
20
21#ifndef vtkMultiLineWidget_h
22#define vtkMultiLineWidget_h
23
24#include "vtkAbstractWidget.h"
25#include "vtkInteractionWidgetsModule.h" // For export macro
26#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
27
28VTK_ABI_NAMESPACE_BEGIN
29class vtkLineWidget2;
31
32class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkMultiLineWidget : public vtkAbstractWidget
33{
34public:
36
38 void PrintSelf(ostream& os, vtkIndent indent) override;
39
44 void SetEnabled(int enabling) override;
45
52
58
60
63 static void SelectAction(vtkAbstractWidget* widget);
64 static void EndSelectAction(vtkAbstractWidget* widget);
65 static void MoveAction(vtkAbstractWidget* widget);
67
69
72 void SetLineCount(int count);
73 vtkGetMacro(LineCount, int)
75
80
85
90 void SetProcessEvents(vtkTypeBool enabled) override;
91
96 void SetInteractor(vtkRenderWindowInteractor* interactor) override;
97
98protected:
101
102private:
103 vtkMultiLineWidget(const vtkMultiLineWidget&) = delete;
104 void operator=(const vtkMultiLineWidget&) = delete;
105
106 std::vector<vtkSmartPointer<vtkLineWidget2>> LineWidgetVector;
107 int LineCount = 0;
108
109 // Manage the state of the widget (and his corresponding enum in vtkLineWidget2)
110 enum WidgetStateType
111 {
112 NOT_SELECTED = 0, // Start
113 ACTIVE_SELECTION // Active
114 };
115 int WidgetState = vtkMultiLineWidget::NOT_SELECTED;
116};
117
118VTK_ABI_NAMESPACE_END
119#endif
a simple class to control print indentation
Definition vtkIndent.h:29
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:323
#define VTK_MARSHALAUTO