\doxysection{User\+Agent.\+hpp}
\hypertarget{UserAgent_8hpp_source}{}\label{UserAgent_8hpp_source}\index{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/RL/UserAgent.hpp@{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/RL/UserAgent.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ }
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#ifndef\ GYM\_PCB\_RL\_USERAGENT\_H}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#define\ GYM\_PCB\_RL\_USERAGENT\_H}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}RL/ActionSpace.hpp"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}RL/Agent.hpp"{}}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ "{}RL/CommonActions.hpp"{}}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ "{}RL/CommonStateReprs.hpp"{}}}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ "{}RL/Reward.hpp"{}}}
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{class\ }UserAgent\ :\ \textcolor{keyword}{public}\ Agent}
\DoxyCodeLine{00012\ \{}
\DoxyCodeLine{00013\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00014\ \ \ \ \ UserAgent();}
\DoxyCodeLine{00015\ \ \ \ \ \textcolor{keywordtype}{void}\ setPCB(\textcolor{keyword}{const}\ std::shared\_ptr<PCBoard>\&)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00016\ \ \ \ \ \textcolor{keywordtype}{void}\ setManagedConnections(\textcolor{keyword}{const}\ std::set<Connection\ *>\&)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00017\ \ \ \ \ \textcolor{keywordtype}{void}\ setStateRepresentationParams(PyObject\ *)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00018\ \ \ \ \ \textcolor{keywordtype}{void}\ setParameter(\textcolor{keyword}{const}\ std::string\ \&name,\ \textcolor{keywordtype}{int}\ index,\ PyObject\ *)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00019\ \ \ \ \ PyObject\ *step(PyObject\ *)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00020\ \ \ \ \ PyObject\ *get\_state(PyObject\ *)\ \textcolor{keyword}{override};}
\DoxyCodeLine{00021\ \ \ \ \ PyObject\ *reset()\ \textcolor{keyword}{override};}
\DoxyCodeLine{00022\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00024\ \ \ \ \ \ \ \ \ actions::AStarConnect\ Connect\{0\};}
\DoxyCodeLine{00025\ \ \ \ \ \ \ \ \ actions::SetRouteGuard\ RouteGuard;}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ actions::SetLayerMask\ LayerMask;}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ actions::SetCostMap\ CostMap;}
\DoxyCodeLine{00028\ \ \ \ \ \ \ \ \ actions::AStarToPoint\ RouteTo\{0,\ \mbox{\hyperlink{classPoint__25}{Point\_25}}(0,0,-\/1),\ \mbox{\hyperlink{classPoint__25}{Point\_25}}(0,0,-\/1)\};}
\DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ actions::SegmentToPoint\ SegmentTo\{0,\ \mbox{\hyperlink{classPoint__25}{Point\_25}}(0,0,-\/1),\ \mbox{\hyperlink{classPoint__25}{Point\_25}}(0,0,-\/1)\};}
\DoxyCodeLine{00030\ \ \ \ \ \ \ \ \ actions::Unroute\ Unroute\{0\};}
\DoxyCodeLine{00031\ \ \ \ \ \ \ \ \ actions::UnrouteSegment\ UnrouteSegment\{0,\ \mbox{\hyperlink{classPoint__25}{Point\_25}}(0,0,-\/1)\};}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ actions::UnrouteNet\ UnrouteNet\{0\};}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ actions::SetTrack\ SetTrack\{0\};}
\DoxyCodeLine{00034\ \ \ \ \ \ \ \ \ actions::LockRouted\ Lock;}
\DoxyCodeLine{00035\ \ \ \ \ \}\ mActions;}
\DoxyCodeLine{00036\ \ \ \ \ \mbox{\hyperlink{classActionSpace}{ActionSpace}}\ mActionSpaceU;}
\DoxyCodeLine{00037\ \ \ \ \ \mbox{\hyperlink{classActionSpace}{ActionSpace}}\ mActionSpaceLegacy;}
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00039\ \ \ \ \ \ \ \ \ std::unique\_ptr<sreps::Image>\ DImage;}
\DoxyCodeLine{00040\ \ \ \ \ \ \ \ \ std::unique\_ptr<sreps::Image>\ GImage;}
\DoxyCodeLine{00041\ \ \ \ \ \ \ \ \ std::unique\_ptr<sreps::Image>\ SImage;}
\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classStateRepresentation}{StateRepresentation}}\ None;}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ sreps::WholeBoard\ Board;}
\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ sreps::GridData\ Grid;}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ sreps::ConnectionEndpoints\ EndpointsNumpy;}
\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ sreps::TrackRasterization\ Raster;}
\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ sreps::TrackSegments\ Segments\{\textcolor{keyword}{true}\};}
\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ sreps::Metrics\ Metrics;}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ sreps::CustomFeatures\ Features;}
\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ sreps::ImageBbox\ ImageBox;}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ sreps::ItemSelection\ Selection;}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ sreps::ClearanceCheck\ Clearance;}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ std::map<std::string,\ StateRepresentation\ *>\ map;}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classStateRepresentation}{StateRepresentation}}\ *def;}
\DoxyCodeLine{00055\ \ \ \ \ \}\ mSR;}
\DoxyCodeLine{00056\ \ \ \ \ Reward\ mLastReward;}
\DoxyCodeLine{00057\ \ \ \ \ \mbox{\hyperlink{structRouterResult}{RouterResult}}\ mRouterResult;}
\DoxyCodeLine{00058\ \ \ \ \ \mbox{\hyperlink{structIBox__3}{IBox\_3}}\ mGridSRBox\{IBox\_3::EMPTY()\};}
\DoxyCodeLine{00059\ \ \ \ \ \mbox{\hyperlink{classIVector__2}{IVector\_2}}\ mImageSize\{128,\ 128\};}
\DoxyCodeLine{00060\ }
\DoxyCodeLine{00061\ \ \ \ \ \mbox{\hyperlink{structAction_1_1Result}{Action::Result}}\ \_action(PyObject\ *);}
\DoxyCodeLine{00062\ \ \ \ \ \textcolor{keywordtype}{void}\ initActionsUser();}
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keywordtype}{void}\ initActionsLegacy();}
\DoxyCodeLine{00064\ \ \ \ \ \textcolor{keywordtype}{void}\ initSR();}
\DoxyCodeLine{00065\ \ \ \ \ \textcolor{keywordtype}{void}\ loadAllConnections();}
\DoxyCodeLine{00066\ }
\DoxyCodeLine{00067\ \ \ \ \ PyObject\ *\_get\_state(PyObject\ *)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00068\ \};}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ GYM\_PCB\_RL\_USERAGENT\_H}}

\end{DoxyCode}
