Version: 9.12.0
SMESH_Mesh_i.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 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 
46 class SMESH_Gen_i;
47 class SMESH_GroupBase_i;
48 class SMESH_subMesh_i;
49 class SMESH_PreMeshInfo;
50 class SMESH_MeshEditor_i;
51 class DriverMED_W_Field;
52 class SMESHDS_Mesh;
53 
55  public virtual POA_SMESH::SMESH_Mesh,
56  public virtual SALOME::GenericObj_i
57 {
60 public:
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  void ExportCGNS(SMESH::SMESH_IDSource_ptr meshPart,
222  const char* file,
223  CORBA::Boolean overwrite,
224  CORBA::Boolean groupElemsByType);
225  void ExportGMF(SMESH::SMESH_IDSource_ptr meshPart,
226  const char* file,
227  CORBA::Boolean withRequiredGroups);
228 
229 
230  template<class SPECLS>
231  void ExportPartToMEDCommon(SPECLS& speCls,
232  SMESH::SMESH_IDSource_ptr meshPart,
233  CORBA::Boolean auto_groups,
234  CORBA::Boolean autoDim,
235  const GEOM::ListOfFields& fields,
236  const char* geomAssocFields,
237  CORBA::Double ZTolerance,
238  CORBA::Boolean saveNumbers );
239 
240  void ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart,
241  const char* file,
242  CORBA::Boolean auto_groups,
243  CORBA::Long version,
244  CORBA::Boolean overwrite,
245  CORBA::Boolean autoDim,
246  const GEOM::ListOfFields& fields,
247  const char* geomAssocFields,
248  CORBA::Double ZTolerance,
249  CORBA::Boolean saveNumbers );
250 
251  CORBA::LongLong ExportPartToMEDCoupling(SMESH::SMESH_IDSource_ptr meshPart,
252  CORBA::Boolean auto_groups,
253  CORBA::Boolean autoDim,
254  const GEOM::ListOfFields& fields,
255  const char* geomAssocFields,
256  CORBA::Double ZTolerance,
257  CORBA::Boolean saveNumbers);
258 
259  void ExportPartToDAT(SMESH::SMESH_IDSource_ptr meshPart,
260  const char* file,
261  CORBA::Boolean renumber);
262  void ExportPartToUNV(SMESH::SMESH_IDSource_ptr meshPart,
263  const char* file,
264  CORBA::Boolean renumber);
265  void ExportPartToSTL(SMESH::SMESH_IDSource_ptr meshPart,
266  const char* file,
267  CORBA::Boolean isascii);
268 
269  CORBA::Double GetComputeProgress();
270 
271  SMESH::smIdType NbNodes();
272 
273  SMESH::smIdType NbElements();
274 
275  SMESH::smIdType Nb0DElements();
276 
277  SMESH::smIdType NbBalls();
278 
279  SMESH::smIdType NbEdges();
280 
281  SMESH::smIdType NbEdgesOfOrder(SMESH::ElementOrder order);
282 
283  SMESH::smIdType NbFaces();
284 
285  SMESH::smIdType NbFacesOfOrder(SMESH::ElementOrder order);
286 
287  SMESH::smIdType NbTriangles();
288 
289  SMESH::smIdType NbTrianglesOfOrder(SMESH::ElementOrder order);
290 
291  SMESH::smIdType NbBiQuadTriangles();
292 
293  SMESH::smIdType NbQuadrangles();
294 
295  SMESH::smIdType NbQuadranglesOfOrder(SMESH::ElementOrder order);
296 
297  SMESH::smIdType NbBiQuadQuadrangles();
298 
299  SMESH::smIdType NbPolygons();
300 
301  SMESH::smIdType NbPolygonsOfOrder(SMESH::ElementOrder order = SMESH::ORDER_ANY);
302 
303  SMESH::smIdType NbVolumes();
304 
305  SMESH::smIdType NbVolumesOfOrder(SMESH::ElementOrder order);
306 
307  SMESH::smIdType NbTetras();
308 
309  SMESH::smIdType NbTetrasOfOrder(SMESH::ElementOrder order);
310 
311  SMESH::smIdType NbHexas();
312 
313  SMESH::smIdType NbHexasOfOrder(SMESH::ElementOrder order);
314 
315  SMESH::smIdType NbTriQuadraticHexas();
316 
317  SMESH::smIdType NbPyramids();
318 
319  SMESH::smIdType NbPyramidsOfOrder(SMESH::ElementOrder order);
320 
321  SMESH::smIdType NbPrisms();
322 
323  SMESH::smIdType NbPrismsOfOrder(SMESH::ElementOrder order);
324 
325  SMESH::smIdType NbHexagonalPrisms();
326 
327  SMESH::smIdType NbPolyhedrons();
328 
329  SMESH::smIdType NbSubMesh();
330 
331  SMESH::smIdType_array* GetElementsId();
332 
333  SMESH::smIdType_array* GetElementsByType( SMESH::ElementType theElemType );
334 
335  SMESH::smIdType_array* GetNodesId();
336 
337  SMESH::ElementType GetElementType( SMESH::smIdType id, bool iselem );
338 
339  SMESH::EntityType GetElementGeomType( SMESH::smIdType id );
340 
341  SMESH::GeometryType GetElementShape( SMESH::smIdType id );
342 
346  SMESH::smIdType_array* GetSubMeshElementsId(CORBA::Long ShapeID);
347 
353  SMESH::smIdType_array* GetSubMeshNodesId(CORBA::Long ShapeID, CORBA::Boolean all);
354 
358  SMESH::ElementType GetSubMeshElementType(CORBA::Long ShapeID);
359 
360  char* Dump();
361 
362  // Create groups of elements preventing computation of a sub-shape
363  SMESH::ListOfGroups* MakeGroupsOfBadInputElements( int theSubShapeID,
364  const char* theGroupName);
365 
366  // ===================================================
367  // Internal methods not available through CORBA
368  // They are called by corresponding interface methods
369  // ===================================================
370 
371  SMESH_Hypothesis::Hypothesis_Status addHypothesis(GEOM::GEOM_Object_ptr aSubShape,
372  SMESH::SMESH_Hypothesis_ptr anHyp,
373  std::string* anErrorText=0);
374 
375  SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShape,
376  SMESH::SMESH_Hypothesis_ptr anHyp);
377 
379  ConvertHypothesisStatus (SMESH_Hypothesis::Hypothesis_Status theStatus);
380 
381  static void PrepareForWriting (const char* file, bool overwrite = true);
382 
383  //int importMEDFile( const char* theFileName, const char* theMeshName );
384 
385  SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
386 
387  bool removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
388  GEOM::GEOM_Object_ptr theSubShapeObject );
389 
390  SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType theElemType,
391  const char* theName,
392  const int theID = -1,
393  const TopoDS_Shape& theShape = TopoDS_Shape(),
394  const SMESH_PredicatePtr& thePred = SMESH_PredicatePtr());
395 
396  void removeGroup( const int theId );
397 
398  SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
399  // return an existing subMesh object for the shapeID. shapeID == submeshID.
400 
401  const std::map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
402  // return existing group objects
403 
404  void onHypothesisModified(int theHypID, bool updateIcons);
405  // callback from _impl to forget not loaded mesh data (issue 0021208)
406 
412  void CheckGeomModif( bool isBreakLink = false );
418  void CheckGeomGroupModif();
419 
420  CORBA::LongLong GetMeshPtr();
421 
425  void CreateGroupServants();
426 
430  bool IsComputedOK();
431 
432 
433  // ====================================
434  // SMESH_Mesh interface (continuation)
435  // ====================================
436 
440  SMESH::ListOfGroups* GetGroups(const std::list<int>& groupIDs) const;
441 
446  SMESH::double_array* GetNodeXYZ(SMESH::smIdType id);
447 
452  SMESH::smIdType_array* GetNodeInverseElements(SMESH::smIdType id,
453  SMESH::ElementType elemType);
454 
458  SMESH::NodePosition* GetNodePosition(SMESH::smIdType NodeID);
459 
463  SMESH::ElementPosition GetElementPosition(SMESH::smIdType ElemID);
464 
469  CORBA::Long GetShapeID(SMESH::smIdType id);
470 
476  CORBA::Long GetShapeIDForElem(SMESH::smIdType id);
477 
482  CORBA::Short GetElemNbNodes(SMESH::smIdType id);
483 
487  SMESH::smIdType_array* GetElemNodes(SMESH::smIdType id);
488 
494  SMESH::smIdType GetElemNode(SMESH::smIdType id, CORBA::Short index);
495 
500  CORBA::Boolean IsMediumNode(SMESH::smIdType ide, SMESH::smIdType idn);
501 
506  CORBA::Boolean IsMediumNodeOfAnyElem(SMESH::smIdType idn,
507  SMESH::ElementType elemType);
508 
512  CORBA::Long ElemNbEdges(SMESH::smIdType id);
513 
517  CORBA::Long ElemNbFaces(SMESH::smIdType id);
521  SMESH::smIdType_array* GetElemFaceNodes(SMESH::smIdType elemId, CORBA::Short faceIndex);
522 
526  SMESH::double_array* GetFaceNormal(CORBA::Long faceId, CORBA::Boolean normalized);
527 
531  SMESH::smIdType FindElementByNodes(const SMESH::smIdType_array& nodes);
532 
536  SMESH::smIdType_array* GetElementsByNodes(const SMESH::smIdType_array& nodes,
537  SMESH::ElementType elemType);
538 
542  CORBA::Boolean IsPoly(SMESH::smIdType id);
543 
547  CORBA::Boolean IsQuadratic(SMESH::smIdType id);
548 
552  CORBA::Double GetBallDiameter(SMESH::smIdType id);
553 
557  SMESH::double_array* BaryCenter(SMESH::smIdType id);
558 
562  virtual SMESH::MedFileInfo* GetMEDFileInfo();
563 
567  std::string FileInfoToString();
568  void FileInfoFromString(const std::string& info);
569 
573  int& MainShapeTick() { return _mainShapeTick; }
574 
575 
579  void SetParameters (const char* theParameters);
580 
584  char* GetParameters();
585 
589  SMESH::string_array* GetLastParameters();
590 
594  CORBA::Boolean IsUnorderedSubMesh(CORBA::Long submeshID);
598  virtual SMESH::submesh_array_array* GetMeshOrder();
602  virtual ::CORBA::Boolean SetMeshOrder(const SMESH::submesh_array_array& theSubMeshArray);
603 
604 
608  static void CollectMeshInfo(const SMDS_ElemIteratorPtr theItr,
609  SMESH::smIdType_array& theInfo);
613  static SMDS_ElemIteratorPtr GetElements(SMESH::SMESH_IDSource_ptr obj,
614  SMESH::ElementType type);
615 
616  // =========================
617  // SMESH_IDSource interface
618  // =========================
619 
620  virtual SMESH::smIdType_array* GetIDs();
626  virtual SMESH::smIdType_array* GetMeshInfo();
630  virtual SMESH::smIdType_array* GetNbElementsByType();
634  virtual SMESH::array_of_ElementType* GetTypes();
638  virtual SMESH::SMESH_Mesh_ptr GetMesh();
643  bool IsMeshInfoCorrect();
647  virtual SALOMEDS::TMPFile* GetVtkUgStream();
648 
649 
650  std::map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
651  std::map<int, ::SMESH_subMesh*> _mapSubMesh; //NRI
652 
653 public:
654  std::string generateMeshName( );
655  std::string prepareMeshNameAndGroups( const char* file, CORBA::Boolean overwrite );
656  /*
657  * Write GEOM fields to MED file
658  */
659  void exportMEDFields( DriverMED_W_Field & writer,
660  SMESHDS_Mesh* meshDS,
661  const GEOM::ListOfFields& fields,
662  const char* geomAssocFields);
663 private:
667  void checkGroupNames();
668 
672  void convertMeshOrder(const TListOfListOfInt& theIdsOrder,
673  SMESH::submesh_array_array& theSubMeshOrder,
674  const bool theIsDump);
675 
679  TListOfListOfInt findConcurrentSubMeshes();
680 
681  protected:
682  ::SMESH_Mesh* _impl; // :: force no namespace here
683  private:
684 
685  static int _idGenerator;
687  int _id; // id given by creator (unique within the creator instance)
689  std::map<int, SMESH::SMESH_subMesh_ptr> _mapSubMeshIor;
690  std::map<int, SMESH::SMESH_GroupBase_ptr> _mapGroups;
691  std::map<int, SMESH::SMESH_Hypothesis_ptr> _mapHypo;
694  SMESH::MedFileInfo_var _medFileInfo;
695  SMESH_PreMeshInfo* _preMeshInfo; // mesh info before full loading from study file
696 
697  SMESH_PreMeshInfo* & changePreMeshInfo() { return _preMeshInfo; }
698  friend class SMESH_PreMeshInfo;
699 
700 private:
701 
702  // Data used to track changes of GEOM groups
703  struct TGeomGroupData {
704  // keep study entry but not ior because GEOM_Object actually changes if
705  // number of items in a group varies (1) <-> (>1)
706  std::string _groupEntry;
707  std::set<int> _indices; // indices of group items within group's main shape
708  CORBA::Object_var _smeshObject; // SMESH object depending on GEOM group
709  };
710  std::list<TGeomGroupData> _geomGroupData;
711  int _mainShapeTick; // to track modifications of the meshed shape
712 
716  void addGeomGroupData(GEOM::GEOM_Object_ptr theGeomObj,
717  CORBA::Object_ptr theSmeshObj);
721  void removeGeomGroupData(CORBA::Object_ptr theSmeshObj);
725  TopoDS_Shape newGroupShape( TGeomGroupData & groupData, int how );
726 
727 };
728 
729 #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:68
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:687
int & MainShapeTick()
Persistence of geometry tick.
Definition: SMESH_Mesh_i.hxx:573
SMESH_PreMeshInfo * _preMeshInfo
Definition: SMESH_Mesh_i.hxx:695
std::map< int, SMESH::SMESH_subMesh_ptr > _mapSubMeshIor
Definition: SMESH_Mesh_i.hxx:689
std::map< int, SMESH_subMesh_i * > _mapSubMesh_i
Definition: SMESH_Mesh_i.hxx:650
std::list< TGeomGroupData > _geomGroupData
Definition: SMESH_Mesh_i.hxx:710
SMESH_Gen_i * _gen_i
Definition: SMESH_Mesh_i.hxx:686
std::map< int, SMESH::SMESH_Hypothesis_ptr > _mapHypo
Definition: SMESH_Mesh_i.hxx:691
SMESH_PreMeshInfo *& changePreMeshInfo()
Definition: SMESH_Mesh_i.hxx:697
SMESH::MedFileInfo_var _medFileInfo
Definition: SMESH_Mesh_i.hxx:694
SMESH_Mesh_i(const SMESH_Mesh_i &)
SMESH_MeshEditor_i * _editor
Definition: SMESH_Mesh_i.hxx:692
static int _idGenerator
Definition: SMESH_Mesh_i.hxx:685
SMESH_MeshEditor_i * _previewEditor
Definition: SMESH_Mesh_i.hxx:693
SMESH_Gen_i * GetGen()
Definition: SMESH_Mesh_i.hxx:168
int _mainShapeTick
Definition: SMESH_Mesh_i.hxx:711
std::map< int, SMESH::SMESH_GroupBase_ptr > _mapGroups
Definition: SMESH_Mesh_i.hxx:690
std::map< int, ::SMESH_subMesh * > _mapSubMesh
Definition: SMESH_Mesh_i.hxx:651
int _nbInvalidHypos
Definition: SMESH_Mesh_i.hxx:688
const std::map< int, SMESH::SMESH_GroupBase_ptr > & getGroups()
Definition: SMESH_Mesh_i.hxx:401
::SMESH_Mesh * _impl
Definition: SMESH_Mesh_i.hxx:682
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:332
sequence< SMESH_IDSource > ListOfIDSources
Definition: SMESH_Mesh.idl:40
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:36
sequence< SMESH_GroupBase > ListOfGroups
Definition: SMESH_Mesh.idl:38
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:703
CORBA::Object_var _smeshObject
Definition: SMESH_Mesh_i.hxx:708
std::string _groupEntry
Definition: SMESH_Mesh_i.hxx:706
std::set< int > _indices
Definition: SMESH_Mesh_i.hxx:707