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