\section{chain\_\-ringwidths.c File Reference}
\label{chain__ringwidths_8c}\index{chain_ringwidths.c@{chain\_\-ringwidths.c}}
Measures ring widths and brightness profiles. 

{\tt \#include $<$math.h$>$}\par
{\tt \#include \char`\"{}junkmath.h\char`\"{}}\par
{\tt \#include \char`\"{}sadie\_\-byte.h\char`\"{}}\par
{\tt \#include \char`\"{}chain.h\char`\"{}}\par
{\tt \#include \char`\"{}mosaic.h\char`\"{}}\par
{\tt \#include \char`\"{}trees\_\-profile.h\char`\"{}}\par
{\tt \#include \char`\"{}boundary.h\char`\"{}}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define {\bf crashandburn}(e)\ \{fprintf(stderr,\char`\"{}Panic: \%s!$\backslash$n\char`\"{},e) ;exit(-2) ;\} $\backslash$
\begin{CompactList}\small\item\em Stopgap error handler. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
void {\bf initialize\_\-mosaic\_\-context} ({\bf IMAGE\_\-BYTE} $\ast$im, MOSAIC\_\-INDEX $\ast$imindex, IMAGE\_\-CONTEXT $\ast$newcontext)\label{chain__ringwidths_8c_a8}

\item 
void {\bf initialize\_\-image\_\-context} (IMAGE $\ast$im, IMAGE\_\-CONTEXT $\ast$newcontext)\label{chain__ringwidths_8c_a10}

\item 
void {\bf initialize\_\-chaincode\_\-context} (LIST\_\-NODE $\ast$chain\_\-boundary, BOUNDARY\_\-CONTEXT $\ast$newcontext)\label{chain__ringwidths_8c_a12}

\item 
{\bf make\_\-rotator} (left, make\_\-rotator(right)\label{chain__ringwidths_8c_a17}

\item 
void {\bf demolish\_\-index} (RBNODE $\ast$ix)\label{chain__ringwidths_8c_a19}

\item 
void {\bf discard\_\-boundary} (BOUNDER $\ast$bound)\label{chain__ringwidths_8c_a20}

\item 
BOUNDER $\ast$ {\bf make\_\-boundary} (BOUNDARY\_\-CONTEXT $\ast$bcon)\label{chain__ringwidths_8c_a22}

\item 
void {\bf build\_\-index} (BOUNDER $\ast$bound)\label{chain__ringwidths_8c_a23}

\item 
double {\bf find\_\-width} (BOUNDER $\ast$in, BOUNDER $\ast$out, IMAGE\_\-CONTEXT $\ast$mosaic, {\bf PROFILE\_\-LIST} $\ast$last\_\-ringprofile)\label{chain__ringwidths_8c_a30}

\item 
void {\bf CHAIN\_\-RINGWIDTHS} ({\bf IMAGE\_\-BYTE} $\ast$mimage, MOSAIC\_\-INDEX $\ast$mindex, CHAIN $\ast$chainmap, {\bf PROFILE\_\-LIST} $\ast$profiles, int $\ast$numrings, double $\ast$$\ast$ringwidths, BOUNDBOX\_\-LIST $\ast$bound\_\-box\_\-list)\label{chain__ringwidths_8c_a31}

\end{CompactItemize}


\subsection{Detailed Description}
Measures ring widths and brightness profiles. 

We're assuming that all the previous phases of TREES are complete: that it has acquired images, assembled them into a mosaic, and identified the ring boundaries. This has one interface visible to the rest of TREES, the function CHAIN\_\-RINGWIDTHS,

\begin{Desc}
\item[Author:]University of Arizona Digital Image Analysis Lab \end{Desc}
\begin{Desc}
\item[Date:]2003 \end{Desc}
\begin{Desc}
\item[Version:]\begin{Desc}
\item[Id]{\bf chain\_\-ringwidths.c}{\rm (p.\,\pageref{chain__ringwidths_8c})},v 1.28 2004/11/09 08:01:32 mmunro Exp \end{Desc}
\end{Desc}


\subsection{Define Documentation}
\index{chain_ringwidths.c@{chain\_\-ringwidths.c}!crashandburn@{crashandburn}}
\index{crashandburn@{crashandburn}!chain_ringwidths.c@{chain\_\-ringwidths.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define crashandburn(e)\ \{fprintf(stderr,\char`\"{}Panic: \%s!$\backslash$n\char`\"{},e) ;exit(-2) ;\} $\backslash$}\label{chain__ringwidths_8c_a0}


Stopgap error handler. 

This doesn't just abort the functions defined in this file, or the thread running them, but the entire process running TREES. 