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 
41 #ifndef __vtkInteractorStyleFlight_h
42 #define __vtkInteractorStyleFlight_h
43 
44 #include "vtkInteractorStyle.h"
45 class vtkCamera;
47 //BTX
48 class CPIDControl;
49 //ETX
50 
52 {
53 public:
54  static vtkInteractorStyleFlight *New();
56  void PrintSelf(ostream& os, vtkIndent indent);
57 
60  void JumpTo(double campos[3], double focpos[3]);
61 
63 
64  vtkSetMacro(MotionStepSize,double);
65  vtkGetMacro(MotionStepSize,double);
67 
69 
70  vtkSetMacro(MotionAccelerationFactor,double);
71  vtkGetMacro(MotionAccelerationFactor,double);
73 
75 
76  vtkSetMacro(AngleStepSize,double);
77  vtkGetMacro(AngleStepSize,double);
79 
81 
82  vtkSetMacro(AngleAccelerationFactor,double);
83  vtkGetMacro(AngleAccelerationFactor,double);
85 
87 
88  vtkSetMacro(DisableMotion,int);
89  vtkGetMacro(DisableMotion,int);
90  vtkBooleanMacro(DisableMotion,int);
92 
94 
99  vtkSetMacro(RestoreUpVector,int);
100  vtkGetMacro(RestoreUpVector,int);
101  vtkBooleanMacro(RestoreUpVector,int);
103 
104  // Specify "up" (by default {0,0,1} but can be changed)
105  vtkGetVectorMacro(DefaultUpVector,double,3);
106  vtkSetVectorMacro(DefaultUpVector,double,3);
107 
109 
110  virtual void OnMouseMove();
111  virtual void OnLeftButtonDown();
112  virtual void OnLeftButtonUp();
113  virtual void OnMiddleButtonDown();
114  virtual void OnMiddleButtonUp();
115  virtual void OnRightButtonDown();
116  virtual void OnRightButtonUp();
118 
120 
121  virtual void OnChar();
122  virtual void OnKeyDown();
123  virtual void OnKeyUp();
124  virtual void OnTimer();
125  //
126  virtual void ForwardFly();
127  virtual void ReverseFly();
128  //
129  virtual void StartForwardFly();
130  virtual void EndForwardFly();
131  virtual void StartReverseFly();
132  virtual void EndReverseFly();
134 
135 protected:
138 
140 
141  void UpdateSteering(vtkCamera *cam);
142  void UpdateMouseSteering(vtkCamera *cam);
143  void FlyByMouse(vtkCamera* cam);
144  void FlyByKey(vtkCamera* cam);
145  void GetLRVector(double vector[3], vtkCamera* cam);
146  void MotionAlongVector(double vector[3], double amount, vtkCamera* cam);
147  void SetupMotionVars(vtkCamera *cam);
148  void FinishCamera(vtkCamera* cam);
149  //
150  //
151  unsigned char KeysDown;
160  double DefaultUpVector[3];
162  double IdealFocalPoint[3];
164  double DeltaYaw;
165  double lYaw;
166  double DeltaPitch;
167  double lPitch;
168 //BTX
169  CPIDControl *PID_Yaw;
170  CPIDControl *PID_Pitch;
171 //ETX
172 private:
173  vtkInteractorStyleFlight(const vtkInteractorStyleFlight&); // Not implemented.
174  void operator=(const vtkInteractorStyleFlight&); // Not implemented.
175 };
177 
178 #endif