/*! \page sewing_meshes_page Sewing meshes \n In SMESH you can sew elements of a mesh. The current functionality allows you to sew: \image html sewing.png "Sewing button" To sew elements of a mesh:
  1. From the \b Modification menu choose the \b Transformation item and from its sub-menu select the \b Sewing item.
  2. Check in the dialog box one of the radio buttons corresponding to the type of sewing operation you would like to perform.
  3. Fill the other fields available in the dialog box.
  4. Click the \b Apply or Apply and Close button to perform the operation of sewing.

\anchor free_borders_anchor

Sew free borders

This functionality allows you to unite free borders of a 2D mesh. There are two working modes: \a Automatic and \a Manual. In the \b Automatic mode, the program finds free borders coincident within the specified tolerance and sews them. Optionally it is possible to visually check and correct if necessary the found free borders before sewing.
In the \b Manual mode you are to define borders to sew by picking three nodes of each of two borders. \image html sewing1.png
Default mode is \a Automatic
To use \b Automatic sewing: For sewing free borders manually you should switch the \b Mode to \b Manual and define three points on each border: the first, the second and the last node: \image html sewing_manual.png You can select these nodes in the 3D viewer or define by its id. The first and the second nodes should belong to the same link of a face. The second and the last nodes of a border can be the same. The first and the last nodes of two borders can be the same. The corresponding end nodes of two borders will be merged. Intermediate nodes of two borders will be either merged or inserted into faces of the opposite border. In practice the borders to sew often coincide and in this case it is difficult to specify the first and the last nodes of a border since they coincide with the first and the last nodes of the other border. To cope with this, \ref merging_nodes_page "merge" coincident nodes into one beforehand. Two figures below illustrate this approach. \image html sew_using_merge.png "Merge coincident nodes, which are difficult to distinguish"
\image html sew_after_merge.png "After merging nodes it is easy to specify border nodes" The sewing algorithm is as follows:
  1. The parameter (U) of each node within a border is computed. So that the first node has U=0.0, the last node has U=1.0, for the rest nodes 0.0 < U < 1.0;
  2. Compare node parameters of the two borders. If two nodes of the opposite borders have close parameters, they are merged, i.e. a node of the first border is replaced in all elements by a node of the second border. If a node has no node with a close parameter in the opposite border, it is inserted into an edge of element of the opposite border, an element is split. Two nodes are considered close enough to merge, if difference of their parameters is less than one fifth of minimum length of adjacent face edges on the borders.
\image html image22.jpg "Sewing free borders" See Also a sample TUI Script of a \ref tui_sew_free_borders "Sew Free Borders" operation.
\anchor conform_free_borders_anchor

Sew conform free borders

This functionality can be used to unite two free borders of a 2D mesh. \image html sewing2.png The borders of meshes for sewing are defined as for "Sew free borders" except that the second free border is not limited and can be defined by the first and the second nodes only. The first nodes of two borders can be the same. The algorithm is following: counting nodes starting at the first ones, the n-th node of the first border is merged with the n-th node of the other border, until the end of either of borders. Nodes of the first border are replaced in all elements with corresponding nodes of the second border. \n For sewing conform free borders you should define three points on the first border and two points on the second one. User can select these nodes in 3D viewer or define node by its id. \image html image23.jpg "Sewing conform free borders" See Also a sample TUI Script of a \ref tui_sew_conform_free_borders "Sew Conform Free Borders" operation.
\anchor border_to_side_anchor

Sew border to side

"Sew border to side" is intended to sew a free border to a mesh surface. \n The free border is defined as for "Sewing of free borders". The place where to sew the border is defined by two nodes, between which the border faces are placed, so that the first border node is merged with the first node on the side and the last node of the border is merged with the second specified node on the side. \image html sewing3.png The algorithm is following.
  1. Find a sequence of linked nodes on the side such that the found links to be most co-directed with the links of the free border.
  2. Sew two sequences of nodes using algorithm of "Sewing of free berders". \n For sewing border to side you should define three points on the border and two points on the side. User can select these nodes in 3D viewer or define node by its id.
\image html image30.jpg "Sewing border to side" See Also a sample TUI Script of a \ref tui_sew_meshes_border_to_side "Sew Border to Side" operation.
\anchor side_elements_anchor

Sew side elements

This operation is intended to unite two mesh surfaces. \image html sewing4.png Surfaces may be defined by either 2d or 3d elements. The number of given elements of the sides must be the same. The sets of given elements must be topologically equal, i.e. each node of one element set must have a corresponding node in the other element set and corresponding nodes must be equally linked. If there are 3d elements in a set, only their free faces must obey to that rule. \n Two corresponding nodes on each side must be specified. They must belong to one element and must be located on an element set boundary. Sewing algorithm finds and merges the corresponding nodes starting from the specified ones. \image html image31.jpg "Step-by-step sewing process" \image html image32.jpg "The result of side elements sewing" For sewing side elements you should define elements for sewing and two nodes for merging on the each side. User can select these elements and nodes in 3D viewer or define them by its id. See Also a sample TUI Script of a \ref tui_sew_side_elements "Sew Side Elements" operation. */