X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=idl%2FSMESH_MeshEditor.idl;h=ea19b5ebe03f90f0a2d1427744ae9de556f26632;hb=f757d34e5ab5e6471f7d49c835b6d7b0d58009c8;hp=57f50fb509d5aaa2787476473a2c956d21a9baba;hpb=de00066f64e01e9028cc5bfc0390911a590a9428;p=modules%2Fsmesh.git diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index 57f50fb50..ea19b5ebe 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -29,13 +29,37 @@ module SMESH { + interface NumericalFunctor; + enum Bnd_Dimension { BND_2DFROM3D, BND_1DFROM3D, BND_1DFROM2D }; + + struct FreeBorder + { + SMESH::long_array nodeIDs; // all nodes defining a free border + // 1st and last node is same in a closed border + }; + struct FreeBorderPart + { + short border; // border index within a sequence + long node1; // node index within the border-th FreeBorder + long node2; + long nodeLast; + }; + typedef sequence ListOfFreeBorders; + typedef sequence FreeBordersGroup; + typedef sequence ListOfFreeBorderGroups; + + struct CoincidentFreeBorders + { + ListOfFreeBorders borders; // nodes of all free borders + ListOfFreeBorderGroups coincidentGroups; // groups of coincident parts of borders + }; + + /*! * This interface makes modifications on the Mesh - removing elements and nodes etc. */ - interface NumericalFunctor; - interface SMESH_MeshEditor { /*! @@ -69,7 +93,7 @@ module SMESH void ClearLastCreated() raises (SALOME::SALOME_Exception); /*! - * \brief Returns description of an error/warning occured during the last operation + * \brief Returns description of an error/warning occurred during the last operation */ ComputeError GetLastError() raises (SALOME::SALOME_Exception); @@ -112,8 +136,10 @@ module SMESH /*! * Create a 0D element on the given node. * \param IdOfNode Node IDs for creation of element. + * \param DuplicateElements to add one more 0D element to a node or not */ - long Add0DElement(in long IDOfNode) raises (SALOME::SALOME_Exception); + long Add0DElement(in long IDOfNode, + in boolean DuplicateElements) raises (SALOME::SALOME_Exception); /*! * Create a ball element on the given node. @@ -177,16 +203,17 @@ module SMESH long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces) raises (SALOME::SALOME_Exception); /*! - * Create 0D elements on all nodes of the given object except those - * nodes on which a 0D element already exists. + * Create 0D elements on all nodes of the given object. * \param theObject object on whose nodes 0D elements will be created. * \param theGroupName optional name of a group to add 0D elements created * and/or found on nodes of \a theObject. + * \param theDuplicateElements to add one more 0D element to a node or not * \return an object (a new group or a temporary SMESH_IDSource) holding * ids of new and/or found 0D elements. */ SMESH_IDSource Create0DElementsOnAllNodes(in SMESH_IDSource theObject, - in string theGroupName) + in string theGroupName, + in boolean theDuplicateElements) raises (SALOME::SALOME_Exception); /*! @@ -463,6 +490,9 @@ module SMESH in ListOfIDSources faces, in DirStruct stepVector, in long nbOfSteps, + in double_array scaleFactors, + in boolean linearVariation, + in double_array basePoint, in boolean toMakeGroups) raises (SALOME::SALOME_Exception); @@ -659,7 +689,8 @@ module SMESH raises (SALOME::SALOME_Exception); void MergeNodes (in array_of_long_array GroupsOfNodes, - in SMESH::ListOfIDSources NodesToKeep) + in SMESH::ListOfIDSources NodesToKeep, + in boolean AvoidMakingHoles) raises (SALOME::SALOME_Exception); /*! @@ -723,6 +754,21 @@ module SMESH short GetPointState(in double x, in double y, in double z) raises (SALOME::SALOME_Exception); + /*! + * Returns groups of FreeBorder's coincident within the given tolerance. + * If the tolerance <= 0.0 then one tenth of an average size of elements adjacent + * to free borders being compared is used. + */ + CoincidentFreeBorders FindCoincidentFreeBorders(in double tolerance); + + /*! + * Sew FreeBorder's of each group + */ + short SewCoincidentFreeBorders (in CoincidentFreeBorders freeBorders, + in boolean createPolygons, + in boolean createPolyedrs) + raises (SALOME::SALOME_Exception); + enum Sew_Error { SEW_OK, SEW_BORDER1_NOT_FOUND, @@ -734,8 +780,9 @@ module SMESH SEW_DIFF_NB_OF_ELEMENTS, SEW_TOPO_DIFF_SETS_OF_ELEMENTS, SEW_BAD_SIDE1_NODES, - SEW_BAD_SIDE2_NODES - }; + SEW_BAD_SIDE2_NODES, + SEW_INTERNAL_ERROR + }; Sew_Error SewFreeBorders (in long FirstNodeID1, in long SecondNodeID1,