VTK  9.7.1
vtkJoystickFly.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
17 #ifndef vtkJoystickFly_h
18 #define vtkJoystickFly_h
19 
20 #include "vtkCameraManipulator.h"
21 
22 #include "vtkCommand.h" // for vtkCommand::UserEvent
23 #include "vtkInteractionStyleModule.h" // needed for export macro
24 
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkRenderer;
27 
28 class VTKINTERACTIONSTYLE_EXPORT vtkJoystickFly : public vtkCameraManipulator
29 {
30 public:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
34  enum : vtkTypeUInt16
35  {
36  FlyAnimationStepEvent = vtkCommand::UserEvent + 1,
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 
67 protected:
69  ~vtkJoystickFly() override;
70 
71  // Subclasses set to 1 for fly in and -1 for fly out.
72  int In = -1;
73 
74 private:
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 };
85 VTK_ABI_NAMESPACE_END
86 #endif
void OnKeyUp(vtkRenderWindowInteractor *rwi) override
Unimplemented methods from vtkCameraManipulator.
abstract specification for renderers
Definition: vtkRenderer.h:63
Abstraction of style away from button.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void OnMouseMove(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *iren)=0
These methods are called on the active manipulator when the corresponding events occur.
platform-independent render window interaction including picking and frame rate control.
void OnKeyDown(vtkRenderWindowInteractor *rwi) override
Unimplemented methods from vtkCameraManipulator.
a simple class to control print indentation
Definition: vtkIndent.h:28
Fly camera towards or away from the object.
virtual void OnButtonDown(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *iren)=0
virtual void OnButtonUp(int x, int y, vtkRenderer *ren, vtkRenderWindowInteractor *iren)=0
void EndInteraction() override
Unimplemented methods from vtkCameraManipulator.
void StartInteraction() override
Unimplemented methods from vtkCameraManipulator.