Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
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
00102 #ifndef __vtkInteractorStyle_h
00103 #define __vtkInteractorStyle_h
00104
00105 #include "vtkInteractorObserver.h"
00106
00107
00108
00109 #define VTKIS_START 0
00110 #define VTKIS_NONE 0
00111
00112 #define VTKIS_ROTATE 1
00113 #define VTKIS_PAN 2
00114 #define VTKIS_SPIN 3
00115 #define VTKIS_DOLLY 4
00116 #define VTKIS_ZOOM 5
00117 #define VTKIS_USCALE 6
00118 #define VTKIS_TIMER 7
00119 #define VTKIS_FORWARDFLY 8
00120 #define VTKIS_REVERSEFLY 9
00121
00122 #define VTKIS_ANIM_OFF 0
00123 #define VTKIS_ANIM_ON 1
00124
00125 class vtkActor2D;
00126 class vtkActor;
00127 class vtkCallbackCommand;
00128 class vtkOutlineSource;
00129 class vtkPolyDataMapper;
00130 class vtkProp3D;
00131 class vtkProp;
00132
00133 class VTK_RENDERING_EXPORT vtkInteractorStyle : public vtkInteractorObserver
00134 {
00135 public:
00139 static vtkInteractorStyle *New();
00140
00141 vtkTypeRevisionMacro(vtkInteractorStyle,vtkInteractorObserver);
00142 void PrintSelf(ostream& os, vtkIndent indent);
00143
00146 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
00147
00153 virtual void SetEnabled(int);
00154
00156
00162 vtkSetClampMacro(AutoAdjustCameraClippingRange, int, 0, 1 );
00163 vtkGetMacro(AutoAdjustCameraClippingRange, int );
00164 vtkBooleanMacro(AutoAdjustCameraClippingRange, int );
00166
00170 void FindPokedRenderer(int,int);
00171
00173
00174 vtkGetMacro(State,int);
00176
00178
00179 vtkGetMacro(UseTimers,int);
00180 vtkSetMacro(UseTimers,int);
00181 vtkBooleanMacro(UseTimers,int);
00183
00185
00186 vtkSetMacro(HandleObservers,int);
00187 vtkGetMacro(HandleObservers,int);
00188 vtkBooleanMacro(HandleObservers,int);
00190
00192
00193 virtual void OnMouseMove() {};
00194 virtual void OnLeftButtonDown() {};
00195 virtual void OnLeftButtonUp() {};
00196 virtual void OnMiddleButtonDown() {};
00197 virtual void OnMiddleButtonUp() {};
00198 virtual void OnRightButtonDown() {};
00199 virtual void OnRightButtonUp() {};
00201
00203
00205 virtual void OnChar();
00206 virtual void OnKeyDown() {};
00207 virtual void OnKeyUp() {};
00208 virtual void OnKeyPress() {};
00209 virtual void OnKeyRelease() {};
00211
00213
00214 virtual void OnExpose() {};
00215 virtual void OnConfigure() {};
00216 virtual void OnEnter() {};
00217 virtual void OnLeave() {};
00219
00222 virtual void OnTimer();
00223
00225
00229 virtual void Rotate() {};
00230 virtual void Spin() {};
00231 virtual void Pan() {};
00232 virtual void Dolly() {};
00233 virtual void Zoom() {};
00234 virtual void UniformScale() {};
00236
00238
00239 virtual void StartState(int newstate);
00240 virtual void StopState();
00242
00244
00245 virtual void StartAnimate();
00246 virtual void StopAnimate();
00247 virtual void StartRotate();
00248 virtual void EndRotate();
00249 virtual void StartZoom();
00250 virtual void EndZoom();
00251 virtual void StartPan();
00252 virtual void EndPan();
00253 virtual void StartSpin();
00254 virtual void EndSpin();
00255 virtual void StartDolly();
00256 virtual void EndDolly();
00257 virtual void StartUniformScale();
00258 virtual void EndUniformScale();
00259 virtual void StartTimer();
00260 virtual void EndTimer();
00262
00263 #ifndef VTK_REMOVE_LEGACY_CODE
00264
00265
00266 void SetLeftButtonPressMethod(void (*f)(void *), void *arg);
00267 void SetLeftButtonPressMethodArgDelete(void (*f)(void *));
00268 void SetLeftButtonReleaseMethod(void (*f)(void *), void *arg);
00269 void SetLeftButtonReleaseMethodArgDelete(void (*f)(void *));
00270 void SetMiddleButtonPressMethod(void (*f)(void *), void *arg);
00271 void SetMiddleButtonPressMethodArgDelete(void (*f)(void *));
00272 void SetMiddleButtonReleaseMethod(void (*f)(void *), void *arg);
00273 void SetMiddleButtonReleaseMethodArgDelete(void (*f)(void *));
00274 void SetRightButtonPressMethod(void (*f)(void *), void *arg);
00275 void SetRightButtonPressMethodArgDelete(void (*f)(void *));
00276 void SetRightButtonReleaseMethod(void (*f)(void *), void *arg);
00277 void SetRightButtonReleaseMethodArgDelete(void (*f)(void *));
00279 #endif
00280
00282
00286 virtual void HighlightProp(vtkProp *prop);
00287 virtual void HighlightActor2D(vtkActor2D *actor2D);
00288 virtual void HighlightProp3D(vtkProp3D *prop3D);
00290
00292
00294 vtkSetVector3Macro(PickColor,float);
00295 vtkGetVectorMacro(PickColor, float, 3);
00297
00298 protected:
00299 vtkInteractorStyle();
00300 ~vtkInteractorStyle();
00301
00303
00304 static void ProcessEvents(vtkObject* object,
00305 unsigned long event,
00306 void* clientdata,
00307 void* calldata);
00309
00310
00311
00312 int State;
00313 int AnimState;
00314
00315
00316
00317 int HandleObservers;
00318 int UseTimers;
00319
00320 int AutoAdjustCameraClippingRange;
00321
00322
00323
00324 vtkOutlineSource *Outline;
00325 vtkPolyDataMapper *OutlineMapper;
00326 vtkActor *OutlineActor;
00327 vtkRenderer *PickedRenderer;
00328 vtkProp *CurrentProp;
00329 vtkActor2D *PickedActor2D;
00330 int PropPicked;
00331 float PickColor[3];
00332
00333
00334
00335
00336
00337 unsigned long LeftButtonPressTag;
00338 unsigned long LeftButtonReleaseTag;
00339 unsigned long MiddleButtonPressTag;
00340 unsigned long MiddleButtonReleaseTag;
00341 unsigned long RightButtonPressTag;
00342 unsigned long RightButtonReleaseTag;
00343
00344 private:
00345 vtkInteractorStyle(const vtkInteractorStyle&);
00346 void operator=(const vtkInteractorStyle&);
00347 };
00348
00349 #endif