diff --git a/src/libslic3r/MedialAxis.cpp b/src/libslic3r/MedialAxis.cpp index 9c2c9a21f..c243f7c86 100644 --- a/src/libslic3r/MedialAxis.cpp +++ b/src/libslic3r/MedialAxis.cpp @@ -191,10 +191,14 @@ bool MedialAxis::validate_edge(const VD::edge_type* edge, Lines &lines, std::map > &thickness) { // prevent overflows and detect almost-infinite edges - if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || + if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) + std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::isnan(edge->vertex0()->x()) || + std::isnan(edge->vertex0()->y()) || + std::isnan(edge->vertex1()->x()) || + std::isnan(edge->vertex1()->y()) ) return false; // construct the line representing this edge of the Voronoi diagram