summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testdata/scad/features/projection-cut-tests.scad15
-rw-r--r--testdata/scad/features/projection-tests.scad28
-rw-r--r--tests/regression/cgalpngtest/projection-cut-tests-expected.pngbin0 -> 7286 bytes
-rw-r--r--tests/regression/cgalpngtest/projection-tests-expected.pngbin7793 -> 7837 bytes
-rw-r--r--tests/regression/dumptest/projection-cut-tests-expected.csg33
-rw-r--r--tests/regression/dumptest/projection-tests-expected.csg36
-rw-r--r--tests/regression/opencsgtest/projection-cut-tests-expected.pngbin0 -> 7644 bytes
-rw-r--r--tests/regression/opencsgtest/projection-tests-expected.pngbin8176 -> 8825 bytes
-rw-r--r--tests/regression/throwntogethertest/projection-cut-tests-expected.pngbin0 -> 7644 bytes
-rw-r--r--tests/regression/throwntogethertest/projection-tests-expected.pngbin8176 -> 8825 bytes
10 files changed, 79 insertions, 33 deletions
diff --git a/testdata/scad/features/projection-cut-tests.scad b/testdata/scad/features/projection-cut-tests.scad
new file mode 100644
index 0000000..0409a3e
--- /dev/null
+++ b/testdata/scad/features/projection-cut-tests.scad
@@ -0,0 +1,15 @@
+// 2D child
+projection(cut=true) { square(); }
+
+projection(cut=true) translate([20,0,0]) cube(10, center=true);
+
+// Boundary case: clipping the top of a cube
+translate([0,20,0]) projection(cut=true) translate([0,0,-4.999999]) cube(10, center=true);
+
+// holes
+translate([0,-10,0]) projection(cut=true) {
+ union() {
+ difference() { cube(5,center=true); cube(4,center=true); }
+ translate([2.1,2.1]) difference() { cube(5,center=true); cube(4,center=true); }
+ }
+}
diff --git a/testdata/scad/features/projection-tests.scad b/testdata/scad/features/projection-tests.scad
index bc2111c..27d03fe 100644
--- a/testdata/scad/features/projection-tests.scad
+++ b/testdata/scad/features/projection-tests.scad
@@ -3,17 +3,25 @@ projection();
// No children
projection() { }
// 2D child
-projection(cut=true) { square(); }
+projection() { square(); }
+// Simple
projection(cut=false) cube(10);
-projection(cut=true) translate([20,0,0]) cube(10, center=true);
-// Boundary case: clipping the top of a cube
-translate([0,20,0]) projection(cut=true) translate([0,0,-4.999999]) cube(10, center=true);
-// holes
-translate([0,-10,0]) projection(cut=true) {
- union() {
- difference() { cube(5,center=true); cube(4,center=true); }
- translate([2.1,2.1]) difference() { cube(5,center=true); cube(4,center=true); }
- }
+// Two children
+translate([-12,0]) projection(cut=false) {
+ cube(10);
+ difference() {
+ sphere(10);
+ cylinder(h=30, r=5, center=true);
+ }
+}
+
+// Holes
+translate([6,-12]) projection(cut=false) {
+ cube(10);
+ difference() {
+ sphere(10);
+ cylinder(h=30, r=5, center=true);
+ }
}
diff --git a/tests/regression/cgalpngtest/projection-cut-tests-expected.png b/tests/regression/cgalpngtest/projection-cut-tests-expected.png
new file mode 100644
index 0000000..7189447
--- /dev/null
+++ b/tests/regression/cgalpngtest/projection-cut-tests-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/projection-tests-expected.png b/tests/regression/cgalpngtest/projection-tests-expected.png
index 3be3654..c0d5289 100644
--- a/tests/regression/cgalpngtest/projection-tests-expected.png
+++ b/tests/regression/cgalpngtest/projection-tests-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/projection-cut-tests-expected.csg b/tests/regression/dumptest/projection-cut-tests-expected.csg
new file mode 100644
index 0000000..4c37fa2
--- /dev/null
+++ b/tests/regression/dumptest/projection-cut-tests-expected.csg
@@ -0,0 +1,33 @@
+group() {
+ projection(cut = true, convexity = 0) {
+ square(size = [1, 1], center = false);
+ }
+ projection(cut = true, convexity = 0) {
+ multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ cube(size = [10, 10, 10], center = true);
+ }
+ }
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 20], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ projection(cut = true, convexity = 0) {
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -4.999999], [0, 0, 0, 1]]) {
+ cube(size = [10, 10, 10], 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() {
+ difference() {
+ cube(size = [5, 5, 5], center = true);
+ cube(size = [4, 4, 4], center = true);
+ }
+ multmatrix([[1, 0, 0, 2.1], [0, 1, 0, 2.1], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ difference() {
+ cube(size = [5, 5, 5], center = true);
+ cube(size = [4, 4, 4], center = true);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/tests/regression/dumptest/projection-tests-expected.csg b/tests/regression/dumptest/projection-tests-expected.csg
index da3e5ce..04cd404 100644
--- a/tests/regression/dumptest/projection-tests-expected.csg
+++ b/tests/regression/dumptest/projection-tests-expected.csg
@@ -1,37 +1,27 @@
group() {
projection(cut = false, convexity = 0);
projection(cut = false, convexity = 0);
- projection(cut = true, convexity = 0) {
+ projection(cut = false, convexity = 0) {
square(size = [1, 1], center = false);
}
projection(cut = false, convexity = 0) {
cube(size = [10, 10, 10], center = false);
}
- projection(cut = true, convexity = 0) {
- multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
- cube(size = [10, 10, 10], center = true);
- }
- }
- multmatrix([[1, 0, 0, 0], [0, 1, 0, 20], [0, 0, 1, 0], [0, 0, 0, 1]]) {
- projection(cut = true, convexity = 0) {
- multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -4.999999], [0, 0, 0, 1]]) {
- cube(size = [10, 10, 10], center = true);
+ multmatrix([[1, 0, 0, -12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ projection(cut = false, convexity = 0) {
+ cube(size = [10, 10, 10], center = false);
+ difference() {
+ sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
+ cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 5, r2 = 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() {
- difference() {
- cube(size = [5, 5, 5], center = true);
- cube(size = [4, 4, 4], center = true);
- }
- multmatrix([[1, 0, 0, 2.1], [0, 1, 0, 2.1], [0, 0, 1, 0], [0, 0, 0, 1]]) {
- difference() {
- cube(size = [5, 5, 5], center = true);
- cube(size = [4, 4, 4], center = true);
- }
- }
+ multmatrix([[1, 0, 0, 6], [0, 1, 0, -12], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ projection(cut = false, convexity = 0) {
+ cube(size = [10, 10, 10], center = false);
+ difference() {
+ sphere($fn = 0, $fa = 12, $fs = 2, r = 10);
+ cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 5, r2 = 5, center = true);
}
}
}
diff --git a/tests/regression/opencsgtest/projection-cut-tests-expected.png b/tests/regression/opencsgtest/projection-cut-tests-expected.png
new file mode 100644
index 0000000..5063301
--- /dev/null
+++ b/tests/regression/opencsgtest/projection-cut-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/projection-tests-expected.png b/tests/regression/opencsgtest/projection-tests-expected.png
index b808ffe..b3af1e1 100644
--- a/tests/regression/opencsgtest/projection-tests-expected.png
+++ b/tests/regression/opencsgtest/projection-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/projection-cut-tests-expected.png b/tests/regression/throwntogethertest/projection-cut-tests-expected.png
new file mode 100644
index 0000000..5063301
--- /dev/null
+++ b/tests/regression/throwntogethertest/projection-cut-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/projection-tests-expected.png b/tests/regression/throwntogethertest/projection-tests-expected.png
index b808ffe..b3af1e1 100644
--- a/tests/regression/throwntogethertest/projection-tests-expected.png
+++ b/tests/regression/throwntogethertest/projection-tests-expected.png
Binary files differ
contact: Jan Huwald // Impressum