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
00040
00055 #ifndef __vtkInteractorStyleTrackballActor_h
00056 #define __vtkInteractorStyleTrackballActor_h
00057
00058 #include "vtkInteractorStyle.h"
00059 #include "vtkCellPicker.h"
00060
00061 #define VTK_INTERACTOR_STYLE_ACTOR_NONE 0
00062 #define VTK_INTERACTOR_STYLE_ACTOR_ROTATE 1
00063 #define VTK_INTERACTOR_STYLE_ACTOR_PAN 2
00064 #define VTK_INTERACTOR_STYLE_ACTOR_ZOOM 3
00065 #define VTK_INTERACTOR_STYLE_ACTOR_SPIN 4
00066 #define VTK_INTERACTOR_STYLE_ACTOR_SCALE 5
00067
00068 class VTK_EXPORT vtkInteractorStyleTrackballActor : public vtkInteractorStyle
00069 {
00070 public:
00074 static vtkInteractorStyleTrackballActor *New();
00075
00076 vtkTypeMacro(vtkInteractorStyleTrackballActor, vtkObject);
00077 void PrintSelf(ostream& os, vtkIndent indent);
00078
00079
00080 void OnMouseMove (int ctrl, int shift, int x, int y);
00081 void OnLeftButtonDown(int ctrl, int shift, int x, int y);
00082 void OnLeftButtonUp (int ctrl, int shift, int x, int y);
00083 void OnMiddleButtonDown(int ctrl, int shift, int x, int y);
00084 void OnMiddleButtonUp (int ctrl, int shift, int x, int y);
00085 void OnRightButtonDown(int ctrl, int shift, int x, int y);
00086 void OnRightButtonUp (int ctrl, int shift, int x, int y);
00087
00088 protected:
00089 vtkInteractorStyleTrackballActor();
00090 ~vtkInteractorStyleTrackballActor();
00091 vtkInteractorStyleTrackballActor(const vtkInteractorStyleTrackballActor&) {};
00092 void operator=(const vtkInteractorStyleTrackballActor&) {};
00093
00094 void RotateXY(int x, int y, int oldX, int oldY);
00095 void PanXY(int x, int y, int oldX, int oldY);
00096 void DollyXY(int dx, int dy);
00097 void SpinXY(int dx, int dy, int oldX, int oldY);
00098 void ScaleXY(int x, int y, int oldX, int oldY);
00099 void FindPickedActor(int x, int y);
00100 void Prop3DTransform(vtkProp3D *prop3D, double *boxCenter,
00101 int numRotation, double **rotate,
00102 double *scale);
00103 void Prop3DTransform(vtkProp3D *prop3D,float *boxCenter,
00104 int NumRotation,double **rotate,
00105 double *scale);
00106
00107 int State;
00108 float MotionFactor;
00109 float RadianToDegree;
00110 vtkProp3D *InteractionProp;
00111 double ViewUp[3];
00112 double ViewLook[3];
00113 double ViewRight[3];
00114 float ObjCenter[3];
00115 float DispObjCenter[3];
00116 float Radius;
00117 float NewPickPoint[4];
00118 float OldPickPoint[4];
00119 float MotionVector[3];
00120 double ViewPoint[3];
00121 double ViewFocus[3];
00122
00123 vtkCellPicker *InteractionPicker;
00124 };
00125
00126 #endif