// 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)
const SMESH::double_array& theScaleFact)
throw (SALOME::SALOME_Exception);
- SMESH::SMESH_Mesh_ptr ScaleMakeMesh(SMESH::SMESH_IDSource_ptr Object,
- const SMESH::PointStruct& Point,
+ SMESH::SMESH_Mesh_ptr ScaleMakeMesh(SMESH::SMESH_IDSource_ptr Object,
+ const SMESH::PointStruct& Point,
const SMESH::double_array& theScaleFact,
- CORBA::Boolean CopyGroups,
- const char* MeshName)
+ CORBA::Boolean CopyGroups,
+ const char* MeshName)
+ throw (SALOME::SALOME_Exception);
+
+ 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);
void FindCoincidentNodes (CORBA::Double Tolerance,
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::SMESH_IDSource_ptr meshObject,
+ SMESH::ElementType type,
+ 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);
+ /*!
+ * 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);
const char* groupName,
const SMESH::double_array& theNodesCoords,
SMESH::array_of_long_array_out GroupsOfNodes)
- throw (SALOME::SALOME_Exception);
+ throw (SALOME::SALOME_Exception);
/*!
* \brief Generated skin mesh (containing 2D cells) from 3D mesh
SMESH::SMESH_Group_out group)
throw (SALOME::SALOME_Exception);
-private: //!< private methods
+ /*!
+ * \brief Create a polyline consisting of 1D mesh elements each lying on a 2D element of
+ * the initial mesh. Positions of new nodes are found by cutting the mesh by the
+ * plane passing through pairs of points specified by each PolySegment structure.
+ * If there are several paths connecting a pair of points, the shortest path is
+ * selected by the module. Position of the cutting plane is defined by the two
+ * points and an optional vector lying on the plane specified by a PolySegment.
+ * By default the vector is defined by Mesh module as following. A middle point
+ * of the two given points is computed. The middle point is projected to the mesh.
+ * The vector goes from the middle point to the projection point. In case of planar
+ * mesh, the vector is normal to the mesh.
+ * \param [inout] segments - PolySegment's defining positions of cutting planes.
+ * Return the used vector and position of the middle point.
+ * \param [in] groupName - optional name of a group where created mesh segments will
+ * be added.
+ */
+ void MakePolyLine(SMESH::ListOfPolySegments& segments,
+ const char* groupName)
+ throw (SALOME::SALOME_Exception);
+
+
+ private: //!< private methods
::SMESH_MeshEditor& getEditor();
void dumpGroupsList(SMESH::TPythonDump & theDumpPython,
const SMESH::ListOfGroups * theGroupList);
- std::string generateGroupName(const std::string& thePrefix);
-
void prepareIdSource(SMESH::SMESH_IDSource_ptr theObject);
// temporary IDSources
struct _IDSource;
- // std::list< _IDSource* > myAuxIDSources;
- // void deleteAuxIDSources();
};
#endif