From 9cddf7c4305d79239760597085516502e647b2ec Mon Sep 17 00:00:00 2001 From: Jiri Vlasak Date: Wed, 28 Aug 2019 09:15:37 +0200 Subject: [PATCH] Refactor load JSON obstacles All the obstacles are polygons. --- base/main.cc | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/base/main.cc b/base/main.cc index bc3dc8b..61fd55f 100644 --- a/base/main.cc +++ b/base/main.cc @@ -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); -- 2.39.2