Salome HOME
Update Help for VISU module.
[modules/visu.git] / src / VISUGUI / VisuGUI_Tools.h
index 0c2469bfb0789cf2d84682d0e88fecc4f3baf880..3f36c793a6b84df9a6df761feca81280e182f9cc 100644 (file)
@@ -32,6 +32,9 @@
 
 #include "VISUConfig.hh"
 
+#include "SalomeApp_Module.h"
+#include "SalomeApp_Application.h"
+
 #include "SALOMEDSClient_Study.hxx"
 
 #include "SALOMEconfig.h"
@@ -42,9 +45,10 @@ class SUIT_ViewWindow;
 class VISU_Actor;
 class SVTK_ViewWindow;
 class SPlot2d_Viewer;
+class SPlot2d_Curve;
+class Plot2d_ViewFrame;
 class CAM_Module;
-class SalomeApp_Module;
-class SalomeApp_SelectionMgr;
+class LightApp_SelectionMgr;
 class SalomeApp_Study;
 
 namespace VISU {
@@ -63,6 +67,9 @@ namespace VISU {
   bool                                 IsStudyLocked( _PTR(Study) theStudy );
   bool                                 CheckLock( _PTR(Study) theStudy );
 
+  inline void                          UpdateObjBrowser(SalomeApp_Module* theModule,
+                                                       bool updateDataModel = true);
+
   VISU_Gen_i*                          GetVisuGen(const CAM_Module* theModule);
   SALOME_MED::MED_Gen_var              GetMEDEngine();
 
@@ -70,17 +77,20 @@ namespace VISU {
   QString                              getValue(_PTR(SObject) theSObject, QString theKey);
 
   // Selection
-  SalomeApp_SelectionMgr*              GetSelectionMgr(const SalomeApp_Module* theModule);
+  LightApp_SelectionMgr*               GetSelectionMgr(const SalomeApp_Module* theModule);
   CORBA::Object_var                    GetSelectedObj(const SalomeApp_Study* theStudy,
                                                      const QString& theEntry,
                                                      VISU::Storable::TRestoringMap* theMap = NULL);
   CORBA::Object_var                    GetSelectedObj(const SalomeApp_Module* theModule,
                                                      Handle(SALOME_InteractiveObject)* theIO = NULL,
                                                      VISU::Storable::TRestoringMap* theMap = NULL);
+  VISU::Prs3d_i*                       GetPrsToModify(const SalomeApp_Module* theModule,
+                                                     Handle(SALOME_InteractiveObject)* theIO = NULL,
+                                                     VISU::Storable::TRestoringMap* theMap = NULL);
 
-  void                                 Add(SalomeApp_SelectionMgr* theSelectionMgr,
+  void                                 Add(LightApp_SelectionMgr* theSelectionMgr,
                                           const Handle(SALOME_InteractiveObject)& theIO);
-  void                                 Remove(SalomeApp_SelectionMgr* theSelectionMgr,
+  void                                 Remove(LightApp_SelectionMgr* theSelectionMgr,
                                              const Handle(SALOME_InteractiveObject)& theIO);
 
   bool                                 IsRemovableSelected(const SalomeApp_Module* theModule);
@@ -102,6 +112,8 @@ namespace VISU {
   void ChangeRepresentation (const SalomeApp_Module* theModule,
                             VISU::PresentationType  theType);
 
+  void SetShading ( const SalomeApp_Module* theModule, bool theOn = true );
+
   // SObject type
   bool                                 CheckTimeStamp(const SalomeApp_Module* theModule,
                                                      _PTR(SObject)&          theSObject,
@@ -142,6 +154,17 @@ namespace VISU {
   void                                 RecreateActor(const SalomeApp_Module* theModule,
                                                     VISU::Prs3d_i* thePrs);
 
+  /*!
+   * \brief Advanced FitAll, sets view projection in accordance with current view contents
+   *
+   * If common bounding box of all actors in \a theViewWindow has
+   * at least one small side, then corresponding projection will be set
+   * (Top, Left or Front), else 3D projection will be used.
+   *
+   * \param theViewWindow - the view to perform FitAll in.
+   */
+  void                                 SetFitAll(SVTK_ViewWindow* theViewWindow);
+
   // Plot2d View
   SPlot2d_Viewer*                      GetPlot2dViewer(const SalomeApp_Module* theModule,
                                                       const bool theCreate = false);
@@ -157,6 +180,12 @@ namespace VISU {
   void                                 CreatePlot( SalomeApp_Module* theModule,
                                                   _PTR(SObject) theSobj );
 
+  void                                 UpdateCurve( VISU::Curve_i*,
+                                                   Plot2d_ViewFrame* frame,
+                                                   SPlot2d_Curve*,
+                                                   int theDisplaying );
+  //parameter frame may be 0, in this case there is only update without display/erase 
+
   // Others
   void CreateMesh (const SalomeApp_Module* theModule,
                   const Handle(SALOME_InteractiveObject)& theIO);
@@ -179,4 +208,11 @@ bool VISU::IsSObjectTable( _PTR(SObject) theSObject )
   return false;
 }
 
+void VISU::UpdateObjBrowser(SalomeApp_Module* theModule,
+                           bool updateDataModel)
+{
+  theModule->updateObjBrowser(updateDataModel);
+  theModule->getApp()->updateActions();
+}
+
 #endif