Refactored for a flat buffer friendly, and O(1) or O(n) time complexities.

This commit is contained in:
2026-03-02 13:25:13 -05:00
parent f9e80f23a1
commit 9d8558e75c
63 changed files with 14570 additions and 78 deletions

View File

@@ -0,0 +1,42 @@
LATEX_CMD?=pdflatex
MKIDX_CMD?=makeindex
BIBTEX_CMD?=bibtex
LATEX_COUNT?=8
MANUAL_FILE?=refman
all: $(MANUAL_FILE).pdf
pdf: $(MANUAL_FILE).pdf
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
latex_count=$(LATEX_COUNT) ; \
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi; \
latex_count=`expr $$latex_count - 1` ;\
done
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf

View File

@@ -0,0 +1,6 @@
\doxysection{Class List}
Here are the classes, structs, unions and interfaces with brief descriptions:\+\begin{DoxyCompactList}
\item\contentsline{section}{\doxymbox{\hyperlink{struct_edge}{Edge}} }{\pageref{struct_edge}}{}
\item\contentsline{section}{\doxymbox{\hyperlink{class_graph}{Graph}} }{\pageref{class_graph}}{}
\item\contentsline{section}{\doxymbox{\hyperlink{struct_point}{Point}} }{\pageref{struct_point}}{}
\end{DoxyCompactList}

View File

