\doxysection{Data Structures}
Here are the data structures with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{classAction}{Action}} \\*NOTE\+: Actions always set the \doxylink{classAgent}{Agent}\textquotesingle{}s least recently used connction (get\+Connection\+LRU()) which is somewhat ugly for actions affecting multiple connections -\/ we should probably return a set of affected connections if we ever have actions that change more than one (other than clustering which doesn\textquotesingle{}t really change anything) }{\pageref{classAction}}{}
\item\contentsline{section}{\mbox{\hyperlink{classActionCache}{Action\+Cache$<$ Data $>$}} }{\pageref{classActionCache}}{}
\item\contentsline{section}{\mbox{\hyperlink{classActionSet}{Action\+Set}} }{\pageref{classActionSet}}{}
\item\contentsline{section}{\mbox{\hyperlink{classActionSpace}{Action\+Space}} }{\pageref{classActionSpace}}{}
\item\contentsline{section}{\mbox{\hyperlink{classActionTab}{Action\+Tab}} }{\pageref{classActionTab}}{}
\item\contentsline{section}{\mbox{\hyperlink{classAgent}{Agent}} }{\pageref{classAgent}}{}
\item\contentsline{section}{\mbox{\hyperlink{structAlignedTHPAllocator}{Aligned\+THPAllocator$<$ T $>$}} }{\pageref{structAlignedTHPAllocator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classAShape}{AShape}} }{\pageref{classAShape}}{}
\item\contentsline{section}{\mbox{\hyperlink{classAStar}{AStar}} }{\pageref{classAStar}}{}
\item\contentsline{section}{\mbox{\hyperlink{structAStarCosts}{AStar\+Costs}} }{\pageref{structAStarCosts}}{}
\item\contentsline{section}{\mbox{\hyperlink{classAStarVisitStatus}{AStar\+Visit\+Status}} }{\pageref{classAStarVisitStatus}}{}
\item\contentsline{section}{\mbox{\hyperlink{classBaseROP}{Base\+ROP}} }{\pageref{classBaseROP}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1BBox}{dsn\+::\+BBox}} }{\pageref{structdsn_1_1BBox}}{}
\item\contentsline{section}{\mbox{\hyperlink{classpy_1_1BorrowedRef}{py\+::\+Borrowed\+Ref}} }{\pageref{classpy_1_1BorrowedRef}}{}
\item\contentsline{section}{\mbox{\hyperlink{classBrowserTab}{Browser\+Tab}} }{\pageref{classBrowserTab}}{}
\item\contentsline{section}{\mbox{\hyperlink{classCamera}{Camera}} }{\pageref{classCamera}}{}
\item\contentsline{section}{\mbox{\hyperlink{classCircleEx}{Circle\+Ex}} }{\pageref{classCircleEx}}{}
\item\contentsline{section}{\mbox{\hyperlink{classCloneEnv}{Clone\+Env}} }{\pageref{classCloneEnv}}{}
\item\contentsline{section}{\mbox{\hyperlink{classColor}{Color}} }{\pageref{classColor}}{}
\item\contentsline{section}{\mbox{\hyperlink{structPolicy_1_1CommonParams}{Policy\+::\+Common\+Params}} }{\pageref{structPolicy_1_1CommonParams}}{}
\item\contentsline{section}{\mbox{\hyperlink{classComponent}{Component}} }{\pageref{classComponent}}{}
\item\contentsline{section}{\mbox{\hyperlink{classConnection}{Connection}} }{\pageref{classConnection}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Connection}{dsn\+::\+Connection}} }{\pageref{structdsn_1_1Connection}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Data}{dsn\+::\+Data}} }{\pageref{structdsn_1_1Data}}{}
\item\contentsline{section}{\mbox{\hyperlink{structpy_1_1DictIterator}{py\+::\+Dict\+Iterator}} }{\pageref{structpy_1_1DictIterator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classDRCViolation}{DRCViolation}} }{\pageref{classDRCViolation}}{}
\item\contentsline{section}{\mbox{\hyperlink{classDSNParserBase}{DSNParser\+Base}} }{\pageref{classDSNParserBase}}{}
\item\contentsline{section}{\mbox{\hyperlink{classEnv}{Env}} }{\pageref{classEnv}}{}
\item\contentsline{section}{\mbox{\hyperlink{classEnvPCB}{Env\+PCB}} }{\pageref{classEnvPCB}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfancy__lock__guard}{fancy\+\_\+lock\+\_\+guard}} }{\pageref{structfancy__lock__guard}}{}
\item\contentsline{section}{\mbox{\hyperlink{classpy_1_1GIL__guard}{py\+::\+GIL\+\_\+guard}} \\*The GIL }{\pageref{classpy_1_1GIL__guard}}{}
\item\contentsline{section}{\mbox{\hyperlink{classGLWidget}{GLWidget}} }{\pageref{classGLWidget}}{}
\item\contentsline{section}{\mbox{\hyperlink{classGridDirection}{Grid\+Direction}} }{\pageref{classGridDirection}}{}
\item\contentsline{section}{\mbox{\hyperlink{structIBox__3}{IBox\+\_\+3}} }{\pageref{structIBox__3}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Image}{dsn\+::\+Image}} }{\pageref{structdsn_1_1Image}}{}
\item\contentsline{section}{\mbox{\hyperlink{structIndexRange}{Index\+Range}} }{\pageref{structIndexRange}}{}
\item\contentsline{section}{\mbox{\hyperlink{structPCBoardMesh_1_1IndexRange}{PCBoard\+Mesh\+::\+Index\+Range}} }{\pageref{structPCBoardMesh_1_1IndexRange}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIPoint__2}{IPoint\+\_\+2}} }{\pageref{classIPoint__2}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIPoint__3}{IPoint\+\_\+3}} }{\pageref{classIPoint__3}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIsoRectEx}{Iso\+Rect\+Ex}} }{\pageref{classIsoRectEx}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIUIApplication}{IUIApplication}} }{\pageref{classIUIApplication}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIVector__2}{IVector\+\_\+2}} }{\pageref{classIVector__2}}{}
\item\contentsline{section}{\mbox{\hyperlink{classIVector__3}{IVector\+\_\+3}} }{\pageref{classIVector__3}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Layer}{dsn\+::\+Layer}} }{\pageref{structdsn_1_1Layer}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLayer}{Layer}} }{\pageref{classLayer}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLayerAlphaSlider}{Layer\+Alpha\+Slider}} }{\pageref{classLayerAlphaSlider}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLayoutArea}{Layout\+Area}} }{\pageref{classLayoutArea}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLength}{Length$<$ T, M1, Q1 $>$}} }{\pageref{classLength}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLogFile}{Log\+File}} }{\pageref{classLogFile}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLogger}{Logger}} }{\pageref{classLogger}}{}
\item\contentsline{section}{\mbox{\hyperlink{classLubySequence}{Luby\+Sequence}} }{\pageref{classLubySequence}}{}
\item\contentsline{section}{\mbox{\hyperlink{classmath_1_1Mat4}{math\+::\+Mat4}} }{\pageref{classmath_1_1Mat4}}{}
\item\contentsline{section}{\mbox{\hyperlink{structmath_1_1Moments}{math\+::\+Moments}} }{\pageref{structmath_1_1Moments}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavGrid}{Nav\+Grid}} \\*The grid-\/representation of the board }{\pageref{classNavGrid}}{}
\item\contentsline{section}{\mbox{\hyperlink{classui_1_1NavGrid}{ui\+::\+Nav\+Grid}} }{\pageref{classui_1_1NavGrid}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavImage}{Nav\+Image$<$ chan\+\_\+t $>$}} }{\pageref{classNavImage}}{}
\item\contentsline{section}{\mbox{\hyperlink{structNavKeepoutCounts}{Nav\+Keepout\+Counts}} }{\pageref{structNavKeepoutCounts}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavMesh}{Nav\+Mesh}} }{\pageref{classNavMesh}}{}
\item\contentsline{section}{\mbox{\hyperlink{structNavPixel}{Nav\+Pixel$<$ chan\+\_\+t $>$}} }{\pageref{structNavPixel}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavPoint}{Nav\+Point}} }{\pageref{classNavPoint}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavPointRef}{Nav\+Point\+Ref}} }{\pageref{classNavPointRef}}{}
\item\contentsline{section}{\mbox{\hyperlink{structNavRasterizeParams}{Nav\+Rasterize\+Params}} }{\pageref{structNavRasterizeParams}}{}
\item\contentsline{section}{\mbox{\hyperlink{structNavSpacings}{Nav\+Spacings}} \\*This struct stores the spacing requirements the \doxylink{classNavGrid}{Nav\+Grid} is/should be prepared for }{\pageref{structNavSpacings}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavTri}{Nav\+Tri}} \\*Data associated with a triangle in the Delaunay triangulation of the board }{\pageref{classNavTri}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNavTriangulation}{Nav\+Triangulation}} \\*Interface to the Delaunay triangulation }{\pageref{classNavTriangulation}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Net}{dsn\+::\+Net}} }{\pageref{structdsn_1_1Net}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNet}{Net}} }{\pageref{classNet}}{}
\item\contentsline{section}{\mbox{\hyperlink{classNetOverrides}{Net\+Overrides}} }{\pageref{classNetOverrides}}{}
\item\contentsline{section}{\mbox{\hyperlink{structNetTopology}{Net\+Topology}} }{\pageref{structNetTopology}}{}
\item\contentsline{section}{\mbox{\hyperlink{classpy_1_1NPArray}{py\+::\+NPArray$<$ T $>$}} }{\pageref{classpy_1_1NPArray}}{}
\item\contentsline{section}{\mbox{\hyperlink{classObject}{Object}} }{\pageref{classObject}}{}
\item\contentsline{section}{\mbox{\hyperlink{classpy_1_1Object}{py\+::\+Object}} \\*NOTE\+: This does not do any automatic reference counting }{\pageref{classpy_1_1Object}}{}
\item\contentsline{section}{\mbox{\hyperlink{classObjectPtrNameLessThan}{Object\+Ptr\+Name\+Less\+Than}} }{\pageref{classObjectPtrNameLessThan}}{}
\item\contentsline{section}{\mbox{\hyperlink{classpy_1_1ObjectRef}{py\+::\+Object\+Ref}} }{\pageref{classpy_1_1ObjectRef}}{}
\item\contentsline{section}{\mbox{\hyperlink{classObjectsBVH}{Objects\+BVH}} }{\pageref{classObjectsBVH}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Padstack}{dsn\+::\+Padstack}} }{\pageref{structdsn_1_1Padstack}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPalette}{Palette}} }{\pageref{classPalette}}{}
\item\contentsline{section}{\mbox{\hyperlink{classParameter}{Parameter}} }{\pageref{classParameter}}{}
\item\contentsline{section}{\mbox{\hyperlink{classParameterTab}{Parameter\+Tab}} }{\pageref{classParameterTab}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Path}{dsn\+::\+Path}} }{\pageref{structdsn_1_1Path}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPath}{Path}} }{\pageref{classPath}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1PCB}{dsn\+::\+PCB}} }{\pageref{structdsn_1_1PCB}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPCBFactory}{PCBFactory}} }{\pageref{classPCBFactory}}{}
\item\contentsline{section}{\mbox{\hyperlink{structPCBItemSets}{PCBItem\+Sets}} }{\pageref{structPCBItemSets}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPCBoard}{PCBoard}} }{\pageref{classPCBoard}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPCBoardMesh}{PCBoard\+Mesh}} }{\pageref{classPCBoardMesh}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Pin}{dsn\+::\+Pin}} }{\pageref{structdsn_1_1Pin}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPin}{Pin}} }{\pageref{classPin}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Placement}{dsn\+::\+Placement}} }{\pageref{structdsn_1_1Placement}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPoint__25}{Point\+\_\+25}} }{\pageref{classPoint__25}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPolicy}{Policy}} }{\pageref{classPolicy}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPolygonEx}{Polygon\+Ex}} }{\pageref{classPolygonEx}}{}
\item\contentsline{section}{\mbox{\hyperlink{classPusher}{Pusher}} }{\pageref{classPusher}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRasterizer}{Rasterizer$<$ ROP $>$}} }{\pageref{classRasterizer}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRatsNest}{Rats\+Nest}} }{\pageref{classRatsNest}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRecordRangesROP}{Record\+Ranges\+ROP}} }{\pageref{classRecordRangesROP}}{}
\item\contentsline{section}{\mbox{\hyperlink{structAction_1_1Result}{Action\+::\+Result}} }{\pageref{structAction_1_1Result}}{}
\item\contentsline{section}{\mbox{\hyperlink{structResultCollection}{Result\+Collection}} }{\pageref{structResultCollection}}{}
\item\contentsline{section}{\mbox{\hyperlink{structResultRecord}{Result\+Record}} }{\pageref{structResultRecord}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRewardFunction}{Reward\+Function}} }{\pageref{classRewardFunction}}{}
\item\contentsline{section}{\mbox{\hyperlink{classrewards_1_1RouteLength}{rewards\+::\+Route\+Length}} }{\pageref{classrewards_1_1RouteLength}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRoutePainter}{Route\+Painter}} }{\pageref{classRoutePainter}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRoutePainterLines}{Route\+Painter\+Lines}} }{\pageref{classRoutePainterLines}}{}
\item\contentsline{section}{\mbox{\hyperlink{structRouterResult}{Router\+Result}} }{\pageref{structRouterResult}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRouteTracker}{Route\+Tracker}} }{\pageref{classRouteTracker}}{}
\item\contentsline{section}{\mbox{\hyperlink{classRRRAgent}{RRRAgent}} }{\pageref{classRRRAgent}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Segment}{dsn\+::\+Segment}} }{\pageref{structdsn_1_1Segment}}{}
\item\contentsline{section}{\mbox{\hyperlink{classSegment__25}{Segment\+\_\+25}} }{\pageref{classSegment__25}}{}
\item\contentsline{section}{\mbox{\hyperlink{classShaders}{Shaders}} }{\pageref{classShaders}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Shape}{dsn\+::\+Shape}} }{\pageref{structdsn_1_1Shape}}{}
\item\contentsline{section}{\mbox{\hyperlink{classSignalContext}{Signal\+Context}} }{\pageref{classSignalContext}}{}
\item\contentsline{section}{\mbox{\hyperlink{classStateRepresentation}{State\+Representation}} \\*The subclass \doxylink{classStateRepresentation_ad2cb6dfe68065ebfeb0ea1e27aabe512}{create(\+Py\+Object \texorpdfstring{$\ast$}{*})} functions check if the Py\+Object matches and return a new instace if it does, or 0 otherwise (or throw an exception if the name matches but the parameters don\textquotesingle{}t) }{\pageref{classStateRepresentation}}{}
\item\contentsline{section}{\mbox{\hyperlink{classStepLock}{Step\+Lock}} }{\pageref{classStepLock}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Structure}{dsn\+::\+Structure}} }{\pageref{structdsn_1_1Structure}}{}
\item\contentsline{section}{\mbox{\hyperlink{classToken}{Token}} }{\pageref{classToken}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Track}{dsn\+::\+Track}} }{\pageref{structdsn_1_1Track}}{}
\item\contentsline{section}{\mbox{\hyperlink{classTrack}{Track}} }{\pageref{classTrack}}{}
\item\contentsline{section}{\mbox{\hyperlink{classTriangleEx}{Triangle\+Ex}} }{\pageref{classTriangleEx}}{}
\item\contentsline{section}{\mbox{\hyperlink{classTriList}{Tri\+List}} }{\pageref{classTriList}}{}
\item\contentsline{section}{\mbox{\hyperlink{classUIActions}{UIActions}} \\*WARNING\+: The non-\/async \doxylink{classUIActions}{UIActions} functions are expected to be non-\/concurrent }{\pageref{classUIActions}}{}
\item\contentsline{section}{\mbox{\hyperlink{classUIApplication}{UIApplication}} }{\pageref{classUIApplication}}{}
\item\contentsline{section}{\mbox{\hyperlink{classUniformGrid25}{Uniform\+Grid25}} }{\pageref{classUniformGrid25}}{}
\item\contentsline{section}{\mbox{\hyperlink{classUserAgent}{User\+Agent}} }{\pageref{classUserAgent}}{}
\item\contentsline{section}{\mbox{\hyperlink{classUserSettings}{User\+Settings}} }{\pageref{classUserSettings}}{}
\item\contentsline{section}{\mbox{\hyperlink{structdsn_1_1Via}{dsn\+::\+Via}} }{\pageref{structdsn_1_1Via}}{}
\item\contentsline{section}{\mbox{\hyperlink{classVia}{Via}} }{\pageref{classVia}}{}
\item\contentsline{section}{\mbox{\hyperlink{classViaPainter}{Via\+Painter}} }{\pageref{classViaPainter}}{}
\item\contentsline{section}{\mbox{\hyperlink{classViewTab}{View\+Tab}} }{\pageref{classViewTab}}{}
\item\contentsline{section}{\mbox{\hyperlink{classWideSegment__25}{Wide\+Segment\+\_\+25}} }{\pageref{classWideSegment__25}}{}
\item\contentsline{section}{\mbox{\hyperlink{classWindow}{Window}} }{\pageref{classWindow}}{}
\end{DoxyCompactList}
