Salome HOME
21680: EDF 2288 SMESH: creation of 0D elements from other elements
[modules/smesh.git] / src / SMESH_I / SMESH_Group_i.hxx
index bfb34a2bd116ae918424229d335db5287a273a14..dcb441057e0399e8978bae67fc1392c0474c78c4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
@@ -41,6 +41,7 @@
 
 class SMESH_Group;
 class SMESHDS_GroupBase;
+class SMESH_PreMeshInfo;
 
 // ===========
 // Group Base
@@ -67,7 +68,8 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
   SMESH::long_array* GetNodeIDs();
   CORBA::Long GetNumberOfNodes();
   CORBA::Boolean IsNodeInfoAvailable(); // for gui
-  SMESH::SMESH_Mesh_ptr GetMesh();
+
+  virtual SMESH::SMESH_Mesh_ptr GetMesh();
 
   /*!
    * Returns statistic of mesh elements
@@ -84,6 +86,11 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
    * Inherited from SMESH_IDSource interface
    */
   virtual SMESH::array_of_ElementType* GetTypes();
+  /*!
+   * Returns false if GetMeshInfo() returns incorrect information that may
+   * happen if mesh data is not yet fully loaded from the file of study.
+   */
+  virtual bool IsMeshInfoCorrect();
 
   // Internal C++ interface
   int GetLocalID() const { return myLocalID; }
@@ -97,6 +104,12 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
   void SetColorNumber(CORBA::Long color);
   CORBA::Long GetColorNumber();
 
+protected:
+
+  SMESH_PreMeshInfo* & changePreMeshInfo() { return myPreMeshInfo; }
+  SMESH_PreMeshInfo* myPreMeshInfo; // mesh info before full loading from study file
+  friend class SMESH_PreMeshInfo;
+
 private:
   SMESH_Mesh_i* myMeshServant;
   int myLocalID;