11class UserAgent :
public Agent
15 void setPCB(
const std::shared_ptr<PCBoard>&)
override;
16 void setManagedConnections(
const std::set<Connection *>&)
override;
17 void setStateRepresentationParams(PyObject *)
override;
18 void setParameter(
const std::string &name,
int index, PyObject *)
override;
19 PyObject *step(PyObject *)
override;
20 PyObject *get_state(PyObject *)
override;
21 PyObject *reset()
override;
24 actions::AStarConnect Connect{0};
25 actions::SetRouteGuard RouteGuard;
26 actions::SetLayerMask LayerMask;
27 actions::SetCostMap CostMap;
30 actions::Unroute Unroute{0};
31 actions::UnrouteSegment UnrouteSegment{0,
Point_25(0,0,-1)};
32 actions::UnrouteNet UnrouteNet{0};
33 actions::SetTrack SetTrack{0};
34 actions::LockRouted Lock;
39 std::unique_ptr<sreps::Image> DImage;
40 std::unique_ptr<sreps::Image> GImage;
41 std::unique_ptr<sreps::Image> SImage;
43 sreps::WholeBoard Board;
45 sreps::ConnectionEndpoints EndpointsNumpy;
46 sreps::TrackRasterization Raster;
47 sreps::TrackSegments Segments{
true};
48 sreps::Metrics Metrics;
49 sreps::CustomFeatures Features;
50 sreps::ImageBbox ImageBox;
51 sreps::ItemSelection Selection;
52 sreps::ClearanceCheck Clearance;
53 std::map<std::string, StateRepresentation *> map;
58 IBox_3 mGridSRBox{IBox_3::EMPTY()};
62 void initActionsUser();
63 void initActionsLegacy();
65 void loadAllConnections();
67 PyObject *_get_state(PyObject *)
const;