  % 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={PCB Environment},%
      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 PCB Environment}\\
  [1ex]\large 2 \\
  \vspace*{1cm}
  {\large Generated by Doxygen 1.15.0}\\
  \end{center}
  \end{titlepage}
  \clearemptydoublepage
  \pagenumbering{roman}
  \tableofcontents
  \clearemptydoublepage
  \pagenumbering{arabic}
  % re-enable anchors again
  \hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Hierarchical Index}
\input{hierarchy}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{classAction}
\input{classActionCache}
\input{classActionSet}
\input{classActionSpace}
\input{classActionTab}
\input{classAgent}
\input{structAlignedTHPAllocator}
\input{classAShape}
\input{classAStar}
\input{structAStarCosts}
\input{classAStarVisitStatus}
\input{classBaseROP}
\input{structdsn_1_1BBox}
\input{classpy_1_1BorrowedRef}
\input{classBrowserTab}
\input{classCamera}
\input{classCircleEx}
\input{classCloneEnv}
\input{classColor}
\input{structPolicy_1_1CommonParams}
\input{classComponent}
\input{classConnection}
\input{structdsn_1_1Connection}
\input{structdsn_1_1Data}
\input{structpy_1_1DictIterator}
\input{classDRCViolation}
\input{classDSNParserBase}
\input{classEnv}
\input{classEnvPCB}
\input{structfancy__lock__guard}
\input{classpy_1_1GIL__guard}
\input{classGLWidget}
\input{classGridDirection}
\input{structIBox__3}
\input{structdsn_1_1Image}
\input{structIndexRange}
\input{structPCBoardMesh_1_1IndexRange}
\input{classIPoint__2}
\input{classIPoint__3}
\input{classIsoRectEx}
\input{classIUIApplication}
\input{classIVector__2}
\input{classIVector__3}
\input{structdsn_1_1Layer}
\input{classLayer}
\input{classLayerAlphaSlider}
\input{classLayoutArea}
\input{classLength}
\input{classLogFile}
\input{classLogger}
\input{classLubySequence}
\input{classmath_1_1Mat4}
\input{structmath_1_1Moments}
\input{classNavGrid}
\input{classui_1_1NavGrid}
\input{classNavImage}
\input{structNavKeepoutCounts}
\input{classNavMesh}
\input{structNavPixel}
\input{classNavPoint}
\input{classNavPointRef}
\input{structNavRasterizeParams}
\input{structNavSpacings}
\input{classNavTri}
\input{classNavTriangulation}
\input{structdsn_1_1Net}
\input{classNet}
\input{classNetOverrides}
\input{structNetTopology}
\input{classpy_1_1NPArray}
\input{classObject}
\input{classpy_1_1Object}
\input{classObjectPtrNameLessThan}
\input{classpy_1_1ObjectRef}
\input{classObjectsBVH}
\input{structdsn_1_1Padstack}
\input{classPalette}
\input{classParameter}
\input{classParameterTab}
\input{structdsn_1_1Path}
\input{classPath}
\input{structdsn_1_1PCB}
\input{classPCBFactory}
\input{structPCBItemSets}
\input{classPCBoard}
\input{classPCBoardMesh}
\input{structdsn_1_1Pin}
\input{classPin}
\input{structdsn_1_1Placement}
\input{classPoint__25}
\input{classPolicy}
\input{classPolygonEx}
\input{classPusher}
\input{classRasterizer}
\input{classRatsNest}
\input{classRecordRangesROP}
\input{structAction_1_1Result}
\input{structResultCollection}
\input{structResultRecord}
\input{classRewardFunction}
\input{classrewards_1_1RouteLength}
\input{classRoutePainter}
\input{classRoutePainterLines}
\input{structRouterResult}
\input{classRouteTracker}
\input{classRRRAgent}
\input{structdsn_1_1Segment}
\input{classSegment__25}
\input{classShaders}
\input{structdsn_1_1Shape}
\input{classSignalContext}
\input{classStateRepresentation}
\input{classStepLock}
\input{structdsn_1_1Structure}
\input{classToken}
\input{structdsn_1_1Track}
\input{classTrack}
\input{classTriangleEx}
\input{classTriList}
\input{classUIActions}
\input{classUIApplication}
\input{classUniformGrid25}
\input{classUserAgent}
\input{classUserSettings}
\input{structdsn_1_1Via}
\input{classVia}
\input{classViaPainter}
\input{classViewTab}
\input{classWideSegment__25}
\input{classWindow}
\chapter{File Documentation}
\input{AShape_8hpp_source}
\input{AStar_8hpp_source}
\input{BVH_8hpp_source}
\input{Clone_8hpp_source}
\input{Color_8hpp_source}
\input{Component_8hpp_source}
\input{Connection_8hpp_source}
\input{Defs_8hpp_source}
\input{DRC_8hpp_source}
\input{Enums_8hpp_source}
\input{Env_8hpp_source}
\input{EnvPCB_8hpp_source}
\input{Geometry_8hpp_source}
\input{GridDirection_8hpp_source}
\input{Layer_8hpp_source}
\input{LayoutArea_8hpp_source}
\input{DSN_8hpp_source}
\input{DSNParserBase_8hpp_source}
\input{Factory_8hpp_source}
\input{RouteTracker_8hpp_source}
\input{Topology_8hpp_source}
\input{Log_8hpp_source}
\input{IPoint2_8hpp_source}
\input{IPoint3_8hpp_source}
\input{LubySequence_8hpp_source}
\input{Mat4_8hpp_source}
\input{Misc_8hpp_source}
\input{Moments_8hpp_source}
\input{NavGrid_8hpp_source}
\input{UI_2NavGrid_8hpp_source}
\input{NavImage_8hpp_source}
\input{NavPoint_8hpp_source}
\input{NavTriangulation_8hpp_source}
\input{Net_8hpp_source}
\input{Object_8hpp_source}
\input{Parameter_8hpp_source}
\input{Path_8hpp_source}
\input{PCBoard_8hpp_source}
\input{Pin_8hpp_source}
\input{Py_8hpp_source}
\input{PyArray_8hpp_source}
\input{PyObject_8hpp_source}
\input{Rasterizer_8hpp_source}
\input{RasterizerMidpoint_8hpp_source}
\input{Action_8hpp_source}
\input{ActionCache_8hpp_source}
\input{ActionSpace_8hpp_source}
\input{Agent_8hpp_source}
\input{CommonActions_8hpp_source}
\input{CommonStateReprs_8hpp_source}
\input{Policy_8hpp_source}
\input{Reward_8hpp_source}
\input{RRRAgent_8hpp_source}
\input{StateRepresentation_8hpp_source}
\input{Stats_8hpp_source}
\input{UserAgent_8hpp_source}
\input{Signals_8hpp_source}
\input{Track_8hpp_source}
\input{Actions_8hpp_source}
\input{ActionTab_8hpp_source}
\input{Application_8hpp_source}
\input{BrowserTab_8hpp_source}
\input{Camera_8hpp_source}
\input{GLContext_8hpp_source}
\input{GLWidget_8hpp_source}
\input{Helper_8hpp_source}
\input{LockStep_8hpp_source}
\input{NavMesh_8hpp_source}
\input{ParameterTab_8hpp_source}
\input{PCBoardMesh_8hpp_source}
\input{RatsNest_8hpp_source}
\input{RoutePainter_8hpp_source}
\input{RoutePainterLines_8hpp_source}
\input{Shaders_8hpp_source}
\input{TriList_8hpp_source}
\input{ViaPainter_8hpp_source}
\input{ViewTab_8hpp_source}
\input{Window_8hpp_source}
\input{UniformGrid25_8hpp_source}
\input{Units_8hpp_source}
\input{UserSettings_8hpp_source}
\input{FancyLock_8hpp_source}
\input{HugePageAllocator_8hpp_source}
\input{Metrics_8hpp_source}
\input{PCBItemSets_8hpp_source}
\input{Pusher_8hpp_source}
\input{Util_8hpp_source}
\input{Via_8hpp_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}
