diff --git a/autoware_utils_geometry/src/geometry/boost_polygon_utils.cpp b/autoware_utils_geometry/src/geometry/boost_polygon_utils.cpp index ed5aa73..4a53799 100644 --- a/autoware_utils_geometry/src/geometry/boost_polygon_utils.cpp +++ b/autoware_utils_geometry/src/geometry/boost_polygon_utils.cpp @@ -73,8 +73,8 @@ namespace autoware_utils_geometry bool is_clockwise(const Polygon2d & polygon) { const int n = polygon.outer().size(); - const double x_offset = polygon.outer().at(0).x(); - const double y_offset = polygon.outer().at(0).y(); + const double x_offset = n > 0 ? polygon.outer().at(0).x() : 0.0; + const double y_offset = n > 0 ? polygon.outer().at(0).y() : 0.0; double sum = 0.0; for (std::size_t i = 0; i < polygon.outer().size(); ++i) { sum += diff --git a/autoware_utils_geometry/test/cases/boost_polygon_utils.cpp b/autoware_utils_geometry/test/cases/boost_polygon_utils.cpp index e9b6279..37f8017 100644 --- a/autoware_utils_geometry/test/cases/boost_polygon_utils.cpp +++ b/autoware_utils_geometry/test/cases/boost_polygon_utils.cpp @@ -53,7 +53,7 @@ TEST(boost_geometry, boost_is_clockwise) // empty Polygon2d empty_polygon; - EXPECT_THROW(is_clockwise(empty_polygon), std::out_of_range); + EXPECT_FALSE(is_clockwise(empty_polygon)); // normal case Polygon2d clock_wise_polygon{{{0.0, 0.0}, {0.0, 1.0}, {1.0, 1.0}, {1.0, 0.0}, {0.0, 0.0}}};