diff --git a/src/GeometryEvaluator.cc b/src/GeometryEvaluator.cc index 719c6ed7..72490314 100644 --- a/src/GeometryEvaluator.cc +++ b/src/GeometryEvaluator.cc @@ -953,9 +953,10 @@ Response GeometryEvaluator::visit(State &state, const ProjectionNode &node) } if (!Nptr->isEmpty()) { Polygon2d *poly = CGALUtils::project(*Nptr, node.cut_mode); - assert(poly); - poly->setConvexity(node.convexity); - geom.reset(poly); + if (poly) { + poly->setConvexity(node.convexity); + geom.reset(poly); + } } } } diff --git a/tests/regression/dumptest/projection-cut-tests-expected.csg b/tests/regression/dumptest/projection-cut-tests-expected.csg index 5ee575af..fde98f48 100644 --- a/tests/regression/dumptest/projection-cut-tests-expected.csg +++ b/tests/regression/dumptest/projection-cut-tests-expected.csg @@ -14,6 +14,11 @@ group() { } } } + projection(cut = true, convexity = 0) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 5], [0, 0, 0, 1]]) { + cube(size = [5, 5, 5], center = true); + } + } multmatrix([[1, 0, 0, 0], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { projection(cut = true, convexity = 0) { union() {