\section{Node definition}

\subsection{Node groups}
\advtrains{} uses node groups to identify whether a node has certain properties. The following fields are used:
\begin{apidoc}{Node definition!\texttt{groups}}
\item \apifield{advtrains\_signal} Whether the node is a signal.
\item \apifield{not\_blocking\_trains} The numeric constant 1 if the item does not block trains.
\item \apifield{save\_in\_at\_nodedb} The numeric constant 1 if the item should be save in the internal node database used by \advtrains{}.
\end{apidoc}

The following values (as numeric constants) are accepted for items in the \texttt{advtrains\_signal} group:
\begin{apidoc}{Node definition!\texttt{groups}!\texttt{advtrains\_signal}}
\item \apienum{1} The node is a signal with a static signal aspect.
\item \apienum{2} The node is a signal, and its signal aspect can be set.
\end{apidoc}

\subsection{The \texttt{advtrains} field}
The \texttt{advtrains} field in the node definition may contain the following fields:
\begin{apidoc}{Node definition!\texttt{advtrains}}
\item \apifield{get\_aspect(\var{pos}, \var{node})} A function that returns the signal aspect of the signal \var{node} at \var{pos}. The returned signal aspect does not need to be identical to the signal aspect passed to the previous call to \texttt{set\_aspect}.
\item \apifield{set\_aspect(\var{pos}, \var{node}, \var{asp})} A function that sets the aspect of the signal \var{node} at \var{pos} to \var{pos}. If \var{asp} is not supported by the signal, the implementation may choose to set the aspect to something different.
\item \apifield{supported\_aspects} A table of supported signal aspects.
\end{apidoc}

%%% Local Variables:
%%% TeX-master: "a4manual"
%%% End: