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)
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);