-// 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
// 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
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 };
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 )
* 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);
/*!