diff options
author | Don Bright <hugh.m.bright@gmail.com> | 2013-09-13 00:44:07 (GMT) |
---|---|---|
committer | Don Bright <hugh.m.bright@gmail.com> | 2013-09-13 00:44:07 (GMT) |
commit | d6a57b89682ed7991744dc142e9af21d5e74cb83 (patch) | |
tree | d9fdaca01282825ff51f0f2719f03eba6c0e1752 | |
parent | c87e9f8d6e210a387ca223f7e8cb14c77b22d8e2 (diff) |
fix bug in 2d resize code
-rw-r--r-- | src/CGALEvaluator.cc | 6 | ||||
-rw-r--r-- | testdata/scad/features/resize-2d-tests.scad | 8 | ||||
-rw-r--r-- | tests/regression/cgalpngtest/resize-2d-tests-expected.png | bin | 2351 -> 2451 bytes | |||
-rw-r--r-- | tests/regression/dumptest/resize-2d-tests-expected.csg | 50 | ||||
-rw-r--r-- | tests/regression/opencsgtest/resize-2d-tests-expected.png | bin | 3193 -> 3429 bytes | |||
-rw-r--r-- | tests/regression/throwntogethertest/resize-2d-tests-expected.png | bin | 3154 -> 3432 bytes |
6 files changed, 63 insertions, 1 deletions
diff --git a/src/CGALEvaluator.cc b/src/CGALEvaluator.cc index 09070d5..8da4649 100644 --- a/src/CGALEvaluator.cc +++ b/src/CGALEvaluator.cc @@ -215,6 +215,7 @@ CGAL_Nef_polyhedron CGALEvaluator::applyResize(const CgaladvNode &node) bbox_size.push_back( bb.xmax()-bb.xmin() ); bbox_size.push_back( bb.ymax()-bb.ymin() ); bbox_size.push_back( bb.zmax()-bb.zmin() ); + int newsizemax_index = 0; for (int i=0;i<N.dim;i++) { if (node.newsize[i]) { @@ -229,7 +230,10 @@ CGAL_Nef_polyhedron CGALEvaluator::applyResize(const CgaladvNode &node) newsizemax_index = i; } } - NT3 autoscale = NT3( node.newsize[ newsizemax_index ] ) / bbox_size[ newsizemax_index ]; + + NT3 autoscale = NT3( 1 ); + if ( node.newsize[ newsizemax_index ] != 0 ) + autoscale = NT3( node.newsize[ newsizemax_index ] ) / bbox_size[ newsizemax_index ]; for (int i=0;i<N.dim;i++) { if (node.autosize[i] && node.newsize[i]==0) scale[i] = autoscale; diff --git a/testdata/scad/features/resize-2d-tests.scad b/testdata/scad/features/resize-2d-tests.scad index 911a4cd..3b6fe9d 100644 --- a/testdata/scad/features/resize-2d-tests.scad +++ b/testdata/scad/features/resize-2d-tests.scad @@ -53,3 +53,11 @@ translate([32,16]) resize([0,0,15],auto=true) shape2(); translate([32,32]) resize([0,0,15]) shape3(); } +color("blue"){ +translate([-16,-16]) resize([10,8],auto=[false,true]) + scale([0.5,100,20]) shape(); +translate([0,-16]) resize([8,10,15],auto=true) + scale([1000,0.5]) shape2(); +translate([16,-16]) resize([10,8,15]) + scale([200,200]) shape3(); +} diff --git a/tests/regression/cgalpngtest/resize-2d-tests-expected.png b/tests/regression/cgalpngtest/resize-2d-tests-expected.png Binary files differindex 01cc5b1..e764ac3 100644 --- a/tests/regression/cgalpngtest/resize-2d-tests-expected.png +++ b/tests/regression/cgalpngtest/resize-2d-tests-expected.png diff --git a/tests/regression/dumptest/resize-2d-tests-expected.csg b/tests/regression/dumptest/resize-2d-tests-expected.csg index 5f8d8b5..5cd9a2e 100644 --- a/tests/regression/dumptest/resize-2d-tests-expected.csg +++ b/tests/regression/dumptest/resize-2d-tests-expected.csg @@ -173,4 +173,54 @@ group() { } } } + color([0, 0, 1, 1]) { + multmatrix([[1, 0, 0, -16], [0, 1, 0, -16], [0, 0, 1, 0], [0, 0, 0, 1]]) { + resize(newsize = [10,8,0], auto = [0,1,0]) { + multmatrix([[0.5, 0, 0, 0], [0, 100, 0, 0], [0, 0, 20, 0], [0, 0, 0, 1]]) { + group() { + difference() { + square(size = [5, 5], center = false); + multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) { + square(size = [1, 1], center = false); + } + multmatrix([[1, 0, 0, 3], [0, 1, 0, 3], [0, 0, 1, 0], [0, 0, 0, 1]]) { + circle($fn = 10, $fa = 12, $fs = 2, r = 1); + } + } + } + } + } + } + multmatrix([[1, 0, 0, 0], [0, 1, 0, -16], [0, 0, 1, 0], [0, 0, 0, 1]]) { + resize(newsize = [8,10,15], auto = [1,1,1]) { + multmatrix([[1000, 0, 0, 0], [0, 0.5, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + group() { + difference() { + square(size = [5, 5], center = false); + multmatrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]) { + square(size = [1, 1], center = false); + } + multmatrix([[1, 0, 0, 2], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) { + square(size = [1, 1], center = false); + } + } + } + } + } + } + multmatrix([[1, 0, 0, 16], [0, 1, 0, -16], [0, 0, 1, 0], [0, 0, 0, 1]]) { + resize(newsize = [10,8,15], auto = [0,0,0]) { + multmatrix([[200, 0, 0, 0], [0, 200, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + group() { + difference() { + square(size = [5, 5], center = false); + multmatrix([[1, 0, 0, 0], [0, 1, 0, 2.5], [0, 0, 1, 0], [0, 0, 0, 1]]) { + square(size = [5, 1], center = false); + } + } + } + } + } + } + } } diff --git a/tests/regression/opencsgtest/resize-2d-tests-expected.png b/tests/regression/opencsgtest/resize-2d-tests-expected.png Binary files differindex 5a2d976..83a1ca7 100644 --- a/tests/regression/opencsgtest/resize-2d-tests-expected.png +++ b/tests/regression/opencsgtest/resize-2d-tests-expected.png diff --git a/tests/regression/throwntogethertest/resize-2d-tests-expected.png b/tests/regression/throwntogethertest/resize-2d-tests-expected.png Binary files differindex 1c007ed..6c55fa9 100644 --- a/tests/regression/throwntogethertest/resize-2d-tests-expected.png +++ b/tests/regression/throwntogethertest/resize-2d-tests-expected.png |