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