\section{lib/neatogen/multispline.c File Reference}
\label{multispline_8c}\index{lib/neatogen/multispline.\-c@{lib/neatogen/multispline.\-c}}
{\ttfamily \#include $<$multispline.\-h$>$}\\*
{\ttfamily \#include $<$delaunay.\-h$>$}\\*
{\ttfamily \#include $<$neatoprocs.\-h$>$}\\*
{\ttfamily \#include $<$math.\-h$>$}\\*
{\ttfamily \#include \char`\"{}f\-P\-Q.\-h\char`\"{}}\\*
Include dependency graph for multispline.\-c\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{multispline_8c__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct {\bf ipair}
\item 
struct {\bf \-\_\-tri}
\item 
struct {\bf tripoly\-\_\-t}
\item 
struct {\bf item}
\item 
struct {\bf Ipair}
\item 
struct {\bf tnode}
\item 
struct {\bf tedge}
\item 
struct {\bf tgraph}
\item 
struct {\bf router\-\_\-s}
\item 
struct {\bf side\-\_\-t}
\item 
struct {\bf P\-P\-Q}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bf S\-E\-P}~15
\item 
\#define {\bf M\-A\-R\-G\-I\-N}~32
\item 
\#define {\bf E\-Q\-P\-T}(p, q)~(((p).x==(q).x)\&\&((p).y==(q).y))
\item 
\#define {\bf N\-S\-M\-A\-L\-L}~-\/0.\-0000000001
\item 
\#define {\bf P\-Q\-T\-Y\-P\-E}~{\bf int}
\item 
\#define {\bf P\-Q\-V\-T\-Y\-P\-E}~float
\item 
\#define {\bf P\-Q\-\_\-\-T\-Y\-P\-E\-S}
\item 
\#define {\bf N\-\_\-\-V\-A\-L}(pq, n)~(({\bf P\-P\-Q}$\ast$)pq)-\/$>$vals[n]
\item 
\#define {\bf N\-\_\-\-I\-D\-X}(pq, n)~(({\bf P\-P\-Q}$\ast$)pq)-\/$>$idxs[n]
\item 
\#define {\bf P\-Q\-\_\-\-C\-O\-D\-E}
\item 
\#define {\bf N\-\_\-\-D\-A\-D}(n)~dad[n]
\item 
\#define {\bf E\-\_\-\-W\-T}(e)~(e-\/$>${\bf dist})
\item 
\#define {\bf U\-N\-S\-E\-E\-N}~-\/{\bf M\-A\-X\-F\-L\-O\-A\-T}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct {\bf \-\_\-tri} {\bf tri}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf free\-Router} ({\bf router\-\_\-t} $\ast$rtr)
\item 
{\bf router\-\_\-t} $\ast$ {\bf mk\-Router} ({\bf Ppoly\-\_\-t} $\ast$$\ast$obsp, {\bf int} npoly)
\item 
{\bf int} {\bf make\-Multi\-Spline} ({\bf graph\-\_\-t} $\ast$g, {\bf edge\-\_\-t} $\ast$e, {\bf router\-\_\-t} $\ast$rtr, {\bf int} do\-Polyline)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\index{multispline.\-c@{multispline.\-c}!E\-\_\-\-W\-T@{E\-\_\-\-W\-T}}
\index{E\-\_\-\-W\-T@{E\-\_\-\-W\-T}!multispline.c@{multispline.\-c}}
\subsubsection[{E\-\_\-\-W\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-\_\-\-W\-T(
\begin{DoxyParamCaption}
\item[{}]{e}
\end{DoxyParamCaption}
)~(e-\/$>${\bf dist})}\label{multispline_8c_aa09b4fd3c78767b37beca0dfd01ba97f}


Definition at line 1282 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!E\-Q\-P\-T@{E\-Q\-P\-T}}
\index{E\-Q\-P\-T@{E\-Q\-P\-T}!multispline.c@{multispline.\-c}}
\subsubsection[{E\-Q\-P\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-Q\-P\-T(
\begin{DoxyParamCaption}
\item[{}]{p, }
\item[{}]{q}
\end{DoxyParamCaption}
)~(((p).x==(q).x)\&\&((p).y==(q).y))}\label{multispline_8c_aff87f8cfd0b65102ce78f15e2227f400}


Definition at line 805 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!M\-A\-R\-G\-I\-N@{M\-A\-R\-G\-I\-N}}
\index{M\-A\-R\-G\-I\-N@{M\-A\-R\-G\-I\-N}!multispline.c@{multispline.\-c}}
\subsubsection[{M\-A\-R\-G\-I\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-R\-G\-I\-N~32}\label{multispline_8c_ab05a798afd72aac947f417e1dab73c87}


Definition at line 446 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!N\-\_\-\-D\-A\-D@{N\-\_\-\-D\-A\-D}}
\index{N\-\_\-\-D\-A\-D@{N\-\_\-\-D\-A\-D}!multispline.c@{multispline.\-c}}
\subsubsection[{N\-\_\-\-D\-A\-D}]{\setlength{\rightskip}{0pt plus 5cm}\#define N\-\_\-\-D\-A\-D(
\begin{DoxyParamCaption}
\item[{}]{n}
\end{DoxyParamCaption}
)~dad[n]}\label{multispline_8c_a6f7819fbb6c877ade3429f09bb31366f}


Definition at line 1281 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!N\-\_\-\-I\-D\-X@{N\-\_\-\-I\-D\-X}}
\index{N\-\_\-\-I\-D\-X@{N\-\_\-\-I\-D\-X}!multispline.c@{multispline.\-c}}
\subsubsection[{N\-\_\-\-I\-D\-X}]{\setlength{\rightskip}{0pt plus 5cm}\#define N\-\_\-\-I\-D\-X(
\begin{DoxyParamCaption}
\item[{}]{pq, }
\item[{}]{n}
\end{DoxyParamCaption}
)~(({\bf P\-P\-Q}$\ast$)pq)-\/$>$idxs[n]}\label{multispline_8c_a670eec86598101a2893df7cfc8add569}


Definition at line 1275 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!N\-\_\-\-V\-A\-L@{N\-\_\-\-V\-A\-L}}
\index{N\-\_\-\-V\-A\-L@{N\-\_\-\-V\-A\-L}!multispline.c@{multispline.\-c}}
\subsubsection[{N\-\_\-\-V\-A\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define N\-\_\-\-V\-A\-L(
\begin{DoxyParamCaption}
\item[{}]{pq, }
\item[{}]{n}
\end{DoxyParamCaption}
)~(({\bf P\-P\-Q}$\ast$)pq)-\/$>$vals[n]}\label{multispline_8c_acadd5e8088fbec6c6325e23b6cfa8951}


Definition at line 1274 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!N\-S\-M\-A\-L\-L@{N\-S\-M\-A\-L\-L}}
\index{N\-S\-M\-A\-L\-L@{N\-S\-M\-A\-L\-L}!multispline.c@{multispline.\-c}}
\subsubsection[{N\-S\-M\-A\-L\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define N\-S\-M\-A\-L\-L~-\/0.\-0000000001}\label{multispline_8c_a8ddc6b6f7c403d120e02ee323aef62df}


Definition at line 972 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!P\-Q\-\_\-\-C\-O\-D\-E@{P\-Q\-\_\-\-C\-O\-D\-E}}
\index{P\-Q\-\_\-\-C\-O\-D\-E@{P\-Q\-\_\-\-C\-O\-D\-E}!multispline.c@{multispline.\-c}}
\subsubsection[{P\-Q\-\_\-\-C\-O\-D\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\-Q\-\_\-\-C\-O\-D\-E}\label{multispline_8c_a71ecac68d93fa3dd1b8c4f03b27f2b80}


Definition at line 1277 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!P\-Q\-\_\-\-T\-Y\-P\-E\-S@{P\-Q\-\_\-\-T\-Y\-P\-E\-S}}
\index{P\-Q\-\_\-\-T\-Y\-P\-E\-S@{P\-Q\-\_\-\-T\-Y\-P\-E\-S}!multispline.c@{multispline.\-c}}
\subsubsection[{P\-Q\-\_\-\-T\-Y\-P\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\-Q\-\_\-\-T\-Y\-P\-E\-S}\label{multispline_8c_afe120f597437427429b1f05263db7f6e}


Definition at line 1264 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!P\-Q\-T\-Y\-P\-E@{P\-Q\-T\-Y\-P\-E}}
\index{P\-Q\-T\-Y\-P\-E@{P\-Q\-T\-Y\-P\-E}!multispline.c@{multispline.\-c}}
\subsubsection[{P\-Q\-T\-Y\-P\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\-Q\-T\-Y\-P\-E~{\bf int}}\label{multispline_8c_af72211328f4d497f42b458fe42edc5a5}


Definition at line 1261 of file multispline.\-c.



Referenced by make\-Multi\-Spline().

\index{multispline.\-c@{multispline.\-c}!P\-Q\-V\-T\-Y\-P\-E@{P\-Q\-V\-T\-Y\-P\-E}}
\index{P\-Q\-V\-T\-Y\-P\-E@{P\-Q\-V\-T\-Y\-P\-E}!multispline.c@{multispline.\-c}}
\subsubsection[{P\-Q\-V\-T\-Y\-P\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\-Q\-V\-T\-Y\-P\-E~float}\label{multispline_8c_a24ce30e9384fce4e99815441f7044d66}


Definition at line 1262 of file multispline.\-c.



Referenced by make\-Multi\-Spline().

\index{multispline.\-c@{multispline.\-c}!S\-E\-P@{S\-E\-P}}
\index{S\-E\-P@{S\-E\-P}!multispline.c@{multispline.\-c}}
\subsubsection[{S\-E\-P}]{\setlength{\rightskip}{0pt plus 5cm}\#define S\-E\-P~15}\label{multispline_8c_a95cf1ca63ff303311d342d1a53d51f38}


Definition at line 332 of file multispline.\-c.

\index{multispline.\-c@{multispline.\-c}!U\-N\-S\-E\-E\-N@{U\-N\-S\-E\-E\-N}}
\index{U\-N\-S\-E\-E\-N@{U\-N\-S\-E\-E\-N}!multispline.c@{multispline.\-c}}
\subsubsection[{U\-N\-S\-E\-E\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define U\-N\-S\-E\-E\-N~-\/{\bf M\-A\-X\-F\-L\-O\-A\-T}}\label{multispline_8c_aaa7afc15c216efdc4750d8b38b8e74db}


Definition at line 1283 of file multispline.\-c.



\subsection{Typedef Documentation}
\index{multispline.\-c@{multispline.\-c}!tri@{tri}}
\index{tri@{tri}!multispline.c@{multispline.\-c}}
\subsubsection[{tri}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf \-\_\-tri}  {\bf tri}}\label{multispline_8c_aee4780521c79afddf48f6c3c1454a288}


\subsection{Function Documentation}
\index{multispline.\-c@{multispline.\-c}!free\-Router@{free\-Router}}
\index{free\-Router@{free\-Router}!multispline.c@{multispline.\-c}}
\subsubsection[{free\-Router}]{\setlength{\rightskip}{0pt plus 5cm}void free\-Router (
\begin{DoxyParamCaption}
\item[{{\bf router\-\_\-t} $\ast$}]{rtr}
\end{DoxyParamCaption}
)}\label{multispline_8c_a67370819bc21be387b82191ebb4843b0}


Definition at line 638 of file multispline.\-c.



References dtclose(), router\-\_\-s\-::obs, router\-\_\-s\-::ps, router\-\_\-s\-::tg, router\-\_\-s\-::trimap, and router\-\_\-s\-::tris.

\index{multispline.\-c@{multispline.\-c}!make\-Multi\-Spline@{make\-Multi\-Spline}}
\index{make\-Multi\-Spline@{make\-Multi\-Spline}!multispline.c@{multispline.\-c}}
\subsubsection[{make\-Multi\-Spline}]{\setlength{\rightskip}{0pt plus 5cm}{\bf int} make\-Multi\-Spline (
\begin{DoxyParamCaption}
\item[{{\bf graph\-\_\-t} $\ast$}]{g, }
\item[{{\bf edge\-\_\-t} $\ast$}]{e, }
\item[{{\bf router\-\_\-t} $\ast$}]{rtr, }
\item[{{\bf int}}]{do\-Polyline}
\end{DoxyParamCaption}
)}\label{multispline_8c_a172e5edce762c8bc5f59b46ffcdc47b8}


Definition at line 1341 of file multispline.\-c.



References aghead(), agtail(), E\-D\-\_\-head\-\_\-port, E\-D\-\_\-path, E\-D\-\_\-tail\-\_\-port, P\-P\-Q\-::idxs, N\-\_\-\-G\-N\-E\-W, tgraph\-::nedges, Ppoly\-\_\-t\-::pn, P\-P\-Q\-::pq, P\-Q\-T\-Y\-P\-E, P\-Q\-V\-T\-Y\-P\-E, Ppoly\-\_\-t\-::ps, router\-\_\-s\-::tg, router\-\_\-s\-::tn, and P\-P\-Q\-::vals.

\index{multispline.\-c@{multispline.\-c}!mk\-Router@{mk\-Router}}
\index{mk\-Router@{mk\-Router}!multispline.c@{multispline.\-c}}
\subsubsection[{mk\-Router}]{\setlength{\rightskip}{0pt plus 5cm}{\bf router\-\_\-t}$\ast$ mk\-Router (
\begin{DoxyParamCaption}
\item[{{\bf Ppoly\-\_\-t} $\ast$$\ast$}]{obsp, }
\item[{{\bf int}}]{npoly}
\end{DoxyParamCaption}
)}\label{multispline_8c_aada787e97ba7b1a17cd87321f3c73846}


Definition at line 694 of file multispline.\-c.



References free\-Surface(), boxf\-::\-L\-L, mk\-Surface(), N\-\_\-\-G\-N\-E\-W, N\-\_\-\-N\-E\-W, N\-E\-W, surface\-\_\-t\-::nfaces, router\-\_\-s\-::obs, Ppoly\-\_\-t\-::pn, router\-\_\-s\-::pn, Ppoly\-\_\-t\-::ps, router\-\_\-s\-::ps, router\-\_\-s\-::tg, router\-\_\-s\-::tn, router\-\_\-s\-::trimap, router\-\_\-s\-::tris, boxf\-::\-U\-R, pointf\-\_\-s\-::x, and pointf\-\_\-s\-::y.

