summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Bright <hugh.m.bright@gmail.com>2013-06-15 19:26:41 (GMT)
committerDon Bright <hugh.m.bright@gmail.com>2013-06-15 19:26:41 (GMT)
commit12eefc770fabd200f2c268380757a29145b06e3a (patch)
tree9f9d693f134be1853aef11a02fdba2a62631b9d3
parent07729e5384f650a66e73f19b69756ad66e0e8b7b (diff)
parentf89b2993573045189fee6e5dc04d57e9613aadf1 (diff)
Merge branch 'master' of github.com:openscad/openscad
-rw-r--r--doc/TODO.txt2
-rw-r--r--src/PolySetCGALEvaluator.cc1
-rw-r--r--src/linearextrude.cc6
-rw-r--r--testdata/scad/features/cylinder-tests.scad3
-rw-r--r--testdata/scad/features/linear_extrude-tests.scad3
-rw-r--r--tests/regression/dumptest/cylinder-tests-expected.txt2
-rw-r--r--tests/regression/dumptest/linear_extrude-tests-expected.txt5
7 files changed, 16 insertions, 6 deletions
diff --git a/doc/TODO.txt b/doc/TODO.txt
index d05df2c..e56dbd7 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -227,7 +227,7 @@ DOCUMENTATION
-------------
o Auto-generate API documentation instead of, in addition to or combined with, the wikibooks docs.
o Write checklists for typical extension work (add new module, add new function)
- -> make sure new test files are added
+ -> syntax highlighter, test files, examples, documentation (external editor modes)
o Clarify include/use better in the wikibook docs (e.g. that use'd modules have to be self-contained)
TESTING
diff --git a/src/PolySetCGALEvaluator.cc b/src/PolySetCGALEvaluator.cc
index f0c274f..bc9206f 100644
--- a/src/PolySetCGALEvaluator.cc
+++ b/src/PolySetCGALEvaluator.cc
@@ -324,6 +324,7 @@ PolySet *PolySetCGALEvaluator::extrudeDxfData(const LinearExtrudeNode &node, Dxf
{
PolySet *ps = new PolySet();
ps->convexity = node.convexity;
+ if (node.height <= 0) return ps;
double h1, h2;
diff --git a/src/linearextrude.cc b/src/linearextrude.cc
index 9a7365b..c5d4529 100644
--- a/src/linearextrude.cc
+++ b/src/linearextrude.cc
@@ -88,7 +88,8 @@ AbstractNode *LinearExtrudeModule::instantiate(const Context *ctx, const ModuleI
}
node->layername = layer.isUndefined() ? "" : layer.toString();
- node->height = height.toDouble();
+ node->height = 100;
+ height.getDouble(node->height);
node->convexity = (int)convexity.toDouble();
origin.getVec2(node->origin_x, node->origin_y);
node->scale_x = node->scale_y = 1;
@@ -99,8 +100,7 @@ AbstractNode *LinearExtrudeModule::instantiate(const Context *ctx, const ModuleI
if (center.type() == Value::BOOL)
node->center = center.toBool();
- if (node->height <= 0)
- node->height = 100;
+ if (node->height <= 0) node->height = 0;
if (node->convexity <= 0)
node->convexity = 1;
diff --git a/testdata/scad/features/cylinder-tests.scad b/testdata/scad/features/cylinder-tests.scad
index 3174bc4..75b06f2 100644
--- a/testdata/scad/features/cylinder-tests.scad
+++ b/testdata/scad/features/cylinder-tests.scad
@@ -16,4 +16,5 @@ 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);
-translate([-10, -10, 0]) sphere(5, $fn=0.1);
+// Test that we clamp number of sections to a minimum of 3
+translate([-10, -10, 0]) cylinder(r=3.5356, h=7.0711, $fn=0.1, center=true);
diff --git a/testdata/scad/features/linear_extrude-tests.scad b/testdata/scad/features/linear_extrude-tests.scad
index 528eea2..680bf53 100644
--- a/testdata/scad/features/linear_extrude-tests.scad
+++ b/testdata/scad/features/linear_extrude-tests.scad
@@ -22,3 +22,6 @@ translate([-15,20,0]) linear_extrude(height=20, scale=[4,5,6]) square(10);
translate([-10,5,0]) linear_extrude(height=15, scale=-2) square(10, center=true);
// scale given as undefined
translate([-15,-15,0]) linear_extrude(height=10, scale=var_undef) square(10);
+
+// height is negative
+translate([0,-25,0]) linear_extrude(-1) square(10, center=true);
diff --git a/tests/regression/dumptest/cylinder-tests-expected.txt b/tests/regression/dumptest/cylinder-tests-expected.txt
index 076835b..c47ffe1 100644
--- a/tests/regression/dumptest/cylinder-tests-expected.txt
+++ b/tests/regression/dumptest/cylinder-tests-expected.txt
@@ -33,6 +33,6 @@
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);
+ cylinder($fn = 0.1, $fa = 12, $fs = 2, h = 7.0711, r1 = 3.5356, r2 = 3.5356, center = true);
}
diff --git a/tests/regression/dumptest/linear_extrude-tests-expected.txt b/tests/regression/dumptest/linear_extrude-tests-expected.txt
index c867388..face5e2 100644
--- a/tests/regression/dumptest/linear_extrude-tests-expected.txt
+++ b/tests/regression/dumptest/linear_extrude-tests-expected.txt
@@ -54,4 +54,9 @@
square(size = [10, 10], center = false);
}
}
+ multmatrix([[1, 0, 0, 0], [0, 1, 0, -25], [0, 0, 1, 0], [0, 0, 0, 1]]) {
+ linear_extrude(height = 0, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
+ square(size = [10, 10], center = true);
+ }
+ }
contact: Jan Huwald // Impressum