diff --git a/src/polyset-utils.cc b/src/polyset-utils.cc index 3b3e19b2..57671a76 100644 --- a/src/polyset-utils.cc +++ b/src/polyset-utils.cc @@ -77,7 +77,10 @@ namespace PolysetUtils { if (currface.empty() || idx != currface.back()) currface.push_back(idx); } if (currface.front() == currface.back()) currface.pop_back(); - if (currface.size() < 3) faces.pop_back(); // Cull empty triangles + if (currface.size() < 3) { + faces.pop_back(); // Cull empty triangles + if (faces.empty()) polygons.pop_back(); // All faces were culled + } } // Tessellate indexed mesh diff --git a/testdata/scad/3D/issues/issue1325.scad b/testdata/scad/3D/issues/issue1325.scad new file mode 100644 index 00000000..c1d12b1f --- /dev/null +++ b/testdata/scad/3D/issues/issue1325.scad @@ -0,0 +1,10 @@ +polyhedron(points = [ +[0, -4, 1], +[0, -5, 1], +[0, -5, 2], +[0, -4, 0] +], +faces = [ +[1, 2, 2, 1], +[0, 0, 3, 3] +]); diff --git a/tests/regression/cgalpngtest/issue1325-expected.png b/tests/regression/cgalpngtest/issue1325-expected.png new file mode 100644 index 00000000..08ee92b2 Binary files /dev/null and b/tests/regression/cgalpngtest/issue1325-expected.png differ diff --git a/tests/regression/monotonepngtest/issue1325-expected.png b/tests/regression/monotonepngtest/issue1325-expected.png new file mode 100644 index 00000000..08ee92b2 Binary files /dev/null and b/tests/regression/monotonepngtest/issue1325-expected.png differ diff --git a/tests/regression/opencsgtest/issue1325-expected.png b/tests/regression/opencsgtest/issue1325-expected.png new file mode 100644 index 00000000..08ee92b2 Binary files /dev/null and b/tests/regression/opencsgtest/issue1325-expected.png differ diff --git a/tests/regression/throwntogethertest/issue1325-expected.png b/tests/regression/throwntogethertest/issue1325-expected.png new file mode 100644 index 00000000..08ee92b2 Binary files /dev/null and b/tests/regression/throwntogethertest/issue1325-expected.png differ diff --git a/xcode/OpenSCAD.xcodeproj/xcshareddata/xcschemes/OpenSCAD.app.xcscheme b/xcode/OpenSCAD.xcodeproj/xcshareddata/xcschemes/OpenSCAD.app.xcscheme index 3478464b..e09efcbb 100644 --- a/xcode/OpenSCAD.xcodeproj/xcshareddata/xcschemes/OpenSCAD.app.xcscheme +++ b/xcode/OpenSCAD.xcodeproj/xcshareddata/xcschemes/OpenSCAD.app.xcscheme @@ -49,7 +49,8 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" allowLocationSimulation = "YES"> - + + isEnabled = "NO"> + argument = "issue1276.scad" + isEnabled = "YES"> - +