]> rtime.felk.cvut.cz Git - hubacji1/iamcar.git/commitdiff
Add JSON input to main program
authorJiri Hubacek <hubacji1@fel.cvut.cz>
Fri, 29 Jun 2018 20:24:01 +0000 (22:24 +0200)
committerJiri Hubacek <hubacji1@fel.cvut.cz>
Fri, 29 Jun 2018 20:24:01 +0000 (22:24 +0200)
base/main.cc

index 9e63dfe6e3275dc6d4279c279fce8242f1965645..f7e9d255ed077669f52ddd6f5f2e3ce74e1f57ca 100644 (file)
@@ -26,9 +26,36 @@ int main()
         std::cin >> jvi;
         std::string encoding = jvi.get("encoding", "UTF-8" ).asString();
 
-        LaValle1998 p(new RRTNode(0, 0, 0), new RRTNode(9, 9, 0));
+        LaValle1998 p(
+                        new RRTNode(
+                                jvi["init"][0].asFloat(),
+                                jvi["init"][1].asFloat(),
+                                jvi["init"][2].asFloat()),
+                        new RRTNode(
+                                jvi["goal"][0].asFloat(),
+                                jvi["goal"][1].asFloat(),
+                                jvi["goal"][2].asFloat()));
         std::vector<CircleObstacle> co;
         std::vector<SegmentObstacle> so;
+        for (auto o: jvi["obst"]) {
+                if (o["circle"] != Json::nullValue) {
+                        co.push_back(CircleObstacle(
+                                                o["circle"][0].asFloat(),
+                                                o["circle"][1].asFloat(),
+                                                o["circle"][2].asFloat()));
+                }
+                if (o["segment"] != Json::nullValue) {
+                        so.push_back(SegmentObstacle(
+                                new RRTNode(
+                                        o["segment"][0][0].asFloat(),
+                                        o["segment"][0][1].asFloat(),
+                                        0),
+                                new RRTNode(
+                                        o["segment"][1][0].asFloat(),
+                                        o["segment"][1][1].asFloat(),
+                                        0)));
+                }
+        }
         p.link_obstacles(&co, &so);
 
         p.tstart();