VTK  9.6.20260326
vtkJoystickFly.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2// SPDX-License-Identifier: BSD-3-Clause
16
17#ifndef vtkJoystickFly_h
18#define vtkJoystickFly_h
19
21
22#include "vtkCommand.h" // for vtkCommand::UserEvent
23#include "vtkInteractionStyleModule.h" // needed for export macro
24
25VTK_ABI_NAMESPACE_BEGIN
26class vtkRenderer;
27
28class VTKINTERACTIONSTYLE_EXPORT vtkJoystickFly : public vtkCameraManipulator
29{
30public:
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
34 enum : vtkTypeUInt16
35 {
37 };
38
40
43 void StartInteraction() override {}
44 void EndInteraction() override {}
45 void OnKeyDown(vtkRenderWindowInteractor* vtkNotUsed(rwi)) override {}
46 void OnKeyUp(vtkRenderWindowInteractor* vtkNotUsed(rwi)) override {}
48
50
54 void OnMouseMove(int x, int y, vtkRenderer* ren, vtkRenderWindowInteractor* rwi) override;
55 void OnButtonDown(int x, int y, vtkRenderer* ren, vtkRenderWindowInteractor* rwi) override;
56 void OnButtonUp(int x, int y, vtkRenderer* ren, vtkRenderWindowInteractor* rwi) override;
58
60
63 vtkSetClampMacro(FlySpeed, double, 1, 30);
64 vtkGetMacro(FlySpeed, double);
66
67protected:
69 ~vtkJoystickFly() override;
70
71 // Subclasses set to 1 for fly in and -1 for fly out.
72 int In = -1;
73
74private:
75 vtkJoystickFly(const vtkJoystickFly&) = delete;
76 void operator=(const vtkJoystickFly&) = delete;
77
78 int FlyFlag = 0;
79
80 double FlySpeed = 20.0;
81 double LastRenderTime = 0.1;
82
83 void Fly(vtkRenderer* ren, vtkRenderWindowInteractor* rwi, double scale, double speed);
84};
85VTK_ABI_NAMESPACE_END
86#endif
a simple class to control print indentation
Definition vtkIndent.h:108
void OnButtonUp(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *rwi) override
Event bindings controlling the effects of pressing mouse buttons or moving the mouse.
void OnButtonDown(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *rwi) override
Event bindings controlling the effects of pressing mouse buttons or moving the mouse.
void OnKeyUp(vtkRenderWindowInteractor *rwi) override
Unimplemented methods from vtkCameraManipulator.
void OnKeyDown(vtkRenderWindowInteractor *rwi) override
Unimplemented methods from vtkCameraManipulator.
void OnMouseMove(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *rwi) override
Event bindings controlling the effects of pressing mouse buttons or moving the mouse.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkJoystickFly() override
void EndInteraction() override
Unimplemented methods from vtkCameraManipulator.
void StartInteraction() override
Unimplemented methods from vtkCameraManipulator.
platform-independent render window interaction including picking and frame rate control.
abstract specification for renderers