1\subsection{Mehlum curvature of a B-spline or NURBS 2 surface as a NURBS surface.} 3\funclabel{s2536} 4\begin{minipg1} 5To interpolate or approximate the Mehlum curvature of a B-spline or NURBS 6 surface by a NURBS surface. 7 The desired continuity of the Mehlum curvature surface is 8 input and this may lead to a patchwork of output surfaces. 9 Interpolation results in a high order surface. 10 If the original surface is a B-spline surface of order $k$, 11 the result is of order $12k-17$, in the NURBS case, 12 order $48k-53$. 13 To avoid instability beacuse of this, a maximum order is 14 applied. This may lead to an approximation rather than 15 an interpolation. 16\end{minipg1} \\ \\ 17SYNOPSIS\\ 18 \> void s2536(\begin{minipg3} 19 {\fov surf}, {\fov u\_continuity}, {\fov v\_continuity}, {\fov u\_surfnumb}, 20 {\fov v\_surfnumb}, {\fov mehlum\_surf}, {\fov stat}) 21 \end{minipg3}\\ 22 \>\> SISLSurf \> *{\fov surf};\\ 23 \>\> int \> {\fov u\_continuity};\\ 24 \>\> int \> {\fov v\_continuity};\\ 25 \>\> int \> *{\fov u\_surfnumb};\\ 26 \>\> int \> *{\fov v\_surfnumb};\\ 27 \>\> SISLSurf \> ***{\fov mehlum\_surf};\\ 28 \>\> int \> *{\fov stat};\\ 29\\ 30ARGUMENTS\\ 31 \>Input Arguments:\\ 32 \>\> {\fov surf}\> - \> \begin{minipg2} 33 The original surface. 34 \end{minipg2}\\[0.8ex] 35 \>\> {\fov u\_continuity}\> - \> \begin{minipg2} 36 Desired continuity of the Mehlum curvature surfaces 37 in the u direction: $0$ implies positional continuity, 38 $1$ implies tangential continuity, and so on. 39 SISL only accepts surfaces of continuity 0 or higher. 40 If the surface is to be intersected with another, 41 the continuity must be 1 or higher to find all the 42 intersection curves. 43 \end{minipg2}\\[0.8ex] 44 \>\> {\fov v\_continuity}\> - \> \begin{minipg2} 45 Desired continuity of the Mehlum curvature surfaces 46 in the v direction: $0$ implies positional continuity, 47 $1$ implies tangential continuity, and so on. 48 SISL only accepts surfaces of continuity 0 or higher. 49 If the surface is to be intersected with another, 50 the continuity must be 1 or higher to find all the 51 intersection curves. 52 \end{minipg2}\\[0.8ex] 53\\ 54 \>Output Arguments:\\ 55 \>\> {\fov u\_surfnumb}\> - \> \begin{minipg2} 56 Number of Mehlum curvature surface patches 57 in the u direction. 58 \end{minipg2}\\[0.8ex] 59 \>\> {\fov v\_surfnumb}\> - \> \begin{minipg2} 60 Number of Mehlum curvature surface patches 61 in the v direction. 62 \end{minipg2}\\[0.8ex] 63 \>\> {\fov mehlum\_surf}\> - \> \begin{minipg2} 64 The Mehlum curvature interpolation surfaces. 65 This will be a pointer to an array of length 66 {\fov u\_surfnum} * {\fov v\_surfnumb} of 67 SISLSurf pointers, where the indexing runs 68 fastest in the u direction. 69 \end{minipg2}\\[0.8ex] 70 \>\> {\fov stat} \> - \> Status messages\\ 71 \>\>\>\> $> 0$ \> : Warning.\\ 72 \>\>\>\> $= 2$ \> : The surface is degenerate.\\ 73 \>\>\>\> $= 0$ \> : Ok.\\ 74 \>\>\>\> $< 0$ \> : Error.\\ 75\\ 76EXAMPLE OF USE\\ 77 \> \{ \\ 78 79 \>\> SISLSurf \> *{\fov surf};\\ 80 \>\> int \> {\fov u\_continuity};\\ 81 \>\> int \> {\fov v\_continuity};\\ 82 \>\> int \> *{\fov u\_surfnumb};\\ 83 \>\> int \> *{\fov v\_surfnumb};\\ 84 \>\> SISLSurf \> ***{\fov mehlum\_surf};\\ 85 \>\> int \> *{\fov stat};\\ \>\> \ldots \\ 86 \>\>s2536(\begin{minipg4} 87 {\fov surf}, {\fov u\_continuity}, {\fov v\_continuity}, {\fov u\_surfnumb}, 88 {\fov v\_surfnumb}, {\fov mehlum\_surf}, {\fov stat}); 89 \end{minipg4}\\ 90 \>\> \ldots \\ 91 \> \} 92\end{tabbing} 93