]> rtime.felk.cvut.cz Git - hubacji1/iamcar.git/commitdiff
Make sampling range scenario dependent
authorJiri Vlasak <hubacji1@fel.cvut.cz>
Mon, 24 Jun 2019 16:08:35 +0000 (18:08 +0200)
committerJiri Vlasak <hubacji1@fel.cvut.cz>
Mon, 24 Jun 2019 16:08:35 +0000 (18:08 +0200)
base/main.cc

index dc3eda51a3053c6daf9c46f510912f8397a4dc23..effd757a0c7cf12d8d8e1f560cbdeb8943312360 100644 (file)
@@ -152,24 +152,43 @@ int main()
         jvo["init"][2] = p.root()->h();
         std::vector<CircleObstacle> co;
         std::vector<SegmentObstacle> so;
+        p.HMIN = p.root()->x();
+        p.HMAX = p.root()->x();
+        p.VMIN = p.root()->y();
+        p.VMAX = p.root()->y();
         for (auto o: jvi["obst"]) {
+                float tmpx;
+                float tmpy;
+                float tmpr;
+                float tmps;
                 if (o["circle"] != Json::nullValue) {
-                        co.push_back(CircleObstacle(
-                                                o["circle"][0].asFloat(),
-                                                o["circle"][1].asFloat(),
-                                                o["circle"][2].asFloat()));
+                        tmpx = o["circle"][0].asFloat();
+                        tmpy = o["circle"][1].asFloat();
+                        tmpr = o["circle"][2].asFloat();
+                        co.push_back(CircleObstacle(tmpx, tmpy, tmpr));
+                        if (tmpx < p.HMIN) p.HMIN = tmpx;
+                        if (tmpx > p.HMAX) p.HMAX = tmpx;
+                        if (tmpy < p.VMIN) p.VMIN = tmpy;
+                        if (tmpy > p.VMAX) p.VMAX = tmpy;
                 }
                 if (o["segment"] != Json::nullValue) {
+                        tmpx = o["segment"][0][0].asFloat();
+                        tmpy = o["segment"][0][1].asFloat();
+                        tmpr = o["segment"][1][0].asFloat();
+                        tmps = o["segment"][1][1].asFloat();
                         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)));
+                                new RRTNode(tmpx, tmpy, 0),
+                                new RRTNode(tmpr, tmps, 0)
+                        ));
                         p.frame().add_bnode(so.back().init());
+                        if (tmpx < p.HMIN) p.HMIN = tmpx;
+                        if (tmpx > p.HMAX) p.HMAX = tmpx;
+                        if (tmpy < p.VMIN) p.VMIN = tmpy;
+                        if (tmpy > p.VMAX) p.VMAX = tmpy;
+                        if (tmpr < p.HMIN) p.HMIN = tmpr;
+                        if (tmpr > p.HMAX) p.HMAX = tmpr;
+                        if (tmps < p.VMIN) p.VMIN = tmps;
+                        if (tmps > p.VMAX) p.VMAX = tmps;
                 }
         }
         p.link_obstacles(&co, &so);