VTK  9.5.2
vtkImplicitFrustumWidget.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
3
40
41#ifndef vtkImplicitFrustumWidget_h
42#define vtkImplicitFrustumWidget_h
43
44#include "vtkAbstractWidget.h"
45#include "vtkInteractionWidgetsModule.h" // For export macro
46#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
47
48VTK_ABI_NAMESPACE_BEGIN
50
51class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkImplicitFrustumWidget
52 : public vtkAbstractWidget
53{
54public:
55 static vtkImplicitFrustumWidget* New();
56 vtkTypeMacro(vtkImplicitFrustumWidget, vtkAbstractWidget);
57
64
72
77
78private:
79 enum class WidgetStateType
80 {
81 Idle,
82 Active
83 };
84
86 ~vtkImplicitFrustumWidget() override = default;
87
89 void operator=(const vtkImplicitFrustumWidget&) = delete;
90
92
95 static void SelectAction(vtkAbstractWidget* widget);
96 static void EndSelectAction(vtkAbstractWidget* widget);
97 static void TranslateAction(vtkAbstractWidget* widget);
98 static void MoveAction(vtkAbstractWidget* widget);
99 static void TranslationAxisLock(vtkAbstractWidget* widget);
100 static void TranslationAxisUnLock(vtkAbstractWidget* widget);
102
107 bool UpdateCursorShape(int interactionState);
108
109 WidgetStateType State = WidgetStateType::Idle;
110};
111
112VTK_ABI_NAMESPACE_END
113#endif
define the API for widget / widget representation
vtkWidgetRepresentation * WidgetRep
The representation for a vtkImplicitFrustumWidget.
3D widget for manipulating an infinite frustum
void CreateDefaultRepresentation() override
Create the default widget representation if one is not set.
static vtkImplicitFrustumWidget * New()
void SetRepresentation(vtkImplicitFrustumRepresentation *rep)
Specify an instance of vtkWidgetRepresentation used to represent this widget in the scene.
vtkImplicitFrustumRepresentation * GetFrustumRepresentation()
Return the representation as a vtkImplicitFrustumRepresentation.
#define VTK_MARSHALAUTO