+ CORBA::Short GetPointState(CORBA::Double x, CORBA::Double y, CORBA::Double z);
+
+ /*!
+ * Check if a 2D mesh is manifold
+ */
+ CORBA::Boolean IsManifold();
+
+ /*!
+ * Check if orientation of 2D elements is coherent
+ */
+ CORBA::Boolean IsCoherentOrientation2D();
+
+ /*!
+ * Partition given 1D elements into groups of contiguous edges.
+ * A node where number of meeting edges != 2 is a group end.
+ * An optional startNode is used to orient groups it belongs to.
+ * \return a list of edge groups and a list of corresponding node groups.
+ * If a group is closed, the first and last nodes of the group are same.
+ */
+ SMESH::array_of_long_array* Get1DBranches( SMESH::SMESH_IDSource_ptr edges,
+ SMESH::smIdType startNode,
+ SMESH::array_of_long_array_out nodeGroups);
+
+ /*!
+ * Return sharp edges of faces and non-manifold ones. Optionally adds existing edges.
+ */
+ SMESH::ListOfEdges* FindSharpEdges(CORBA::Double angle, CORBA::Boolean addExisting);
+
+ /*!
+ * Returns all or only closed FreeBorder's.
+ */
+ SMESH::ListOfFreeBorders* FindFreeBorders(CORBA::Boolean closedOnly);
+
+ /*!
+ * Fill with 2D elements a hole defined by a FreeBorder.
+ * Optionally add new faces to a given group, which is returned
+ */
+ SMESH::SMESH_Group_ptr FillHole(const SMESH::FreeBorder& hole,
+ const char* groupName);
+
+ SMESH::CoincidentFreeBorders* FindCoincidentFreeBorders(CORBA::Double tolerance);
+ CORBA::Short SewCoincidentFreeBorders(const SMESH::CoincidentFreeBorders& freeBorders,
+ CORBA::Boolean createPolygons,
+ CORBA::Boolean createPolyedrs);