1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef SMESHGUI_VTKUtils_HeaderFile
21 #define SMESHGUI_VTKUtils_HeaderFile
23 #include "SMESH_SMESHGUI.hxx"
27 class TColStd_IndexedMapOfInteger;
29 #include "SALOMEDSClient_definitions.hxx"
30 #include "SALOME_InteractiveObject.hxx"
31 #include "VTKViewer_Filter.h"
33 class SALOMEDSClient_Study;
36 class SUIT_ViewWindow;
37 class SUIT_ViewManager;
39 class SVTK_ViewWindow;
42 class LightApp_SelectionMgr;
45 #include <omniORB4/CORBA.h>
47 #include "SALOMEconfig.h"
48 #include CORBA_CLIENT_HEADER(SALOMEDS)
50 #include <boost/shared_ptr.hpp>
51 #include "SMESH_Object.h"
55 class SVTK_ViewWindow;
56 class SalomeApp_Module;
60 //----------------------------------------------------------------------------
61 typedef pair<int,string> TKeyOfVisualObj;
64 TVisualObjPtr GetVisualObj(int theStudyId,
65 const char* theEntry);
67 //----------------------------------------------------------------------------
69 SVTK_ViewWindow* GetViewWindow(const SalomeApp_Module* theModule);
72 SUIT_ViewWindow* GetActiveWindow();
75 SVTK_ViewWindow* FindVtkViewWindow( SUIT_ViewManager*,
79 SVTK_ViewWindow* GetVtkViewWindow( SUIT_ViewWindow* );
82 SVTK_ViewWindow* GetCurrentVtkView();
85 void RepaintViewWindow(SVTK_ViewWindow*);
87 void RenderViewWindow(SVTK_ViewWindow*);
89 //----------------------------------------------------------------------------
91 SMESH_Actor* FindActorByEntry (SUIT_ViewWindow*, const char* theEntry);
93 SMESH_Actor* FindActorByEntry (const char* theEntry);
96 SMESH_Actor* FindActorByObject (CORBA::Object_ptr theObject);
98 //----------------------------------------------------------------------------
100 SMESH_Actor* CreateActor (_PTR(Study), const char*, int = false);
102 void DisplayActor (SUIT_ViewWindow*, SMESH_Actor* theActor);
104 void RemoveActor (SUIT_ViewWindow*, SMESH_Actor* theActor);
106 //----------------------------------------------------------------------------
107 enum EDisplaing {eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll};
109 void UpdateView (SUIT_ViewWindow*,
110 EDisplaing theAction,
111 const char* theEntry = "");
113 void UpdateView (EDisplaing theAction,
114 const char* theEntry = "");
120 void Update(const Handle(SALOME_InteractiveObject)& theIO,
124 //----------------------------------------------------------------------------
129 void RepaintCurrentView();
132 vtkRenderer* GetCurrentRenderer();
135 //----------------------------------------------------------------------------
137 void SetPointRepresentation(bool theIsVisible);
140 void SetPickable(SMESH_Actor* theActor = NULL);
143 void UpdateSelectionProp( SMESHGUI* );
146 //----------------------------------------------------------------------------
149 GetSelector(SUIT_ViewWindow* = GetActiveWindow());
152 void SetFilter (const Handle(VTKViewer_Filter)& theFilter,
153 SVTK_Selector* theSelector = GetSelector());
156 Handle(VTKViewer_Filter)
157 GetFilter (int theId, SVTK_Selector* theSelector = GetSelector());
160 bool IsFilterPresent (int theId,
161 SVTK_Selector* theSelector = GetSelector());
164 void RemoveFilter (int theId,
165 SVTK_Selector* theSelector = GetSelector());
168 void RemoveFilters (SVTK_Selector* theSelector = GetSelector());
171 bool IsValid (SALOME_Actor* theActor, int theCellId,
172 SVTK_Selector* theSelector = GetSelector());
174 //----------------------------------------------------------------------------
176 int GetNameOfSelectedNodes(SVTK_Selector* theSelector,
177 const Handle(SALOME_InteractiveObject)& theIO,
181 int GetNameOfSelectedElements(SVTK_Selector* theSelector,
182 const Handle(SALOME_InteractiveObject)& theIO,
186 int GetEdgeNodes(SVTK_Selector* theSelector,
187 const TVisualObjPtr& theVisualObj,
191 //----------------------------------------------------------------------------
193 int GetNameOfSelectedNodes (LightApp_SelectionMgr*,
194 const Handle(SALOME_InteractiveObject)& theIO,
198 int GetNameOfSelectedNodes (LightApp_SelectionMgr*,
202 int GetNameOfSelectedElements (LightApp_SelectionMgr*,
203 const Handle(SALOME_InteractiveObject)& theIO,
207 int GetNameOfSelectedElements (LightApp_SelectionMgr*,
211 int GetSelected (LightApp_SelectionMgr*,
212 TColStd_IndexedMapOfInteger& theMap,
213 const bool theIsElement = true );
216 int GetEdgeNodes (LightApp_SelectionMgr*, int& theId1, int& theId2);
219 void SetControlsPrecision (const long theVal);