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