dox/Rendering/vtkInteractorStyleFlight.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00045 #ifndef __vtkInteractorStyleFlight_h
00046 #define __vtkInteractorStyleFlight_h
00047
00048 #include "vtkInteractorStyle.h"
00049 class vtkCamera;
00050 class vtkPerspectiveTransform;
00051
00052 class CPIDControl;
00053
00054
00055 class VTK_RENDERING_EXPORT vtkInteractorStyleFlight : public vtkInteractorStyle
00056 {
00057 public:
00058 static vtkInteractorStyleFlight *New();
00059 vtkTypeRevisionMacro(vtkInteractorStyleFlight,vtkInteractorStyle);
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00064 void JumpTo(double campos[3], double focpos[3]);
00065
00067
00068 vtkSetMacro(MotionStepSize,double);
00069 vtkGetMacro(MotionStepSize,double);
00071
00073
00074 vtkSetMacro(MotionAccelerationFactor,double);
00075 vtkGetMacro(MotionAccelerationFactor,double);
00077
00079
00080 vtkSetMacro(AngleStepSize,double);
00081 vtkGetMacro(AngleStepSize,double);
00083
00085
00086 vtkSetMacro(AngleAccelerationFactor,double);
00087 vtkGetMacro(AngleAccelerationFactor,double);
00089
00091
00092 vtkSetMacro(DisableMotion,int);
00093 vtkGetMacro(DisableMotion,int);
00094 vtkBooleanMacro(DisableMotion,int);
00096
00098
00103 vtkSetMacro(RestoreUpVector,int);
00104 vtkGetMacro(RestoreUpVector,int);
00105 vtkBooleanMacro(RestoreUpVector,int);
00107
00108
00109 vtkGetVectorMacro(DefaultUpVector,double,3);
00110 vtkSetVectorMacro(DefaultUpVector,double,3);
00111
00113
00114 virtual void OnMouseMove();
00115 virtual void OnLeftButtonDown();
00116 virtual void OnLeftButtonUp();
00117 virtual void OnMiddleButtonDown();
00118 virtual void OnMiddleButtonUp();
00119 virtual void OnRightButtonDown();
00120 virtual void OnRightButtonUp();
00122
00124
00125 virtual void OnChar();
00126 virtual void OnKeyDown();
00127 virtual void OnKeyUp();
00128 virtual void OnTimer();
00129
00130 virtual void ForwardFly();
00131 virtual void ReverseFly();
00132
00133 virtual void StartForwardFly();
00134 virtual void EndForwardFly();
00135 virtual void StartReverseFly();
00136 virtual void EndReverseFly();
00138
00139 protected:
00140 vtkInteractorStyleFlight();
00141 ~vtkInteractorStyleFlight();
00142
00144
00145 void UpdateSteering(vtkCamera *cam);
00146 void UpdateMouseSteering(vtkCamera *cam);
00147 void FlyByMouse(vtkCamera* cam);
00148 void FlyByKey(vtkCamera* cam);
00149 void GetLRVector(double vector[3], vtkCamera* cam);
00150 void MotionAlongVector(double vector[3], double amount, vtkCamera* cam);
00151 void SetupMotionVars(vtkCamera *cam);
00152 void FinishCamera(vtkCamera* cam);
00153
00154
00155 unsigned char KeysDown;
00156 int DisableMotion;
00157 int RestoreUpVector;
00158 double DiagonalLength;
00159 double MotionStepSize;
00160 double MotionUserScale;
00161 double MotionAccelerationFactor;
00162 double AngleStepSize;
00163 double AngleAccelerationFactor;
00164 double DefaultUpVector[3];
00165 double AzimuthStepSize;
00166 double IdealFocalPoint[3];
00167 vtkPerspectiveTransform *Transform;
00168 double DeltaYaw;
00169 double lYaw;
00170 double DeltaPitch;
00171 double lPitch;
00173
00174 CPIDControl *PID_Yaw;
00175 CPIDControl *PID_Pitch;
00176
00177 private:
00178 vtkInteractorStyleFlight(const vtkInteractorStyleFlight&);
00179 void operator=(const vtkInteractorStyleFlight&);
00180 };
00181
00182 #endif