X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_MeshEditor.idl;h=254d889da1458f56f6f4b648725da4999128871c;hp=956e871c8a66b756c1b42a1b97cb86af858e2a4f;hb=b13aae09cfc72606a138e92f34550ec45b72512e;hpb=7aebb99e42c6b0c3c056a5eecb0f29033db2231a diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index 956e871c8..254d889da 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -58,6 +58,11 @@ module SMESH */ long_array GetLastCreatedElems() raises (SALOME::SALOME_Exception); + /*! + * \brief Clears sequences of last created elements and nodes + */ + void ClearLastCreated() raises (SALOME::SALOME_Exception); + /*! * \brief Returns description of an error/warning occured during the last operation */ @@ -233,29 +238,39 @@ module SMESH * \param theFace - ID of face whose orientation is checked. * It can be < 1 then \a thePoint is used to find a face. * \param thePoint - is used to find a face if \a theFace < 1. - * \return number of reoriented elements. + * \return number of reoriented faces. */ long Reorient2D(in SMESH_IDSource the2Dgroup, in DirStruct theDirection, in long theFace, in PointStruct thePoint) raises (SALOME::SALOME_Exception); + /*! + * \brief Reorient faces basing on orientation of adjacent volumes. + * \param faces - a list of objects containing face to reorient + * \param volumes - an object containing volumes. + * \param outsideNormal - to orient faces to have their normal + * pointing either \a outside or \a inside the adjacent volumes. + * \return number of reoriented faces. + */ + long Reorient2DBy3D(in ListOfIDSources faces, + in SMESH_IDSource volumes, + in boolean outsideNormal) raises (SALOME::SALOME_Exception); /*! * \brief Fuse neighbour triangles into quadrangles. - * \param theElems The triangles to be fused. + * \param IDsOfElements Ids of triangles to be fused. * \param theCriterion Is used to choose a neighbour to fuse with. * \param theMaxAngle Is a max angle between element normals at which fusion * is still performed; theMaxAngle is mesured in radians. - * \return TRUE in case of success, FALSE otherwise. + * \return \c true in case of success, FALSE otherwise. */ boolean TriToQuad (in long_array IDsOfElements, in NumericalFunctor Criterion, in double MaxAngle) raises (SALOME::SALOME_Exception); - /*! * \brief Fuse neighbour triangles into quadrangles. * - * Behaves like the above method, taking list of elements from \a theObject + * Behaves like the above method, taking a list of elements from \a theObject */ boolean TriToQuadObject (in SMESH_IDSource theObject, in NumericalFunctor Criterion, @@ -263,20 +278,24 @@ module SMESH /*! * \brief Split quadrangles into triangles. - * \param theElems The faces to be splitted. + * \param IDsOfElements Ids of quadrangles to split. * \param theCriterion Is used to choose a diagonal for splitting. * \return TRUE in case of success, FALSE otherwise. */ boolean QuadToTri (in long_array IDsOfElements, in NumericalFunctor Criterion) raises (SALOME::SALOME_Exception); - /*! * \brief Split quadrangles into triangles. * - * Behaves like the above method, taking list of elements from \a theObject + * Behaves like the above method, taking a list of elements from \a theObject */ boolean QuadToTriObject (in SMESH_IDSource theObject, in NumericalFunctor Criterion) raises (SALOME::SALOME_Exception); + /*! + * \brief Split each of quadrangles into 4 triangles. + * \param theQuads Container of quadrangles to split. + */ + void QuadTo4Tri (in SMESH_IDSource theQuads) raises (SALOME::SALOME_Exception); /*! * \brief Split quadrangles into triangles. @@ -286,7 +305,6 @@ module SMESH */ boolean SplitQuad (in long_array IDsOfElements, in boolean Diag13) raises (SALOME::SALOME_Exception); - /*! * \brief Split quadrangles into triangles. * @@ -316,6 +334,27 @@ module SMESH void SplitVolumesIntoTetra(in SMESH_IDSource elems, in short methodFlags) raises (SALOME::SALOME_Exception); + /*! + * \brief Split hexahedra into triangular prisms + * \param elems - elements to split + * \param startHexPoint - a point used to find a hexahedron for which \a facetToSplitNormal + * gives a normal vector defining facets to split into triangles. + * \param facetToSplitNormal - normal used to find a facet of hexahedron + * to split into triangles. + * \param methodFlags - flags passing splitting method: + * 1 - split the hexahedron into 2 prisms + * 2 - split the hexahedron into 4 prisms + * \param allDomains - if \c False, only hexahedra adjacent to one closest + * to \a facetToSplitNormal location are split, else \a facetToSplitNormal + * is used to find the facet to split in all domains present in \a elems. + */ + void SplitHexahedraIntoPrisms(in SMESH_IDSource elems, + in SMESH::PointStruct startHexPoint, + in SMESH::DirStruct facetToSplitNormal, + in short methodFlags, + in boolean allDomains) + raises (SALOME::SALOME_Exception); + enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH }; @@ -548,6 +587,14 @@ module SMESH in DirStruct StepVector, in long NbOfSteps) raises (SALOME::SALOME_Exception); + ListOfGroups ExtrusionByNormal(in SMESH_IDSource theObject, + in double stepSize, + in long nbOfSteps, + in boolean byAverageNormal, + in boolean useInputElemsOnly, + in boolean makeGroups, + in short dim) + raises (SALOME::SALOME_Exception); enum Extrusion_Error { EXTR_OK, @@ -920,13 +967,29 @@ module SMESH boolean ChangeElemNodes(in long ide, in long_array newIDs) raises (SALOME::SALOME_Exception); + /*! + * \brief Duplicates given elements, i.e. creates new elements based on the + * same nodes as the given ones. + * \param theElements - container of elements to duplicate. + * \param theGroupName - a name of group to contain the generated elements. + * If a group with such a name already exists, the new elements + * are added to the existng group, else a new group is created. + * If \a theGroupName is empty, new elements are not added + * in any group. + * \return a group where the new elements are added. NULL if theGroupName == "". + * \sa DoubleNode() + */ + SMESH_Group DoubleElements( in SMESH_IDSource theElements, + in string theGroupName ) + raises (SALOME::SALOME_Exception); + /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements * \param theNodes - identifiers of nodes to be doubled * \param theModifiedElems - identifiers of elements to be updated by the new (doubled) * nodes. If list of element identifiers is empty then nodes are doubled but * they not assigned to elements - * \return TRUE if operation has been completed successfully, FALSE otherwise + * \return TRUE if operation has been completed successfully, FALSE otherwise * \sa DoubleNode(), DoubleNodeGroup(), DoubleNodeGroups() */ boolean DoubleNodes( in long_array theNodes, in long_array theModifiedElems ) @@ -1231,10 +1294,13 @@ module SMESH * Triangles are transformed in prisms, and quadrangles in hexahedrons. * \param theDomains - list of groups of volumes * \param createJointElems - if TRUE, create the elements + * \param onAllBoundaries - if TRUE, the nodes and elements are also created on + * the boundary between \a theDomains and the rest mesh * \return TRUE if operation has been completed successfully, FALSE otherwise */ boolean DoubleNodesOnGroupBoundaries( in ListOfGroups theDomains, - in boolean createJointElems ) + in boolean createJointElems, + in boolean onAllBoundaries) raises (SALOME::SALOME_Exception); /*!