1\subsection{March an intersection curve between two surfaces.} 2\funclabel{s1310} 3\begin{minipg1} 4 To march an intersection curve between two surfaces. 5 The intersection curve is described by guide parameter pairs stored in 6 an intersection curve object. 7 The guide points are expected to be found by s1859() described on 8 page \pageref{s1859}. 9 The generated geometric curves are represented as B-spline curves. 10\end{minipg1} \\ \\ 11SYNOPSIS\\ 12 \>void s1310(\begin{minipg3} 13 {\fov surf1}, {\fov surf2}, {\fov intcurve}, {\fov epsge}, {\fov maxstep}, {\fov makecurv}, {\fov graphic}, {\fov stat}) 14 \end{minipg3}\\[0.3ex] 15 16 \>\> SISLSurf \> *{\fov surf1};\\ 17 \>\> SISLSurf \> *{\fov surf2};\\ 18 \>\> SISLIntcurve\> *{\fov intcurve};\\ 19 \>\> double \> {\fov epsge};\\ 20 \>\> double \> {\fov maxstep};\\ 21 \>\> int \> {\fov makecurv};\\ 22 \>\> int \> {\fov graphic};\\ 23 \>\> int \> *{\fov stat};\\ 24\\ 25ARGUMENTS\\ 26 \>Input Arguments:\\ 27 \>\> {\fov surf1}\> - \> \begin{minipg2} 28 Pointer to the first surface. 29 \end{minipg2}\\ 30 \>\> {\fov surf2}\> - \> \begin{minipg2} 31 Pointer to the second surface. 32 \end{minipg2}\\ 33 \>\> {\fov epsge}\> - \> \begin{minipg2} 34 Geometry resolution. 35 \end{minipg2} \\ 36 \>\> {\fov maxstep}\> - \> \begin{minipg2} 37 Maximum step length. If maxstep$\leq$0, maxstep is ignored. 38 maxstep = 0.0 is recommended. 39 \end{minipg2}\\[0.8ex] 40 \>\> {\fov makecurv}\> - \> \begin{minipg2} 41 Indicator specifying if a geometric curve is to be made: 42 \end{minipg2}\\ 43 \>\>\>\>\> 0 - \>Do not make curves at all\\ 44 \>\>\>\>\> 1 - \>Make only a geometric curve.\\ 45 \>\>\>\>\> 2 - \>\begin{minipg5} 46 Make geometric curve and curves in the parameter 47 planes 48 \end{minipg5} \\[0.3ex] 49 \>\> {\fov graphic}\> - \> \begin{minipg2} 50 Indicator specifying if the function 51 should draw the geometric curve: 52 \end{minipg2}\\ 53 \>\>\>\>\> 0 - \>Don't draw the curve\\ 54 \>\>\>\>\> 1 - \>\begin{minipg5} 55 Draw the geometric curve. If this option 56 is used see NOTE! 57 \end{minipg5} \\[0.8ex] 58\\ %\newpagetabs 59 \>Input/Output Arguments:\\ 60 \>\> {\fov intcurve}\> - \> \begin{minipg2} 61 Pointer to the intersection curve. 62 As input only 63 guide points (points in parameter space) 64 exist. These guide points 65 are used for guiding the marching. 66 The routine adds 67 intersection curve and curves in the parameter 68 planes to the SISLIntcurve object, according to the value 69 of makecurv. 70 \end{minipg2}\\ 71\newpagetabs 72 \>Output Arguments:\\ 73 \>\> {\fov stat} \> - \> Status messages\\ 74 \>\>\>\>\> $= 3$ : \> \begin{minipg5} 75 Iteration stopped due to singular 76 point or degenerate surface. A part of an 77 intersection curve may have been 78 traced out. If no curve is traced out, 79 the curve pointers in the SISLIntcurve 80 object point to NULL. 81 \end{minipg5} \\[0.3ex] 82 \>\>\>\>\> $= 0$ : \> ok\\ 83 \>\>\>\>\> $< 0$ : \> error\\ 84\\ 85NOTE\\ 86\> \begin{minipg6} 87If the draw option is used the empty dummy functions s6move() and 88s6line() are called. 89Thus if the draw option is used, make sure 90you have versions of s6move() and s6line() interfaced to your graphic package. 91More about s6move() and s6line() on pages~\pageref{s6move} 92and~\pageref{s6line}. 93\end{minipg6}\\ \\ 94EXAMPLE OF USE\\ 95 \> \{ \\ 96 \>\> SISLSurf \> *{\fov surf1};\\ 97 \>\> SISLSurf \> *{\fov surf2};\\ 98 \>\> SISLIntcurve \> *{\fov intcurve};\\ 99 \>\> double \> {\fov epsge};\\ 100 \>\> double \> {\fov maxstep};\\ 101 \>\> int \> {\fov makecurv};\\ 102 \>\> int \> {\fov graphic};\\ 103 \>\> int \> {\fov stat} = 0;\\ 104 \>\> \ldots \\ 105 \>\>s1310(\begin{minipg4} 106 {\fov surf1}, {\fov surf2}, {\fov intcurve}, {\fov epsge}, {\fov maxstep}, {\fov makecurv}, {\fov graphic}, \&{\fov stat}); 107 \end{minipg4}\\ 108 \>\> \ldots \\ 109 \> \} 110\end{tabbing} 111