VTK
vtkInteractorStyle.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkInteractorStyle.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
100 #ifndef vtkInteractorStyle_h
101 #define vtkInteractorStyle_h
102 
103 #include "vtkRenderingCoreModule.h" // For export macro
104 #include "vtkInteractorObserver.h"
105 
106 // Motion flags
107 
108 #define VTKIS_START 0
109 #define VTKIS_NONE 0
110 
111 #define VTKIS_ROTATE 1
112 #define VTKIS_PAN 2
113 #define VTKIS_SPIN 3
114 #define VTKIS_DOLLY 4
115 #define VTKIS_ZOOM 5
116 #define VTKIS_USCALE 6
117 #define VTKIS_TIMER 7
118 #define VTKIS_FORWARDFLY 8
119 #define VTKIS_REVERSEFLY 9
120 #define VTKIS_TWO_POINTER 10
121 
122 #define VTKIS_ANIM_OFF 0
123 #define VTKIS_ANIM_ON 1
124 
125 class vtkActor2D;
126 class vtkActor;
127 class vtkCallbackCommand;
129 class vtkOutlineSource;
130 class vtkPolyDataMapper;
131 class vtkProp3D;
132 class vtkProp;
134 
136 {
137 public:
142 
144  void PrintSelf(ostream& os, vtkIndent indent);
145 
148  virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
149 
155  virtual void SetEnabled(int);
156 
158 
164  vtkSetClampMacro(AutoAdjustCameraClippingRange, int, 0, 1 );
165  vtkGetMacro(AutoAdjustCameraClippingRange, int );
166  vtkBooleanMacro(AutoAdjustCameraClippingRange, int );
168 
172  void FindPokedRenderer(int,int);
173 
175 
176  vtkGetMacro(State,int);
178 
180 
181  vtkGetMacro(UseTimers,int);
182  vtkSetMacro(UseTimers,int);
183  vtkBooleanMacro(UseTimers,int);
185 
187 
191  vtkSetClampMacro(TimerDuration,unsigned long,1,100000);
192  vtkGetMacro(TimerDuration,unsigned long);
194 
196 
197  vtkSetMacro(HandleObservers,int);
198  vtkGetMacro(HandleObservers,int);
199  vtkBooleanMacro(HandleObservers,int);
201 
203 
204  virtual void OnMouseMove() {}
205  virtual void OnLeftButtonDown() {}
206  virtual void OnLeftButtonUp() {}
207  virtual void OnMiddleButtonDown() {}
208  virtual void OnMiddleButtonUp() {}
209  virtual void OnRightButtonDown() {}
210  virtual void OnRightButtonUp() {}
211  virtual void OnMouseWheelForward() {}
212  virtual void OnMouseWheelBackward() {}
214 
217  virtual void OnChar();
218 
219  // OnKeyDown is triggered by pressing any key (identical to OnKeyPress()).
220  // An empty implementation is provided. The behavior of this function should
221  // be specified in the subclass.
222  virtual void OnKeyDown() {}
223 
224  // OnKeyUp is triggered by releaseing any key (identical to OnKeyRelease()).
225  // An empty implementation is provided. The behavior of this function should
226  // be specified in the subclass.
227  virtual void OnKeyUp() {}
228 
229  // OnKeyPress is triggered by pressing any key (identical to OnKeyDown()).
230  // An empty implementation is provided. The behavior of this function should
231  // be specified in the subclass.
232  virtual void OnKeyPress() {}
233 
234  // OnKeyRelease is triggered by pressing any key (identical to OnKeyUp()).
235  // An empty implementation is provided. The behavior of this function should
236  // be specified in the subclass.
237  virtual void OnKeyRelease() {}
238 
240 
241  virtual void OnExpose() {}
242  virtual void OnConfigure() {}
243  virtual void OnEnter() {}
244  virtual void OnLeave() {}
246 
249  virtual void OnTimer();
250 
252 
256  virtual void Rotate() {}
257  virtual void Spin() {}
258  virtual void Pan() {}
259  virtual void Dolly() {}
260  virtual void Zoom() {}
261  virtual void UniformScale() {}
263 
265 
266  virtual void StartState(int newstate);
267  virtual void StopState();
269 
271 
272  virtual void StartAnimate();
273  virtual void StopAnimate();
274  virtual void StartRotate();
275  virtual void EndRotate();
276  virtual void StartZoom();
277  virtual void EndZoom();
278  virtual void StartPan();
279  virtual void EndPan();
280  virtual void StartSpin();
281  virtual void EndSpin();
282  virtual void StartDolly();
283  virtual void EndDolly();
284  virtual void StartUniformScale();
285  virtual void EndUniformScale();
286  virtual void StartTimer();
287  virtual void EndTimer();
288  virtual void StartTwoPointer();
289  virtual void EndTwoPointer();
291 
293 
297  virtual void HighlightProp(vtkProp *prop);
298  virtual void HighlightActor2D(vtkActor2D *actor2D);
299  virtual void HighlightProp3D(vtkProp3D *prop3D);
301 
303 
305  vtkSetVector3Macro(PickColor,double);
306  vtkGetVectorMacro(PickColor, double, 3);
308 
310 
313  vtkSetMacro(MouseWheelMotionFactor, double);
314  vtkGetMacro(MouseWheelMotionFactor, double);
316 
318 
321  virtual void SetTDxStyle(vtkTDxInteractorStyle *tdxStyle);
323 
325 
326  void DelegateTDxEvent(unsigned long event,
327  void *calldata);
329 
330 protected:
333 
335 
336  static void ProcessEvents(vtkObject* object,
337  unsigned long event,
338  void* clientdata,
339  void* calldata);
341 
342  // Keep track of current state
343  int State;
345 
346  // Should observers be handled here, should we fire timers
349  int TimerId; //keep track of the timers that are created/destroyed
350 
352 
353  // For picking and highlighting props
360  int PropPicked; // bool: prop picked?
361  double PickColor[3]; // support 2D picking
363 
364  // Control the timer duration
365  unsigned long TimerDuration; //in milliseconds
366 
367  // Forward events to the RenderWindowInteractor
369 
371 
372 private:
373  vtkInteractorStyle(const vtkInteractorStyle&); // Not implemented.
374  void operator=(const vtkInteractorStyle&); // Not implemented.
375 };
376 
377 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:42
vtkInteractorStyle::Dolly
virtual void Dolly()
Definition: vtkInteractorStyle.h:259
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkOutlineSource
create wireframe outline around bounding box
Definition: vtkOutlineSource.h:39
vtkInteractorStyle::~vtkInteractorStyle
~vtkInteractorStyle()
vtkInteractorStyle::OnKeyRelease
virtual void OnKeyRelease()
Definition: vtkInteractorStyle.h:237
vtkSetVector3Macro
#define vtkSetVector3Macro(name, type)
Definition: vtkSetGet.h:287
vtkInteractorStyle::OnKeyPress
virtual void OnKeyPress()
Definition: vtkInteractorStyle.h:232
vtkProp3D
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:43
vtkInteractorStyle::EndTimer
virtual void EndTimer()
vtkInteractorStyle::HighlightProp3D
virtual void HighlightProp3D(vtkProp3D *prop3D)
vtkInteractorStyle::Pan
virtual void Pan()
Definition: vtkInteractorStyle.h:258
vtkInteractorStyle::HandleObservers
int HandleObservers
Definition: vtkInteractorStyle.h:347
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkInteractorStyle::StartUniformScale
virtual void StartUniformScale()
vtkInteractorStyle::ProcessEvents
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkInteractorObserver
an abstract superclass for classes observing events invoked by vtkRenderWindowInteractor
Definition: vtkInteractorObserver.h:62
vtkgl::event
struct _cl_event * event
Definition: vtkgl.h:14387
vtkInteractorStyle::EndDolly
virtual void EndDolly()
vtkInteractorStyle::FindPokedRenderer
void FindPokedRenderer(int, int)
vtkInteractorStyle::OnMiddleButtonUp
virtual void OnMiddleButtonUp()
Definition: vtkInteractorStyle.h:208
vtkInteractorStyle::vtkInteractorStyle
vtkInteractorStyle()
vtkInteractorStyle::AnimState
int AnimState
Definition: vtkInteractorStyle.h:344
vtkInteractorStyle::UseTimers
int UseTimers
Definition: vtkInteractorStyle.h:348
vtkInteractorStyle::OnMouseMove
virtual void OnMouseMove()
Definition: vtkInteractorStyle.h:204
vtkInteractorStyle::State
int State
Definition: vtkInteractorStyle.h:343
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkInteractorStyle::Spin
virtual void Spin()
Definition: vtkInteractorStyle.h:257
vtkInteractorStyle::StartTimer
virtual void StartTimer()
vtkInteractorStyle::OutlineActor
vtkActor * OutlineActor
Definition: vtkInteractorStyle.h:356
vtkInteractorStyle::TimerId
int TimerId
Definition: vtkInteractorStyle.h:349
vtkInteractorStyle::Outline
vtkOutlineSource * Outline
Definition: vtkInteractorStyle.h:354
vtkInteractorStyle::DelegateTDxEvent
void DelegateTDxEvent(unsigned long event, void *calldata)
vtkInteractorStyle::SetTDxStyle
virtual void SetTDxStyle(vtkTDxInteractorStyle *tdxStyle)
vtkInteractorStyle::StartAnimate
virtual void StartAnimate()
vtkInteractorStyle::OnMiddleButtonDown
virtual void OnMiddleButtonDown()
Definition: vtkInteractorStyle.h:207
vtkInteractorStyle::PropPicked
int PropPicked
Definition: vtkInteractorStyle.h:360
vtkInteractorStyle::OnRightButtonDown
virtual void OnRightButtonDown()
Definition: vtkInteractorStyle.h:209
vtkInteractorStyle::EndRotate
virtual void EndRotate()
vtkInteractorStyle::OnMouseWheelForward
virtual void OnMouseWheelForward()
Definition: vtkInteractorStyle.h:211
vtkInteractorStyle::StartState
virtual void StartState(int newstate)
vtkInteractorStyle::PickedRenderer
vtkRenderer * PickedRenderer
Definition: vtkInteractorStyle.h:357
vtkInteractorStyle::StartTwoPointer
virtual void StartTwoPointer()
vtkInteractorStyle::CurrentProp
vtkProp * CurrentProp
Definition: vtkInteractorStyle.h:358
vtkInteractorStyle::OnLeftButtonDown
virtual void OnLeftButtonDown()
Definition: vtkInteractorStyle.h:205
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkRenderingCoreModule.h
vtkInteractorStyle::StartPan
virtual void StartPan()
vtkInteractorStyle::TDxStyle
vtkTDxInteractorStyle * TDxStyle
Definition: vtkInteractorStyle.h:370
vtkInteractorStyle::OnKeyUp
virtual void OnKeyUp()
Definition: vtkInteractorStyle.h:227
vtkInteractorStyle::HighlightProp
virtual void HighlightProp(vtkProp *prop)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:80
vtkInteractorStyle::OnConfigure
virtual void OnConfigure()
Definition: vtkInteractorStyle.h:242
vtkInteractorStyle::EndSpin
virtual void EndSpin()
vtkInteractorStyle::EventForwarder
vtkEventForwarderCommand * EventForwarder
Definition: vtkInteractorStyle.h:368
vtkInteractorStyle::OnExpose
virtual void OnExpose()
Definition: vtkInteractorStyle.h:241
vtkInteractorStyle
provide event-driven interface to the rendering window (defines trackball mode)
Definition: vtkInteractorStyle.h:136
vtkInteractorStyle::OnMouseWheelBackward
virtual void OnMouseWheelBackward()
Definition: vtkInteractorStyle.h:212
vtkInteractorStyle::TimerDuration
unsigned long TimerDuration
Definition: vtkInteractorStyle.h:365
vtkInteractorStyle::OnLeftButtonUp
virtual void OnLeftButtonUp()
Definition: vtkInteractorStyle.h:206
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkInteractorStyle::StopState
virtual void StopState()
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:50
vtkInteractorStyle::AutoAdjustCameraClippingRange
int AutoAdjustCameraClippingRange
Definition: vtkInteractorStyle.h:351
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:45
vtkInteractorStyle::EndUniformScale
virtual void EndUniformScale()
vtkInteractorStyle::New
static vtkInteractorStyle * New()
vtkInteractorStyle::UniformScale
virtual void UniformScale()
Definition: vtkInteractorStyle.h:261
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkInteractorObserver.h
vtkInteractorStyle::Rotate
virtual void Rotate()
Definition: vtkInteractorStyle.h:256
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:50
vtkInteractorStyle::StopAnimate
virtual void StopAnimate()
vtkInteractorStyle::EndPan
virtual void EndPan()
vtkInteractorStyle::StartZoom
virtual void StartZoom()
vtkTDxInteractorStyle
provide 3DConnexion device event-driven interface to the rendering window
Definition: vtkTDxInteractorStyle.h:45
vtkInteractorStyle::OnRightButtonUp
virtual void OnRightButtonUp()
Definition: vtkInteractorStyle.h:210
vtkInteractorStyle::OnEnter
virtual void OnEnter()
Definition: vtkInteractorStyle.h:243
vtkInteractorStyle::SetInteractor
virtual void SetInteractor(vtkRenderWindowInteractor *interactor)
vtkInteractorStyle::MouseWheelMotionFactor
double MouseWheelMotionFactor
Definition: vtkInteractorStyle.h:362
vtkInteractorStyle::EndZoom
virtual void EndZoom()
VTKRENDERINGCORE_EXPORT
#define VTKRENDERINGCORE_EXPORT
Definition: vtkRenderingCoreModule.h:15
vtkInteractorStyle::StartDolly
virtual void StartDolly()
vtkInteractorStyle::HighlightActor2D
virtual void HighlightActor2D(vtkActor2D *actor2D)
vtkInteractorStyle::EndTwoPointer
virtual void EndTwoPointer()
vtkInteractorStyle::OnChar
virtual void OnChar()
vtkInteractorStyle::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkInteractorStyle::StartSpin
virtual void StartSpin()
vtkEventForwarderCommand
a simple event forwarder command
Definition: vtkEventForwarderCommand.h:34
vtkInteractorStyle::SetEnabled
virtual void SetEnabled(int)
vtkInteractorStyle::OutlineMapper
vtkPolyDataMapper * OutlineMapper
Definition: vtkInteractorStyle.h:355
vtkInteractorStyle::OnTimer
virtual void OnTimer()
vtkInteractorStyle::PickedActor2D
vtkActor2D * PickedActor2D
Definition: vtkInteractorStyle.h:359
vtkInteractorStyle::StartRotate
virtual void StartRotate()
vtkInteractorStyle::OnKeyDown
virtual void OnKeyDown()
Definition: vtkInteractorStyle.h:222
vtkInteractorStyle::OnLeave
virtual void OnLeave()
Definition: vtkInteractorStyle.h:244
vtkInteractorStyle::Zoom
virtual void Zoom()
Definition: vtkInteractorStyle.h:260