Skip to content

Commit 3b49562

Browse files
kyoichi-sugaharadanielsanchezaran
authored andcommitted
merge all union polygon
Signed-off-by: kyoichi-sugahara <kyoichi.sugahara@tier4.jp>
1 parent 28294e0 commit 3b49562

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

control/lane_departure_checker/src/lane_departure_checker_node/lane_departure_checker.cpp

+9-5
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,6 @@ std::optional<lanelet::BasicPolygon2d> LaneDepartureChecker::getFusedLaneletPoly
331331
if (lanelets_distance_pair.size() == 1)
332332
return lanelets_distance_pair.at(0).second.polygon2d().basicPolygon();
333333

334-
std::vector<lanelet::BasicPolygon2d> lanelet_union;
335334
lanelet::BasicPolygon2d merged_polygon =
336335
lanelets_distance_pair.at(0).second.polygon2d().basicPolygon();
337336
for (size_t i = 1; i < lanelets_distance_pair.size(); ++i) {
@@ -340,11 +339,16 @@ std::optional<lanelet::BasicPolygon2d> LaneDepartureChecker::getFusedLaneletPoly
340339

341340
std::vector<lanelet::BasicPolygon2d> lanelet_union_temp;
342341
boost::geometry::union_(poly, merged_polygon, lanelet_union_temp);
343-
merged_polygon = lanelet_union_temp.back();
344-
lanelet_union = lanelet_union_temp;
342+
343+
// Update merged_polygon by accumulating all merged results
344+
merged_polygon.clear();
345+
for (const auto & temp_poly : lanelet_union_temp) {
346+
merged_polygon.insert(merged_polygon.end(), temp_poly.begin(), temp_poly.end());
347+
}
348+
345349
}
346-
if (lanelet_union.empty()) return std::nullopt;
347-
return lanelet_union.back();
350+
if(merged_polygon.empty()) return std::nullopt;
351+
return merged_polygon;
348352
}();
349353

350354
return fused_lanelets;

0 commit comments

Comments
 (0)