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