// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+// SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes
// File : SMESH_MeshEditor_i.hxx
// Author : Nicolas REJNERI
// Module : SMESH
static bool IsTemporaryIDSource( SMESH::SMESH_IDSource_ptr& idSource );
static CORBA::Long* GetTemporaryIDs( SMESH::SMESH_IDSource_ptr& idSource, int& nbIds );
+ /*!
+ * \brief Generates the unique group name
+ */
+ std::string GenerateGroupName(const std::string& thePrefix);
+
CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements)
throw (SALOME::SALOME_Exception);
CORBA::Boolean RemoveNodes (const SMESH::long_array & IDsOfNodes)
SMESH::SMESH_Mesh_ptr Offset( SMESH::SMESH_IDSource_ptr theObject,
CORBA::Double Value,
CORBA::Boolean CopyGroups,
+ CORBA::Boolean CopyElements,
const char* MeshName,
SMESH::ListOfGroups_out Groups)
throw (SALOME::SALOME_Exception);
SMESH::ElementType type)
throw (SALOME::SALOME_Exception);
+ /*!
+ * Project a point to a mesh object.
+ * Return ID of an element of given type where the given point is projected
+ * and coordinates of the projection point.
+ * In the case if nothing found, return -1 and []
+ */
+ CORBA::Long ProjectPoint(CORBA::Double x,
+ CORBA::Double y,
+ CORBA::Double z,
+ SMESH::ElementType type,
+ SMESH::SMESH_IDSource_ptr meshObject,
+ SMESH::double_array_out projecton)
+ throw (SALOME::SALOME_Exception);
+
/*!
* Return point state in a closed 2D mesh in terms of TopAbs_State enumeration.
* TopAbs_UNKNOWN state means that either mesh is wrong or the analysis fails.
CORBA::Boolean IsCoherentOrientation2D()
throw (SALOME::SALOME_Exception);
+ /*!
+ * 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,
+ CORBA::Long startNode,
+ SMESH::array_of_long_array_out nodeGroups)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * Return sharp edges of faces and non-manifold ones. Optionally adds existing edges.
+ */
+ SMESH::ListOfEdges* FindSharpEdges(CORBA::Double angle, CORBA::Boolean addExisting)
+ throw (SALOME::SALOME_Exception);
+
/*!
* Returns all or only closed FreeBorder's.
*/
/*!
* Fill with 2D elements a hole defined by a FreeBorder.
+ * Optionally add new faces to a given group, which is returned
*/
- void FillHole(const SMESH::FreeBorder& hole)
+ SMESH::SMESH_Group_ptr FillHole(const SMESH::FreeBorder& hole,
+ const char* groupName)
throw (SALOME::SALOME_Exception);
SMESH::CoincidentFreeBorders* FindCoincidentFreeBorders(CORBA::Double tolerance);
* be added.
*/
void MakePolyLine(SMESH::ListOfPolySegments& segments,
- const char* groupName)
+ const char* groupName)
+ throw (SALOME::SALOME_Exception);
+
+ /*!
+ * \brief Create a slot of given width around given 1D elements lying on a triangle mesh.
+ * The slot is consrtucted by cutting faces by cylindrical surfaces made
+ * around each segment. Segments are expected to be created by MakePolyLine().
+ * \return Edges located at the slot boundary
+ */
+ SMESH::ListOfEdges* MakeSlot(SMESH::SMESH_GroupBase_ptr segments,
+ CORBA::Double width)
throw (SALOME::SALOME_Exception);
void dumpGroupsList(SMESH::TPythonDump & theDumpPython,
const SMESH::ListOfGroups * theGroupList);
- std::string generateGroupName(const std::string& thePrefix);
-
void prepareIdSource(SMESH::SMESH_IDSource_ptr theObject);