diff options
author | don bright <hugh.m.bright@gmail.com> | 2012-07-20 06:49:27 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2012-07-20 06:49:27 (GMT) |
commit | 4750709867e0f5743934a20250ca0990472b7a4f (patch) | |
tree | 7d930147a3123c5329c2a0f44fa7d878b5c89a25 | |
parent | c39c430ca0afd93a7b9199292fca5c613384441f (diff) |
fix crashbug, rept by MichaelAtOz, issue 148. add test.
-rw-r--r-- | src/CGALEvaluator.cc | 4 | ||||
-rw-r--r-- | src/CGAL_Nef_polyhedron.h | 1 | ||||
-rw-r--r-- | testdata/scad/dxf/scale-with-0.scad (renamed from testdata/scad/bugs/issue148.scad) | 1 |
3 files changed, 4 insertions, 2 deletions
diff --git a/src/CGALEvaluator.cc b/src/CGALEvaluator.cc index a570df4..1b307be 100644 --- a/src/CGALEvaluator.cc +++ b/src/CGALEvaluator.cc @@ -253,7 +253,7 @@ Response CGALEvaluator::visit(State &state, const TransformNode &node) testmat << node.matrix(0,0), node.matrix(0,1), node.matrix(1,0), node.matrix(1,1); if (testmat.determinant() == 0) { PRINT("Warning: Scaling a 2D object with 0 - removing object"); - N.p2.reset(); + N.reset(); } else { CGAL_Aff_transformation2 t( @@ -279,7 +279,7 @@ Response CGALEvaluator::visit(State &state, const TransformNode &node) else if (N.dim == 3) { if (node.matrix.matrix().determinant() == 0) { PRINT("Warning: Scaling a 3D object with 0 - removing object"); - N.p3.reset(); + N.reset(); } else { CGAL_Aff_transformation t( diff --git a/src/CGAL_Nef_polyhedron.h b/src/CGAL_Nef_polyhedron.h index 0b0784e..64ee9eb 100644 --- a/src/CGAL_Nef_polyhedron.h +++ b/src/CGAL_Nef_polyhedron.h @@ -14,6 +14,7 @@ public: ~CGAL_Nef_polyhedron() {} bool empty() const { return (dim == 0 || (!p2 && !p3)); } + void reset() { dim=0; p2.rest(); p3.reset(); } CGAL_Nef_polyhedron &operator+=(const CGAL_Nef_polyhedron &other); CGAL_Nef_polyhedron &operator*=(const CGAL_Nef_polyhedron &other); CGAL_Nef_polyhedron &operator-=(const CGAL_Nef_polyhedron &other); diff --git a/testdata/scad/bugs/issue148.scad b/testdata/scad/dxf/scale-with-0.scad index 29ccd51..c4f6a9d 100644 --- a/testdata/scad/bugs/issue148.scad +++ b/testdata/scad/dxf/scale-with-0.scad @@ -1,2 +1,3 @@ +// https://github.com/openscad/openscad/issues/148 scale([8,8,0]) linear_extrude(file="../../circle.dxf"); |