Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/gui.git] / src / SVTK / SVTK_InteractorStyle.h
index 064b6a2dedb912cca326eb45af3aa828f9235713..3ce8ba2f43e643da3b66a973f20f3e03b892265c 100644 (file)
 #include <map>
 
 #include <vtkObject.h>
+
+#ifdef WIN32
+#pragma warning ( disable:4251 )
+#endif
+
 //
 //! Control the value of increment  in SALOME way.
 /*!
   This class controls of value of increment,
   for pan/rotate/zoom operations in SALOME way
 */
-class SVTK_ControllerIncrement : public vtkObject{
+class SVTK_EXPORT SVTK_ControllerIncrement : public vtkObject{
  public:
   vtkTypeMacro(SVTK_ControllerIncrement, vtkObject);
   static SVTK_ControllerIncrement* New();
@@ -81,7 +86,7 @@ class SVTK_ControllerIncrement : public vtkObject{
   This class controls the behaviour of KeyDown event
   in SALOME way
 */
-class SVTK_ControllerOnKeyDown : public vtkObject{
+class SVTK_EXPORT SVTK_ControllerOnKeyDown : public vtkObject{
  public:
   vtkTypeMacro(SVTK_ControllerOnKeyDown, vtkObject);
   static SVTK_ControllerOnKeyDown* New();
@@ -99,12 +104,13 @@ class SVTK_ControllerOnKeyDown : public vtkObject{
 };
 
 class vtkCell;
-class vtkPicker;
+class vtkPointPicker;
 
 class SALOME_Actor;
 
 class SVTK_Selector;
 class SVTK_GenericRenderWindowInteractor;
+class SVTK_Actor;
 
 #define VTK_INTERACTOR_STYLE_CAMERA_NONE    0
 #define VTK_INTERACTOR_STYLE_CAMERA_ROTATE  1
@@ -114,6 +120,7 @@ class SVTK_GenericRenderWindowInteractor;
 #define VTK_INTERACTOR_STYLE_CAMERA_FIT        5
 #define VTK_INTERACTOR_STYLE_CAMERA_SELECT     6
 #define VTK_INTERACTOR_STYLE_CAMERA_GLOBAL_PAN 7
+#define VTK_INTERACTOR_STYLE_CAMERA_SELECT_ROTATION_POINT 8
 
 //! Introduce SALOME way of user interaction
 /*!
@@ -220,7 +227,7 @@ class SVTK_EXPORT SVTK_InteractorStyle: public vtkInteractorStyle
   
   SVTK_Selector* GetSelector();
 
- protected:
 protected:
   SVTK_InteractorStyle();
   ~SVTK_InteractorStyle();
 
@@ -273,6 +280,8 @@ class SVTK_EXPORT SVTK_InteractorStyle: public vtkInteractorStyle
   void startFitArea();
   void startSpin();
 
+  void startPointSelection();
+
  protected:
   void loadCursors();
   void startOperation(int operation);
@@ -319,7 +328,22 @@ class SVTK_EXPORT SVTK_InteractorStyle: public vtkInteractorStyle
 
   PSelectionEvent mySelectionEvent;
 
-  vtkSmartPointer<vtkPicker> myPicker;
+  unsigned long                   myCurrRotationPointType;
+  unsigned long                   myPrevRotationPointType;
+
+  double                          myRotationPointX;
+  double                          myRotationPointY;
+  double                          myRotationPointZ;
+
+  vtkSmartPointer<SVTK_Actor>     myHighlightRotationPointActor;
+  vtkSmartPointer<vtkPointPicker> myPointPicker;
+  
+  vtkFloatingPointType            myBBCenter[3];
+  bool                            myBBFirstCheck;
 };
 
+#ifdef WIN32
+#pragma warning ( default:4251 )
+#endif
+
 #endif