+ const std::map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
+ // return existing group objects
+
+ void onHypothesisModified();
+ // callback from _impl to forget not loaded mesh data (issue 0021208)
+
+ void checkMeshLoaded();
+
+ /*!
+ * \brief Update hypotheses assigned to geom groups if the latter change
+ *
+ * NPAL16168: "geometrical group edition from a submesh don't modifiy mesh computation"
+ */
+ void CheckGeomGroupModif();
+
+ CORBA::LongLong GetMeshPtr();
+
+ /*!
+ * \brief Assure that all groups are published
+ */
+ void CreateGroupServants();
+
+ /*!
+ * \brief Return groups cantained in _mapGroups by their IDs
+ */
+ SMESH::ListOfGroups* GetGroups(const std::list<int>& groupIDs) const;
+
+ /*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+ SMESH::double_array* GetNodeXYZ(CORBA::Long id);
+
+ /*!
+ * For given node returns list of IDs of inverse elements
+ * If there is not node for given ID - returns empty list
+ */
+ SMESH::long_array* GetNodeInverseElements(CORBA::Long id);
+
+ /*!
+ * \brief Return position of a node on shape
+ */
+ SMESH::NodePosition* GetNodePosition(CORBA::Long NodeID);
+
+ /*!
+ * \brief Return position of an element on shape
+ */
+ SMESH::ElementPosition GetElementPosition(CORBA::Long ElemID);
+
+ /*!
+ * If given element is node returns IDs of shape from position
+ * If there is not node for given ID - returns -1
+ */
+ CORBA::Long GetShapeID(CORBA::Long id);
+
+ /*!
+ * For given element returns ID of result shape after
+ * ::FindShape() from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetShapeIDForElem(CORBA::Long id);
+
+ /*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetElemNbNodes(CORBA::Long id);
+
+ /*!
+ * Returns IDs of nodes of given element
+ */
+ SMESH::long_array* GetElemNodes(CORBA::Long id);
+
+ /*!
+ * Returns ID of node by given index for given element
+ * If there is not element for given ID - returns -1
+ * If there is not node for given index - returns -2
+ */
+ CORBA::Long GetElemNode(CORBA::Long id, CORBA::Long index);
+
+ /*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+ CORBA::Boolean IsMediumNode(CORBA::Long ide, CORBA::Long idn);
+
+ /*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+ CORBA::Boolean IsMediumNodeOfAnyElem(CORBA::Long idn,
+ SMESH::ElementType theElemType);
+
+ /*!
+ * Returns number of edges for given element
+ */
+ CORBA::Long ElemNbEdges(CORBA::Long id);
+
+ /*!
+ * Returns number of faces for given element
+ */
+ CORBA::Long ElemNbFaces(CORBA::Long id);
+ /*!
+ * Returns nodes of given face (counted from zero) for given element.
+ */
+ SMESH::long_array* GetElemFaceNodes(CORBA::Long elemId, CORBA::Short faceIndex);
+
+ /*!
+ * Returns an element based on all given nodes.
+ */
+ CORBA::Long FindElementByNodes(const SMESH::long_array& nodes);
+
+ /*!
+ * Returns true if given element is polygon
+ */
+ CORBA::Boolean IsPoly(CORBA::Long id);
+
+ /*!
+ * Returns true if given element is quadratic
+ */
+ CORBA::Boolean IsQuadratic(CORBA::Long id);
+
+ /*!
+ * Returns diameter of ball discrete element or zero in case of an invalid \a id
+ */
+ CORBA::Double GetBallDiameter(CORBA::Long id);
+
+ /*!
+ * Returns bary center for given element
+ */
+ SMESH::double_array* BaryCenter(CORBA::Long id);
+
+ /*!
+ * Returns information about imported MED file
+ */
+ virtual SALOME_MED::MedFileInfo* GetMEDFileInfo();
+
+ /*!
+ * Sets list of notebook variables used for Mesh operations separated by ":" symbol
+ */
+ void SetParameters (const char* theParameters);
+
+ /*!
+ * Returns list of notebook variables used for Mesh operations separated by ":" symbol
+ */
+ char* GetParameters();
+
+ /*!
+ * Returns list of notebook variables used for last Mesh operation
+ */
+ SMESH::string_array* GetLastParameters();
+
+ /*!
+ * Collect statistic of mesh elements given by iterator
+ */
+ static void CollectMeshInfo(const SMDS_ElemIteratorPtr theItr,
+ SMESH::long_array& theInfo);
+
+ /*!
+ * \brief Return submesh objects list in meshing order
+ */
+ virtual SMESH::submesh_array_array* GetMeshOrder();
+ /*!
+ * \brief Set submesh object order
+ */
+ virtual ::CORBA::Boolean SetMeshOrder(const SMESH::submesh_array_array& theSubMeshArray);
+
+
+ // =========================
+ // SMESH_IDSource interface
+ // =========================