Salome HOME
21680: EDF 2288 SMESH: creation of 0D elements from other elements
[modules/smesh.git] / src / SMESH_I / SMESH_Group_i.hxx
index 16099ecdd64219482ffe6dfb94a4db3014822b10..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
@@ -64,7 +65,11 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
   CORBA::Boolean Contains(CORBA::Long elem_id);
   CORBA::Long GetID(CORBA::Long elem_index);
   SMESH::long_array* GetListOfID();
-  SMESH::SMESH_Mesh_ptr GetMesh();
+  SMESH::long_array* GetNodeIDs();
+  CORBA::Long GetNumberOfNodes();
+  CORBA::Boolean IsNodeInfoAvailable(); // for gui
+
+  virtual SMESH::SMESH_Mesh_ptr GetMesh();
 
   /*!
    * Returns statistic of mesh elements
@@ -81,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; }
@@ -94,12 +104,20 @@ 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;
 
   void changeLocalId(int localId) { myLocalID = localId; }
   friend class SMESH_Mesh_i;
+
+  int myNbNodes, myGroupDSTic;
 };
 
 // ======