VTK
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:
52  static vtkInteractorStyleFlight *New();
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:
153  ~vtkInteractorStyleFlight() override;
154 
156 
159  void UpdateSteering(vtkCamera *cam);
160  void UpdateMouseSteering(vtkCamera *cam);
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);
165  void SetupMotionVars(vtkCamera *cam);
166  void FinishCamera(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
vtkX3D::vector
Definition: vtkX3D.h:237
vtkInteractorStyleFlight::lPitch
double lPitch
Definition: vtkInteractorStyleFlight.h:185
vtkInteractorStyleFlight::MotionUserScale
double MotionUserScale
Definition: vtkInteractorStyleFlight.h:174
vtkInteractorStyle.h
vtkInteractorStyleFlight
provides flight motion routines
Definition: vtkInteractorStyleFlight.h:49
vtkInteractorStyleFlight::AzimuthStepSize
double AzimuthStepSize
Definition: vtkInteractorStyleFlight.h:179
vtkInteractorStyle::OnChar
void OnChar() override
OnChar is triggered when an ASCII key is pressed.
vtkInteractorStyle::OnMiddleButtonUp
virtual void OnMiddleButtonUp()
Definition: vtkInteractorStyle.h:233
vtkInteractorStyle::OnMouseMove
virtual void OnMouseMove()
Generic event bindings can be overridden in subclasses.
Definition: vtkInteractorStyle.h:229
vtkInteractorStyleFlight::MotionStepSize
double MotionStepSize
Definition: vtkInteractorStyleFlight.h:173
vtkInteractorStyleFlight::AngleAccelerationFactor
double AngleAccelerationFactor
Definition: vtkInteractorStyleFlight.h:177
vtkInteractorStyle::OnMiddleButtonDown
virtual void OnMiddleButtonDown()
Definition: vtkInteractorStyle.h:232
vtkInteractorStyleFlight::Transform
vtkPerspectiveTransform * Transform
Definition: vtkInteractorStyleFlight.h:181
vtkInteractorStyle::OnRightButtonDown
virtual void OnRightButtonDown()
Definition: vtkInteractorStyle.h:234
vtkInteractorStyleFlight::DisableMotion
vtkTypeBool DisableMotion
Definition: vtkInteractorStyleFlight.h:170
vtkInteractorStyle::OnLeftButtonDown
virtual void OnLeftButtonDown()
Definition: vtkInteractorStyle.h:230
vtkInteractorStyleFlight::AngleStepSize
double AngleStepSize
Definition: vtkInteractorStyleFlight.h:176
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:50
vtkInteractorStyle::OnKeyUp
virtual void OnKeyUp()
Definition: vtkInteractorStyle.h:264
vtkInteractorStyleFlight::MotionAccelerationFactor
double MotionAccelerationFactor
Definition: vtkInteractorStyleFlight.h:175
vtkInteractorStyleFlight::RestoreUpVector
vtkTypeBool RestoreUpVector
Definition: vtkInteractorStyleFlight.h:171
vtkPerspectiveTransform
describes a 4x4 matrix transformation
Definition: vtkPerspectiveTransform.h:56
vtkInteractorStyle
provide event-driven interface to the rendering window (defines trackball mode)
Definition: vtkInteractorStyle.h:141
vtkInteractorStyleFlight::DeltaYaw
double DeltaYaw
Definition: vtkInteractorStyleFlight.h:182
vtkInteractorStyleFlight::PID_Pitch
CPIDControl * PID_Pitch
Definition: vtkInteractorStyleFlight.h:189
vtkInteractorStyle::OnLeftButtonUp
virtual void OnLeftButtonUp()
Definition: vtkInteractorStyle.h:231
vtkInteractorStyleFlight::lYaw
double lYaw
Definition: vtkInteractorStyleFlight.h:183
vtkInteractorStyleFlight::DeltaPitch
double DeltaPitch
Definition: vtkInteractorStyleFlight.h:184
vtkInteractorStyle::New
static vtkInteractorStyle * New()
This class must be supplied with a vtkRenderWindowInteractor wrapper or parent.
vtkInteractorStyle::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkInteractorStyle::OnRightButtonUp
virtual void OnRightButtonUp()
Definition: vtkInteractorStyle.h:235
vtkInteractorStyleFlight::PID_Yaw
CPIDControl * PID_Yaw
Definition: vtkInteractorStyleFlight.h:188
vtkInteractorStyle::OnTimer
virtual void OnTimer()
OnTimer calls Rotate, Rotate etc which should be overridden by style subclasses.
vtkInteractorStyleFlight::DiagonalLength
double DiagonalLength
Definition: vtkInteractorStyleFlight.h:172
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkInteractorStyle::OnKeyDown
virtual void OnKeyDown()
Definition: vtkInteractorStyle.h:259
vtkInteractorStyleFlight::KeysDown
unsigned char KeysDown
Definition: vtkInteractorStyleFlight.h:169