00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00064 #ifndef __vtkInteractorStyleJoystickActor_h
00065 #define __vtkInteractorStyleJoystickActor_h
00066
00067 #include "vtkInteractorStyle.h"
00068 #include "vtkCellPicker.h"
00069
00070
00071 #define VTK_INTERACTOR_STYLE_ACTOR_NONE 0
00072 #define VTK_INTERACTOR_STYLE_ACTOR_ROTATE 1
00073 #define VTK_INTERACTOR_STYLE_ACTOR_PAN 2
00074 #define VTK_INTERACTOR_STYLE_ACTOR_ZOOM 3
00075 #define VTK_INTERACTOR_STYLE_ACTOR_SPIN 4
00076 #define VTK_INTERACTOR_STYLE_ACTOR_SCALE 5
00077
00078 class VTK_RENDERING_EXPORT vtkInteractorStyleJoystickActor : public vtkInteractorStyle
00079 {
00080 public:
00081 static vtkInteractorStyleJoystickActor *New();
00082
00083 vtkTypeMacro(vtkInteractorStyleJoystickActor, vtkObject);
00084 void PrintSelf(ostream& os, vtkIndent indent);
00085
00087
00089 void OnMouseMove (int ctrl, int shift, int x, int y);
00090 void OnLeftButtonDown(int ctrl, int shift, int x, int y);
00091 void OnLeftButtonUp (int ctrl, int shift, int x, int y);
00092 void OnMiddleButtonDown(int ctrl, int shift, int x, int y);
00093 void OnMiddleButtonUp (int ctrl, int shift, int x, int y);
00094 void OnRightButtonDown(int ctrl, int shift, int x, int y);
00095 void OnRightButtonUp (int ctrl, int shift, int x, int y);
00096 void OnTimer(void);
00098
00099 protected:
00100 vtkInteractorStyleJoystickActor();
00101 ~vtkInteractorStyleJoystickActor();
00102
00103 void RotateXY(int x, int y);
00104 void PanXY(int x, int y);
00105 void DollyXY(int x, int y);
00106 void SpinXY(int x, int y);
00107 void ScaleXY(int x, int y);
00108 void FindPickedActor(int x, int y);
00109 void Prop3DTransform(vtkProp3D *prop3D, double *boxCenter,
00110 int numRotation, double **rotate,
00111 double *scale);
00112 void Prop3DTransform(vtkProp3D *prop3D,float *boxCenter,
00113 int NumRotation,double **rotate,
00114 double *scale);
00115
00116 int State;
00117 float MotionFactor;
00118 float RadianToDegree;
00119 vtkProp3D *InteractionProp;
00120 double ViewUp[3];
00121 double ViewLook[3];
00122 double ViewRight[3];
00123 float ObjCenter[3];
00124 float DispObjCenter[3];
00125 float Radius;
00126 float NewPickPoint[4];
00127 float OldPickPoint[4];
00128 float MotionVector[3];
00129 double ViewPoint[3];
00130 double ViewFocus[3];
00131
00132 vtkCellPicker *InteractionPicker;
00133 private:
00134 vtkInteractorStyleJoystickActor(const vtkInteractorStyleJoystickActor&);
00135 void operator=(const vtkInteractorStyleJoystickActor&);
00136 };
00137
00138 #endif