Salome HOME
Implement custom fit all command which is used in sketcher of SHAPER module
[modules/gui.git] / src / OCCViewer / OCCViewer_ViewModel.h
index 8d91518e92fcfd2c525fa8e34751978b02fdfe81..dddf9d11a5827136d76986e47232042ec0afd52c 100644 (file)
@@ -58,6 +58,19 @@ class QtxAction;
 #pragma warning( disable:4251 )
 #endif
 
+/**
+An object wich provides alternative way to fit scene in a view
+*/
+class OCCViewer_Fitter
+{
+public:
+  /// A method which has top be reimplemented to provide alterantive implementation FitAll command
+  /// \param theView - a view which has to be fit
+  virtual void fitAll(Handle(V3d_View) theView) = 0;
+};
+
+
+
 class OCCVIEWER_EXPORT OCCViewer_Viewer: public SUIT_ViewModel
 {
   Q_OBJECT
@@ -143,6 +156,18 @@ public:
   bool                            useLocalSelection() const;
 #endif
 
+  // Methods to access fitter
+
+  /// Returns currently installed fitter
+  OCCViewer_Fitter* fitter() const { return myFitter; }
+
+  /// Installs new fitter
+  /// \param theFitter a new fitter
+  void setFitter(OCCViewer_Fitter* theFitter) {
+    myFitter = theFitter;
+  }
+
+
 public:
   Handle(V3d_Viewer)              getViewer3d()    const { return myV3dViewer;}
   Handle(AIS_InteractiveContext)  getAISContext()  const { return myAISContext; }
@@ -298,6 +323,8 @@ protected:
 #if OCC_VERSION_LARGE <= 0x07030000
   bool                            myIsUseLocalSelection;
 #endif
+
+  OCCViewer_Fitter* myFitter;
 };
 
 #ifdef WIN32