VTK  9.0.1
vtkInteractorStyleFlight.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkInteractorStyleFlight.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
36 #ifndef vtkInteractorStyleFlight_h
37 #define vtkInteractorStyleFlight_h
38 
39 #include "vtkInteractionStyleModule.h" // For export macro
40 #include "vtkInteractorStyle.h"
41 class vtkCamera;
43 
44 class CPIDControl;
45 
46 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleFlight : public vtkInteractorStyle
47 {
48 public:
51  void PrintSelf(ostream& os, vtkIndent indent) override;
52 
57  void JumpTo(double campos[3], double focpos[3]);
58 
60 
63  vtkSetMacro(MotionStepSize, double);
64  vtkGetMacro(MotionStepSize, double);
66 
68 
71  vtkSetMacro(MotionAccelerationFactor, double);
72  vtkGetMacro(MotionAccelerationFactor, double);
74 
76 
79  vtkSetMacro(AngleStepSize, double);
80  vtkGetMacro(AngleStepSize, double);
82 
84 
87  vtkSetMacro(AngleAccelerationFactor, double);
88  vtkGetMacro(AngleAccelerationFactor, double);
90 
92 
95  vtkSetMacro(DisableMotion, vtkTypeBool);
96  vtkGetMacro(DisableMotion, vtkTypeBool);
97  vtkBooleanMacro(DisableMotion, vtkTypeBool);
99 
101 
108  vtkSetMacro(RestoreUpVector, vtkTypeBool);
109  vtkGetMacro(RestoreUpVector, vtkTypeBool);
110  vtkBooleanMacro(RestoreUpVector, vtkTypeBool);
112 
113  // Specify "up" (by default {0,0,1} but can be changed)
114  vtkGetVectorMacro(DefaultUpVector, double, 3);
115  vtkSetVectorMacro(DefaultUpVector, double, 3);
116 
118 
121  void OnMouseMove() override;
122  void OnLeftButtonDown() override;
123  void OnLeftButtonUp() override;
124  void OnMiddleButtonDown() override;
125  void OnMiddleButtonUp() override;
126  void OnRightButtonDown() override;
127  void OnRightButtonUp() override;
129 
131 
134  void OnChar() override;
135  void OnKeyDown() override;
136  void OnKeyUp() override;
137  void OnTimer() override;
138  //
139  virtual void ForwardFly();
140  virtual void ReverseFly();
141  //
142  virtual void StartForwardFly();
143  virtual void EndForwardFly();
144  virtual void StartReverseFly();
145  virtual void EndReverseFly();
147 
148 protected:
151 
153 
158  void FlyByMouse(vtkCamera* cam);
159  void FlyByKey(vtkCamera* cam);
160  void GetLRVector(double vector[3], vtkCamera* cam);
161  void MotionAlongVector(double vector[3], double amount, vtkCamera* cam);
164  //
165  //
166  unsigned char KeysDown;
175  double DefaultUpVector[3];
177  double IdealFocalPoint[3];
179  double DeltaYaw;
180  double lYaw;
181  double DeltaPitch;
182  double lPitch;
184 
185  CPIDControl* PID_Yaw;
186  CPIDControl* PID_Pitch;
187 
188 private:
190  void operator=(const vtkInteractorStyleFlight&) = delete;
191 };
192 
193 #endif
a virtual camera for 3D rendering
Definition: vtkCamera.h:46
a simple class to control print indentation
Definition: vtkIndent.h:34
provides flight motion routines
void OnLeftButtonDown() override
void OnRightButtonDown() override
void OnRightButtonUp() override
void OnMiddleButtonDown() override
~vtkInteractorStyleFlight() override
void MotionAlongVector(double vector[3], double amount, vtkCamera *cam)
void GetLRVector(double vector[3], vtkCamera *cam)
void UpdateSteering(vtkCamera *cam)
Routines used internally for computing motion and steering.
void SetupMotionVars(vtkCamera *cam)
virtual void ReverseFly()
void OnMouseMove() override
Concrete implementation of Mouse event bindings for flight.
vtkPerspectiveTransform * Transform
static vtkInteractorStyleFlight * New()
void FlyByMouse(vtkCamera *cam)
void FinishCamera(vtkCamera *cam)
void OnKeyUp() override
void OnMiddleButtonUp() override
virtual void StartForwardFly()
void OnLeftButtonUp() override
virtual void StartReverseFly()
void JumpTo(double campos[3], double focpos[3])
Move the Eye/Camera to a specific location (no intermediate steps are taken.
virtual void EndReverseFly()
virtual void ForwardFly()
void OnChar() override
Concrete implementation of Keyboard event bindings for flight.
void OnKeyDown() override
void OnTimer() override
OnTimer calls Rotate, Rotate etc which should be overridden by style subclasses.
void UpdateMouseSteering(vtkCamera *cam)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void EndForwardFly()
void FlyByKey(vtkCamera *cam)
provide event-driven interface to the rendering window (defines trackball mode)
describes a 4x4 matrix transformation
@ vector
Definition: vtkX3D.h:243
int vtkTypeBool
Definition: vtkABI.h:69