]> rtime.felk.cvut.cz Git - hubacji1/iamcar.git/commitdiff
Refactor load JSON obstacles
authorJiri Vlasak <hubacji1@fel.cvut.cz>
Wed, 28 Aug 2019 07:15:37 +0000 (09:15 +0200)
committerJiri Vlasak <hubacji1@fel.cvut.cz>
Wed, 28 Aug 2019 07:15:39 +0000 (09:15 +0200)
All the obstacles are polygons.

base/main.cc

index bc3dc8b9ce4f72bdfde1d1abba02385681b9c1b1..61fd55f30bdad9446dfb407a75f2bdfa68b5beb8 100644 (file)
@@ -171,26 +171,17 @@ int main()
         p.HMAX = p.root()->x();
         p.VMIN = p.root()->y();
         p.VMAX = p.root()->y();
+        j = 0;
         for (auto o: jvi["obst"]) {
                 float tmpx;
                 float tmpy;
                 float tmpr;
                 float tmps;
-                if (o["circle"] != Json::nullValue) {
-                        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();
+                for (i = 0; i < o.size() - 1; i++) {
+                        tmpx = o[i][0].asFloat();
+                        tmpy = o[i][1].asFloat();
+                        tmpr = o[i + 1][0].asFloat();
+                        tmps = o[i + 1][1].asFloat();
                         so.push_back(SegmentObstacle(
                                 new RRTNode(tmpx, tmpy, 0),
                                 new RRTNode(tmpr, tmps, 0)
@@ -204,7 +195,14 @@ int main()
                         if (tmpr > p.HMAX) p.HMAX = tmpr;
                         if (tmps < p.VMIN) p.VMIN = tmps;
                         if (tmps > p.VMAX) p.VMAX = tmps;
+
+                        // output
+                        jvo["obst"][j][i][0] = tmpx;
+                        jvo["obst"][j][i][1] = tmpy;
                 }
+                jvo["obst"][j][i][0] = tmpr;
+                jvo["obst"][j][i][1] = tmps;
+                j++;
         }
         p.defaultSamplingInfo();
         p.link_obstacles(&co, &so);