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