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 
38 #ifndef vtkInteractorStyleFlight_h
39 #define vtkInteractorStyleFlight_h
40 
41 #include "vtkInteractionStyleModule.h" // For export macro
42 #include "vtkInteractorStyle.h"
43 class vtkCamera;
45 //BTX
46 class CPIDControl;
47 //ETX
48 
50 {
51 public:
52  static vtkInteractorStyleFlight *New();
54  void PrintSelf(ostream& os, vtkIndent indent);
55 
58  void JumpTo(double campos[3], double focpos[3]);
59 
61 
62  vtkSetMacro(MotionStepSize,double);
63  vtkGetMacro(MotionStepSize,double);
65 
67 
68  vtkSetMacro(MotionAccelerationFactor,double);
69  vtkGetMacro(MotionAccelerationFactor,double);
71 
73 
74  vtkSetMacro(AngleStepSize,double);
75  vtkGetMacro(AngleStepSize,double);
77 
79 
80  vtkSetMacro(AngleAccelerationFactor,double);
81  vtkGetMacro(AngleAccelerationFactor,double);
83 
85 
86  vtkSetMacro(DisableMotion,int);
87  vtkGetMacro(DisableMotion,int);
88  vtkBooleanMacro(DisableMotion,int);
90 
92 
97  vtkSetMacro(RestoreUpVector,int);
98  vtkGetMacro(RestoreUpVector,int);
99  vtkBooleanMacro(RestoreUpVector,int);
101 
102  // Specify "up" (by default {0,0,1} but can be changed)
103  vtkGetVectorMacro(DefaultUpVector,double,3);
104  vtkSetVectorMacro(DefaultUpVector,double,3);
105 
107 
108  virtual void OnMouseMove();
109  virtual void OnLeftButtonDown();
110  virtual void OnLeftButtonUp();
111  virtual void OnMiddleButtonDown();
112  virtual void OnMiddleButtonUp();
113  virtual void OnRightButtonDown();
114  virtual void OnRightButtonUp();
116 
118 
119  virtual void OnChar();
120  virtual void OnKeyDown();
121  virtual void OnKeyUp();
122  virtual void OnTimer();
123  //
124  virtual void ForwardFly();
125  virtual void ReverseFly();
126  //
127  virtual void StartForwardFly();
128  virtual void EndForwardFly();
129  virtual void StartReverseFly();
130  virtual void EndReverseFly();
132 
133 protected:
136 
138 
139  void UpdateSteering(vtkCamera *cam);
140  void UpdateMouseSteering(vtkCamera *cam);
141  void FlyByMouse(vtkCamera* cam);
142  void FlyByKey(vtkCamera* cam);
143  void GetLRVector(double vector[3], vtkCamera* cam);
144  void MotionAlongVector(double vector[3], double amount, vtkCamera* cam);
145  void SetupMotionVars(vtkCamera *cam);
146  void FinishCamera(vtkCamera* cam);
147  //
148  //
149  unsigned char KeysDown;
158  double DefaultUpVector[3];
160  double IdealFocalPoint[3];
162  double DeltaYaw;
163  double lYaw;
164  double DeltaPitch;
165  double lPitch;
166 //BTX
167  CPIDControl *PID_Yaw;
168  CPIDControl *PID_Pitch;
169 //ETX
170 private:
171  vtkInteractorStyleFlight(const vtkInteractorStyleFlight&); // Not implemented.
172  void operator=(const vtkInteractorStyleFlight&); // Not implemented.
173 };
175 
176 #endif
virtual void OnLeftButtonDown()
virtual void OnMiddleButtonDown()
virtual void OnRightButtonDown()
virtual void OnLeftButtonUp()
virtual void OnKeyUp()
static vtkInteractorStyle * New()
provides flight motion routines
#define VTKINTERACTIONSTYLE_EXPORT
virtual void OnMiddleButtonUp()
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
virtual void OnTimer()
virtual void OnRightButtonUp()
void PrintSelf(ostream &os, vtkIndent indent)
virtual void OnKeyDown()
a simple class to control print indentation
Definition: vtkIndent.h:38
a virtual camera for 3D rendering
Definition: vtkCamera.h:48
#define vtkSetVectorMacro(name, type, count)
Definition: vtkSetGet.h:406
virtual void OnChar()
provide event-driven interface to the rendering window (defines trackball mode)
#define vtkBooleanMacro(name, type)
Definition: vtkSetGet.h:244
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
virtual void OnMouseMove()
vtkPerspectiveTransform * Transform
describes a 4x4 matrix transformation
#define vtkSetMacro(name, type)
Definition: vtkSetGet.h:79