+ /*!
+ * Returns ID of elements for given submesh
+ */
+ SMESH::long_array* GetSubMeshElementsId(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * Returns ID of nodes for given submesh
+ * If param all==true - returns all nodes, else -
+ * returns only nodes on shapes.
+ */
+ SMESH::long_array* GetSubMeshNodesId(const CORBA::Long ShapeID, CORBA::Boolean all)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * Returns type of elements for given submesh
+ */
+ SMESH::ElementType GetSubMeshElementType(const CORBA::Long ShapeID)
+ throw (SALOME::SALOME_Exception);
+
+ char* Dump();
+
+ // Internal methods not available through CORBA
+ // They are called by corresponding interface methods
+ SMESH_Hypothesis::Hypothesis_Status addHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
+ SMESH::SMESH_Hypothesis_ptr anHyp);
+
+ SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
+ SMESH::SMESH_Hypothesis_ptr anHyp);
+
+ int importMEDFile( const char* theFileName, const char* theMeshName );
+
+ SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
+
+ void removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
+ GEOM::GEOM_Object_ptr theSubShapeObject );
+
+ SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType theElemType,
+ const char* theName,
+ const TopoDS_Shape& theShape = TopoDS_Shape());
+
+ void removeGroup( const int theId );
+
+ SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
+ // return an existing subMesh object for the shapeID. shapeID == submeshID.
+
+ const map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
+ // return an existing group object.
+
+ virtual SMESH::long_array* GetIDs();
+
+ CORBA::Long GetMeshPtr();
+
+
+ /*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+ SMESH::double_array* GetNodeXYZ(const 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(const CORBA::Long id);
+
+ /*!
+ * If given element is node returns IDs of shape from position
+ * else - return ID of result shape after ::FindShape()
+ * from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetShapeID(const CORBA::Long id);
+
+ /*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+ CORBA::Long GetElemNbNodes(const 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(const CORBA::Long id, const CORBA::Long index);
+
+ /*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+ CORBA::Boolean IsMediumNode(const CORBA::Long ide, const CORBA::Long idn);
+
+ /*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+ CORBA::Boolean IsMediumNodeOfAnyElem(const CORBA::Long idn,
+ SMESH::ElementType theElemType);
+
+ /*!
+ * Returns number of edges for given element
+ */
+ CORBA::Long ElemNbEdges(const CORBA::Long id);
+
+ /*!
+ * Returns number of faces for given element
+ */
+ CORBA::Long ElemNbFaces(const CORBA::Long id);
+
+ /*!
+ * Returns true if given element is polygon
+ */
+ CORBA::Boolean IsPoly(const CORBA::Long id);
+
+ /*!
+ * Returns true if given element is quadratic
+ */
+ CORBA::Boolean IsQuadratic(const CORBA::Long id);
+
+ /*!
+ * Returns bary center for given element
+ */
+ SMESH::double_array* BaryCenter(const CORBA::Long id);
+