.. role:: blue :class: blue MbJoinSurface Joint Surface ============================ .. _MbJoinSurface_Joint_Surface_: .. версия ядра: 1180ХХ Class :blue:`MbJoinSurface` is declared in the *surf\_joint\_surface.h* file. The join surface :blue:`MbJoinSurface` is defined by the set of curves RPArray< :ref:`MbCurve3D ` > **curves**, the knot vector *knots*, the spline order *degree*, the boundary values of the first surface parameter *umin* and *umax*, the flag of the first surface parameter periodicity *closedU*, the flag of the second surface parameter periodicity *closedV*, the flag that indicates the presence of the surface pole at the boundary values of the first parameter *isPoleUmin*, *isPoleUmax*, the flag that indicates the presence of the surface pole at the boundary values of the second parameter *isPoleUmin*, *isPoleUmax*. The curves **curves** are coordinated with each other: they have the same direction and the same parameter domain. The first surface parameter *u* coincides with the parameter of the **curves**, which is common for them. The first surface parameter takes values on the segment *umin* ≤ *u* ≤ *umax*, which corresponds to the domain of the **curves**. The surface can be periodic in the first parameter if all **curves** are periodic. Let the knot vector *knots* contain *knotsCount* elements, and the number of curves in the **curves** set be equal to *curvesCount*. The numbers of elements in the sets are related by the equality *curvesCount* + *degree* = *knotsCount*. The second surface parameter *v* takes values on the segment *vmin* ≤ *v* ≤ *vmax*, where *vmin* = *knots*\[*degree* − 1], *vmax* = *knots*\[*knotsCount* − *degree*]. The surface cannot be periodic in the second parameter. In the :blue:`PointOn`\( double *u*, double *v*, :ref:`MbCartPoint3D ` & **s** ) method, the radius vector of the surface **s** is described by the vector function .. math:: s(u, v) = \frac{\sum\limits_{j = 0}^{\mathit{\text{curvesCount}} - 1}{N_j^{degree}(v)\mathbf{\text{curves}}\lbrack j\rbrack(u)}}{\sum\limits_{j = 0}^{\mathit{\text{curvesCount}} - 1}{N_j^{degree}(v)}}, where :math:`N_j^{degree}(v)` are B-splines of order *degree* for the *j*-th curve **curves**\[*j*]. The join surface is shown in the figure: .. figure:: /MODELER/SURFACES/pictures/O.5.21.1.png :width: 12cm :align: center Each curve **s**\(*const*, *v*) with a fixed first surface parameter *u* = const is a NURBS curve of order *degree* constructed by the points **curves**\[*i*]\(*const*).