*/
long MoveClosestNodeToPoint(in double x, in double y, in double z, in long nodeID);
+ /*!
+ * Return ID of node closest to a given point
+ */
+ long FindNodeClosestTo(in double x, in double y, in double z);
+
+ /*!
+ * Return elements of given type where the given point is IN or ON.
+ *
+ * 'ALL' type means elements of any type excluding nodes and 0D elements
+ */
+ long_array FindElementsByPoint(in double x, in double y, in double z, in ElementType type);
+
enum Sew_Error {
SEW_OK,
SEW_BORDER1_NOT_FOUND,
/*!
* \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
- * \sa DoubleNode(), DoubleNodeGroup(), DoubleNodeGroups()
+ * \param theElems - the list of elements (edges or faces) to be replicated
+ * The nodes for duplication could be found from these elements
+ * \param theNodesNot - list of nodes to NOT replicate
+ * \param theAffectedElems - the list of elements (cells and edges) to which the
+ * replicated nodes should be associated to.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodeGroup(), DoubleNodeGroups()
*/
- boolean DoubleNodes( in long_array theNodes, in long_array theModifiedElems );
+ boolean DoubleNodes( in long_array theElems,
+ in long_array theNodesNot,
+ in long_array theAffectedElems );
/*!
- * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
- * This method provided for convenience works as DoubleNodes() described above.
- * \param theNodeId - identifier of node to be doubled.
- * \param theModifiedElems - identifiers of elements to be updated.
- * \return TRUE if operation has been completed successfully, FALSE otherwise
- * \sa DoubleNodes(), DoubleNodeGroup(), DoubleNodeGroups()
+ * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
+ * \param theElems - the list of elements (edges or faces) to be replicated
+ * The nodes for duplication could be found from these elements
+ * \param theNodesNot - list of nodes to NOT replicate
+ * \param theShape - shape to detect affected elements (element which geometric center
+ * located on or inside shape).
+ * The replicated nodes should be associated to affected elements.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodeGroupInRegion(), DoubleNodeGroupsInRegion()
*/
- boolean DoubleNode( in long theNodeId, in long_array theModifiedElems );
+ boolean DoubleNodesInRegion( in long_array theElems,
+ in long_array theNodesNot,
+ in GEOM::GEOM_Object theShape );
/*!
- * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
- * This method provided for convenience works as DoubleNodes() described above.
- * \param theNodes - group of nodes to be doubled.
- * \param theModifiedElems - group of elements to be updated.
- * \return TRUE if operation has been completed successfully, FALSE otherwise
- * \sa DoubleNode(), DoubleNodes(), DoubleNodeGroups()
+ * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
+ * This method provided for convenience works as DoubleNodes() described above.
+ * \param theElems - group of of elements (edges or faces) to be replicated
+ * \param theNodesNot - group of nodes not to replicated
+ * \param theAffectedElems - group of elements to which the replicated nodes
+ * should be associated to.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodes(), DoubleNodeGroups()
*/
- boolean DoubleNodeGroup( in SMESH_GroupBase theNodes,
- in SMESH_GroupBase theModifiedElems );
+ boolean DoubleNodeGroup( in SMESH_GroupBase theElems,
+ in SMESH_GroupBase theNodesNot,
+ in SMESH_GroupBase theAffectedElems );
/*!
- \brief Creates a hole in a mesh by doubling the nodes of some particular elements
- This method provided for convenience works as DoubleNodes() described above.
- \param theNodes - list of groups of nodes to be doubled
- \param theModifiedElems - list of groups of elements to be updated.
- \return TRUE if operation has been completed successfully, FALSE otherwise
- \sa DoubleNode(), DoubleNodeGroup(), DoubleNodes()
+ * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
+ * This method provided for convenience works as DoubleNodes() described above.
+ * \param theElems - group of elements (edges or faces) to be replicated
+ * \param theNodesNot - group of nodes not to replicated
+ * \param theShape - shape to detect affected elements (element which geometric center
+ * located on or inside shape).
+ * The replicated nodes should be associated to affected elements.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodesInRegion(), DoubleNodeGroupsInRegion()
*/
- boolean DoubleNodeGroups( in ListOfGroups theNodes,
- in ListOfGroups theModifiedElems );
+ boolean DoubleNodeGroupInRegion( in SMESH_GroupBase theElems,
+ in SMESH_GroupBase theNodesNot,
+ in GEOM::GEOM_Object theShape );
+
+ /*!
+ * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
+ * This method provided for convenience works as DoubleNodes() described above.
+ * \param theElems - list of groups of elements (edges or faces) to be replicated
+ * \param theNodesNot - list of groups of nodes not to replicated
+ * \param theAffectedElems - group of elements to which the replicated nodes
+ * should be associated to.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodeGroup(), DoubleNodes()
+ */
+ boolean DoubleNodeGroups( in ListOfGroups theElems,
+ in ListOfGroups theNodesNot,
+ in ListOfGroups theAffectedElems );
+
+ /*!
+ * \brief Creates a hole in a mesh by doubling the nodes of some particular elements
+ * This method provided for convenience works as DoubleNodes() described above.
+ * \param theElems - list of groups of elements (edges or faces) to be replicated
+ * \param theNodesNot - list of groups of nodes not to replicated
+ * \param theShape - shape to detect affected elements (element which geometric center
+ * located on or inside shape).
+ * The replicated nodes should be associated to affected elements.
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ * \sa DoubleNodeGroupInRegion(), DoubleNodesInRegion()
+ */
+ boolean DoubleNodeGroupsInRegion( in ListOfGroups theElems,
+ in ListOfGroups theNodesNot,
+ in GEOM::GEOM_Object theShape );
+
+ /*!
+ * \brief Generated skin mesh (containing 2D cells) from 3D mesh
+ * The created 2D mesh elements based on nodes of free faces of boundary volumes
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ */
+ boolean Make2DMeshFrom3D();
};
};