X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISUGUI%2FVisuGUI_Tools.h;h=0c2469bfb0789cf2d84682d0e88fecc4f3baf880;hb=1061d29ee79e59d7d6327ae7617a9148ab312dc3;hp=e02b91d4dd950670fad7377fb1c64b75d700a337;hpb=c7ac5921131b007858074c5f1e49d186c3493661;p=modules%2Fvisu.git diff --git a/src/VISUGUI/VisuGUI_Tools.h b/src/VISUGUI/VisuGUI_Tools.h index e02b91d4..0c2469bf 100644 --- a/src/VISUGUI/VisuGUI_Tools.h +++ b/src/VISUGUI/VisuGUI_Tools.h @@ -1,28 +1,28 @@ // VISU VISUGUI : GUI of VISU component // // Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org // // // // File : VisuGUI_Tools.h -// Author : Sergey Anikin +// Author : Sergey Anikin // Module : VISU #ifndef VisuGUI_Tools_HeaderFile @@ -35,8 +35,6 @@ #include "SALOMEDSClient_Study.hxx" #include "SALOMEconfig.h" -#include CORBA_SERVER_HEADER(SALOMEDS) -#include CORBA_SERVER_HEADER(VISU_Gen) #include CORBA_SERVER_HEADER(MED_Gen) class SUIT_Desktop; @@ -49,7 +47,7 @@ class SalomeApp_Module; class SalomeApp_SelectionMgr; class SalomeApp_Study; -namespace VISU{ +namespace VISU { class Prs3d_i; class Result_i; class Table_i; @@ -59,26 +57,84 @@ namespace VISU{ typedef std::vector TViewWindows; SUIT_Desktop* GetDesktop(const CAM_Module* theModule); - SalomeApp_SelectionMgr* GetSelectionMgr(const SalomeApp_Module* theModule); SalomeApp_Study* GetAppStudy(const CAM_Module* theModule); _PTR(Study) GetCStudy(const SalomeApp_Study* theStudy); + bool IsStudyLocked( _PTR(Study) theStudy ); bool CheckLock( _PTR(Study) theStudy ); - VISU::Storable::TRestoringMap getMapOfValue(SALOMEDS::SObject_var theSObject); + + VISU_Gen_i* GetVisuGen(const CAM_Module* theModule); + SALOME_MED::MED_Gen_var GetMEDEngine(); + VISU::Storable::TRestoringMap getMapOfValue(_PTR(SObject) theSObject); - QString getValue(SALOMEDS::SObject_var theSObject, QString theKey); QString getValue(_PTR(SObject) theSObject, QString theKey); - SVTK_ViewWindow* GetViewWindow(const SalomeApp_Module* theModule, const bool theCreate = false ); + // Selection + SalomeApp_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); + + void Add(SalomeApp_SelectionMgr* theSelectionMgr, + const Handle(SALOME_InteractiveObject)& theIO); + void Remove(SalomeApp_SelectionMgr* theSelectionMgr, + const Handle(SALOME_InteractiveObject)& theIO); + + bool IsRemovableSelected(const SalomeApp_Module* theModule); + + // Display/Erase + void ErasePrs(const SalomeApp_Module* theModule, + CORBA::Object_ptr theObject, + bool theUpdate = true); + void DeleteSObject(SalomeApp_Module* theModule, + _PTR(Study) theStudy, + _PTR(SObject) theSObject); + void DeletePrs3d(SalomeApp_Module* theModule, + VISU::Prs3d_i* thePrs, + const Handle(SALOME_InteractiveObject)& theIO); + void ErasePrs3d(const SalomeApp_Module* theModule, + VISU::Prs3d_i* thePrs); + + // Presentation management + void ChangeRepresentation (const SalomeApp_Module* theModule, + VISU::PresentationType theType); + + // SObject type + bool CheckTimeStamp(const SalomeApp_Module* theModule, + _PTR(SObject)& theSObject, + Handle(SALOME_InteractiveObject)* theIO = NULL); + VISU::Result_i* CheckResult(const SalomeApp_Module* theModule, + _PTR(SObject) theSource, + VISU::Result_var& theResult); + inline bool IsSObjectTable(_PTR(SObject) theSObject); + + // Views + SUIT_ViewWindow* GetActiveView(const SalomeApp_Module* theModule, + QString theType = QString::null); + + // VTK View + TViewWindows GetViews(const SalomeApp_Module* theModule); + SVTK_ViewWindow* GetViewWindow(const SalomeApp_Module* theModule, + const bool theCreate = false ); SVTK_ViewWindow* GetViewWindow(); - SUIT_ViewWindow* GetActiveView(const SalomeApp_Module* theModule, QString theType = QString::null); VISU_Actor* PublishInView(const SalomeApp_Module* theModule, VISU::Prs3d_i* thePrs); VISU_Actor* UpdateViewer(const SalomeApp_Module* theModule, - VISU::Prs3d_i* thePrs, + VISU::Prs3d_i* thePrs, bool theDispOnly = false); + /*! + * \brief Repaint all SVTK view windows, where the given object is displayed. + * \param theModule - is used to access application. + * \param theIObject - is supposed to be selected (is highlighted in this method). + */ + void RepaintViewWindows(const SalomeApp_Module* theModule, + const Handle(SALOME_InteractiveObject)& theIObject); + VISU_Actor* FindActor(SVTK_ViewWindow* theViewWindow, const char* theEntry); VISU_Actor* FindActor(SVTK_ViewWindow* theViewWindow, @@ -86,57 +142,40 @@ namespace VISU{ void RecreateActor(const SalomeApp_Module* theModule, VISU::Prs3d_i* thePrs); - void Add(SalomeApp_SelectionMgr* theSelectionMgr, - const Handle(SALOME_InteractiveObject)& theIO); - void Remove(SalomeApp_SelectionMgr* theSelectionMgr, - const Handle(SALOME_InteractiveObject)& theIO); - - SALOMEDS::StudyManager_var GetStudyManager(); - VISU_Gen_i* GetVisuGen(const CAM_Module* theModule); - SALOME_MED::MED_Gen_var GetMEDEngine(); - 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); - bool CheckTimeStamp(const SalomeApp_Module* theModule, - SALOMEDS::SObject_var& theSObject, - Handle(SALOME_InteractiveObject)* theIO = NULL); - inline bool IsSObjectTable(_PTR(SObject) theSObject); - VISU::Result_i* CheckResult(const SalomeApp_Module* theModule, - SALOMEDS::SObject_var theSource, - VISU::Result_var& theResult); - TViewWindows GetViews(const SalomeApp_Module* theModule); - void DeletePrs3d(SalomeApp_Module* theModule, - VISU::Prs3d_i* thePrs, - const Handle(SALOME_InteractiveObject)& theIO); - void ErasePrs3d(SalomeApp_Module* theModule, - VISU::Prs3d_i* thePrs); - - SPlot2d_Viewer* GetPlot2dViewer(const SalomeApp_Module* theModule, const bool theCreate = false); - void PlotTable( const SalomeApp_Module* theModule, - VISU::Table_i* table, + // Plot2d View + SPlot2d_Viewer* GetPlot2dViewer(const SalomeApp_Module* theModule, + const bool theCreate = false); + void PlotTable( const SalomeApp_Module* theModule, + VISU::Table_i* table, int theDisplaying ); - void PlotCurve( const SalomeApp_Module* theModule, - VISU::Curve_i* curve, + void PlotCurve( const SalomeApp_Module* theModule, + VISU::Curve_i* curve, int theDisplaying ); - void PlotContainer( const SalomeApp_Module* theModule, - VISU::Container_i* container, + void PlotContainer( const SalomeApp_Module* theModule, + VISU::Container_i* container, int theDisplaying ); void CreatePlot( SalomeApp_Module* theModule, _PTR(SObject) theSobj ); + + // Others + void CreateMesh (const SalomeApp_Module* theModule, + const Handle(SALOME_InteractiveObject)& theIO); + + std::vector GetPrs3dList (const SalomeApp_Module* theModule, + const Handle(SALOME_InteractiveObject)& theIO); + std::vector GetPrs3dList (const SalomeApp_Module* theModule, + _PTR(SObject) theObject); } bool VISU::IsSObjectTable( _PTR(SObject) theSObject ) { - if( theSObject ) { + if ( theSObject ) { _PTR(GenericAttribute) anAttr; - if(theSObject->FindAttribute( anAttr, "AttributeTableOfInteger" )) + if (theSObject->FindAttribute( anAttr, "AttributeTableOfInteger" )) return true; - if(theSObject->FindAttribute( anAttr, "AttributeTableOfReal" )) + if (theSObject->FindAttribute( anAttr, "AttributeTableOfReal" )) return true; - } + } return false; }