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