dox/Rendering/vtkInteractorStyle.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00088 #ifndef __vtkInteractorStyle_h
00089 #define __vtkInteractorStyle_h
00090
00091 #include "vtkInteractorObserver.h"
00092
00093
00094
00095 #define VTKIS_START 0
00096 #define VTKIS_NONE 0
00097
00098 #define VTKIS_ROTATE 1
00099 #define VTKIS_PAN 2
00100 #define VTKIS_SPIN 3
00101 #define VTKIS_DOLLY 4
00102 #define VTKIS_ZOOM 5
00103 #define VTKIS_USCALE 6
00104 #define VTKIS_TIMER 7
00105 #define VTKIS_FORWARDFLY 8
00106 #define VTKIS_REVERSEFLY 9
00107
00108 #define VTKIS_ANIM_OFF 0
00109 #define VTKIS_ANIM_ON 1
00110
00111 class vtkActor2D;
00112 class vtkActor;
00113 class vtkCallbackCommand;
00114 class vtkOutlineSource;
00115 class vtkPolyDataMapper;
00116 class vtkProp3D;
00117 class vtkProp;
00118
00119 class VTK_RENDERING_EXPORT vtkInteractorStyle : public vtkInteractorObserver
00120 {
00121 public:
00125 static vtkInteractorStyle *New();
00126
00127 vtkTypeRevisionMacro(vtkInteractorStyle,vtkInteractorObserver);
00128 void PrintSelf(ostream& os, vtkIndent indent);
00129
00132 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
00133
00139 virtual void SetEnabled(int);
00140
00142
00148 vtkSetClampMacro(AutoAdjustCameraClippingRange, int, 0, 1 );
00149 vtkGetMacro(AutoAdjustCameraClippingRange, int );
00150 vtkBooleanMacro(AutoAdjustCameraClippingRange, int );
00152
00156 void FindPokedRenderer(int,int);
00157
00159
00160 vtkGetMacro(State,int);
00162
00164
00165 vtkGetMacro(UseTimers,int);
00166 vtkSetMacro(UseTimers,int);
00167 vtkBooleanMacro(UseTimers,int);
00169
00171
00172 vtkSetMacro(HandleObservers,int);
00173 vtkGetMacro(HandleObservers,int);
00174 vtkBooleanMacro(HandleObservers,int);
00176
00178
00179 virtual void OnMouseMove() {};
00180 virtual void OnLeftButtonDown() {};
00181 virtual void OnLeftButtonUp() {};
00182 virtual void OnMiddleButtonDown() {};
00183 virtual void OnMiddleButtonUp() {};
00184 virtual void OnRightButtonDown() {};
00185 virtual void OnRightButtonUp() {};
00187
00189
00191 virtual void OnChar();
00192 virtual void OnKeyDown() {};
00193 virtual void OnKeyUp() {};
00194 virtual void OnKeyPress() {};
00195 virtual void OnKeyRelease() {};
00197
00199
00200 virtual void OnExpose() {};
00201 virtual void OnConfigure() {};
00202 virtual void OnEnter() {};
00203 virtual void OnLeave() {};
00205
00208 virtual void OnTimer();
00209
00211
00215 virtual void Rotate() {};
00216 virtual void Spin() {};
00217 virtual void Pan() {};
00218 virtual void Dolly() {};
00219 virtual void Zoom() {};
00220 virtual void UniformScale() {};
00222
00224
00225 virtual void StartState(int newstate);
00226 virtual void StopState();
00228
00230
00231 virtual void StartAnimate();
00232 virtual void StopAnimate();
00233 virtual void StartRotate();
00234 virtual void EndRotate();
00235 virtual void StartZoom();
00236 virtual void EndZoom();
00237 virtual void StartPan();
00238 virtual void EndPan();
00239 virtual void StartSpin();
00240 virtual void EndSpin();
00241 virtual void StartDolly();
00242 virtual void EndDolly();
00243 virtual void StartUniformScale();
00244 virtual void EndUniformScale();
00245 virtual void StartTimer();
00246 virtual void EndTimer();
00248
00249 #ifndef VTK_REMOVE_LEGACY_CODE
00250
00251
00252 void SetLeftButtonPressMethod(void (*f)(void *), void *arg);
00253 void SetLeftButtonPressMethodArgDelete(void (*f)(void *));
00254 void SetLeftButtonReleaseMethod(void (*f)(void *), void *arg);
00255 void SetLeftButtonReleaseMethodArgDelete(void (*f)(void *));
00256 void SetMiddleButtonPressMethod(void (*f)(void *), void *arg);
00257 void SetMiddleButtonPressMethodArgDelete(void (*f)(void *));
00258 void SetMiddleButtonReleaseMethod(void (*f)(void *), void *arg);
00259 void SetMiddleButtonReleaseMethodArgDelete(void (*f)(void *));
00260 void SetRightButtonPressMethod(void (*f)(void *), void *arg);
00261 void SetRightButtonPressMethodArgDelete(void (*f)(void *));
00262 void SetRightButtonReleaseMethod(void (*f)(void *), void *arg);
00263 void SetRightButtonReleaseMethodArgDelete(void (*f)(void *));
00265 #endif
00266
00268
00272 virtual void HighlightProp(vtkProp *prop);
00273 virtual void HighlightActor2D(vtkActor2D *actor2D);
00274 virtual void HighlightProp3D(vtkProp3D *prop3D);
00276
00278
00280 vtkSetVector3Macro(PickColor,float);
00281 vtkGetVectorMacro(PickColor, float, 3);
00283
00284 protected:
00285 vtkInteractorStyle();
00286 ~vtkInteractorStyle();
00287
00289
00290 static void ProcessEvents(vtkObject* object,
00291 unsigned long event,
00292 void* clientdata,
00293 void* calldata);
00295
00296
00297
00298 int State;
00299 int AnimState;
00300
00301
00302
00303 int HandleObservers;
00304 int UseTimers;
00305
00306 int AutoAdjustCameraClippingRange;
00307
00308
00309
00310 vtkOutlineSource *Outline;
00311 vtkPolyDataMapper *OutlineMapper;
00312 vtkActor *OutlineActor;
00313 vtkRenderer *PickedRenderer;
00314 vtkProp *CurrentProp;
00315 vtkActor2D *PickedActor2D;
00316 int PropPicked;
00317 float PickColor[3];
00318
00319
00320
00321
00322
00323 unsigned long LeftButtonPressTag;
00324 unsigned long LeftButtonReleaseTag;
00325 unsigned long MiddleButtonPressTag;
00326 unsigned long MiddleButtonReleaseTag;
00327 unsigned long RightButtonPressTag;
00328 unsigned long RightButtonReleaseTag;
00329
00330 private:
00331 vtkInteractorStyle(const vtkInteractorStyle&);
00332 void operator=(const vtkInteractorStyle&);
00333 };
00334
00335 #endif