1 // SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : SMESH_Mesh_i.hxx
25 // Author : Paul RASCLE, EDF
29 #ifndef _SMESH_MESH_I_HXX_
30 #define _SMESH_MESH_I_HXX_
32 #include <SALOMEconfig.h>
33 #include CORBA_SERVER_HEADER(SMESH_Mesh)
34 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
35 #include CORBA_CLIENT_HEADER(GEOM_Gen)
36 #include CORBA_CLIENT_HEADER(GEOM_Shape)
37 #include CORBA_CLIENT_HEADER(MED)
41 #include "SMESH_Mesh.hxx"
42 #include "SMESH_Gen_i.hxx"
43 #include "SMESH_subMesh_i.hxx"
44 #include "SMESH_subMesh.hxx"
45 #include "SMESH_topo.hxx"
50 public POA_SMESH::SMESH_Mesh
53 SMESH_Mesh_i(SMESH_Gen_i* myGen_i,
54 GEOM::GEOM_Gen_ptr geomEngine,
58 virtual ~SMESH_Mesh_i();
62 CORBA::Boolean AddHypothesis(GEOM::GEOM_Shape_ptr aSubShape,
63 SMESH::SMESH_Hypothesis_ptr anHyp)
64 throw (SALOME::SALOME_Exception);
66 CORBA::Boolean RemoveHypothesis(GEOM::GEOM_Shape_ptr aSubShape,
67 SMESH::SMESH_Hypothesis_ptr anHyp)
68 throw (SALOME::SALOME_Exception);
70 SMESH::ListOfHypothesis* GetHypothesisList(GEOM::GEOM_Shape_ptr aSubShape)
71 throw (SALOME::SALOME_Exception);
73 SMESH::SMESH_subMesh_ptr GetElementsOnShape(GEOM::GEOM_Shape_ptr aSubShape)
74 throw (SALOME::SALOME_Exception);
76 // SMESH::string_array* GetLog(CORBA::Boolean clearAfterGet)
77 // throw (SALOME::SALOME_Exception);
79 SMESH::log_array* GetLog(CORBA::Boolean clearAfterGet)
80 throw (SALOME::SALOME_Exception);
82 SMESH::SMESH_MeshEditor_ptr GetMeshEditor();
85 throw (SALOME::SALOME_Exception);
88 throw (SALOME::SALOME_Exception);
90 CORBA::Long GetStudyId()
91 throw (SALOME::SALOME_Exception);
93 void Export(const char* fileName, const char* fileType)
94 throw (SALOME::SALOME_Exception);
98 void SetImpl(::SMESH_Mesh* impl);
100 ::SMESH_Mesh& GetImpl(); // :: force no namespace here
101 GEOM::GEOM_Gen_ptr GetGeomEngine();
102 void SetIor(SMESH::SMESH_Mesh_ptr myIor);
103 SMESH::SMESH_Mesh_ptr GetIor();
105 SALOME_MED::MESH_ptr GetMEDMesh()
106 throw (SALOME::SALOME_Exception);
108 CORBA::Long NbNodes()
109 throw (SALOME::SALOME_Exception);
111 CORBA::Long NbEdges()
112 throw (SALOME::SALOME_Exception);
114 CORBA::Long NbFaces()
115 throw (SALOME::SALOME_Exception);
117 CORBA::Long NbTriangles()
118 throw (SALOME::SALOME_Exception);
120 CORBA::Long NbQuadrangles()
121 throw (SALOME::SALOME_Exception);
123 CORBA::Long NbVolumes()
124 throw (SALOME::SALOME_Exception);
126 CORBA::Long NbTetras()
127 throw (SALOME::SALOME_Exception);
129 CORBA::Long NbHexas()
130 throw (SALOME::SALOME_Exception);
132 CORBA::Long NbSubMesh()
133 throw (SALOME::SALOME_Exception);
136 map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
137 map<int, ::SMESH_subMesh*> _mapSubMesh; //NRI
140 SMESH::log_array_var createUpdateAllCommand(SMESH::log_array_var log, int * index);
141 ::SMESH_Mesh* _impl; // :: force no namespace here
143 // CORBA::ORB_ptr _orb;
144 // SMESH_topo* _topo; // all local TopoDS_Shape of subShapes
145 GEOM::GEOM_Gen_var _geom;
146 CORBA::Long _studyId;
147 map<int, SMESH::SMESH_subMesh_ptr> _mapSubMeshIor;
148 SMESH::SMESH_Mesh_var _myIor;