Merge some BS1.7 changes:

internal_solid_infill_pattern
This commit is contained in:
SoftFever 2023-08-08 18:34:21 +08:00
parent 7ece35931e
commit bcbbbf35db
95 changed files with 44122 additions and 693 deletions

View file

@ -782,6 +782,9 @@ void annotate_inside_outside(VD &vd, const Lines &lines)
for (const VD::edge_type &edge : vd.edges())
if (edge.vertex1() == nullptr) {
if (edge.vertex0() == nullptr)
continue;
// Infinite Voronoi edge separating two Point sites or a Point site and a Segment site.
// Infinite edge is always outside and it references at least one valid vertex.
assert(edge.is_infinite());
@ -888,6 +891,9 @@ void annotate_inside_outside(VD &vd, const Lines &lines)
for (const VD::edge_type &edge : vd.edges()) {
assert((edge_category(edge) == EdgeCategory::Unknown) == (edge_category(edge.twin()) == EdgeCategory::Unknown));
if (edge_category(edge) == EdgeCategory::Unknown) {
if (!edge.is_finite())
continue;
assert(edge.is_finite());
const VD::cell_type &cell = *edge.cell();
const VD::cell_type &cell2 = *edge.twin()->cell();