27 #ifndef __SVTK_InteractorStyle_h
28 #define __SVTK_InteractorStyle_h
34 #include <boost/shared_ptr.hpp>
36 #include <vtkInteractorStyle.h>
37 #include <vtkSmartPointer.h>
44 #include <vtkObject.h>
47 #pragma warning ( disable:4251 )
62 void SetStartValue(
const int );
68 virtual int Increase();
71 virtual int Decrease();
94 virtual int Increase();
97 virtual int Decrease();
128 class vtkPointPicker;
129 class vtkTDxInteractorStyle;
139 #define VTK_INTERACTOR_STYLE_CAMERA_NONE 0
140 #define VTK_INTERACTOR_STYLE_CAMERA_ROTATE 1
141 #define VTK_INTERACTOR_STYLE_CAMERA_PAN 2
142 #define VTK_INTERACTOR_STYLE_CAMERA_ZOOM 3
143 #define VTK_INTERACTOR_STYLE_CAMERA_SPIN 4
144 #define VTK_INTERACTOR_STYLE_CAMERA_FIT 5
145 #define VTK_INTERACTOR_STYLE_CAMERA_SELECT 6
146 #define VTK_INTERACTOR_STYLE_CAMERA_GLOBAL_PAN 7
147 #define VTK_INTERACTOR_STYLE_CAMERA_SELECT_ROTATION_POINT 8
148 #define VTK_INTERACTOR_STYLE_CAMERA_INTERACTIVE_SELECTION 9
163 typedef boost::shared_ptr<SVTK_SelectionEvent> PSelectionEvent;
177 virtual void Render();
180 virtual void OnTimer();
183 virtual void OnConfigure();
186 virtual void OnMouseMove();
189 virtual void OnLeftButtonDown();
192 virtual void OnLeftButtonUp();
195 virtual void OnMiddleButtonDown();
198 virtual void OnMiddleButtonUp();
201 virtual void OnRightButtonDown();
204 virtual void OnRightButtonUp();
207 virtual void OnMouseWheelForward();
210 virtual void OnMouseWheelBackward();
213 virtual void OnMouseButtonDoubleClick();
216 virtual void OnChar();
222 void SetIncrementSpeed(
const int,
const int = 0);
228 virtual void OnKeyDown();
231 void ActionPicking();
244 { myPoligonState = thePolygonState; }
261 virtual void OnLeftButtonDown(
int ctrl,
int shift,
int x,
int y);
263 virtual void OnMiddleButtonDown(
int ctrl,
int shift,
int x,
int y);
265 virtual void OnRightButtonDown(
int ctrl,
int shift,
int x,
int y);
268 void RotateXY(
int dx,
int dy);
269 void PanXY(
int x,
int y,
int oldX,
int oldY);
270 void DollyXY(
int dx,
int dy);
271 void SpinXY(
int dx,
int dy,
int oldX,
int oldY);
272 void fitRect(
const int left,
const int top,
const int right,
const int bottom);
273 void Place(
const int theX,
const int theY);
274 void TranslateView(
int toX,
int toY,
int fromX,
int fromY);
277 IncrementalPan(
const int incrX,
const int incrY );
280 IncrementalZoom(
const int incr );
283 IncrementalRotate(
const int incrX,
const int incrY );
286 InteractiveSelection();
303 void startGlobalPan();
308 void startPointSelection();
309 void startFocalPointSelection();
310 void startInteractiveSelection();
314 void startOperation(
int operation);
315 void onStartOperation();
316 virtual void onFinishOperation();
317 void onOperation(QPoint mousePos);
318 void onCursorMove(QPoint mousePos);
319 void setCursor(
const int operation);
321 void onSpaceMouseMove(
double* data );
322 virtual void onSpaceMouseButton(
int button );
324 void DominantCombinedSwitch();
329 void endDrawPolygon();
376 double myBBCenter[3];
377 double myInteractivePoint[3];
389 #pragma warning ( default:4251 )
#define SVTK_EXPORT
Definition: SVTK.h:37
PolygonState
Definition: SVTK_InteractorStyle.h:150
@ Closed
Definition: SVTK_InteractorStyle.h:150
@ NotValid
Definition: SVTK_InteractorStyle.h:150
@ InProcess
Definition: SVTK_InteractorStyle.h:150
@ Disable
Definition: SVTK_InteractorStyle.h:150
@ Finished
Definition: SVTK_InteractorStyle.h:150
@ Start
Definition: SVTK_InteractorStyle.h:150
Definition: QtxRubberBand.h:76
Definition: QtxRubberBand.h:61
The class is a basic one for all SALOME VTK presentation.
Definition: SALOME_Actor.h:73
This class used for internal SVTK package purpose (highlight and prehighlight)
Definition: SVTK_Actor.h:47
Control the value of increment in arithmetic progression mode.
Definition: SVTK_InteractorStyle.h:56
vtkTypeMacro(SVTK_ControllerIncrement, vtkObject) static SVTK_ControllerIncrement *New()
int myIncrement
Definition: SVTK_InteractorStyle.h:76
SVTK_ControllerIncrement()
SVTK_ControllerIncrement(const SVTK_ControllerIncrement &)
void operator=(const SVTK_ControllerIncrement &)
Control the behaviour of KeyDown event in SALOME way.
Definition: SVTK_InteractorStyle.h:111
void operator=(const SVTK_ControllerOnKeyDown &)
vtkTypeMacro(SVTK_ControllerOnKeyDown, vtkObject) static SVTK_ControllerOnKeyDown *New()
SVTK_ControllerOnKeyDown(const SVTK_ControllerOnKeyDown &)
SVTK_ControllerOnKeyDown()
Definition: SVTK_GenericRenderWindowInteractor.h:98
Control the value of increment in geometric progression mode.
Definition: SVTK_InteractorStyle.h:88
SVTK_GeomControllerIncrement(const SVTK_GeomControllerIncrement &)
vtkTypeMacro(SVTK_GeomControllerIncrement, SVTK_ControllerIncrement) static SVTK_GeomControllerIncrement *New()
void operator=(const SVTK_GeomControllerIncrement &)
SVTK_GeomControllerIncrement()
Introduce SALOME way of user interaction.
Definition: SVTK_InteractorStyle.h:158
PolygonState GetPolygonState() const
Definition: SVTK_InteractorStyle.h:242
void SetPolygonState(const PolygonState &thePolygonState)
Definition: SVTK_InteractorStyle.h:243
unsigned long myCurrRotationPointType
Definition: SVTK_InteractorStyle.h:363
QCursor mySpinCursor
Definition: SVTK_InteractorStyle.h:336
vtkSmartPointer< SALOME_Actor > myLastHighlitedActor
Definition: SVTK_InteractorStyle.h:345
static SVTK_InteractorStyle * New()
int ForcedState
Definition: SVTK_InteractorStyle.h:343
virtual void OnMiddleButtonUp(int ctrl, int shift, int x, int y)
unsigned long myCurrFocalPointType
Definition: SVTK_InteractorStyle.h:366
QCursor myPanCursor
Definition: SVTK_InteractorStyle.h:333
void SetAdvancedZoomingEnabled(const bool theState)
Definition: SVTK_InteractorStyle.h:246
vtkSmartPointer< SVTK_ControllerIncrement > myControllerIncrement
"Increment" controller for pan/rotate/zoom operations
Definition: SVTK_InteractorStyle.h:349
QCursor myRotateCursor
Definition: SVTK_InteractorStyle.h:335
QtxRectRubberBand * myRectBand
selection rectangle rubber band
Definition: SVTK_InteractorStyle.h:380
bool IsAdvancedZoomingEnabled() const
Definition: SVTK_InteractorStyle.h:247
double myRotationPointZ
Definition: SVTK_InteractorStyle.h:371
virtual void OnLeftButtonUp(int ctrl, int shift, int x, int y)
vtkSmartPointer< SVTK_GenericRenderWindowInteractor > myInteractor
Definition: SVTK_InteractorStyle.h:359
vtkSmartPointer< SVTK_Actor > myHighlightSelectionPointActor
Definition: SVTK_InteractorStyle.h:373
vtkSmartPointer< vtkPointPicker > myPointPicker
Definition: SVTK_InteractorStyle.h:374
float MotionFactor
Definition: SVTK_InteractorStyle.h:296
int mySMDominantCombinedSwitchBtn
Definition: SVTK_InteractorStyle.h:357
QtxPolyRubberBand * myPolygonBand
polygonal selection
Definition: SVTK_InteractorStyle.h:381
unsigned long myPrevRotationPointType
Definition: SVTK_InteractorStyle.h:364
float RadianToDegree
Definition: SVTK_InteractorStyle.h:297
QVector< QPoint > myPolygonPoints
Definition: SVTK_InteractorStyle.h:382
unsigned long myPrevFocalPointType
Definition: SVTK_InteractorStyle.h:367
QCursor myGlobalPanCursor
Definition: SVTK_InteractorStyle.h:338
int mySMIncreaseSpeedBtn
Definition: SVTK_InteractorStyle.h:356
vtkTypeMacro(SVTK_InteractorStyle, vtkInteractorStyle) typedef boost void SetTDxStyle(vtkTDxInteractorStyle *)
Definition: SVTK_InteractorStyle.h:165
double myScale
Definition: SVTK_InteractorStyle.h:298
virtual void OnMouseMove(int ctrl, int shift, int x, int y)
QPoint myPoint
Definition: SVTK_InteractorStyle.h:339
virtual void OnRightButtonUp(int ctrl, int shift, int x, int y)
int mySMDecreaseSpeedBtn
Definition: SVTK_InteractorStyle.h:355
PSelectionEvent mySelectionEvent
Definition: SVTK_InteractorStyle.h:361
QCursor myZoomCursor
Definition: SVTK_InteractorStyle.h:334
vtkSmartPointer< SVTK_ControllerOnKeyDown > myControllerOnKeyDown
controls the behaviour of KeyDown event in SALOME way
Definition: SVTK_InteractorStyle.h:352
bool myBBFirstCheck
Definition: SVTK_InteractorStyle.h:378
int CurrentState() const
Definition: SVTK_InteractorStyle.h:241
bool myShiftState
Definition: SVTK_InteractorStyle.h:342
bool myIsAdvancedZoomingEnabled
Definition: SVTK_InteractorStyle.h:385
QCursor myDefCursor
Definition: SVTK_InteractorStyle.h:332
double myRotationPointY
Definition: SVTK_InteractorStyle.h:370
double myRotationPointX
Definition: SVTK_InteractorStyle.h:369
QPoint myOtherPoint
Definition: SVTK_InteractorStyle.h:340
bool myCursorState
Definition: SVTK_InteractorStyle.h:341
PolygonState myPoligonState
Definition: SVTK_InteractorStyle.h:383
vtkSmartPointer< SALOME_Actor > myLastPreHighlitedActor
Definition: SVTK_InteractorStyle.h:346
QCursor myHandCursor
Definition: SVTK_InteractorStyle.h:337
Define an abstract interface for selection in SVTK package.
Definition: SVTK_Selector.h:58
The structure is used for passing all infromation necessary for claculation of the selection.
Definition: SVTK_SelectionEvent.h:41