.. role:: blue :class: blue MbOffsetSurface Equidistant Surface =================================== .. _MbOffsetSurface_Equidistant_Surface_: .. версия ядра: 1180ХХ Class :blue:`MbOffsetSurface` is declared in the *surf\_offset\_surface.h* file. The equidistant surface :blue:`MbOffsetSurface` is defined by the base surface :ref:`MbSurface ` *basisSurface*, by the offset along the normal of the base surface *distance*, by the boundary values of the first parameter of the base surface *u0min*, *u0max*, by the boundary values of the second parameter of the base surface *v0min*, *v0max*, by the flags of the base surface periodicity *u0closed*, *v0closed*, by the increments of the boundary values of the first parameter of the base surface *dumin*, *dumax*, and by the increments of the boundary values of the second parameter of the base surface *dvmin*, *dvmax*. The surface also has some additional data that is optional and is used to speed up the surface methods. The radius vector of a point on the equidistant surface is computed as follows. For a given parameter, the point of the base surface and the normal at this point are computed. 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:: \mathbf{r}(u, v) = \mathbf{basisSurface}(u, v) + \mathbf{normal}(u, v) \cdot \textit{distance}, where **normal**\(*u*, *v*) is the surface normal at the given point. The equidistant surface and its base surface are shown in Fig. 1: .. figure:: /MODELER/SURFACES/pictures/O.5.23.1.png :width: 12cm :align: center Fig. 1 The parameter domain of the equidistant surface may differ from the parameter domain of the base surface. The domain of the first parameter of the equidistant surface is defined by the inequalities *u0min* + *dumin* ≤ *u* ≤ *u0max* + *dumax*. The domain of the second parameter of the equidistant surface is defined by the inequalities *v0min* + *dvmin* ≤ *v* ≤ *v0max* + *dvmax*. The equidistant surface with a negative offset and an expanded parameter domain and its base surface are shown in Fig. 2: .. figure:: /MODELER/SURFACES/pictures/O.5.23.2.png :width: 12cm :align: center Fig. 2 Another equidistant surface must not be used as the base surface for an equidistant surface; instead, the base surface of the latter must be used with the corresponding recalculation of the offset value. Each surface can construct an equidistant surface by the virtual method :blue:`Offset`\( double *distance*, bool *sense* ).