From c7cea0082e427f3c53985845f05e8737873c8a25 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sun, 15 Dec 2013 15:02:32 -0500 Subject: Added testcase for concave polygons in polyhedrons diff --git a/testdata/scad/features/polyhedron-tests.scad b/testdata/scad/features/polyhedron-tests.scad index 690d962..1f11d7e 100644 --- a/testdata/scad/features/polyhedron-tests.scad +++ b/testdata/scad/features/polyhedron-tests.scad @@ -11,10 +11,35 @@ module polyhedrons() { translate([4,0,0]) polyhedron(points = [[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]], triangles = [[0,2,4],[0,5,2],[0,4,3],[0,3,5],[1,4,2],[1,2,5],[1,3,4], [1,5,3]]); + +// Containing concave polygons +translate([6,0,0]) +polyhedron(points=[ + [-0.8,-0.8,-0.8], + [0,0,-0.8], + [0.8,-0.8,-0.8], + [0.8,0.8,-0.8], + [-0.8,0.8,-0.8], + [-0.8,-0.8,0.8], + [0,0,0.8], + [0.8,-0.8,0.8], + [0.8,0.8,0.8], + [-0.8,0.8,0.8], + ], + triangles=[ + [0,1,2,3,4], + [5,6,1,0], + [6,7,2,1], + [7,8,3,2], + [8,9,4,3], + [9,5,0,4], + [9,8,7,6,5], + ], convexity=2); } polyhedrons(); translate([0,2,0]) difference() { polyhedrons(); - translate([2,0,2]) cube([8,3,3], center=true); + translate([3,0,2]) cube([8,3,3], center=true); } + diff --git a/tests/regression/cgalpngtest/polyhedron-tests-expected.png b/tests/regression/cgalpngtest/polyhedron-tests-expected.png index c80990f..322160d 100644 Binary files a/tests/regression/cgalpngtest/polyhedron-tests-expected.png and b/tests/regression/cgalpngtest/polyhedron-tests-expected.png differ diff --git a/tests/regression/dumptest/polyhedron-tests-expected.csg b/tests/regression/dumptest/polyhedron-tests-expected.csg index f59baa2..4bf980d 100644 --- a/tests/regression/dumptest/polyhedron-tests-expected.csg +++ b/tests/regression/dumptest/polyhedron-tests-expected.csg @@ -7,6 +7,9 @@ group() { multmatrix([[1, 0, 0, 4], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { polyhedron(points = [[1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]], triangles = [[0, 2, 4], [0, 5, 2], [0, 4, 3], [0, 3, 5], [1, 4, 2], [1, 2, 5], [1, 3, 4], [1, 5, 3]], convexity = 1); } + multmatrix([[1, 0, 0, 6], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + polyhedron(points = [[-0.8, -0.8, -0.8], [0, 0, -0.8], [0.8, -0.8, -0.8], [0.8, 0.8, -0.8], [-0.8, 0.8, -0.8], [-0.8, -0.8, 0.8], [0, 0, 0.8], [0.8, -0.8, 0.8], [0.8, 0.8, 0.8], [-0.8, 0.8, 0.8]], triangles = [[0, 1, 2, 3, 4], [5, 6, 1, 0], [6, 7, 2, 1], [7, 8, 3, 2], [8, 9, 4, 3], [9, 5, 0, 4], [9, 8, 7, 6, 5]], convexity = 2); + } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) { difference() { @@ -18,8 +21,11 @@ group() { multmatrix([[1, 0, 0, 4], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { polyhedron(points = [[1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]], triangles = [[0, 2, 4], [0, 5, 2], [0, 4, 3], [0, 3, 5], [1, 4, 2], [1, 2, 5], [1, 3, 4], [1, 5, 3]], convexity = 1); } + multmatrix([[1, 0, 0, 6], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + polyhedron(points = [[-0.8, -0.8, -0.8], [0, 0, -0.8], [0.8, -0.8, -0.8], [0.8, 0.8, -0.8], [-0.8, 0.8, -0.8], [-0.8, -0.8, 0.8], [0, 0, 0.8], [0.8, -0.8, 0.8], [0.8, 0.8, 0.8], [-0.8, 0.8, 0.8]], triangles = [[0, 1, 2, 3, 4], [5, 6, 1, 0], [6, 7, 2, 1], [7, 8, 3, 2], [8, 9, 4, 3], [9, 5, 0, 4], [9, 8, 7, 6, 5]], convexity = 2); + } } - multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 2], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 3], [0, 1, 0, 0], [0, 0, 1, 2], [0, 0, 0, 1]]) { cube(size = [8, 3, 3], center = true); } } diff --git a/tests/regression/opencsgtest/polyhedron-tests-expected.png b/tests/regression/opencsgtest/polyhedron-tests-expected.png index 0740f1a..f6665cf 100644 Binary files a/tests/regression/opencsgtest/polyhedron-tests-expected.png and b/tests/regression/opencsgtest/polyhedron-tests-expected.png differ diff --git a/tests/regression/throwntogethertest/polyhedron-tests-expected.png b/tests/regression/throwntogethertest/polyhedron-tests-expected.png index 95ffeaa..c293d88 100644 Binary files a/tests/regression/throwntogethertest/polyhedron-tests-expected.png and b/tests/regression/throwntogethertest/polyhedron-tests-expected.png differ -- cgit v0.10.1