@@ -0,0 +1,95 @@
\doxysection{Graph Class Reference}
\hypertarget{class_graph}{}\label{class_graph}\index{Graph@{Graph}}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}} (size\+\_\+t max\+Points, size\+\_\+t max\+Edges) noexcept
\item
\doxymbox{\hyperlink{class_graph_a902c5b3eacb66d60752525ab23297a95}{\texorpdfstring{$\sim$}{\string~}\+Graph}} ()
\item
\doxymbox{\hyperlink{class_graph_a61af63f3d00e297e91772b482de3dc74}{Graph}} (\doxymbox{\hyperlink{class_graph}{Graph}} \&\&other) noexcept
\item
\doxymbox{\hyperlink{struct_edge}{Edge}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{class_graph_a81382d6a8dffca97d8e3c8e00faf7cf6}{get\+\_\+p\+\_\+edges}} (int p\+\_\+index) noexcept
\item
void \doxymbox{\hyperlink{class_graph_af96ec89a386c4b1f8e74619bc7b028cc}{add\+\_\+edge}} (int start\+\_\+point\+\_\+index, int end\+\_\+point\+\_\+index) noexcept
\item
\Hypertarget{class_graph_a2f9dee7e816e54dfd01e1e3a6183dc56}\label{class_graph_a2f9dee7e816e54dfd01e1e3a6183dc56}
{\bfseries Graph} (const \doxymbox{\hyperlink{class_graph}{Graph}} \&)=delete
\item
\Hypertarget{class_graph_a05cae32d4ce8cf857a1c8d35a32024cd}\label{class_graph_a05cae32d4ce8cf857a1c8d35a32024cd}
\doxymbox{\hyperlink{class_graph}{Graph}} \& {\bfseries operator=} (const \doxymbox{\hyperlink{class_graph}{Graph}} \&)=delete
\end{DoxyCompactItemize}
\label{doc-constructors}
\Hypertarget{class_graph_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{class_graph_a230f67d1097f0a88f1cded9be1040ce9}\index{Graph@{Graph}!Graph@{Graph}}
\index{Graph@{Graph}!Graph@{Graph}}
\doxysubsubsection{\texorpdfstring{Graph()}{Graph()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{class_graph_a230f67d1097f0a88f1cded9be1040ce9}
Graph::\+\+Graph (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{max\+\_\+points}{, }\item[{size\+\_\+t}]{max\+\_\+edges}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}
Constructor Creates a new \doxylink{class_graph}{Graph} object
\begin{DoxyParams}{Parameters}
{\em max\+\_\+points} & :\+ Maximum number of points in the \doxylink{class_graph}{Graph} \\
\hline
{\em max\+\_\+edges} & :\+ Maximum number of edges in the GRAPH (not the point) \\
\hline
\end{DoxyParams}
\Hypertarget{class_graph_a902c5b3eacb66d60752525ab23297a95}\index{Graph@{Graph}!````~Graph@{\texorpdfstring{$\sim$}{\string~}Graph}}
\index{````~Graph@{\texorpdfstring{$\sim$}{\string~}Graph}!Graph@{Graph}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}Graph()}{\string~Graph()}}
{\footnotesize\ttfamily \label{class_graph_a902c5b3eacb66d60752525ab23297a95}
Graph::\+\texorpdfstring{$\sim$}{\string~}\+Graph (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
Deconstruction NOTE on the \textquotesingle{}\doxylink{class_graph_a902c5b3eacb66d60752525ab23297a95}{\texorpdfstring{$\sim$}{\string~}\+Graph()}\textquotesingle{}:\+ The \texorpdfstring{$\sim$}{\string~} flags this block as a deconstructor. It makes it so this runs before the object is removed from memory preventing memory leaks Find the memory buffers pointed to by all\+\_\+points and all\+\_\+edges, and mark that memory as available for other programs to use. \Hypertarget{class_graph_a61af63f3d00e297e91772b482de3dc74}\index{Graph@{Graph}!Graph@{Graph}}
\index{Graph@{Graph}!Graph@{Graph}}
\doxysubsubsection{\texorpdfstring{Graph()}{Graph()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{class_graph_a61af63f3d00e297e91772b482de3dc74}
Graph::\+\+Graph (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{class_graph}{Graph}} \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}
Move Constructor Instructions to move the current graph object from one memory location to another without copying
\label{doc-func-members}
\Hypertarget{class_graph_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{class_graph_af96ec89a386c4b1f8e74619bc7b028cc}\index{Graph@{Graph}!add\_edge@{add\_edge}}
\index{add\_edge@{add\_edge}!Graph@{Graph}}
\doxysubsubsection{\texorpdfstring{add\_edge()}{add\_edge()}}
{\footnotesize\ttfamily \label{class_graph_af96ec89a386c4b1f8e74619bc7b028cc}
void Graph::\+add\+\_\+edge (\begin{DoxyParamCaption}\item[{int}]{start\+\_\+point\+\_\+index}{, }\item[{int}]{end\+\_\+point\+\_\+index}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}
add\+\_\+edge Adds an edge between two points
\begin{DoxyParams}{Parameters}
{\em start\+\_\+point\+\_\+index} & :\+ the index of the starting point \\
\hline
{\em end\+\_\+point\+\_\+index} & :\+ the index of the ending point \\
\hline
\end{DoxyParams}
\Hypertarget{class_graph_a81382d6a8dffca97d8e3c8e00faf7cf6}\index{Graph@{Graph}!get\_p\_edges@{get\_p\_edges}}
\index{get\_p\_edges@{get\_p\_edges}!Graph@{Graph}}
\doxysubsubsection{\texorpdfstring{get\_p\_edges()}{get\_p\_edges()}}
{\footnotesize\ttfamily \label{class_graph_a81382d6a8dffca97d8e3c8e00faf7cf6}
\doxymbox{\hyperlink{struct_edge}{Edge}} \texorpdfstring{$\ast$}{*} Graph::\+get\+\_\+p\+\_\+edges (\begin{DoxyParamCaption}\item[{int}]{p\+\_\+index}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}
Getter Function:\+ get\+\_\+p\+\_\+edges Gets the address of the first edge for \doxylink{struct_point}{Point} P at index p\+\_\+index
\begin{DoxyParams}{Parameters}
{\em p\+\_\+index} & :\+ The index (int) of the point \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Edge\texorpdfstring{$\ast$}{*} :\+ the address of the first edge for p\+\_\+index
\end{DoxyReturn}
The documentation for this class was generated from the following files:\+\begin{DoxyCompactItemize}
\item
graph.\+h\item
Graph.\+cpp\end{DoxyCompactItemize}

View File

@@ -0,0 +1,898 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
% Packages used by this style file
\RequirePackage{alltt}
\RequirePackage{array}
\RequirePackage{calc}
\RequirePackage{float}
\RequirePackage{ifthen}
\RequirePackage{verbatim}
\RequirePackage{varwidth}
\RequirePackage[table]{xcolor}
\RequirePackage{longtable}
\RequirePackage{xltabular}
\RequirePackage{tabularray}
\ExplSyntaxOn
\IfPackageAtLeastTF{tabularray}{2025-03-11}
{
\IfPackageAtLeastTF{tabularray}{2025-03-12}
{
%newer version, do nothing
}
{
%the required version
\bool_gset_false:N \g__tblr_use_intarray_bool
}
}
{
%older version, do nothing
}
\ExplSyntaxOff
\UseTblrLibrary{varwidth}
\ExplSyntaxOn
\int_new:N \g__doxy_nohyper_int
\AtBeginDocument
{
\IfPackageAtLeastTF{tabularray}{2024-02-16}
{
\renewenvironment{tblrNoHyper}
{
\int_compare:nNnT {\g__doxy_nohyper_int} = {0} {\begin{NoHyper}}
\int_gincr:N \g__doxy_nohyper_int
}
{
\int_gdecr:N \g__doxy_nohyper_int
\int_compare:nNnT {\g__doxy_nohyper_int} = {0} {\end{NoHyper}}
}
}
{
%older version, doesn't provide tblrNoHyper
}
}
\ExplSyntaxOff
\ExplSyntaxOn
\dim_new:N \doxytablewidth
\NewDocumentCommand \doxycalculatetablewidth {}
{
\cs_set_protected:Nn \__tblr_build_whole:
{
\__tblr_get_table_width:
\dim_gset:Nn \doxytablewidth { \tablewidth }
}
}
\ExplSyntaxOff
\RequirePackage{fancyvrb}
\RequirePackage{tabularx}
\RequirePackage{multicol}
\RequirePackage{multirow}
\RequirePackage{hanging}
\RequirePackage{ifpdf}
\RequirePackage{adjustbox}
\RequirePackage{amssymb}
\RequirePackage{stackengine}
\RequirePackage{enumitem}
\RequirePackage{alphalph}
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
%---------- Internal commands used in this style file ----------------
\newcommand{\ensurespace}[1]{%
\begingroup%
\setlength{\dimen@}{#1}%
\vskip\z@\@plus\dimen@%
\penalty -100\vskip\z@\@plus -\dimen@%
\vskip\dimen@%
\penalty 9999%
\vskip -\dimen@%
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
\endgroup%
}
\newcommand{\DoxyHorRuler}[1]{%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{#1=0}%
{%
\hrule%
}%
{%
\hrulefilll%
}%
}
\newcommand{\DoxyLabelFont}{}
\newcommand{\entrylabel}[1]{%
{%
\parbox[b]{\labelwidth-4pt}{%
\makebox[0pt][l]{\DoxyLabelFont#1}%
\vspace{1.5\baselineskip}%
}%
}%
}
\newenvironment{DoxyDesc}[1]{%
\ensurespace{4\baselineskip}%
\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
%\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
\newsavebox{\xrefbox}
\newlength{\xreflength}
\newcommand{\xreflabel}[1]{%
\sbox{\xrefbox}{#1}%
\setlength{\xreflength}{\wd\xrefbox}%
\ifthenelse{\xreflength>\labelwidth}{%
\begin{minipage}{\textwidth}%
\setlength{\parindent}{0pt}%
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
\end{minipage}%
}{%
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
}%
}
%---------- Commands used by doxygen LaTeX output generator ----------
% Used by <pre> ... </pre>
\newenvironment{DoxyPre}{%
\small%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
\newlength{\CodeWidthChar}
\newlength{\CodeHeightChar}
\settowidth{\CodeWidthChar}{?}
\settoheight{\CodeHeightChar}{?}
% Necessary for hanging indent
\newlength{\DoxyCodeWidth}
\newcommand\DoxyCodeLine[1]{
\ifthenelse{\equal{\detokenize{#1}}{}}
{
\vspace*{\baselineskip}
}
{
\hangpara{\DoxyCodeWidth}{1}{#1}\par
}
}
\newcommand\NiceSpace{%
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
}
% Used by @code ... @endcode
\newenvironment{DoxyCode}[1]{%
\par%
\vspace{2pt}%
\scriptsize%
\normalfont\ttfamily%
\rightskip0pt plus 1fil%
\settowidth{\DoxyCodeWidth}{000000}%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{\equal{#1}{0}}%
{%
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
}%
{%
{\lccode`~32 \lowercase{\global\let~}\relax}\obeyspaces%
}%
\vspace{2pt}%
}{%
\normalfont%
\normalsize%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
}
\newlength{\ttcharwidth}%
\newenvironment{DoxyEmbeddedDoc}[1][4]{%
\begingroup%
\scriptsize%
\settowidth{\ttcharwidth}{\scriptsize\texttt{M}}%
\setlength{\leftskip}{#1\ttcharwidth}%
\setlength{\@totalleftmargin}{#1\ttcharwidth}%
\addtolength{\linewidth}{-#1\ttcharwidth}%
\parshape 0 %
\noindent\ignorespaces%
}{%
\par\endgroup
}
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
\textcolor{white}{\sffamily\bfseries\small ?}}{%
\rotatebox{45}{$\blacksquare$}}}}
% Used by @example, @include, @includelineno and @dontinclude
\newenvironment{DoxyCodeInclude}[1]{%
\DoxyCode{#1}%
}{%
\endDoxyCode%
}
% Used by @verbatim ... @endverbatim
\newenvironment{DoxyVerb}{%
\par%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @verbinclude
\newenvironment{DoxyVerbInclude}{%
\DoxyVerb%
}{%
\endDoxyVerb%
}
% Used by numbered lists (using '-#' or <ol> ... </ol>)
\setlistdepth{12}
\newlist{DoxyEnumerate}{enumerate}{12}
\setlist[DoxyEnumerate,1]{label=\arabic*.}
\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,3]{label=\roman*.}
\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
\setlist[DoxyEnumerate,5]{label=\arabic*.}
\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,7]{label=\roman*.}
\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
\setlist[DoxyEnumerate,9]{label=\arabic*.}
\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,11]{label=\roman*.}
\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
\setlistdepth{12}
\newlist{DoxyItemize}{itemize}{12}
\setlist[DoxyItemize]{label=\textperiodcentered}
\setlist[DoxyItemize,1]{label=\textbullet}
\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
\setlist[DoxyItemize,4]{label=\textperiodcentered}
% Used for check boxes
\newcommand{\DoxyUnchecked}{$\square$}
\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
}{%
\enddescription%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if caption is specified)
\newenvironment{DoxyImage}{%
\begin{figure}[H]%
\centering%
}{%
\end{figure}%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if no caption is specified)
\newenvironment{DoxyImageNoCaption}{%
\begin{center}%
}{%
\end{center}%
}
% Used by @image
% (only if inline is specified)
\newenvironment{DoxyInlineImage}{%
}{%
}
% Used by @attention
\newenvironment{DoxyAttention}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @important
\newenvironment{DoxyImportant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @date
\newenvironment{DoxyDate}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @invariant
\newenvironment{DoxyInvariant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @note
\newenvironment{DoxyNote}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @post
\newenvironment{DoxyPostcond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @pre
\newenvironment{DoxyPrecond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @copyright
\newenvironment{DoxyCopyright}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @remark
\newenvironment{DoxyRemark}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @return and @returns
\newenvironment{DoxyReturn}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @since
\newenvironment{DoxySince}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @see
\newenvironment{DoxySeeAlso}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @version
\newenvironment{DoxyVersion}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @warning
\newenvironment{DoxyWarning}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @par and @paragraph
\newenvironment{DoxyParagraph}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% define a theme for the DoxyTable environment (without caption)
\NewTblrTheme{DoxyTableBareTheme}{
\DefTblrTemplate{firsthead}{default}{}%
\DefTblrTemplate{middlehead, lasthead}{default}{}%
\DefTblrTemplate{contfoot-text}{default}{}%
}
% define a theme for the DoxyTable environment (with caption)
\NewTblrTheme{DoxyTableCaptionTheme}{
\SetTblrStyle{firsthead}{font=\bfseries}{}%
\DefTblrTemplate{middlehead, lasthead}{default}{}%
\DefTblrTemplate{contfoot-text}{default}{}%
}
% Define a table environment to use with Doxygen
% parameters:
% - #1: number of columns
% - #2: table caption (can be empty)
% - #3: label to refer to the table (can be empty)
% - #4: 1=table has a heading row, 0=no heading row
% - #5: body of the table (part between start{DoxyTable}..\end{DoxyTable}
\NewDocumentEnvironment{DoxyTable}{m +m m m +b}{%
\par%
\def\hascaption{#2}%
\def\haslabel{#3}%
\ifx\hascaption\empty% if caption is empty
\SetTblrOuter[longtblr]{theme=DoxyTableBareTheme,entry=none}% table without caption or label
\else% caption not empty
\ifx\haslabel\empty% if label is empty
\SetTblrOuter[longtblr]{theme=DoxyTableCaptionTheme,caption={#2}}% set table caption
\else% label not empty
\SetTblrOuter[longtblr]{theme=DoxyTableCaptionTheme,caption={#2},label={#3}}% set table caption and label
\fi%
\fi%
\begingroup
\doxycalculatetablewidth
\sbox0{% first render the table in a savebox to calculate the width of the table which will be stored in \doxytablewidth
\begin{tblr}{hlines,vlines,measure=vbox,colspec={*{#1}{l}}}%
#5
\end{tblr}%
}% end of sbox0
\endgroup
\ifdim\doxytablewidth>\linewidth% use flexible columns
% now render the table for real
\begin{longtblr}{hlines,vlines,% automatically set horizontal and vertical cell lines
measure=vbox,% needed to allow nested lists and tables
colspec={*{#1}{X[-1]}},% set column type for all columns
rowhead=#4} % set which row is the header (0=disable, 1=enable)
#5
\end{longtblr}%
\else% use fixed left aligned columns
% now render the table for real
\begin{longtblr}{hlines,vlines,% automatically set horizontal and vertical cell lines
measure=vbox,% needed to allow nested lists and tables
colspec={*{#1}{l}},% set column type for all columns
rowhead=#4} % set which row is the header (0=disable, 1=enable)
#5
\end{longtblr}%
\fi%
}{% no end marker needed anymore
}%
% Define a nested table environment to use with Doxygen
% parameters:
% - #1: number of columns
% - #2: 1=table has a heading row, 0=no heading row
\NewDocumentEnvironment{DoxyTableNested}{m m +b}{%
\begingroup
\doxycalculatetablewidth
\sbox0{% first render the table in a savebox to calculate the width of the table which will be stored in \doxytablewidth
\begin{tblr}{hlines,vlines,measure=vbox,colspec={*{#1}{l}}}%
#3
\end{tblr}%
}% end of sbox0
\endgroup
\ifdim\doxytablewidth>\linewidth% use flexible columns
% now render the table for real
\begin{tblr}{hlines,vlines,% automatically set horizontal and vertical cell lines
measure=vbox,% needed to allow nested lists and tables
colspec={*{#1}{X[-1]}},% set column type for all columns
rowhead=#2} % set which row is the header (0=disable, 1=enable)
#3
\end{tblr}%
\else% use fixed left aligned columns
% now render the table for real
\begin{tblr}{hlines,vlines,% automatically set horizontal and vertical cell lines
measure=vbox,% needed to allow nested lists and tables
colspec={*{#1}{l}},% set column type for all columns
rowhead=#2} % set which row is the header (0=disable, 1=enable)
#3
\end{tblr}%
\fi%
}{% no end marker needed anymore
}%
% Defines a parameter table
% Arguments:
% #1: Number of columns
% #2: Initial format for tblr, i.e. format except for last column
% #3: Title of the table e.g. Params, Enumerator
% #4: Body
\NewDocumentCommand{\DoxyParamTable}{m m +m +m}{%
\SetTblrOuter[longtblr]{theme=DoxyTableBareTheme,entry=none}% set table caption and label
\begingroup
\doxycalculatetablewidth
\sbox0{% render table off-screen first to capture its width in \doxytablewidth
\begin{tblr}{measure=vbox,colspec={*{#1}{|l}|}}%
\SetCell[c=#1]{l} \tf{#3} \\[1ex]%
\hline%
#4
\end{tblr}%
}%
\endgroup
\ifdim\doxytablewidth>\linewidth% use flexible columns
\edef\DoxyTableColSpec{#2X[-1]}%
\else%
\edef\DoxyTableColSpec{#2l}%
\fi%
\expanded{\noexpand\begin{longtblr}[l,theme=DoxyTableBareTheme]%
{vline{1-Z}={2-Z}{solid},% show vertical lines for all rows except the first
measure=vbox,% needed to allow nested lists and tables
colspec=\DoxyTableColSpec}}% set column type for all columns
\SetCell[c=#1]{l} \tf{#3} \\\nopagebreak%
\hline\nopagebreak%
#4
\end{longtblr}%
\par\addvspace{6pt}%
}
% Used by parameter lists
\NewDocumentEnvironment{DoxyParams}{O{0} m +b}{%
\par
\ifnum#1>1
\DoxyParamTable{4}{lll}{#2}{#3}
\else
\ifnum#1>0
\DoxyParamTable{3}{ll}{#2}{#3}
\else
\DoxyParamTable{2}{l}{#2}{#3}
\fi
\fi
}{}
% Used for fields of simple structs
\NewDocumentEnvironment{DoxyFields}{m +b}{%
\par
\DoxyParamTable{3}{rl}{#1}{#2}
}{}
% Used for fields simple class style enums
\NewDocumentEnvironment{DoxyEnumFields}{O{2} m +b}{%
\par
\ifnum#1>2
\DoxyParamTable{3}{lr}{#2}{#3}
\else
\DoxyParamTable{2}{l}{#2}{#3}
\fi
}{}
\NewDocumentCommand{\tf}{m}{%
\hspace{-\tabcolsep}\bfseries #1%
}
% Used for parameters within a detailed function description
\newenvironment{DoxyParamCaption}{%
\renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}%
}{%
}
% Used by return value lists
\NewDocumentEnvironment{DoxyRetVals}{m +b}{%
\par
\DoxyParamTable{2}{r}{#1}{#2}
}{}
% Used by exception lists
\NewDocumentEnvironment{DoxyExceptions}{m +b}{%
\par
\DoxyParamTable{2}{r}{#1}{#2}
}{}
% Used by template parameter lists
\NewDocumentEnvironment{DoxyTemplParams}{m +b}{%
\par
\DoxyParamTable{2}{r}{#1}{#2}
}{}
% Used for member lists
\newenvironment{DoxyCompactItemize}{%
\begin{itemize}%
\setlength{\itemsep}{-3pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}%
}{%
\end{itemize}%
}
% Used for member descriptions
\newenvironment{DoxyCompactList}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\renewcommand{\makelabel}{\hfill}%
}%
}{%
\end{list}%
}
% Used for reference lists (@bug, @deprecated, @todo, etc.)
\newenvironment{DoxyRefList}{%
\begin{list}{}{%
\setlength{\labelwidth}{10pt}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\renewcommand{\makelabel}{\xreflabel}%
}%
}{%
\end{list}%
}
% Used by @bug, @deprecated, @todo, etc.
\newenvironment{DoxyRefDesc}[1]{%
\begin{list}{}{%
\renewcommand\makelabel[1]{\textbf{##1}}%
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth+\labelsep}%
}%
}{%
\end{list}%
}
% Used by parameter lists and simple sections
\newenvironment{Desc}
{\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}
}{%
\end{list}%
}
% Used by tables
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
% Used for member group headers
\newenvironment{Indent}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
}%
\item[]\ignorespaces%
}{%
\unskip%
\end{list}%
}
\newsavebox{\doxymboxbox}
\newlength{\doxymboxlength}
\newcommand{\doxymbox}[1]{%
\sbox{\doxymboxbox}{#1}%
\setlength{\doxymboxlength}{\wd\doxymboxbox}%
\ifthenelse{\doxymboxlength>\linewidth}{%
#1%
}{%
\mbox{#1}%
}%
}
% Used when hyperlinks are turned on
\newcommand{\doxylink}[2]{%
\doxymbox{\hyperlink{#1}{#2}}%
}
% Used for the cite command
\newcommand{\DoxyCite}[3]{%
\ifthenelse{#3=1}% 1 with square parenthesis
{
\ifthenelse{\equal{#2}{number}}%
{ \cite{#1} }%
{%
\ifthenelse{\equal{#2}{shortauthor}}%
{ \citetext{\citeauthor{#1}} }%
{%
\ifthenelse{\equal{#2}{year}}%
{ \citeyearpar{#1} }%
{}%
}%
}%
}%
{%
\ifthenelse{\equal{#2}{number}}%
{ \citealp{#1} }%
{%
\ifthenelse{\equal{#2}{shortauthor}}%
{ \citeauthor{#1} }%
{%
\ifthenelse{\equal{#2}{year}}%
{ \citeyear{#1} }%
{}%
}%
}%
}%
}
% Used when hyperlinks are turned on
% Third argument is the SectionType, see the doxygen internal
% documentation for the values (relevant: Page ... Subsubsection).
\newcommand{\doxysectlink}[3]{%
\doxymbox{\hyperlink{#1}{#2}}%
}
% Used when hyperlinks are turned off
\newcommand{\doxyref}[3]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used when hyperlinks are turned off
% Fourth argument is the SectionType, see the doxygen internal
% documentation for the values (relevant: Page ... Subsubsection).
\newcommand{\doxysectref}[4]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used to link to a table when hyperlinks are turned on
\newcommand{\doxytablelink}[2]{%
\ref{#1}%
}
% Used to link to a table when hyperlinks are turned off
\newcommand{\doxytableref}[3]{%
\ref{#3}%
}
% Used by @addindex
\newcommand{\lcurly}{\{}
\newcommand{\rcurly}{\}}
% Colors used for syntax highlighting
\definecolor{comment}{rgb}{0.5,0.0,0.0}
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0}
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
% Color used for table heading
\newcommand{\tableheadbgcolor}{lightgray}%
% Version of hypertarget with correct landing location
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
% possibility to have sections etc. be within the margins
% unfortunately had to copy part of book.cls and add \raggedright
\makeatletter
\newcounter{subsubsubsection}[subsubsection]
\newcounter{subsubsubsubsection}[subsubsubsection]
\newcounter{subsubsubsubsubsection}[subsubsubsubsection]
\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection]
\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}
\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}}
\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}}
\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}}
\newcommand{\subsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsubsubsectionmark}[1]{}
\def\toclevel@subsubsubsection{4}
\def\toclevel@subsubsubsubsection{5}
\def\toclevel@subsubsubsubsubsection{6}
\def\toclevel@subsubsubsubsubsubsection{7}
\def\toclevel@paragraph{8}
\def\toclevel@subparagraph{9}
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\raggedright\normalfont\Large\bfseries}}
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\large\bfseries}}
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}}
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}}
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}}
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}}
\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}}
\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}}
\makeatother
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
% LaTeX Warning: Command \underline has changed.
% Check if current package is valid.
% unfortunately had to copy the relevant part
\newcommand*{\doxypartfont} [1]
{\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1}
\gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}}
\newcommand*{\doxychapterfont} [1]
{\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1}
\gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}}
\newcommand*{\doxysectionfont} [1]
{\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubsectionfont} [1]
{\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubsubsectionfont} [1]
{\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxyparagraphfont} [1]
{\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubparagraphfont} [1]
{\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxyminisecfont} [1]
{\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}}
\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}%
\doxychapterfont{#1}%
\doxysectionfont{#1}%
\doxysubsectionfont{#1}%
\doxysubsubsectionfont{#1}%
\doxyparagraphfont{#1}%
\doxysubparagraphfont{#1}%
\doxyminisecfont{#1}}%
% Define caption that is also suitable in a table
% for usage with hyperlinks
\makeatletter
\def\doxyfigcaption{%
\H@refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
% for usage without hyperlinks
\def\doxyfigcaptionnolink{%
\refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
\makeatother
% Define alpha enumarative names for counters > 26
\makeatletter
\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
\def\@enumalphalphcnt#1{\alphalph{#1}}
\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
\makeatother
\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
\doxysection{File List}
Here is a list of all documented files with brief descriptions:\+\begin{DoxyCompactList}
\item\contentsline{section}{\doxymbox{\hyperlink{graph_8h_source}{graph.\+h}} }{\pageref{graph_8h_source}}{}
\end{DoxyCompactList}

View File

@@ -0,0 +1,43 @@
\doxysection{graph.\+h}
\hypertarget{graph_8h_source}{}\label{graph_8h_source}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ <new>}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <utility>}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{struct_point}{Point}}\ \{}
\DoxyCodeLine{00006\ \ \ \ \ \textcolor{keywordtype}{float}\ x,\ y,\ z;}
\DoxyCodeLine{00007\ \ \ \ \ \textcolor{keywordtype}{int}\ first\_edge\ =\ -\/1;}
\DoxyCodeLine{00008\ \ \ \ \ \textcolor{keywordtype}{int}\ e\_count\ =\ 0;}
\DoxyCodeLine{00009\ \};}
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{struct_edge}{Edge}}\ \{}
\DoxyCodeLine{00012\ \ \ \ \ \textcolor{keywordtype}{int}\ target\_point;}
\DoxyCodeLine{00013\ \ \ \ \ \textcolor{keywordtype}{float}\ e\_weight;}
\DoxyCodeLine{00014\ \};}
\DoxyCodeLine{00015\ }
\DoxyCodeLine{00016\ \textcolor{keyword}{class\ }\doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}\ \{}
\DoxyCodeLine{00017\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00018\ \ \ \ \ \doxymbox{\hyperlink{struct_point}{Point}}*\ all\_points\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00019\ \ \ \ \ \doxymbox{\hyperlink{struct_edge}{Edge}}*\ all\_edges\ =\ \textcolor{keyword}{nullptr};}
\DoxyCodeLine{00020\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ next\_possible\_edge\ =\ 0;}
\DoxyCodeLine{00021\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ p\_capacity\ =\ 0;}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ e\_capacity\ =\ 0;}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00025\ \ \ \ \ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}(\textcolor{keywordtype}{size\_t}\ maxPoints,\ \textcolor{keywordtype}{size\_t}\ maxEdges)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00026\ \ \ \ \ \doxymbox{\hyperlink{class_graph_a902c5b3eacb66d60752525ab23297a95}{\string~Graph}}();}
\DoxyCodeLine{00027\ \ \ \ \ }
\DoxyCodeLine{00028\ \ \ \ \ \textcolor{comment}{//\ Move\ constructor}}
\DoxyCodeLine{00029\ \ \ \ \ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}(\doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}\&\&\ other)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00030\ \ \ \ \ }
\DoxyCodeLine{00031\ \ \ \ \ \doxymbox{\hyperlink{struct_edge}{Edge}}*\ \doxymbox{\hyperlink{class_graph_a81382d6a8dffca97d8e3c8e00faf7cf6}{get\_p\_edges}}(\textcolor{keywordtype}{int}\ p\_index)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00032\ }
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{class_graph_af96ec89a386c4b1f8e74619bc7b028cc}{add\_edge}}(\textcolor{keywordtype}{int}\ start\_point\_index,\ \textcolor{keywordtype}{int}\ end\_point\_index)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{00034\ \ \ \ \ }
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{comment}{//Preventing\ mem-\/spikes\ by\ preventing\ copying\ and\ enforcing\ deletions.}}
\DoxyCodeLine{00036\ \ \ \ \ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}\&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00037\ \ \ \ \ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}\&\ operator=(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{class_graph_a230f67d1097f0a88f1cded9be1040ce9}{Graph}}\&)\ =\ \textcolor{keyword}{delete};}
\DoxyCodeLine{00038\ \};}
\end{DoxyCode}

View File

@@ -0,0 +1,67 @@
pushd %~dp0
if not %errorlevel% == 0 goto :end1
set ORG_LATEX_CMD=%LATEX_CMD%
set ORG_MKIDX_CMD=%MKIDX_CMD%
set ORG_BIBTEX_CMD=%BIBTEX_CMD%
set ORG_LATEX_COUNT=%LATEX_COUNT%
set ORG_MANUAL_FILE=%MANUAL_FILE%
if "X"%LATEX_CMD% == "X" set LATEX_CMD=pdflatex
if "X"%MKIDX_CMD% == "X" set MKIDX_CMD=makeindex
if "X"%BIBTEX_CMD% == "X" set BIBTEX_CMD=bibtex
if "X"%LATEX_COUNT% == "X" set LATEX_COUNT=8
if "X"%MANUAL_FILE% == "X" set MANUAL_FILE=refman
del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
echo ----
%MKIDX_CMD% %MANUAL_FILE%.idx
echo ----
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
setlocal enabledelayedexpansion
set count=%LATEX_COUNT%
:repeat
set content=X
for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get bibliographical references right" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X goto :skip
set /a count-=1
if !count! EQU 0 goto :skip
echo ----
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
goto :repeat
:skip
endlocal
%MKIDX_CMD% %MANUAL_FILE%.idx
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
goto :end
:error
@echo ===============
@echo Please consult %MANUAL_FILE%.log to see the error messages
@echo ===============
:end
@REM reset environment
popd
set LATEX_CMD=%ORG_LATEX_CMD%
set ORG_LATEX_CMD=
set MKIDX_CMD=%ORG_MKIDX_CMD%
set ORG_MKIDX_CMD=
set BIBTEX_CMD=%ORG_BIBTEX_CMD%
set ORG_BIBTEX_CMD=
set MANUAL_FILE=%ORG_MANUAL_FILE%
set ORG_MANUAL_FILE=
set LATEX_COUNT=%ORG_LATEX_COUNT%
set ORG_LATEX_COUNT=
:end1

View File

@@ -0,0 +1,7 @@
\chapter{Graph\+\_\+\+Theory }
\hypertarget{md__r_e_a_d_m_e}{}\label{md__r_e_a_d_m_e}\index{Graph\_Theory@{Graph\_Theory}}
\label{md__r_e_a_d_m_e_autotoc_md0}%
\Hypertarget{md__r_e_a_d_m_e_autotoc_md0}%
A project based around graph theory. I create a coordinate system, store them in a hash map, and then run various mapping algorithms to find the fastest route through various configurations.

View File

@@ -0,0 +1,247 @@
% Handle batch mode
% to overcome problems with too many open files
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
\RequirePackage{iftex}
\ifLuaTeX
\directlua{pdf.setminorversion(7)}
\fi
\ifXeTeX
\special{pdf:minorversion 7}
\fi
\ifPDFTeX
\pdfminorversion=7
\fi
% Set document class depending on configuration
\documentclass[twoside]{book}
% Packages required by doxygen
\makeatletter
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
% suppress package identification of infwarerr as it contains the word "warning"
\let\@@protected@wlog\protected@wlog
\def\protected@wlog#1{\wlog{package info suppressed}}
\RequirePackage{infwarerr}
\let\protected@wlog\@@protected@wlog
\makeatother
\IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
\ifPDFTeX
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
\fi
\usepackage{doxygen}
\usepackage{graphicx}
\iftutex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\usepackage{unicode-math}
\else
\usepackage[utf8]{inputenc}
\fi
\usepackage{makeidx}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage{ifxetex}
% NLS support packages
% Define default fonts
% Font selection
\iftutex
\else
\usepackage[T1]{fontenc}
\fi
% set main and monospaced font
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
\doxyallsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Arguments of doxygenemoji:
% 1) ':<text>:' form of the emoji, already LaTeX-escaped
% 2) file with the name of the emoji without the .png extension
% in case image exist use this otherwise use the ':<text>:' form
\newcommand{\doxygenemoji}[2]{%
\IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\usepackage{changepage}
% Allow a bit of overflow to go unnoticed by other means
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
\doxynormalparskip
% Redefine paragraph/subparagraph environments, using sectsty fonts
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{fancyplain}{
\fancyhf{}
\fancyhead[LE, RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
\renewcommand{\headrulewidth}{0pt}
}
\pagestyle{fancyplain}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% ToC, LoF, LoT, bibliography, and index
% Indices & bibliography
\usepackage[numbers]{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
% creating indexes
\makeindex
\ifPDFTeX
\usepackage{newunicodechar}
\makeatletter
\def\doxynewunicodechar#1#2{%
\@tempswafalse
\edef\nuc@tempa{\detokenize{#1}}%
\if\relax\nuc@tempa\relax
\nuc@emptyargerr
\else
\edef\@tempb{\expandafter\@car\nuc@tempa\@nil}%
\nuc@check
\if@tempswa
\@namedef{u8:\nuc@tempa}{#2}%
\fi
\fi
}
\makeatother
\doxynewunicodechar{}{${}^{-}$}% Superscript minus
\doxynewunicodechar{²}{${}^{2}$}% Superscript two
\doxynewunicodechar{³}{${}^{3}$}% Superscript three
\fi
% Hyperlinks
% Hyperlinks (required, but should be loaded last)
\ifPDFTeX
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\ifXeTeX
\usepackage[xetex,pagebackref=true]{hyperref}
\else
\ifLuaTeX
\usepackage[luatex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\fi
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode,%
pdftitle={Graph Theory},%
pdfsubject={}%
}
% Custom commands used by the header
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
% caption style definition
\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
% in page table of contents
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
\etocsetlevel{subsubsubsection}{4}
\etocsetlevel{subsubsubsubsection}{5}
\etocsetlevel{subsubsubsubsubsection}{6}
\etocsetlevel{subsubsubsubsubsubsection}{7}
\etocsetlevel{paragraph}{8}
\etocsetlevel{subparagraph}{9}
% prevent numbers overlap the titles in toc
\renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
\raggedbottom
% Titlepage & ToC
% To avoid duplicate page anchors due to reuse of same numbers for
% the index (be it as roman numbers)
\hypersetup{pageanchor=false,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Graph Theory}\\
\vspace*{1cm}
{\large Generated by Doxygen 1.16.1}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
% re-enable anchors again
\hypersetup{pageanchor=true}
%--- Begin generated contents ---
\input{md__r_e_a_d_m_e}
\chapter{Class Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Class Documentation}
\input{struct_edge}
\input{class_graph}
\input{struct_point}
\chapter{File Documentation}
\input{graph_8h_source}
%--- End generated contents ---
% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{\indexname}
\printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}

View File

@@ -0,0 +1,16 @@
\doxysection{Edge Struct Reference}
\hypertarget{struct_edge}{}\label{struct_edge}\index{Edge@{Edge}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
\Hypertarget{struct_edge_a4da5f87cf286d00a2a467e1a007fdc60}\label{struct_edge_a4da5f87cf286d00a2a467e1a007fdc60}
int {\bfseries target\+\_\+point}
\item
\Hypertarget{struct_edge_a8130fe79aa4bbc4750b4da891d5f6b4b}\label{struct_edge_a8130fe79aa4bbc4750b4da891d5f6b4b}
float {\bfseries e\+\_\+weight}
\end{DoxyCompactItemize}
The documentation for this struct was generated from the following file:\+\begin{DoxyCompactItemize}
\item
graph.\+h\end{DoxyCompactItemize}

View File

@@ -0,0 +1,25 @@
\doxysection{Point Struct Reference}
\hypertarget{struct_point}{}\label{struct_point}\index{Point@{Point}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
\Hypertarget{struct_point_a05dfe2dfbde813ad234b514f30e662f1}\label{struct_point_a05dfe2dfbde813ad234b514f30e662f1}
float {\bfseries x}
\item
\Hypertarget{struct_point_a6101960c8d2d4e8ea1d32c9234bbeb8d}\label{struct_point_a6101960c8d2d4e8ea1d32c9234bbeb8d}
float {\bfseries y}
\item
\Hypertarget{struct_point_a9a666531e0e99adff132be93d2407d0c}\label{struct_point_a9a666531e0e99adff132be93d2407d0c}
float {\bfseries z}
\item
\Hypertarget{struct_point_ac422f98c8883be96418e6ad4c62b460c}\label{struct_point_ac422f98c8883be96418e6ad4c62b460c}
int {\bfseries first\+\_\+edge} = -\/1
\item
\Hypertarget{struct_point_a2f568490d6db5ce20ca613426d4d88c7}\label{struct_point_a2f568490d6db5ce20ca613426d4d88c7}
int {\bfseries e\+\_\+count} = 0
\end{DoxyCompactItemize}
The documentation for this struct was generated from the following file:\+\begin{DoxyCompactItemize}
\item
graph.\+h\end{DoxyCompactItemize}