Salome HOME
Merge branch 'occ/shaper2smesh'
[modules/smesh.git] / src / SMESH / SMESH_Mesh.hxx
index 054616c5e361ec3833fe375d482a1bb211f33142..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 ...
@@ -68,7 +69,6 @@ class SMESH_EXPORT SMESH_Mesh
 {
  public:
   SMESH_Mesh(int               theLocalId,
-             int               theStudyId,
              SMESH_Gen*        theGen,
              bool              theIsEmbeddedMode,
              SMESHDS_Document* theDocument);
@@ -87,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.
    */
@@ -236,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
    */
@@ -247,13 +255,14 @@ class SMESH_EXPORT SMESH_Mesh
    */
   bool HasDuplicatedGroupNamesMED();
 
-  void ExportMED(const char *        theFile, 
-                 const char*         theMeshName = NULL, 
-                 bool                theAutoGroups = true, 
-                 int                 theVersion = 0,
+  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);
 
@@ -310,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);
 
@@ -321,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);
 
@@ -329,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 );
@@ -352,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:
 
@@ -362,7 +372,6 @@ private:
   
 protected:
   int                        _id;           // id given by creator (unique within the creator instance)
-  int                        _studyId;
   int                        _groupId;      // id generator for group objects
   int                        _nbSubShapes;  // initial nb of subshapes in the shape to mesh
   bool                       _isShapeToMesh;// set to true when a shape is given (only once)