Version: 9.16.0
SMESH_Mesh_i.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
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, or (at your option) any later version.
10//
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.
15//
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
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22// File : SMESH_Mesh_i.hxx
23// Author : Paul RASCLE, EDF
24// Module : SMESH
25
26#ifndef _SMESH_MESH_I_HXX_
27#define _SMESH_MESH_I_HXX_
28
29#include "SMESH.hxx"
30
31#include "SMESH_Hypothesis.hxx"
32#include "SMESH_Mesh.hxx"
33#include "SMESH_subMesh.hxx"
34#include "SMDS_ElemIterator.hxx"
35
36#include <SALOME_GenericObj_i.hh>
37#include <SALOMEconfig.h>
38#include CORBA_SERVER_HEADER(SMESH_Gen)
39#include CORBA_SERVER_HEADER(SMESH_Mesh)
40#include CORBA_SERVER_HEADER(SMESH_Group)
41#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
42#include CORBA_CLIENT_HEADER(GEOM_Gen)
43
44#include <map>
45
46class SMESH_Gen_i;
48class SMESH_subMesh_i;
52class SMESHDS_Mesh;
53
55 public virtual POA_SMESH::SMESH_Mesh,
56 public virtual SALOME::GenericObj_i
57{
60public:
61 SMESH_Mesh_i( PortableServer::POA_ptr thePOA,
62 SMESH_Gen_i* myGen_i );
63
64 virtual ~SMESH_Mesh_i();
65
66 // --- CORBA
67
68 void SetShape( GEOM::GEOM_Object_ptr theShapeObject );
69
70 CORBA::Boolean HasShapeToMesh();
71
72 GEOM::GEOM_Object_ptr GetShapeToMesh();
73
74 virtual void ReplaceShape(GEOM::GEOM_Object_ptr theNewGeom);
75
76 CORBA::Boolean IsLoaded();
77
78 void Load();
79
80 void Clear();
81
82 void ClearSubMesh(CORBA::Long ShapeID);
83
84 SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShape,
85 SMESH::SMESH_Hypothesis_ptr anHyp,
86 CORBA::String_out anErrorText);
87
88 SMESH::Hypothesis_Status RemoveHypothesis(GEOM::GEOM_Object_ptr aSubShape,
89 SMESH::SMESH_Hypothesis_ptr anHyp);
90
91 SMESH::ListOfHypothesis* GetHypothesisList(GEOM::GEOM_Object_ptr aSubShape);
92
93 SMESH::submesh_array* GetSubMeshes();
94
95 SMESH::SMESH_subMesh_ptr GetSubMesh(GEOM::GEOM_Object_ptr aSubShape, const char* theName);
96
97 void RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh );
98
99 SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName );
100
101 SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM(SMESH::ElementType theElemType,
102 const char* theName,
103 GEOM::GEOM_Object_ptr theGeomObj );
104
105 SMESH::SMESH_GroupOnFilter_ptr CreateGroupFromFilter(SMESH::ElementType theElemType,
106 const char* theName,
107 SMESH::Filter_ptr theFilter );
108
109 void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup );
110
111 void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup );
112
113 SMESH::ListOfGroups* GetGroups();
114
115 CORBA::Long NbGroups();
116
117 SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
118 SMESH::SMESH_GroupBase_ptr theGroup2,
119 const char* theName );
120
121 SMESH::SMESH_Group_ptr UnionListOfGroups( const SMESH::ListOfGroups& theGroups,
122 const char* theName);
123
124 SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
125 SMESH::SMESH_GroupBase_ptr theGroup2,
126 const char* theName );
127
128 SMESH::SMESH_Group_ptr IntersectListOfGroups( const SMESH::ListOfGroups& theGroups,
129 const char* theName );
130
131 SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1,
132 SMESH::SMESH_GroupBase_ptr theGroup2,
133 const char* theName );
134
135 SMESH::SMESH_Group_ptr CutListOfGroups( const SMESH::ListOfGroups& theMainGroups,
136 const SMESH::ListOfGroups& theToolGroups,
137 const char* theName );
138
139 SMESH::SMESH_Group_ptr CreateDimGroup( const SMESH::ListOfIDSources& theGroups,
140 SMESH::ElementType theElemType,
141 const char* theName,
142 SMESH::NB_COMMON_NODES_ENUM theNbCommonNodes,
143 CORBA::Boolean theUnderlyingOnly );
144
145 SMESH::ListOfGroups* FaceGroupsSeparatedByEdges( CORBA::Double theSharpAngle,
146 CORBA::Boolean theCreateEdges,
147 CORBA::Boolean theUseExistingEdges );
148
149 SMESH::SMESH_Group_ptr ConvertToStandalone( SMESH::SMESH_GroupBase_ptr theGroupOn );
150
151 SMESH::log_array* GetLog(CORBA::Boolean clearAfterGet);
152
153 SMESH::SMESH_MeshEditor_ptr GetMeshEditor();
154
155 SMESH::SMESH_MeshEditor_ptr GetMeshEditPreviewer();
156
157 CORBA::Boolean HasModificationsToDiscard();
158
159 void ClearLog();
160
161 CORBA::Long GetId();
162
163 // --- C++ interface
164
165 void SetImpl(::SMESH_Mesh* impl);
166 ::SMESH_Mesh& GetImpl(); // :: force no namespace here
167
168 SMESH_Gen_i* GetGen() { return _gen_i; }
169
170 int ImportUNVFile( const char* theFileName );
171
172 int ImportSTLFile( const char* theFileName );
173
174 SMESH::ComputeError* ImportGMFFile( const char* theFileName,
175 bool theMakeRequiredGroups);
176
180 SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName );
181
182 SMESH::DriverMED_ReadStatus ImportCGNSFile( const char* theFileName,
183 const int theMeshIndex,
184 std::string& theMeshName);
185
189 void SetAutoColor(CORBA::Boolean theAutoColor);
190
191 CORBA::Boolean GetAutoColor();
192
196 CORBA::Boolean HasDuplicatedGroupNamesMED();
197
201 char* GetVersionString(CORBA::Long minor, CORBA::Short nbDigits);
202
207 SMESH::long_array* GetMEDVersionsCompatibleForAppend();
208
209 void ExportMED( const char* file,
210 CORBA::Boolean auto_groups,
211 CORBA::Long version,
212 CORBA::Boolean overwrite,
213 CORBA::Boolean autoDimension = true);
214
215 CORBA::LongLong ExportMEDCoupling(CORBA::Boolean auto_groups,
216 CORBA::Boolean autoDimension = true);
217
218 void ExportDAT( const char* file, const CORBA::Boolean renumber );
219 void ExportUNV( const char* file, const CORBA::Boolean renumber );
220 void ExportSTL( const char* file, bool isascii );
221
222 void ExportStructuredCGNS(SMESH::SMESH_IDSource_ptr meshPart,
223 const char* file,
224 CORBA::Boolean overwrite);
225
226 void ExportCGNS(SMESH::SMESH_IDSource_ptr meshPart,
227 const char* file,
228 CORBA::Boolean overwrite,
229 CORBA::Boolean groupElemsByType);
230 void ExportGMF(SMESH::SMESH_IDSource_ptr meshPart,
231 const char* file,
232 CORBA::Boolean withRequiredGroups);
233
234
235 template<class SPECLS>
236 void ExportPartToMEDCommon(SPECLS& speCls,
237 SMESH::SMESH_IDSource_ptr meshPart,
238 CORBA::Boolean auto_groups,
239 CORBA::Boolean autoDim,
240 const GEOM::ListOfFields& fields,
241 const char* geomAssocFields,
242 CORBA::Double ZTolerance,
243 CORBA::Boolean saveNumbers );
244
245 void ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart,
246 const char* file,
247 CORBA::Boolean auto_groups,
248 CORBA::Long version,
249 CORBA::Boolean overwrite,
250 CORBA::Boolean autoDim,
251 const GEOM::ListOfFields& fields,
252 const char* geomAssocFields,
253 CORBA::Double ZTolerance,
254 CORBA::Boolean saveNumbers );
255
256 void ExportPartToMESHIO(SMESH::SMESH_IDSource_ptr meshPart,
257 const char* file,
258 const char* selectedFilter,
259 const char* converter = nullptr);
260
261 CORBA::LongLong ExportPartToMEDCoupling(SMESH::SMESH_IDSource_ptr meshPart,
262 CORBA::Boolean auto_groups,
263 CORBA::Boolean autoDim,
264 const GEOM::ListOfFields& fields,
265 const char* geomAssocFields,
266 CORBA::Double ZTolerance,
267 CORBA::Boolean saveNumbers);
268
269 void ExportPartToDAT(SMESH::SMESH_IDSource_ptr meshPart,
270 const char* file,
271 CORBA::Boolean renumber);
272 void ExportPartToUNV(SMESH::SMESH_IDSource_ptr meshPart,
273 const char* file,
274 CORBA::Boolean renumber);
275 void ExportPartToSTL(SMESH::SMESH_IDSource_ptr meshPart,
276 const char* file,
277 CORBA::Boolean isascii);
278
279 CORBA::Double GetComputeProgress();
280
281 SMESH::smIdType NbNodes();
282
283 SMESH::smIdType NbElements();
284
285 SMESH::smIdType Nb0DElements();
286
287 SMESH::smIdType NbBalls();
288
289 SMESH::smIdType NbEdges();
290
291 SMESH::smIdType NbEdgesOfOrder(SMESH::ElementOrder order);
292
293 SMESH::smIdType NbFaces();
294
295 SMESH::smIdType NbFacesOfOrder(SMESH::ElementOrder order);
296
297 SMESH::smIdType NbTriangles();
298
299 SMESH::smIdType NbTrianglesOfOrder(SMESH::ElementOrder order);
300
301 SMESH::smIdType NbBiQuadTriangles();
302
303 SMESH::smIdType NbQuadrangles();
304
305 SMESH::smIdType NbQuadranglesOfOrder(SMESH::ElementOrder order);
306
307 SMESH::smIdType NbBiQuadQuadrangles();
308
309 SMESH::smIdType NbPolygons();
310
311 SMESH::smIdType NbPolygonsOfOrder(SMESH::ElementOrder order = SMESH::ORDER_ANY);
312
313 SMESH::smIdType NbVolumes();
314
315 SMESH::smIdType NbVolumesOfOrder(SMESH::ElementOrder order);
316
317 SMESH::smIdType NbTetras();
318
319 SMESH::smIdType NbTetrasOfOrder(SMESH::ElementOrder order);
320
321 SMESH::smIdType NbHexas();
322
323 SMESH::smIdType NbHexasOfOrder(SMESH::ElementOrder order);
324
325 SMESH::smIdType NbTriQuadraticHexas();
326
327 SMESH::smIdType NbPyramids();
328
329 SMESH::smIdType NbPyramidsOfOrder(SMESH::ElementOrder order);
330
331 SMESH::smIdType NbPrisms();
332
333 SMESH::smIdType NbPrismsOfOrder(SMESH::ElementOrder order);
334
335 SMESH::smIdType NbHexagonalPrisms();
336
337 SMESH::smIdType NbPolyhedrons();
338
339 SMESH::smIdType NbSubMesh();
340
341 SMESH::smIdType_array* GetElementsId();
342
343 SMESH::smIdType_array* GetElementsByType( SMESH::ElementType theElemType );
344
345 SMESH::smIdType_array* GetNodesId();
346
347 SMESH::ElementType GetElementType( SMESH::smIdType id, bool iselem );
348
349 SMESH::EntityType GetElementGeomType( SMESH::smIdType id );
350
351 SMESH::GeometryType GetElementShape( SMESH::smIdType id );
352
356 SMESH::smIdType_array* GetSubMeshElementsId(CORBA::Long ShapeID);
357
363 SMESH::smIdType_array* GetSubMeshNodesId(CORBA::Long ShapeID, CORBA::Boolean all);
364
368 SMESH::ElementType GetSubMeshElementType(CORBA::Long ShapeID);
369
370 char* Dump();
371
372 // Create groups of elements preventing computation of a sub-shape
373 SMESH::ListOfGroups* MakeGroupsOfBadInputElements( int theSubShapeID,
374 const char* theGroupName);
375
376 // ===================================================
377 // Internal methods not available through CORBA
378 // They are called by corresponding interface methods
379 // ===================================================
380
381 SMESH_Hypothesis::Hypothesis_Status addHypothesis(GEOM::GEOM_Object_ptr aSubShape,
382 SMESH::SMESH_Hypothesis_ptr anHyp,
383 std::string* anErrorText=0);
384
385 SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShape,
386 SMESH::SMESH_Hypothesis_ptr anHyp);
387
389 ConvertHypothesisStatus (SMESH_Hypothesis::Hypothesis_Status theStatus);
390
391 static void PrepareForWriting (const char* file, bool overwrite = true);
392
393 //int importMEDFile( const char* theFileName, const char* theMeshName );
394
395 SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
396
397 bool removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
398 GEOM::GEOM_Object_ptr theSubShapeObject );
399
400 SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType theElemType,
401 const char* theName,
402 const int theID = -1,
403 const TopoDS_Shape& theShape = TopoDS_Shape(),
404 const SMESH_PredicatePtr& thePred = SMESH_PredicatePtr());
405
406 void removeGroup( const int theId );
407
408 SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
409 // return an existing subMesh object for the shapeID. shapeID == submeshID.
410
411 const std::map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
412 // return existing group objects
413
414 void onHypothesisModified(int theHypID, bool updateIcons);
415 // callback from _impl to forget not loaded mesh data (issue 0021208)
416
422 void CheckGeomModif( bool isBreakLink = false );
428 void CheckGeomGroupModif();
429
430 CORBA::LongLong GetMeshPtr();
431
435 void CreateGroupServants();
436
437
438
439 // ====================================
440 // SMESH_Mesh interface (continuation)
441 // ====================================
445 CORBA::Boolean IsComputedOK();
446
450 SMESH::ListOfGroups* GetGroups(const std::list<int>& groupIDs) const;
451
456 SMESH::double_array* GetNodeXYZ(SMESH::smIdType id);
457
462 SMESH::smIdType_array* GetNodeInverseElements(SMESH::smIdType id,
463 SMESH::ElementType elemType);
464
468 SMESH::NodePosition* GetNodePosition(SMESH::smIdType NodeID);
469
473 SMESH::ElementPosition GetElementPosition(SMESH::smIdType ElemID);
474
479 CORBA::Long GetShapeID(SMESH::smIdType id);
480
486 CORBA::Long GetShapeIDForElem(SMESH::smIdType id);
487
492 CORBA::Short GetElemNbNodes(SMESH::smIdType id);
493
497 SMESH::smIdType_array* GetElemNodes(SMESH::smIdType id);
498
504 SMESH::smIdType GetElemNode(SMESH::smIdType id, CORBA::Short index);
505
510 CORBA::Boolean IsMediumNode(SMESH::smIdType ide, SMESH::smIdType idn);
511
516 CORBA::Boolean IsMediumNodeOfAnyElem(SMESH::smIdType idn,
517 SMESH::ElementType elemType);
518
522 CORBA::Long ElemNbEdges(SMESH::smIdType id);
523
527 CORBA::Long ElemNbFaces(SMESH::smIdType id);
531 SMESH::smIdType_array* GetElemFaceNodes(SMESH::smIdType elemId, CORBA::Short faceIndex);
532
536 SMESH::double_array* GetFaceNormal(CORBA::Long faceId, CORBA::Boolean normalized);
537
541 SMESH::smIdType FindElementByNodes(const SMESH::smIdType_array& nodes);
542
546 SMESH::smIdType_array* GetElementsByNodes(const SMESH::smIdType_array& nodes,
547 SMESH::ElementType elemType);
548
552 CORBA::Boolean IsPoly(SMESH::smIdType id);
553
557 CORBA::Boolean IsQuadratic(SMESH::smIdType id);
558
562 CORBA::Double GetBallDiameter(SMESH::smIdType id);
563
567 SMESH::double_array* BaryCenter(SMESH::smIdType id);
568
572 virtual SMESH::MedFileInfo* GetMEDFileInfo();
573
577 std::string FileInfoToString();
578 void FileInfoFromString(const std::string& info);
579
583 int& MainShapeTick() { return _mainShapeTick; }
584
585
589 void SetParameters (const char* theParameters);
590
594 char* GetParameters();
595
599 SMESH::string_array* GetLastParameters();
600
604 CORBA::Boolean IsUnorderedSubMesh(CORBA::Long submeshID);
608 virtual SMESH::submesh_array_array* GetMeshOrder();
612 virtual ::CORBA::Boolean SetMeshOrder(const SMESH::submesh_array_array& theSubMeshArray);
613
614
618 static void CollectMeshInfo(const SMDS_ElemIteratorPtr theItr,
619 SMESH::smIdType_array& theInfo);
623 static SMDS_ElemIteratorPtr GetElements(SMESH::SMESH_IDSource_ptr obj,
624 SMESH::ElementType type);
625
626 // =========================
627 // SMESH_IDSource interface
628 // =========================
629
630 virtual SMESH::smIdType_array* GetIDs();
636 virtual SMESH::smIdType_array* GetMeshInfo();
640 virtual SMESH::smIdType_array* GetNbElementsByType();
644 virtual SMESH::array_of_ElementType* GetTypes();
648 virtual SMESH::SMESH_Mesh_ptr GetMesh();
653 bool IsMeshInfoCorrect();
657 virtual SALOMEDS::TMPFile* GetVtkUgStream();
658
659
660 std::map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
661 std::map<int, ::SMESH_subMesh*> _mapSubMesh; //NRI
662
663public:
664 std::string generateMeshName( );
665 std::string prepareMeshNameAndGroups( const char* file, CORBA::Boolean overwrite );
666 /*
667 * Write GEOM fields to MED file
668 */
669 void exportMEDFields( DriverMED_W_Field & writer,
670 SMESHDS_Mesh* meshDS,
671 const GEOM::ListOfFields& fields,
672 const char* geomAssocFields);
673private:
677 void checkGroupNames();
678
682 void convertMeshOrder(const TListOfListOfInt& theIdsOrder,
683 SMESH::submesh_array_array& theSubMeshOrder,
684 const bool theIsDump);
685
689 TListOfListOfInt findConcurrentSubMeshes();
690
691 protected:
692 ::SMESH_Mesh* _impl; // :: force no namespace here
693 private:
694
695 static int _idGenerator;
697 int _id; // id given by creator (unique within the creator instance)
699 std::map<int, SMESH::SMESH_subMesh_ptr> _mapSubMeshIor;
700 std::map<int, SMESH::SMESH_GroupBase_ptr> _mapGroups;
701 std::map<int, SMESH::SMESH_Hypothesis_ptr> _mapHypo;
704 SMESH::MedFileInfo_var _medFileInfo;
705 SMESH_PreMeshInfo* _preMeshInfo; // mesh info before full loading from study file
706
707 SMESH_PreMeshInfo* & changePreMeshInfo() { return _preMeshInfo; }
708 friend class SMESH_PreMeshInfo;
709
710private:
711
712 // Data used to track changes of GEOM groups
714 // keep study entry but not ior because GEOM_Object actually changes if
715 // number of items in a group varies (1) <-> (>1)
716 std::string _groupEntry;
717 std::set<int> _indices; // indices of group items within group's main shape
718 CORBA::Object_var _smeshObject; // SMESH object depending on GEOM group
719 };
720 std::list<TGeomGroupData> _geomGroupData;
721 int _mainShapeTick; // to track modifications of the meshed shape
722
726 void addGeomGroupData(GEOM::GEOM_Object_ptr theGeomObj,
727 CORBA::Object_ptr theSmeshObj);
731 void removeGeomGroupData(CORBA::Object_ptr theSmeshObj);
735 TopoDS_Shape newGroupShape( TGeomGroupData & groupData, int how );
736
737};
738
739#endif
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
Definition: SMDS_ElemIterator.hxx:43
#define SMESH_I_EXPORT
Definition: SMESH.hxx:39
SMESH::Controls::PredicatePtr SMESH_PredicatePtr
Definition: SMESH_Controls.hxx:81
std::list< TListOfInt > TListOfListOfInt
Definition: SMESH_Mesh.hxx:77
Definition: DriverMED_W_Field.h:40
Definition: SMESHDS_Mesh.hxx:98
Definition: SMESH_Gen_i.hxx:99
Definition: SMESH_Group_i.hxx:53
Hypothesis_Status
Definition: SMESH_Hypothesis.hxx:51
Definition: SMESH_MeshEditor_i.hxx:50
Definition: SMESH_Mesh_i.hxx:57
int _id
Definition: SMESH_Mesh_i.hxx:697
SMESH_PreMeshInfo * _preMeshInfo
Definition: SMESH_Mesh_i.hxx:705
SMESH_Gen_i * GetGen()
Definition: SMESH_Mesh_i.hxx:168
std::map< int, SMESH::SMESH_subMesh_ptr > _mapSubMeshIor
Definition: SMESH_Mesh_i.hxx:699
std::map< int, SMESH_subMesh_i * > _mapSubMesh_i
Definition: SMESH_Mesh_i.hxx:660
std::list< TGeomGroupData > _geomGroupData
Definition: SMESH_Mesh_i.hxx:720
SMESH_Gen_i * _gen_i
Definition: SMESH_Mesh_i.hxx:696
std::map< int, SMESH::SMESH_Hypothesis_ptr > _mapHypo
Definition: SMESH_Mesh_i.hxx:701
SMESH_PreMeshInfo *& changePreMeshInfo()
Definition: SMESH_Mesh_i.hxx:707
const std::map< int, SMESH::SMESH_GroupBase_ptr > & getGroups()
Definition: SMESH_Mesh_i.hxx:411
SMESH::MedFileInfo_var _medFileInfo
Definition: SMESH_Mesh_i.hxx:704
SMESH_Mesh_i(const SMESH_Mesh_i &)
SMESH_MeshEditor_i * _editor
Definition: SMESH_Mesh_i.hxx:702
static int _idGenerator
Definition: SMESH_Mesh_i.hxx:695
SMESH_MeshEditor_i * _previewEditor
Definition: SMESH_Mesh_i.hxx:703
int _mainShapeTick
Definition: SMESH_Mesh_i.hxx:721
std::map< int, SMESH::SMESH_GroupBase_ptr > _mapGroups
Definition: SMESH_Mesh_i.hxx:700
std::map< int, ::SMESH_subMesh * > _mapSubMesh
Definition: SMESH_Mesh_i.hxx:661
int _nbInvalidHypos
Definition: SMESH_Mesh_i.hxx:698
int & MainShapeTick()
Persistence of geometry tick.
Definition: SMESH_Mesh_i.hxx:583
::SMESH_Mesh * _impl
Definition: SMESH_Mesh_i.hxx:692
Definition: SMESH_Mesh.hxx:80
Class loading and holding information of a mesh object (mesh, group, submesh) not yet loaded from HDF...
Definition: SMESH_PreMeshInfo.hxx:54
Definition: SMESH_subMesh_i.hxx:47
Hypothesis_Status
Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
Definition: SMESH_Mesh.idl:208
NB_COMMON_NODES_ENUM
Enumeration for CreateDimGroup()
Definition: SMESH_Mesh.idl:255
sequence< log_block > log_array
Definition: SMESH_Mesh.idl:91
sequence< ElementType > array_of_ElementType
Definition: SMESH_Mesh.idl:138
sequence< submesh_array > submesh_array_array
Definition: SMESH_Mesh.idl:335
EntityType
Enumeration of entity type used in mesh info array, it should be synchronised with enum SMDSAbs_Entit...
Definition: SMESH_Mesh.idl:174
sequence< SMESH_subMesh > submesh_array
Definition: SMESH_Mesh.idl:334
sequence< SMESH_IDSource > ListOfIDSources
Definition: SMESH_Mesh.idl:41
sequence< smIdType > smIdType_array
Definition: SMESH_Mesh.idl:45
GeometryType
Enumeration for element geometry type, like SMDSAbs_GeometryType in SMDSAbs_ElementType....
Definition: SMESH_Mesh.idl:144
ElementOrder
ElementOrder points out entities of what order are requested.
Definition: SMESH_Mesh.idl:163
@ ORDER_ANY
Definition: SMESH_Mesh.idl:164
ElementType
Enumeration for element type, like in SMDS.
Definition: SMESH_Mesh.idl:128
sequence< double > double_array
Definition: SMESH_Mesh.idl:43
sequence< string > string_array
Definition: SMESH_Mesh.idl:46
sequence< SMESH_Hypothesis > ListOfHypothesis
Definition: SMESH_Mesh.idl:37
sequence< SMESH_GroupBase > ListOfGroups
Definition: SMESH_Mesh.idl:39
DriverMED_ReadStatus
Enumeration for mesh read status (used by SMESH_Gen::CreateMeshesFrom*() methods)
Definition: SMESH_Mesh.idl:231
sequence< long > long_array
Definition: SMESH_Mesh.idl:44
Definition: SMESH_Gen.idl:118
Element location on a shape.
Definition: SMESH_Mesh.idl:119
A structure containing information about MED file.
Definition: SMESH_Mesh.idl:245
Node location on a shape.
Definition: SMESH_Mesh.idl:110
Definition: SMESH_Mesh_i.hxx:713
CORBA::Object_var _smeshObject
Definition: SMESH_Mesh_i.hxx:718
std::string _groupEntry
Definition: SMESH_Mesh_i.hxx:716
std::set< int > _indices
Definition: SMESH_Mesh_i.hxx:717