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 
39 #ifndef vtkInteractorStyleFlight_h
40 #define vtkInteractorStyleFlight_h
41 
42 #include "vtkInteractionStyleModule.h" // For export macro
43 #include "vtkInteractorStyle.h"
44 class vtkCamera;
46 
47 class CPIDControl;
48 
49 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleFlight : public vtkInteractorStyle
50 {
51 public:
54  void PrintSelf(ostream& os, vtkIndent indent) override;
55 
60  void JumpTo(double campos[3], double focpos[3]);
61 
63 
66  vtkSetMacro(MotionStepSize, double);
67  vtkGetMacro(MotionStepSize, double);
69 
71 
74  vtkSetMacro(MotionAccelerationFactor, double);
75  vtkGetMacro(MotionAccelerationFactor, double);
77 
79 
82  vtkSetMacro(AngleStepSize, double);
83  vtkGetMacro(AngleStepSize, double);
85 
87 
90  vtkSetMacro(AngleAccelerationFactor, double);
91  vtkGetMacro(AngleAccelerationFactor, double);
93 
95 
98  vtkSetMacro(DisableMotion, vtkTypeBool);
99  vtkGetMacro(DisableMotion, vtkTypeBool);
100  vtkBooleanMacro(DisableMotion, vtkTypeBool);
102 
104 
111  vtkSetMacro(RestoreUpVector, vtkTypeBool);
112  vtkGetMacro(RestoreUpVector, vtkTypeBool);
113  vtkBooleanMacro(RestoreUpVector, vtkTypeBool);
115 
116  // Specify "up" (by default {0,0,1} but can be changed)
117  vtkGetVectorMacro(DefaultUpVector, double, 3);
118  vtkSetVectorMacro(DefaultUpVector, double, 3);
119 
121 
124  void OnMouseMove() override;
125  void OnLeftButtonDown() override;
126  void OnLeftButtonUp() override;
127  void OnMiddleButtonDown() override;
128  void OnMiddleButtonUp() override;
129  void OnRightButtonDown() override;
130  void OnRightButtonUp() override;
132 
134 
137  void OnChar() override;
138  void OnKeyDown() override;
139  void OnKeyUp() override;
140  void OnTimer() override;
141  //
142  virtual void ForwardFly();
143  virtual void ReverseFly();
144  //
145  virtual void StartForwardFly();
146  virtual void EndForwardFly();
147  virtual void StartReverseFly();
148  virtual void EndReverseFly();
150 
151 protected:
154 
156 
161  void FlyByMouse(vtkCamera* cam);
162  void FlyByKey(vtkCamera* cam);
163  void GetLRVector(double vector[3], vtkCamera* cam);
164  void MotionAlongVector(double vector[3], double amount, vtkCamera* cam);
167  //
168  //
169  unsigned char KeysDown;
178  double DefaultUpVector[3];
180  double IdealFocalPoint[3];
182  double DeltaYaw;
183  double lYaw;
184  double DeltaPitch;
185  double lPitch;
187 
188  CPIDControl* PID_Yaw;
189  CPIDControl* PID_Pitch;
190 
191 private:
193  void operator=(const vtkInteractorStyleFlight&) = delete;
194 };
195 
196 #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