X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FSMESH_MeshEditor.idl;h=397efff4484f7a82b0ed83409978a0639fb31e3e;hb=e66a03717921ad4e129f30c53bb190cf218f829f;hp=f3c785aadfcdd6127fdb85b9a3edec7b378651d1;hpb=a41cfa67711ee3ae4318a6d22fa0d7414eeeeb5a;p=modules%2Fsmesh.git diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index f3c785aad..397efff44 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 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 @@ -247,20 +247,19 @@ module SMESH /*! * \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, @@ -268,20 +267,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. @@ -291,7 +294,6 @@ module SMESH */ boolean SplitQuad (in long_array IDsOfElements, in boolean Diag13) raises (SALOME::SALOME_Exception); - /*! * \brief Split quadrangles into triangles. * @@ -321,6 +323,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 }; @@ -925,13 +948,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 ) @@ -1236,10 +1275,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); /*!