summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-06-08 06:12:06 (GMT)
committerMarius Kintel <marius@kintel.net>2013-06-08 06:12:06 (GMT)
commitf2f019f57ea1923e5378b36f463335888f262b56 (patch)
treed107ea2a0930c6de8715e2285a2af947dd373496
parent58e09b1351a53bef508786f78e5cf8f8e6bbe8c3 (diff)
clamp to 3. Fixes #395
-rw-r--r--src/primitives.cc5
-rw-r--r--testdata/scad/dxf/arc.scad1
-rw-r--r--testdata/scad/dxf/circle.scad1
-rw-r--r--testdata/scad/features/circle-tests.scad1
-rw-r--r--testdata/scad/features/cylinder-tests.scad3
-rw-r--r--testdata/scad/features/rotate_extrude-tests.scad4
-rw-r--r--testdata/scad/features/sphere-tests.scad1
-rw-r--r--tests/regression/cgalpngtest/arc-expected.pngbin6782 -> 6641 bytes
-rw-r--r--tests/regression/cgalpngtest/circle-expected.pngbin6979 -> 6282 bytes
-rw-r--r--tests/regression/cgalpngtest/circle-tests-expected.pngbin8435 -> 7373 bytes
-rw-r--r--tests/regression/cgalpngtest/cylinder-tests-expected.pngbin11017 -> 11431 bytes
-rw-r--r--tests/regression/dumptest/circle-tests-expected.txt3
-rw-r--r--tests/regression/dumptest/cylinder-tests-expected.txt3
-rw-r--r--tests/regression/dumptest/rotate_extrude-tests-expected.txt7
-rw-r--r--tests/regression/dumptest/sphere-tests-expected.txt3
-rw-r--r--tests/regression/opencsgtest/arc-expected.pngbin7166 -> 6711 bytes
-rw-r--r--tests/regression/opencsgtest/circle-expected.pngbin7115 -> 6464 bytes
-rw-r--r--tests/regression/opencsgtest/circle-tests-expected.pngbin8880 -> 8418 bytes
-rw-r--r--tests/regression/opencsgtest/cylinder-tests-expected.pngbin11612 -> 12080 bytes
-rw-r--r--tests/regression/opencsgtest/rotate_extrude-tests-expected.pngbin21093 -> 18320 bytes
-rw-r--r--tests/regression/opencsgtest/sphere-tests-expected.pngbin18173 -> 17564 bytes
-rw-r--r--tests/regression/throwntogethertest/arc-expected.pngbin2758 -> 6711 bytes
-rw-r--r--tests/regression/throwntogethertest/circle-expected.pngbin2837 -> 6464 bytes
-rw-r--r--tests/regression/throwntogethertest/circle-tests-expected.pngbin8880 -> 8418 bytes
-rw-r--r--tests/regression/throwntogethertest/cylinder-tests-expected.pngbin11612 -> 12080 bytes
-rw-r--r--tests/regression/throwntogethertest/rotate_extrude-tests-expected.pngbin6429 -> 8198 bytes
-rw-r--r--tests/regression/throwntogethertest/sphere-tests-expected.pngbin18173 -> 17564 bytes
27 files changed, 27 insertions, 5 deletions
diff --git a/src/primitives.cc b/src/primitives.cc
index 9b755ef..89c1573 100644
--- a/src/primitives.cc
+++ b/src/primitives.cc
@@ -242,9 +242,8 @@ AbstractNode *PrimitiveModule::instantiate(const Context *ctx, const ModuleInsta
*/
int get_fragments_from_r(double r, double fn, double fs, double fa)
{
- if (r < GRID_FINE) return 0;
- if (fn > 0.0)
- return (int)fn;
+ if (r < GRID_FINE) return 3;
+ if (fn > 0.0) return (int)(fn >= 3 ? fn : 3);
return (int)ceil(fmax(fmin(360.0 / fa, r*2*M_PI / fs), 5));
}
diff --git a/testdata/scad/dxf/arc.scad b/testdata/scad/dxf/arc.scad
index fff70a3..f53b7bd 100644
--- a/testdata/scad/dxf/arc.scad
+++ b/testdata/scad/dxf/arc.scad
@@ -1 +1,2 @@
import("../../dxf/arc.dxf");
+translate([110,0]) import("../../dxf/arc.dxf", $fn=0.1);
diff --git a/testdata/scad/dxf/circle.scad b/testdata/scad/dxf/circle.scad
index 8b5d132..edb9f77 100644
--- a/testdata/scad/dxf/circle.scad
+++ b/testdata/scad/dxf/circle.scad
@@ -1 +1,2 @@
import("../../dxf/circle.dxf");
+translate([210,0,0]) import("../../dxf/circle.dxf", $fn=0.1);
diff --git a/testdata/scad/features/circle-tests.scad b/testdata/scad/features/circle-tests.scad
index 6b54d55..90cd9f6 100644
--- a/testdata/scad/features/circle-tests.scad
+++ b/testdata/scad/features/circle-tests.scad
@@ -8,3 +8,4 @@ translate([6,-3,0]) circle(1, $fn=12);
translate([0,-6,0]) circle(1, $fa=20, $fs=0.3);
translate([3,-6,0]) circle(1, $fa=30, $fs=0.3);
translate([6,-6,0]) circle(1, $fa=40, $fs=0.3);
+translate([3,-9,0]) circle(1, $fn=0.1);
diff --git a/testdata/scad/features/cylinder-tests.scad b/testdata/scad/features/cylinder-tests.scad
index 71f43a6..3174bc4 100644
--- a/testdata/scad/features/cylinder-tests.scad
+++ b/testdata/scad/features/cylinder-tests.scad
@@ -16,5 +16,4 @@ translate([22,11,0]) cylinder(h=15, r=5, r2=5);
// tend to "abuse" this for captured nut slots
translate([-10,0,0]) cylinder(h=2, r=3, $fn=6);
-
-// FIXME: We could test $fs, $fa, $fn as well
+translate([-10, -10, 0]) sphere(5, $fn=0.1);
diff --git a/testdata/scad/features/rotate_extrude-tests.scad b/testdata/scad/features/rotate_extrude-tests.scad
index 347bc78..010b7d2 100644
--- a/testdata/scad/features/rotate_extrude-tests.scad
+++ b/testdata/scad/features/rotate_extrude-tests.scad
@@ -28,3 +28,7 @@ translate([50,50,0]) {
translate([-50,0,0]) cube([100,100,100], center=true);
}
}
+
+// Minimal $fn
+translate([0,-60,0]) rotate_extrude($fn=1) translate([20,0,0]) circle(r=10,$fn=1);
+
diff --git a/testdata/scad/features/sphere-tests.scad b/testdata/scad/features/sphere-tests.scad
index e666c1b..cc80738 100644
--- a/testdata/scad/features/sphere-tests.scad
+++ b/testdata/scad/features/sphere-tests.scad
@@ -8,3 +8,4 @@ translate([11,11,0]) sphere(5, $fn=15);
translate([22,-11, 0]) sphere(5, $fa=20, $fs=0.3);
translate([22, 0, 0]) sphere(5, $fa=30, $fs=0.3);
translate([22, 11, 0]) sphere(5, $fa=40, $fs=0.3);
+translate([11, 22, 0]) sphere(5, $fn=0.1);
diff --git a/tests/regression/cgalpngtest/arc-expected.png b/tests/regression/cgalpngtest/arc-expected.png
index 2f555c4..23a67c7 100644
--- a/tests/regression/cgalpngtest/arc-expected.png
+++ b/tests/regression/cgalpngtest/arc-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/circle-expected.png b/tests/regression/cgalpngtest/circle-expected.png
index aacf12d..89a7fd0 100644
--- a/tests/regression/cgalpngtest/circle-expected.png
+++ b/tests/regression/cgalpngtest/circle-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/circle-tests-expected.png b/tests/regression/cgalpngtest/circle-tests-expected.png
index 0736af5..d640042 100644
--- a/tests/regression/cgalpngtest/circle-tests-expected.png
+++ b/tests/regression/cgalpngtest/circle-tests-expected.png
Binary files differ
diff --git a/tests/regression/cgalpngtest/cylinder-tests-expected.png b/tests/regression/cgalpngtest/cylinder-tests-expected.png
index 843d70f..5d63548 100644
--- a/tests/regression/cgalpngtest/cylinder-tests-expected.png
+++ b/tests/regression/cgalpngtest/cylinder-tests-expected.png
Binary files differ
diff --git a/tests/regression/dumptest/circle-tests-expected.txt b/tests/regression/dumptest/circle-tests-expected.txt
index 910b375..28359d8 100644
--- a/tests/regression/dumptest/circle-tests-expected.txt
+++ b/tests/regression/dumptest/circle-tests-expected.txt
@@ -26,4 +26,7 @@
multmatrix([[1, 0, 0, 6], [0, 1, 0, -6], [0, 0, 1, 0], [0, 0, 0, 1]]) {
circle($fn = 0, $fa = 40, $fs = 0.3, r = 1);
}
+ multmatrix([[1, 0, 0, 3], [0, 1, 0, -9], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ circle($fn = 0.1, $fa = 12, $fs = 2, r = 1);
+ }
diff --git a/tests/regression/dumptest/cylinder-tests-expected.txt b/tests/regression/dumptest/cylinder-tests-expected.txt
index b1e8b6e..076835b 100644
--- a/tests/regression/dumptest/cylinder-tests-expected.txt
+++ b/tests/regression/dumptest/cylinder-tests-expected.txt
@@ -32,4 +32,7 @@
multmatrix([[1, 0, 0, -10], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
cylinder($fn = 6, $fa = 12, $fs = 2, h = 2, r1 = 3, r2 = 3, center = false);
}
+ multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ sphere($fn = 0.1, $fa = 12, $fs = 2, r = 5);
+ }
diff --git a/tests/regression/dumptest/rotate_extrude-tests-expected.txt b/tests/regression/dumptest/rotate_extrude-tests-expected.txt
index 42faff2..023d78d 100644
--- a/tests/regression/dumptest/rotate_extrude-tests-expected.txt
+++ b/tests/regression/dumptest/rotate_extrude-tests-expected.txt
@@ -42,4 +42,11 @@
}
}
}
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -60], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ rotate_extrude(convexity = 1, $fn = 1, $fa = 12, $fs = 2) {
+ multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ circle($fn = 1, $fa = 12, $fs = 2, r = 10);
+ }
+ }
+ }
diff --git a/tests/regression/dumptest/sphere-tests-expected.txt b/tests/regression/dumptest/sphere-tests-expected.txt
index 84f8c23..461e946 100644
--- a/tests/regression/dumptest/sphere-tests-expected.txt
+++ b/tests/regression/dumptest/sphere-tests-expected.txt
@@ -26,4 +26,7 @@
multmatrix([[1, 0, 0, 22], [0, 1, 0, 11], [0, 0, 1, 0], [0, 0, 0, 1]]) {
sphere($fn = 0, $fa = 40, $fs = 0.3, r = 5);
}
+ multmatrix([[1, 0, 0, 11], [0, 1, 0, 22], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ sphere($fn = 0.1, $fa = 12, $fs = 2, r = 5);
+ }
diff --git a/tests/regression/opencsgtest/arc-expected.png b/tests/regression/opencsgtest/arc-expected.png
index a930c0e..7361853 100644
--- a/tests/regression/opencsgtest/arc-expected.png
+++ b/tests/regression/opencsgtest/arc-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/circle-expected.png b/tests/regression/opencsgtest/circle-expected.png
index 7bc63b1..14fce98 100644
--- a/tests/regression/opencsgtest/circle-expected.png
+++ b/tests/regression/opencsgtest/circle-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/circle-tests-expected.png b/tests/regression/opencsgtest/circle-tests-expected.png
index 2e5b314..06f7d9c 100644
--- a/tests/regression/opencsgtest/circle-tests-expected.png
+++ b/tests/regression/opencsgtest/circle-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/cylinder-tests-expected.png b/tests/regression/opencsgtest/cylinder-tests-expected.png
index 4c7ab79..d0c607c 100644
--- a/tests/regression/opencsgtest/cylinder-tests-expected.png
+++ b/tests/regression/opencsgtest/cylinder-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/rotate_extrude-tests-expected.png b/tests/regression/opencsgtest/rotate_extrude-tests-expected.png
index 96452e1..861f6ab 100644
--- a/tests/regression/opencsgtest/rotate_extrude-tests-expected.png
+++ b/tests/regression/opencsgtest/rotate_extrude-tests-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/sphere-tests-expected.png b/tests/regression/opencsgtest/sphere-tests-expected.png
index d11e3bf..d1b4845 100644
--- a/tests/regression/opencsgtest/sphere-tests-expected.png
+++ b/tests/regression/opencsgtest/sphere-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/arc-expected.png b/tests/regression/throwntogethertest/arc-expected.png
index 8783806..7361853 100644
--- a/tests/regression/throwntogethertest/arc-expected.png
+++ b/tests/regression/throwntogethertest/arc-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/circle-expected.png b/tests/regression/throwntogethertest/circle-expected.png
index c001955..14fce98 100644
--- a/tests/regression/throwntogethertest/circle-expected.png
+++ b/tests/regression/throwntogethertest/circle-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/circle-tests-expected.png b/tests/regression/throwntogethertest/circle-tests-expected.png
index 2e5b314..06f7d9c 100644
--- a/tests/regression/throwntogethertest/circle-tests-expected.png
+++ b/tests/regression/throwntogethertest/circle-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/cylinder-tests-expected.png b/tests/regression/throwntogethertest/cylinder-tests-expected.png
index 4c7ab79..d0c607c 100644
--- a/tests/regression/throwntogethertest/cylinder-tests-expected.png
+++ b/tests/regression/throwntogethertest/cylinder-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/rotate_extrude-tests-expected.png b/tests/regression/throwntogethertest/rotate_extrude-tests-expected.png
index 94b0d9c..8956be2 100644
--- a/tests/regression/throwntogethertest/rotate_extrude-tests-expected.png
+++ b/tests/regression/throwntogethertest/rotate_extrude-tests-expected.png
Binary files differ
diff --git a/tests/regression/throwntogethertest/sphere-tests-expected.png b/tests/regression/throwntogethertest/sphere-tests-expected.png
index d11e3bf..d1b4845 100644
--- a/tests/regression/throwntogethertest/sphere-tests-expected.png
+++ b/tests/regression/throwntogethertest/sphere-tests-expected.png
Binary files differ
contact: Jan Huwald // Impressum