Salome HOME
Merge branch 'occ/shaper2smesh'
[modules/smesh.git] / src / SMESH / SMESH_Mesh.hxx
index ee881f1fc6e4e650b5369654313a37a6fdac7d24..7549d243118c6fbdfbc1e9ce0e536cb7ba8d953a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -44,6 +44,7 @@
 #include <map>
 #include <list>
 #include <vector>
+#include <ostream>
 
 #ifdef WIN32
 #pragma warning(disable:4251) // Warning DLL Interface ...
@@ -86,6 +87,9 @@ class SMESH_EXPORT SMESH_Mesh
    * \brief Return true if there is a geometry to be meshed, not PseudoShape()
    */
   bool HasShapeToMesh() const { return _isShapeToMesh; }
+
+  void UndefShapeToMesh() { _isShapeToMesh = false; }
+
   /*!
    * \brief Return diagonal size of bounding box of shape to mesh.
    */
@@ -235,6 +239,11 @@ class SMESH_EXPORT SMESH_Mesh
    */
   bool HasModificationsToDiscard() const;
 
+  /*!
+   * \brief Return true if all sub-meshes are computed OK - to update an icon
+   */
+  bool IsComputedOK();
+
   /*!
    * \brief Return data map of descendant to ancestor shapes
    */
@@ -246,12 +255,14 @@ class SMESH_EXPORT SMESH_Mesh
    */
   bool HasDuplicatedGroupNamesMED();
 
-  void ExportMED(const char *        theFile, 
-                 const char*         theMeshName = NULL, 
-                 bool                theAutoGroups = true, 
+  void ExportMED(const char *        theFile,
+                 const char*         theMeshName = NULL,
+                 bool                theAutoGroups = true,
+                 int                 theVersion = -1,
                  const SMESHDS_Mesh* theMeshPart = 0,
                  bool                theAutoDimension = false,
                  bool                theAddODOnVertices = false,
+                 double              theZTolerance = -1.,
                  bool                theAllElemsToGroup = false)
     throw(SALOME_Exception);
 
@@ -265,7 +276,8 @@ class SMESH_EXPORT SMESH_Mesh
                  const SMESHDS_Mesh* meshPart = 0) throw(SALOME_Exception);
   void ExportCGNS(const char *        file,
                   const SMESHDS_Mesh* mesh,
-                  const char *        meshName = 0);
+                  const char *        meshName = 0,
+                  const bool          groupElemsByType = false);
   void ExportGMF(const char *        file,
                  const SMESHDS_Mesh* mesh,
                  bool                withRequiredGroups = true );
@@ -294,6 +306,8 @@ class SMESH_EXPORT SMESH_Mesh
   int NbTriQuadraticHexas() const throw(SALOME_Exception);
   int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
   int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
+  int NbQuadPrisms() const throw(SALOME_Exception);
+  int NbBiQuadPrisms() const throw(SALOME_Exception);
   int NbHexagonalPrisms() const throw(SALOME_Exception);
   int NbPolyhedrons() const throw(SALOME_Exception);
   
@@ -305,9 +319,9 @@ class SMESH_EXPORT SMESH_Mesh
 
   SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
                          const char*               theName,
-                         int&                      theId,
-                         const TopoDS_Shape&       theShape=TopoDS_Shape(),
-                         const SMESH_PredicatePtr& thePredicate=SMESH_PredicatePtr());
+                         const int                 theId = -1,
+                         const TopoDS_Shape&       theShape = TopoDS_Shape(),
+                         const SMESH_PredicatePtr& thePredicate = SMESH_PredicatePtr());
 
   SMESH_Group* AddGroup (SMESHDS_GroupBase* groupDS) throw(SALOME_Exception);
 
@@ -316,7 +330,7 @@ class SMESH_EXPORT SMESH_Mesh
   
   std::list<int> GetGroupIds() const;
   
-  SMESH_Group* GetGroup (const int theGroupID);
+  SMESH_Group* GetGroup (const int theGroupID) const;
 
   bool RemoveGroup (const int theGroupID);
 
@@ -324,9 +338,10 @@ class SMESH_EXPORT SMESH_Mesh
 
   struct TCallUp // callback from SMESH to SMESH_I level
   {
-    virtual void RemoveGroup (const int theGroupID)=0;
-    virtual void HypothesisModified ()=0;
-    virtual void Load ()=0;
+    virtual void RemoveGroup( const int theGroupID )=0;
+    virtual void HypothesisModified( int hypID, bool updateIcons )=0;
+    virtual void Load()=0;
+    virtual bool IsLoaded()=0;
     virtual ~TCallUp() {}
   };
   void SetCallUp( TCallUp * upCaller );
@@ -347,7 +362,7 @@ class SMESH_EXPORT SMESH_Mesh
   bool IsOrderOK( const SMESH_subMesh* smBefore,
                   const SMESH_subMesh* smAfter ) const;
 
-  std::ostream& Dump(ostream & save);
+  std::ostream& Dump(std::ostream & save);
   
 private: