medialaxis nan issue on linux

supermerill/SuperSlicer#66
This commit is contained in:
supermerill 2021-09-04 19:24:24 +02:00
parent 77fd66bcd6
commit 7be5f47a0e

View File

@ -191,10 +191,14 @@ bool
MedialAxis::validate_edge(const VD::edge_type* edge, Lines &lines, std::map<const VD::edge_type*, std::pair<coordf_t, coordf_t> > &thickness) MedialAxis::validate_edge(const VD::edge_type* edge, Lines &lines, std::map<const VD::edge_type*, std::pair<coordf_t, coordf_t> > &thickness)
{ {
// prevent overflows and detect almost-infinite edges // prevent overflows and detect almost-infinite edges
if (std::abs(edge->vertex0()->x()) > 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->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) ||
std::abs(edge->vertex1()->x()) > 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; return false;
// construct the line representing this edge of the Voronoi diagram // construct the line representing this edge of the Voronoi diagram