Rendering/vtkInteractorStyle.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00090 #ifndef __vtkInteractorStyle_h
00091 #define __vtkInteractorStyle_h
00092
00093 #include "vtkInteractorObserver.h"
00094
00095
00096
00097 #define VTKIS_START 0
00098 #define VTKIS_NONE 0
00099
00100 #define VTKIS_ROTATE 1
00101 #define VTKIS_PAN 2
00102 #define VTKIS_SPIN 3
00103 #define VTKIS_DOLLY 4
00104 #define VTKIS_ZOOM 5
00105 #define VTKIS_USCALE 6
00106 #define VTKIS_TIMER 7
00107 #define VTKIS_FORWARDFLY 8
00108 #define VTKIS_REVERSEFLY 9
00109
00110 #define VTKIS_ANIM_OFF 0
00111 #define VTKIS_ANIM_ON 1
00112
00113 class vtkActor2D;
00114 class vtkActor;
00115 class vtkCallbackCommand;
00116 class vtkOutlineSource;
00117 class vtkPolyDataMapper;
00118 class vtkProp3D;
00119 class vtkProp;
00120
00121 class VTK_RENDERING_EXPORT vtkInteractorStyle : public vtkInteractorObserver
00122 {
00123 public:
00127 static vtkInteractorStyle *New();
00128
00129 vtkTypeRevisionMacro(vtkInteractorStyle,vtkInteractorObserver);
00130 void PrintSelf(ostream& os, vtkIndent indent);
00131
00134 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
00135
00141 virtual void SetEnabled(int);
00142
00144
00150 vtkSetClampMacro(AutoAdjustCameraClippingRange, int, 0, 1 );
00151 vtkGetMacro(AutoAdjustCameraClippingRange, int );
00152 vtkBooleanMacro(AutoAdjustCameraClippingRange, int );
00154
00158 void FindPokedRenderer(int,int);
00159
00161
00162 vtkGetMacro(State,int);
00164
00166
00167 vtkGetMacro(UseTimers,int);
00168 vtkSetMacro(UseTimers,int);
00169 vtkBooleanMacro(UseTimers,int);
00171
00173
00174 vtkSetMacro(HandleObservers,int);
00175 vtkGetMacro(HandleObservers,int);
00176 vtkBooleanMacro(HandleObservers,int);
00178
00180
00181 virtual void OnMouseMove() {};
00182 virtual void OnLeftButtonDown() {};
00183 virtual void OnLeftButtonUp() {};
00184 virtual void OnMiddleButtonDown() {};
00185 virtual void OnMiddleButtonUp() {};
00186 virtual void OnRightButtonDown() {};
00187 virtual void OnRightButtonUp() {};
00189
00191
00193 virtual void OnChar();
00194 virtual void OnKeyDown() {};
00195 virtual void OnKeyUp() {};
00196 virtual void OnKeyPress() {};
00197 virtual void OnKeyRelease() {};
00199
00201
00202 virtual void OnExpose() {};
00203 virtual void OnConfigure() {};
00204 virtual void OnEnter() {};
00205 virtual void OnLeave() {};
00207
00210 virtual void OnTimer();
00211
00213
00217 virtual void Rotate() {};
00218 virtual void Spin() {};
00219 virtual void Pan() {};
00220 virtual void Dolly() {};
00221 virtual void Zoom() {};
00222 virtual void UniformScale() {};
00224
00226
00227 virtual void StartState(int newstate);
00228 virtual void StopState();
00230
00232
00233 virtual void StartAnimate();
00234 virtual void StopAnimate();
00235 virtual void StartRotate();
00236 virtual void EndRotate();
00237 virtual void StartZoom();
00238 virtual void EndZoom();
00239 virtual void StartPan();
00240 virtual void EndPan();
00241 virtual void StartSpin();
00242 virtual void EndSpin();
00243 virtual void StartDolly();
00244 virtual void EndDolly();
00245 virtual void StartUniformScale();
00246 virtual void EndUniformScale();
00247 virtual void StartTimer();
00248 virtual void EndTimer();
00250
00252
00256 virtual void HighlightProp(vtkProp *prop);
00257 virtual void HighlightActor2D(vtkActor2D *actor2D);
00258 virtual void HighlightProp3D(vtkProp3D *prop3D);
00260
00262
00264 vtkSetVector3Macro(PickColor,double);
00265 vtkGetVectorMacro(PickColor, double, 3);
00267
00268 protected:
00269 vtkInteractorStyle();
00270 ~vtkInteractorStyle();
00271
00273
00274 static void ProcessEvents(vtkObject* object,
00275 unsigned long event,
00276 void* clientdata,
00277 void* calldata);
00279
00280
00281
00282 int State;
00283 int AnimState;
00284
00285
00286
00287 int HandleObservers;
00288 int UseTimers;
00289
00290 int AutoAdjustCameraClippingRange;
00291
00292
00293
00294 vtkOutlineSource *Outline;
00295 vtkPolyDataMapper *OutlineMapper;
00296 vtkActor *OutlineActor;
00297 vtkRenderer *PickedRenderer;
00298 vtkProp *CurrentProp;
00299 vtkActor2D *PickedActor2D;
00300 int PropPicked;
00301 double PickColor[3];
00302
00303 private:
00304 vtkInteractorStyle(const vtkInteractorStyle&);
00305 void operator=(const vtkInteractorStyle&);
00306 };
00307
00308 #endif