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