diff options
-rw-r--r-- | RELEASE_NOTES | 2 | ||||
-rw-r--r-- | doc/openscad.1 | 14 | ||||
-rw-r--r-- | doc/testing.txt | 40 | ||||
-rw-r--r-- | src/openscad.cc | 46 | ||||
-rw-r--r-- | src/value.cc | 9 | ||||
-rw-r--r-- | tests/.gitignore | 9 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 75 | ||||
-rw-r--r-- | tests/cgalpngtest.cc | 175 | ||||
-rw-r--r-- | tests/cgaltest.cc | 120 | ||||
-rw-r--r-- | tests/csgtermtest.cc | 135 | ||||
-rwxr-xr-x | tests/dumptest | 7 | ||||
-rw-r--r-- | tests/dumptest.cc | 161 | ||||
-rwxr-xr-x | tests/echotest | 5 | ||||
-rw-r--r-- | tests/echotest.cc | 116 | ||||
-rw-r--r-- | tests/moduledumptest.cc | 118 | ||||
-rw-r--r-- | tests/opencsgtest.cc | 5 | ||||
-rw-r--r-- | tests/regression/csgtermtest/allexpressions-expected.term (renamed from tests/regression/csgtermtest/allexpressions-expected.txt) | 0 | ||||
-rw-r--r-- | tests/regression/csgtermtest/allfunctions-expected.term (renamed from tests/regression/csgtermtest/allfunctions-expected.txt) | 0 | ||||
-rw-r--r-- | tests/regression/csgtermtest/allmodules-expected.term (renamed from tests/regression/csgtermtest/allmodules-expected.txt) | 0 | ||||
-rw-r--r-- | tests/regression/dumptest/2d-3d-expected.csg (renamed from tests/regression/dumptest/2d-3d-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/allexpressions-expected.csg | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/allexpressions-expected.txt | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/allfunctions-expected.csg | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/allfunctions-expected.txt | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/allmodules-expected.csg (renamed from tests/regression/dumptest/allmodules-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/assign-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/assign-tests-expected.csg (renamed from tests/regression/dumptest/assign-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/background-modifier-expected.csg (renamed from tests/regression/dumptest/background-modifier-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/child-background-expected.csg (renamed from tests/regression/dumptest/child-background-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/child-child-test-expected.csg (renamed from tests/regression/dumptest/child-child-test-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/child-expected.csg | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/child-tests-expected.csg (renamed from tests/regression/dumptest/child-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/circle-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/circle-tests-expected.csg (renamed from tests/regression/dumptest/circle-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/color-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/color-tests-expected.csg (renamed from tests/regression/dumptest/color-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/control-hull-dimension-expected.csg (renamed from tests/regression/dumptest/control-hull-dimension-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/cube-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/cube-tests-expected.csg (renamed from tests/regression/dumptest/cube-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/cylinder-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/cylinder-tests-expected.csg (renamed from tests/regression/dumptest/cylinder-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/difference-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/difference-tests-expected.csg (renamed from tests/regression/dumptest/difference-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/disable-modifier-expected.csg (renamed from tests/regression/dumptest/disable-modifier-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/dxf_linear_extrude-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/dxf_rotate_extrude-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/echo-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/escape-test-expected.csg (renamed from tests/regression/dumptest/escape-test-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example001-expected.csg (renamed from tests/regression/dumptest/example001-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example002-expected.csg (renamed from tests/regression/dumptest/example002-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example003-expected.csg (renamed from tests/regression/dumptest/example003-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example004-expected.csg (renamed from tests/regression/dumptest/example004-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example005-expected.csg (renamed from tests/regression/dumptest/example005-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example006-expected.csg (renamed from tests/regression/dumptest/example006-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example007-expected.csg (renamed from tests/regression/dumptest/example007-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example008-expected.csg (renamed from tests/regression/dumptest/example008-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example009-expected.csg (renamed from tests/regression/dumptest/example009-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example010-expected.csg (renamed from tests/regression/dumptest/example010-expected.txt) | 5 | ||||
-rw-r--r-- | tests/regression/dumptest/example011-expected.csg (renamed from tests/regression/dumptest/example011-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example012-expected.csg (renamed from tests/regression/dumptest/example012-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example013-expected.csg (renamed from tests/regression/dumptest/example013-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example014-expected.csg | 16 | ||||
-rw-r--r-- | tests/regression/dumptest/example014-expected.txt | 15 | ||||
-rw-r--r-- | tests/regression/dumptest/example015-expected.csg (renamed from tests/regression/dumptest/example015-expected.txt) | 7 | ||||
-rw-r--r-- | tests/regression/dumptest/example016-expected.csg (renamed from tests/regression/dumptest/example016-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example017-expected.csg (renamed from tests/regression/dumptest/example017-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example018-expected.csg (renamed from tests/regression/dumptest/example018-expected.txt) | 27 | ||||
-rw-r--r-- | tests/regression/dumptest/example019-expected.csg (renamed from tests/regression/dumptest/example019-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example020-expected.csg (renamed from tests/regression/dumptest/example020-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example021-expected.csg (renamed from tests/regression/dumptest/example021-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example022-expected.csg (renamed from tests/regression/dumptest/example022-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/example024-expected.csg (renamed from tests/regression/dumptest/example024-expected.txt) | 437 | ||||
-rw-r--r-- | tests/regression/dumptest/for-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/for-nested-tests-expected.csg (renamed from tests/regression/dumptest/for-nested-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/for-tests-expected.csg (renamed from tests/regression/dumptest/for-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/glide-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/group-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/highlight-and-background-modifier-expected.csg (renamed from tests/regression/dumptest/highlight-and-background-modifier-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/highlight-modifier-expected.csg (renamed from tests/regression/dumptest/highlight-modifier-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/hull-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/hull-tests-expected.csg (renamed from tests/regression/dumptest/hull-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/hull2-tests-expected.csg (renamed from tests/regression/dumptest/hull2-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/hull3-tests-expected.csg (renamed from tests/regression/dumptest/hull3-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/if-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/ifelse-tests-expected.csg (renamed from tests/regression/dumptest/ifelse-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import_dxf-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import_dxf-tests-expected.csg (renamed from tests/regression/dumptest/import_dxf-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import_off-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import_stl-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/import_stl-tests-expected.csg (renamed from tests/regression/dumptest/import_stl-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/include-tests-expected.csg (renamed from tests/regression/dumptest/include-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/intersection-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/intersection-tests-expected.csg (renamed from tests/regression/dumptest/intersection-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/intersection_for-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/intersection_for-tests-expected.csg | 18 | ||||
-rw-r--r-- | tests/regression/dumptest/intersection_for-tests-expected.txt | 17 | ||||
-rw-r--r-- | tests/regression/dumptest/linear_extrude-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.csg (renamed from tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/linear_extrude-tests-expected.csg (renamed from tests/regression/dumptest/linear_extrude-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/localfiles-compatibility-test-expected.csg (renamed from tests/regression/dumptest/localfiles-compatibility-test-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/localfiles-test-expected.csg (renamed from tests/regression/dumptest/localfiles-test-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/minkowski-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/minkowski-tests-expected.csg (renamed from tests/regression/dumptest/minkowski-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/minkowski2-tests-expected.csg (renamed from tests/regression/dumptest/minkowski2-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/minkowski3-tests-expected.csg (renamed from tests/regression/dumptest/minkowski3-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/mirror-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/module-recursion-expected.csg (renamed from tests/regression/dumptest/module-recursion-expected.txt) | 63 | ||||
-rw-r--r-- | tests/regression/dumptest/modulevariables-expected.csg (renamed from tests/regression/dumptest/modulevariables-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/multmatrix-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/null-polygons-expected.csg (renamed from tests/regression/dumptest/null-polygons-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polygon-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polygon-illegal-winding-expected.csg (renamed from tests/regression/dumptest/polygon-illegal-winding-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polygon-tests-expected.csg (renamed from tests/regression/dumptest/polygon-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polyhedron-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polyhedron-tests-expected.csg (renamed from tests/regression/dumptest/polyhedron-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/polyset-reduce-crash-expected.csg (renamed from tests/regression/dumptest/polyset-reduce-crash-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/projection-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/projection-tests-expected.csg (renamed from tests/regression/dumptest/projection-tests-expected.txt) | 5 | ||||
-rw-r--r-- | tests/regression/dumptest/render-2d-tests-expected.csg (renamed from tests/regression/dumptest/render-2d-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/render-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/render-tests-expected.csg (renamed from tests/regression/dumptest/render-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/resize-2d-tests-expected.csg (renamed from tests/regression/dumptest/resize-2d-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/resize-tests-expected.csg (renamed from tests/regression/dumptest/resize-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/root-modifier-expected.csg | 1 | ||||
-rw-r--r-- | tests/regression/dumptest/root-modifier-expected.txt | 5 | ||||
-rw-r--r-- | tests/regression/dumptest/root-modifier-if-expected.csg (renamed from tests/regression/dumptest/root-modifier-if-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/rotate-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/rotate_extrude-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/rotate_extrude-tests-expected.csg (renamed from tests/regression/dumptest/rotate_extrude-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/rotate_extrude_dxf-tests-expected.csg (renamed from tests/regression/dumptest/rotate_extrude_dxf-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/scale-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/scale2D-tests-expected.csg (renamed from tests/regression/dumptest/scale2D-tests-expected.txt) | 7 | ||||
-rw-r--r-- | tests/regression/dumptest/scale3D-tests-expected.csg (renamed from tests/regression/dumptest/scale3D-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/sphere-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/sphere-tests-expected.csg (renamed from tests/regression/dumptest/sphere-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/square-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/square-tests-expected.csg (renamed from tests/regression/dumptest/square-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/subdiv-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/surface-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/surface-simple-expected.csg (renamed from tests/regression/dumptest/surface-simple-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/surface-tests-expected.csg (renamed from tests/regression/dumptest/surface-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/testcolornames-expected.csg (renamed from tests/regression/dumptest/testcolornames-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/text-search-test-expected.csg (renamed from tests/regression/dumptest/text-search-test-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/transform-tests-expected.csg (renamed from tests/regression/dumptest/transform-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/translate-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/union-expected.csg | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/union-tests-expected.csg (renamed from tests/regression/dumptest/union-tests-expected.txt) | 3 | ||||
-rw-r--r-- | tests/regression/dumptest/use-tests-expected.csg (renamed from tests/regression/dumptest/use-tests-expected.txt) | 5 | ||||
-rw-r--r-- | tests/regression/echotest/builtin-tests-expected.txt | 2 | ||||
-rw-r--r-- | tests/regression/echotest/dim-all-expected.txt | 10 | ||||
-rw-r--r-- | tests/regression/echotest/lookup-tests-expected.txt | 4 | ||||
-rw-r--r-- | tests/regression/moduledumptest/allexpressions-expected.ast (renamed from tests/regression/moduledumptest/allexpressions-expected.txt) | 0 | ||||
-rw-r--r-- | tests/regression/moduledumptest/allfunctions-expected.ast (renamed from tests/regression/moduledumptest/allfunctions-expected.txt) | 0 | ||||
-rw-r--r-- | tests/regression/moduledumptest/allmodules-expected.ast (renamed from tests/regression/moduledumptest/allmodules-expected.txt) | 0 | ||||
-rwxr-xr-x | tests/test_pretty_print.py | 8 |
156 files changed, 717 insertions, 1310 deletions
diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 455515c..7807e77 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -1,3 +1,5 @@ +o Additional output formats: AST, TERM, null + OpenSCAD 2013.06 ================ diff --git a/doc/openscad.1 b/doc/openscad.1 index a93c33f..87806f2 100644 --- a/doc/openscad.1 +++ b/doc/openscad.1 @@ -1,4 +1,4 @@ -.TH OPENSCAD 1 "2013-03-xx" +.TH OPENSCAD 1 "2013-06-xx" .\" Please adjust this date whenever revising the manpage. .SH NAME openscad \- script file based graphical CAD environment @@ -19,9 +19,19 @@ the OpenSCAD user manual at http://en.wikibooks.org/wiki/OpenSCAD_User_Manual. .TP \fB-o\fP \fIoutputfile\fP -Export the given file to \fIoutputfile\fP in STL, OFF, DXF, CSG, or PNG format, +Export the given file to \fIoutputfile\fP in STL, OFF, DXF, or PNG format, depending on file extension of \fIoutputfile\fP (which has to be lower case). If this option is given, the GUI will not be started. + +Additional formats, which are mainly used for debugging and testing (but can +also be used in automation), are AST (the input file as parsed and serialized +again), CSG (an OpenSCAD language representation of the input file with +calculations done and module calls applied), TERM (the constructive solid +geometry expression passed to OpenCSG). If \fIoutputfile\fP is \fBnull\fP, no +output file will be written, but the file will still be evaluated and all +\fBecho\fP commands will be written to the standard error output. (The +rendering process will still take place if the \fB\-\-render\fP option is +given.) .TP \fB\-d\fP \fIfile.deps\fP If the \fB-d\fP option is given, all files accessed while exporting are written diff --git a/doc/testing.txt b/doc/testing.txt index 0b14903..17847c6 100644 --- a/doc/testing.txt +++ b/doc/testing.txt @@ -64,7 +64,47 @@ This is almost the same as adding a new regression test: 4) run the test normally and verify that it passes: $ ctest -C Examples -R exampleNNN +Migration away from dedicated regression tests: +----------------------------------------------- +As the main OpenSCAD binary gained the capability to output PNG renderings, +the necessity for dedicated test binaries went away; for many test, OpenSCAD +is now directly called, resulting in better test coverage and less code to +maintain. + +So far, the following tests have been fully converted to use the main binary: + +* moduledumptest +* csgtermtest +* cgalpngtest +* opencsgtest + +Two tests still need an intermediate script that mangles away timestamps and +near-zero floating point numbers: + +* dumptest +* echotest + +Some tests are yet to be converted: + +* csgtexttest -- verify whether this is not redundant with dumptest +* throwntogethertest -- should be a .png output mode +* cgalstlsanitytest -- could probably be replaced by a shell script grepping + for nan and possibly counting faces + +These look like tests, but are not actually in use: + +* modulecachetest +* cgalcachetest + +In the course of migration, the possibilities of using the OPENSCAD_TESTING +compile time flag go away; that flag used to strip timestamps out of files, +to unify float output, and to tweak the file inclusion paths. With that flag +unused, we get better coverage of the primary code paths, at the cost of +having to do some normalization in the unit testing process (thus the dumptest +and echo test scripts). Especially, having a nonstandard MCAD library in the +user include path can now break things -- but so can having misbehaving +programs in your PATH. Troubleshooting: ------------------------------ diff --git a/src/openscad.cc b/src/openscad.cc index bcde5e2..e657cb0 100644 --- a/src/openscad.cc +++ b/src/openscad.cc @@ -48,6 +48,9 @@ #include "PolySetCGALEvaluator.h" #endif +#include "csgterm.h" +#include "CSGTermEvaluator.h" + #include <QApplication> #include <QString> #include <QDir> @@ -313,6 +316,9 @@ int main(int argc, char **argv) const char *dxf_output_file = NULL; const char *csg_output_file = NULL; const char *png_output_file = NULL; + const char *ast_output_file = NULL; + const char *term_output_file = NULL; + bool null_output = false; QString suffix = QFileInfo(output_file).suffix().toLower(); if (suffix == "stl") stl_output_file = output_file; @@ -320,6 +326,9 @@ int main(int argc, char **argv) else if (suffix == "dxf") dxf_output_file = output_file; else if (suffix == "csg") csg_output_file = output_file; else if (suffix == "png") png_output_file = output_file; + else if (suffix == "ast") ast_output_file = output_file; + else if (suffix == "term") term_output_file = output_file; + else if (strcmp(output_file, "null") == 0) null_output = true; else { fprintf(stderr, "Unknown suffix for output file %s\n", output_file); exit(1); @@ -381,10 +390,43 @@ int main(int argc, char **argv) fstream.close(); } } + else if (ast_output_file) { + fs::current_path(original_path); + std::ofstream fstream(ast_output_file); + if (!fstream.is_open()) { + PRINTB("Can't open file \"%s\" for export", ast_output_file); + } + else { + fs::current_path(fparent); // Force exported filenames to be relative to document path + fstream << root_module->dump("", "") << "\n"; + fstream.close(); + } + } + else if (term_output_file) { + std::vector<shared_ptr<CSGTerm> > highlight_terms; + std::vector<shared_ptr<CSGTerm> > background_terms; + + CSGTermEvaluator csgrenderer(tree, &psevaluator); + shared_ptr<CSGTerm> root_raw_term = csgrenderer.evaluateCSGTerm(*root_node, highlight_terms, background_terms); + + fs::current_path(original_path); + std::ofstream fstream(term_output_file); + if (!fstream.is_open()) { + PRINTB("Can't open file \"%s\" for export", term_output_file); + } + else { + if (!root_raw_term) + fstream << "No top-level CSG object\n"; + else { + fstream << root_raw_term->dump() << "\n"; + } + fstream.close(); + } + } else { #ifdef ENABLE_CGAL - if (png_output_file && !vm.count("render")) { - // OpenCSG png -> don't necessarily need CGALMesh evaluation + if ((null_output || png_output_file) && !vm.count("render")) { + // null output or OpenCSG png -> don't necessarily need CGALMesh evaluation } else { root_N = cgalevaluator.evaluateCGALMesh(*tree.root()); } diff --git a/src/value.cc b/src/value.cc index 8fbde44..a281409 100644 --- a/src/value.cc +++ b/src/value.cc @@ -182,12 +182,15 @@ public: } std::string operator()(const double &op1) const { -#ifdef OPENSCAD_TESTING - // Quick and dirty hack to work around floating point rounding differences - // across platforms for testing purposes. if (op1 != op1) { // Fix for avoiding nan vs. -nan across platforms return "nan"; } + if (op1 == 0) { + return "0"; // Don't return -0 (exactly -0 and 0 equal 0) + } +#ifdef OPENSCAD_TESTING + // Quick and dirty hack to work around floating point rounding differences + // across platforms for testing purposes. std::stringstream tmp; tmp.precision(12); tmp.setf(std::ios_base::fixed); diff --git a/tests/.gitignore b/tests/.gitignore index 5033bd2..8860ee7 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -11,18 +11,11 @@ out.png /cmake_install.cmake /lexer.cpp /parser_yacc.c -/cgalpngtest -/cgaltest -/csgtermtest /csgtexttest -/dumptest -/echotest -/opencsgtest /throwntogethertest /cgalstlsanitytest /cgalcachetest /modulecachetest -/moduledumptest /test_pretty_print /sysinfo.txt -/CTestCustom.cmake
\ No newline at end of file +/CTestCustom.cmake diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 90d4998..0282622 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -522,24 +522,6 @@ add_library(tests-offscreen STATIC ${OFFSCREEN_SOURCES}) set(TESTS-NOCGAL-LIBRARIES ${TESTS-CORE-LIBRARIES}) # -# echotest -# -add_executable(echotest echotest.cc) -target_link_libraries(echotest tests-nocgal ${TESTS-NOCGAL-LIBRARIES}) - -# -# dumptest -# -add_executable(dumptest dumptest.cc) -target_link_libraries(dumptest tests-nocgal ${TESTS-NOCGAL-LIBRARIES}) - -# -# moduledumptest -# -add_executable(moduledumptest moduledumptest.cc) -target_link_libraries(moduledumptest tests-nocgal ${TESTS-NOCGAL-LIBRARIES}) - -# # modulecachetest # add_executable(modulecachetest modulecachetest.cc) @@ -552,19 +534,6 @@ add_executable(csgtexttest csgtexttest.cc CSGTextRenderer.cc CSGTextCache.cc) target_link_libraries(csgtexttest tests-nocgal ${TESTS-NOCGAL-LIBRARIES}) # -# csgtermtest -# -add_executable(csgtermtest csgtermtest.cc ../src/CSGTermEvaluator.cc) -target_link_libraries(csgtermtest tests-nocgal ${TESTS-NOCGAL-LIBRARIES}) - -# -# cgaltest -# -add_executable(cgaltest cgaltest.cc) -set_target_properties(cgaltest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}") -target_link_libraries(cgaltest tests-cgal ${TESTS-CGAL-LIBRARIES}) - -# # cgalstlsanitytest # add_executable(cgalstlsanitytest cgalstlsanitytest.cc) @@ -572,13 +541,6 @@ set_target_properties(cgalstlsanitytest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL target_link_libraries(cgalstlsanitytest tests-cgal ${TESTS-CGAL-LIBRARIES}) # -# cgalpngtest -# -add_executable(cgalpngtest cgalpngtest.cc ../src/CGALRenderer.cc ../src/renderer.cc ../src/rendersettings.cc) -set_target_properties(cgalpngtest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}") -target_link_libraries(cgalpngtest tests-offscreen tests-cgal ${OPENCSG_LIBRARY} ${TESTS-CGAL-LIBRARIES} ${GLEW_LIBRARY} ${COCOA_LIBRARY}) - -# # cgalcachetest # add_executable(cgalcachetest cgalcachetest.cc) @@ -586,14 +548,6 @@ set_target_properties(cgalcachetest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL ${CG target_link_libraries(cgalcachetest tests-cgal ${TESTS-CGAL-LIBRARIES} ${GLEW_LIBRARY} ${COCOA_LIBRARY}) # -# opencsgtest -# - -add_executable(opencsgtest opencsgtest.cc csgtestcore.cc ../src/OpenCSGRenderer.cc ../src/ThrownTogetherRenderer.cc ../src/renderer.cc ../src/rendersettings.cc) -set_target_properties(opencsgtest PROPERTIES COMPILE_FLAGS "-DENABLE_OPENCSG -DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}") -target_link_libraries(opencsgtest tests-offscreen tests-cgal ${OPENCSG_LIBRARY} ${TESTS-CGAL-LIBRARIES} ${GLEW_LIBRARY} ${COCOA_LIBRARY}) - -# # throwntogethertest # @@ -864,15 +818,7 @@ set_test_config(Heavy opencsgtest_minkowski3-tests cgalpngtest_for-tests cgalpngtest_for-nested-tests cgalpngtest_intersection-tests - cgalpngtest_text-search-test - openscad-cgalpng_projection-tests - openscad-cgalpng_rotate_extrude-tests - openscad-cgalpng_surface-tests - openscad-cgalpng_sphere-tests - openscad-cgalpng_minkowski3-tests - openscad-cgalpng_for-tests - openscad-cgalpng_for-nested-tests - openscad-cgalpng_intersection-tests) + cgalpngtest_text-search-test) foreach(FILE ${EXAMPLE_FILES}) get_test_fullname(cgalpngtest ${FILE} TEST_FULLNAME) @@ -931,21 +877,21 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake ${TMP}) # Add tests add_cmdline_test(echotest SUFFIX txt FILES ${ECHO_FILES}) -add_cmdline_test(dumptest SUFFIX txt FILES ${DUMPTEST_FILES}) -add_cmdline_test(moduledumptest SUFFIX txt FILES +add_cmdline_test(dumptest SUFFIX csg FILES ${DUMPTEST_FILES}) +add_cmdline_test(moduledumptest EXE ${GUI_BINPATH} ARGS -o SUFFIX ast FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allmodules.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allfunctions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allexpressions.scad) -add_cmdline_test(csgtexttest SUFFIX txt FILES +add_cmdline_test(csgtexttest SUFFIX txt FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allexpressions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allfunctions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allmodules.scad) -add_cmdline_test(csgtermtest SUFFIX txt FILES +add_cmdline_test(csgtermtest EXE ${GUI_BINPATH} ARGS -o SUFFIX term FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allexpressions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allfunctions.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/misc/allmodules.scad) -add_cmdline_test(cgalpngtest SUFFIX png FILES ${CGALPNGTEST_FILES}) -add_cmdline_test(opencsgtest SUFFIX png FILES ${OPENCSGTEST_FILES}) +add_cmdline_test(cgalpngtest EXE ${GUI_BINPATH} ARGS --render -o SUFFIX png FILES ${CGALPNGTEST_FILES}) +add_cmdline_test(opencsgtest EXE ${GUI_BINPATH} ARGS -o SUFFIX png FILES ${OPENCSGTEST_FILES}) add_cmdline_test(throwntogethertest SUFFIX png FILES ${THROWNTOGETHERTEST_FILES}) # FIXME: We don't actually need to compare the output of cgalstlsanitytest # with anything. It's self-contained and returns != 0 on error @@ -960,13 +906,6 @@ add_cmdline_test(openscad-nonascii EXE ${GUI_BINPATH} ARGS -o # Image output -add_cmdline_test(openscad-cgalpng EXE ${GUI_BINPATH} ARGS --render -o - EXPECTEDDIR cgalpngtest SUFFIX png - FILES ${OPENSCAD-CGALPNG_FILES}) -add_cmdline_test(openscad-csgpng EXE ${GUI_BINPATH} ARGS -o - EXPECTEDDIR opencsgtest SUFFIX png - FILES ${OPENSCAD-CGALPNG_FILES}) - add_cmdline_test(openscad-imgsize EXE ${GUI_BINPATH} ARGS --imgsize 100,100 -o SUFFIX png diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc deleted file mode 100644 index 7b958de..0000000 --- a/tests/cgalpngtest.cc +++ /dev/null @@ -1,175 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "polyset.h" -#include "modcontext.h" -#include "value.h" -#include "export.h" -#include "builtin.h" -#include "Tree.h" -#include "CGAL_Nef_polyhedron.h" -#include "CGALEvaluator.h" -#include "PolySetCGALEvaluator.h" -#include "CGALRenderer.h" -#include "CGAL_renderer.h" -#include "cgal.h" -#include "OffscreenView.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <iostream> -#include <assert.h> -#include <sstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::string; - -void cgalTree(Tree &tree) -{ - assert(tree.root()); - - CGALEvaluator evaluator(tree); - Traverser evaluate(evaluator, *tree.root(), Traverser::PRE_AND_POSTFIX); - evaluate.execute(); -} - -struct CsgInfo -{ - OffscreenView *glview; -}; - - -extern Vector3d getBoundingCenter(BoundingBox bbox); -extern double getBoundingRadius(BoundingBox bbox); - - -int main(int argc, char **argv) -{ - if (argc != 3) { - fprintf(stderr, "Usage: %s <file.scad> <output.png>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - const char *outfile = argv[2]; - -#ifdef ENABLE_CGAL - // Causes CGAL errors to abort directly instead of throwing exceptions - // (which we don't catch). This gives us stack traces without rerunning in gdb. - CGAL::set_error_behaviour(CGAL::ABORT); -#endif - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy( fs::current_path() ); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - fs::path fpath = boosty::absolute(fs::path(filename)); - fs::path fparent = fpath.parent_path(); - fs::current_path(fparent); - top_ctx.setDocumentPath(fparent.string()); - - AbstractNode::resetIndexCounter(); - AbstractNode *absolute_root_node = root_module->instantiate(&top_ctx, &root_inst); - AbstractNode *root_node; - // Do we have an explicit root node (! modifier)? - if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node; - - Tree tree(root_node); - - CsgInfo csgInfo; - CGALEvaluator cgalevaluator(tree); - PolySetCGALEvaluator psevaluator(cgalevaluator); - - CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node); - - current_path(original_path); - -// match with csgtest ends - try { - csgInfo.glview = new OffscreenView(512,512); - } catch (int error) { - fprintf(stderr,"Can't create OpenGL OffscreenView. Code: %i. Exiting.\n", error); - exit(1); - } - - CGALRenderer cgalRenderer(N); - - BoundingBox bbox; - if (cgalRenderer.polyhedron) { - CGAL::Bbox_3 cgalbbox = cgalRenderer.polyhedron->bbox(); - bbox = BoundingBox(Vector3d(cgalbbox.xmin(), cgalbbox.ymin(), cgalbbox.zmin()), - Vector3d(cgalbbox.xmax(), cgalbbox.ymax(), cgalbbox.zmax())); - } - else if (cgalRenderer.polyset) { - bbox = cgalRenderer.polyset->getBoundingBox(); - } - - Camera cam(Camera::VECTOR); - cam.center = getBoundingCenter(bbox); - double radius = getBoundingRadius(bbox); - - Vector3d cameradir(1, 1, -0.5); - cam.eye = cam.center - radius*2*cameradir; - csgInfo.glview->setCamera( cam ); - - csgInfo.glview->setRenderer(&cgalRenderer); - csgInfo.glview->paintGL(); - csgInfo.glview->save(outfile); - - delete root_node; - delete root_module; - - Builtins::instance(true); - - return 0; -} diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc deleted file mode 100644 index d750da9..0000000 --- a/tests/cgaltest.cc +++ /dev/null @@ -1,120 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "modcontext.h" -#include "value.h" -#include "export.h" -#include "builtin.h" -#include "Tree.h" -#include "CGAL_Nef_polyhedron.h" -#include "CGALEvaluator.h" -#include "PolySetCGALEvaluator.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <iostream> -#include <assert.h> -#include <sstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::string; - -void cgalTree(Tree &tree) -{ - assert(tree.root()); - - CGALEvaluator evaluator(tree); - Traverser evaluate(evaluator, *tree.root(), Traverser::PRE_AND_POSTFIX); - evaluate.execute(); -} - -int main(int argc, char **argv) -{ - if (argc != 2) { - fprintf(stderr, "Usage: %s <file.scad>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy( fs::current_path() ); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - if (fs::path(filename).has_parent_path()) { - fs::current_path(fs::path(filename).parent_path()); - } - - AbstractNode::resetIndexCounter(); - AbstractNode *absolute_root_node = root_module->instantiate(&top_ctx, &root_inst); - AbstractNode *root_node; - // Do we have an explicit root node (! modifier)? - if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node; - - Tree tree(root_node); - - CGALEvaluator cgalevaluator(tree); - PolySetCGALEvaluator psevaluator(cgalevaluator); - - CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node); - - current_path(original_path); - if (!N.isNull()) { - export_stl(&N, std::cout); - } - - Builtins::instance(true); - - return 0; -} diff --git a/tests/csgtermtest.cc b/tests/csgtermtest.cc deleted file mode 100644 index 1460bbd..0000000 --- a/tests/csgtermtest.cc +++ /dev/null @@ -1,135 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "PolySetEvaluator.h" -#include "CSGTermEvaluator.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "modcontext.h" -#include "value.h" -#include "export.h" -#include "builtin.h" -#include "Tree.h" -#include "csgterm.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <assert.h> -#include <iostream> -#include <sstream> -#include <fstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::cout; - -int main(int argc, char **argv) -{ - if (argc != 3) { - fprintf(stderr, "Usage: %s <file.scad> <output.txt>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - const char *outfilename = argv[2]; - - int rc = 0; - - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy( fs::current_path() ); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - const AbstractNode *root_node; - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - if (fs::path(filename).has_parent_path()) { - fs::current_path(fs::path(filename).parent_path()); - } - - AbstractNode::resetIndexCounter(); - root_node = root_module->instantiate(&top_ctx, &root_inst); - - Tree tree(root_node); - -// cout << tree.getString(*root_node) << "\n"; - - std::vector<shared_ptr<CSGTerm> > highlights; - std::vector<shared_ptr<CSGTerm> > background; - PolySetEvaluator psevaluator(tree); - CSGTermEvaluator evaluator(tree, &psevaluator); - shared_ptr<CSGTerm> root_term = evaluator.evaluateCSGTerm(*root_node, highlights, background); - - // cout << "Stored terms: " << evaluator.stored_term.size() << "\n"; - // for (map<int, class CSGTerm*>::iterator iter = evaluator.stored_term.begin(); - // iter != evaluator.stored_term.end(); - // iter++) { - // cout << iter->first << ":" << (iter->second ? iter->second->label : "NULL") << "\n"; - // } - - // if (evaluator.background) cout << "Background terms: " << evaluator.background->size() << "\n"; - // if (evaluator.highlights) cout << "Highlights terms: " << evaluator.highlights->size() << "\n"; - - current_path(original_path); - std::ofstream outfile; - outfile.open(outfilename); - if (root_term) { - outfile << root_term->dump() << "\n"; - } - else { - outfile << "No top-level CSG object\n"; - } - outfile.close(); - - delete root_node; - delete root_module; - - Builtins::instance(true); - - return rc; -} diff --git a/tests/dumptest b/tests/dumptest new file mode 100755 index 0000000..0c60099 --- /dev/null +++ b/tests/dumptest @@ -0,0 +1,7 @@ +#!/bin/sh + +openscad $1 -o $2 + +sed 's/, timestamp = [0-9]*//' -i $2 + +sed 's/-\?[0-9].[0-9]*e-[0-9]\{2,\}/0/g' -i $2 diff --git a/tests/dumptest.cc b/tests/dumptest.cc deleted file mode 100644 index 4477703..0000000 --- a/tests/dumptest.cc +++ /dev/null @@ -1,161 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "modcontext.h" -#include "value.h" -#include "export.h" -#include "builtin.h" -#include "Tree.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <assert.h> -#include <iostream> -#include <sstream> -#include <fstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::string; - -string dumptree(const Tree &tree, const AbstractNode &node) -{ - std::stringstream str; - const std::vector<AbstractNode*> &children = node.getChildren(); - for (std::vector<AbstractNode*>::const_iterator iter = children.begin(); iter != children.end(); iter++) { - str << tree.getString(**iter) << "\n"; - } - return str.str(); -} - -int main(int argc, char **argv) -{ -#ifdef _MSC_VER - _set_output_format(_TWO_DIGIT_EXPONENT); -#endif - if (argc != 3) { - fprintf(stderr, "Usage: %s <file.scad> <output.txt>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - const char *outfilename = argv[2]; - int rc = 0; - - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy(fs::current_path()); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - AbstractNode *root_node; - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - fs::path fpath = boosty::absolute(fs::path(filename)); - fs::path fparent = fpath.parent_path(); - fs::current_path(fparent); - top_ctx.setDocumentPath(fparent.string()); - - AbstractNode::resetIndexCounter(); - root_node = root_module->instantiate(&top_ctx, &root_inst); - - Tree tree; - tree.setRoot(root_node); - - string dumpstdstr = dumptree(tree, *root_node); - string dumpstdstr_cached = dumptree(tree, *root_node); - if (dumpstdstr != dumpstdstr_cached) { - fprintf(stderr, "Error: Dump cached failed\n"); - exit(1); - } - - fs::current_path(original_path); - std::ofstream outfile; - outfile.open(outfilename); - if (!outfile.is_open()) { - fprintf(stderr, "Error: Unable to open output file %s\n", outfilename); - exit(1); - } - std::cout << "Opened " << outfilename << "\n"; - outfile << dumpstdstr << "\n"; - outfile.close(); - if (outfile.fail()) fprintf(stderr, "Failed to close file\n"); - - delete root_node; - delete root_module; - - fs::current_path(original_path); - root_module = parsefile(outfilename, fparent.string().c_str()); - if (!root_module) { - fprintf(stderr, "Error: Unable to read back dumped file\n"); - exit(1); - } - - AbstractNode::resetIndexCounter(); - root_node = root_module->instantiate(&top_ctx, &root_inst); - - tree.setRoot(root_node); - - fs::current_path(fparent); - - string readbackstr = dumptree(tree, *root_node); - if (dumpstdstr != readbackstr) { - fprintf(stderr, "Error: Readback is different from original dump:\n"); - fprintf(stderr, "Original:\n%s", dumpstdstr.c_str()); - fprintf(stderr, "Readback:\n%s", readbackstr.c_str()); - exit(1); - } - - delete root_node; - delete root_module; - - Builtins::instance(true); - - return rc; -} diff --git a/tests/echotest b/tests/echotest new file mode 100755 index 0000000..9e29878 --- /dev/null +++ b/tests/echotest @@ -0,0 +1,5 @@ +#!/bin/sh + +openscad $1 -o null 2> $2 + +sed 's/-\?[0-9].[0-9]*e-[0-9]\{2,\}/0/g' -i $2 diff --git a/tests/echotest.cc b/tests/echotest.cc deleted file mode 100644 index 3051751..0000000 --- a/tests/echotest.cc +++ /dev/null @@ -1,116 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "modcontext.h" -#include "value.h" -#include "builtin.h" -#include "printutils.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <assert.h> -#include <iostream> -#include <sstream> -#include <fstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::string; - -static void outfile_handler(const std::string &msg, void *userdata) { - std::ostream *str = static_cast<std::ostream*>(userdata); - *str << msg << std::endl; -} - -int main(int argc, char **argv) -{ -#ifdef _MSC_VER - _set_output_format(_TWO_DIGIT_EXPONENT); -#endif - - if (argc != 3) { - fprintf(stderr, "Usage: %s <file.scad> <output.txt>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - const char *outfile = argv[2]; - - int rc = 0; - - std::ofstream ofile(outfile); - if (!ofile.good()) { - std::cerr << "Unable to open output file\n"; - return 0; - } - set_output_handler(&outfile_handler, &ofile); - - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy( fs::current_path() ); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - AbstractNode *root_node; - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - if (fs::path(filename).has_parent_path()) { - fs::current_path(fs::path(filename).parent_path()); - } - - AbstractNode::resetIndexCounter(); - root_node = root_module->instantiate(&top_ctx, &root_inst); - - delete root_node; - delete root_module; - - Builtins::instance(true); - ofile.close(); - return rc; -} diff --git a/tests/moduledumptest.cc b/tests/moduledumptest.cc deleted file mode 100644 index 5925d03..0000000 --- a/tests/moduledumptest.cc +++ /dev/null @@ -1,118 +0,0 @@ -/* - * OpenSCAD (www.openscad.org) - * Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - * Marius Kintel <marius@kintel.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * As a special exception, you have permission to link this program - * with the CGAL library and distribute executables, as long as you - * follow the requirements of the GNU GPL in regard to all of the - * software in the executable aside from CGAL. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tests-common.h" -#include "openscad.h" -#include "parsersettings.h" -#include "node.h" -#include "module.h" -#include "modcontext.h" -#include "value.h" -#include "export.h" -#include "builtin.h" -#include "Tree.h" - -#ifndef _MSC_VER -#include <getopt.h> -#endif -#include <assert.h> -#include <iostream> -#include <sstream> -#include <fstream> - -#include <boost/filesystem.hpp> -namespace fs = boost::filesystem; -#include "boosty.h" - -std::string commandline_commands; -std::string currentdir; - -using std::string; - -string dumptree(const Tree &tree, const AbstractNode &node) -{ - std::stringstream str; - const std::vector<AbstractNode*> &children = node.getChildren(); - for (std::vector<AbstractNode*>::const_iterator iter = children.begin(); iter != children.end(); iter++) { - str << tree.getString(**iter) << "\n"; - } - return str.str(); -} - -int main(int argc, char **argv) -{ -#ifdef _MSC_VER - _set_output_format(_TWO_DIGIT_EXPONENT); -#endif - if (argc != 3) { - fprintf(stderr, "Usage: %s <file.scad> <output.txt>\n", argv[0]); - exit(1); - } - - const char *filename = argv[1]; - const char *outfilename = argv[2]; - int rc = 0; - - Builtins::instance()->initialize(); - - fs::path original_path = fs::current_path(); - - currentdir = boosty::stringy(fs::current_path()); - - parser_init(boosty::stringy(fs::path(argv[0]).branch_path())); - add_librarydir(boosty::stringy(fs::path(argv[0]).branch_path() / "../libraries")); - - ModuleContext top_ctx; - top_ctx.registerBuiltin(); - - FileModule *root_module; - ModuleInstantiation root_inst("group"); - - root_module = parsefile(filename); - if (!root_module) { - exit(1); - } - - string dumpstdstr = root_module->dump("", ""); - - fs::current_path(original_path); - std::ofstream outfile; - outfile.open(outfilename); - if (!outfile.is_open()) { - fprintf(stderr, "Error: Unable to open output file %s\n", outfilename); - exit(1); - } - std::cout << "Opened " << outfilename << "\n"; - outfile << dumpstdstr << "\n"; - outfile.close(); - if (outfile.fail()) fprintf(stderr, "Failed to close file\n"); - - delete root_module; - - Builtins::instance(true); - - return rc; -} diff --git a/tests/opencsgtest.cc b/tests/opencsgtest.cc deleted file mode 100644 index 06cfe86..0000000 --- a/tests/opencsgtest.cc +++ /dev/null @@ -1,5 +0,0 @@ -#include "csgtestcore.h" - -int main(int argc, char* argv[]) { - return csgtestcore(argc, argv, TEST_OPENCSG); -} diff --git a/tests/regression/csgtermtest/allexpressions-expected.txt b/tests/regression/csgtermtest/allexpressions-expected.term index a40cf60..a40cf60 100644 --- a/tests/regression/csgtermtest/allexpressions-expected.txt +++ b/tests/regression/csgtermtest/allexpressions-expected.term diff --git a/tests/regression/csgtermtest/allfunctions-expected.txt b/tests/regression/csgtermtest/allfunctions-expected.term index a40cf60..a40cf60 100644 --- a/tests/regression/csgtermtest/allfunctions-expected.txt +++ b/tests/regression/csgtermtest/allfunctions-expected.term diff --git a/tests/regression/csgtermtest/allmodules-expected.txt b/tests/regression/csgtermtest/allmodules-expected.term index b802c81..b802c81 100644 --- a/tests/regression/csgtermtest/allmodules-expected.txt +++ b/tests/regression/csgtermtest/allmodules-expected.term diff --git a/tests/regression/dumptest/2d-3d-expected.txt b/tests/regression/dumptest/2d-3d-expected.csg index 5789ed7..a2f6422 100644 --- a/tests/regression/dumptest/2d-3d-expected.txt +++ b/tests/regression/dumptest/2d-3d-expected.csg @@ -1,5 +1,6 @@ +group() { cube(size = [1, 1, 1], center = false); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { square(size = [1, 1], center = false); } - +} diff --git a/tests/regression/dumptest/allexpressions-expected.csg b/tests/regression/dumptest/allexpressions-expected.csg new file mode 100644 index 0000000..0a04719 --- /dev/null +++ b/tests/regression/dumptest/allexpressions-expected.csg @@ -0,0 +1 @@ +group(); diff --git a/tests/regression/dumptest/allexpressions-expected.txt b/tests/regression/dumptest/allexpressions-expected.txt deleted file mode 100644 index 8b13789..0000000 --- a/tests/regression/dumptest/allexpressions-expected.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tests/regression/dumptest/allfunctions-expected.csg b/tests/regression/dumptest/allfunctions-expected.csg new file mode 100644 index 0000000..0a04719 --- /dev/null +++ b/tests/regression/dumptest/allfunctions-expected.csg @@ -0,0 +1 @@ +group(); diff --git a/tests/regression/dumptest/allfunctions-expected.txt b/tests/regression/dumptest/allfunctions-expected.txt deleted file mode 100644 index 8b13789..0000000 --- a/tests/regression/dumptest/allfunctions-expected.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tests/regression/dumptest/allmodules-expected.txt b/tests/regression/dumptest/allmodules-expected.csg index 74bf191..42bf4fa 100644 --- a/tests/regression/dumptest/allmodules-expected.txt +++ b/tests/regression/dumptest/allmodules-expected.csg @@ -1,3 +1,4 @@ +group() { minkowski(convexity = 0); glide(path = undef, convexity = 0); subdiv(level = 1, convexity = 0); @@ -38,4 +39,4 @@ multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); color([-1, -1, -1, 1]); - +} diff --git a/tests/regression/dumptest/assign-expected.csg b/tests/regression/dumptest/assign-expected.csg new file mode 100644 index 0000000..434cc8f --- /dev/null +++ b/tests/regression/dumptest/assign-expected.csg @@ -0,0 +1,3 @@ +group() { + group(); +} diff --git a/tests/regression/dumptest/assign-tests-expected.txt b/tests/regression/dumptest/assign-tests-expected.csg index f9db497..df147fe 100644 --- a/tests/regression/dumptest/assign-tests-expected.txt +++ b/tests/regression/dumptest/assign-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [0, 0, 0], center = false); @@ -48,4 +49,4 @@ } } } - +} diff --git a/tests/regression/dumptest/background-modifier-expected.txt b/tests/regression/dumptest/background-modifier-expected.csg index 5861bef..4d6d019 100644 --- a/tests/regression/dumptest/background-modifier-expected.txt +++ b/tests/regression/dumptest/background-modifier-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); %cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); @@ -17,4 +18,4 @@ } } } - +} diff --git a/tests/regression/dumptest/child-background-expected.txt b/tests/regression/dumptest/child-background-expected.csg index c3e8288..fa0286c 100644 --- a/tests/regression/dumptest/child-background-expected.txt +++ b/tests/regression/dumptest/child-background-expected.csg @@ -1,7 +1,8 @@ +group() { difference() { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); } } - +} diff --git a/tests/regression/dumptest/child-child-test-expected.txt b/tests/regression/dumptest/child-child-test-expected.csg index 13f098d..2480558 100644 --- a/tests/regression/dumptest/child-child-test-expected.txt +++ b/tests/regression/dumptest/child-child-test-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 5, r2 = 5, center = false); @@ -56,4 +57,4 @@ } } } - +} diff --git a/tests/regression/dumptest/child-expected.csg b/tests/regression/dumptest/child-expected.csg new file mode 100644 index 0000000..0a04719 --- /dev/null +++ b/tests/regression/dumptest/child-expected.csg @@ -0,0 +1 @@ +group(); diff --git a/tests/regression/dumptest/child-tests-expected.txt b/tests/regression/dumptest/child-tests-expected.csg index e1a7557..62363ff 100644 --- a/tests/regression/dumptest/child-tests-expected.txt +++ b/tests/regression/dumptest/child-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -49,4 +50,4 @@ } } } - +} diff --git a/tests/regression/dumptest/circle-expected.csg b/tests/regression/dumptest/circle-expected.csg new file mode 100644 index 0000000..19c862b --- /dev/null +++ b/tests/regression/dumptest/circle-expected.csg @@ -0,0 +1,3 @@ +group() { + circle($fn = 0, $fa = 12, $fs = 2, r = 1); +} diff --git a/tests/regression/dumptest/circle-tests-expected.txt b/tests/regression/dumptest/circle-tests-expected.csg index 28359d8..b522850 100644 --- a/tests/regression/dumptest/circle-tests-expected.txt +++ b/tests/regression/dumptest/circle-tests-expected.csg @@ -1,3 +1,4 @@ +group() { circle($fn = 0, $fa = 12, $fs = 2, r = 1); multmatrix([[1, 0, 0, 0], [0, 1, 0, 3], [0, 0, 1, 0], [0, 0, 0, 1]]) { circle($fn = 0, $fa = 12, $fs = 2, r = 1); @@ -29,4 +30,4 @@ 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/color-expected.csg b/tests/regression/dumptest/color-expected.csg new file mode 100644 index 0000000..ef862fc --- /dev/null +++ b/tests/regression/dumptest/color-expected.csg @@ -0,0 +1,3 @@ +group() { + color([-1, -1, -1, 1]); +} diff --git a/tests/regression/dumptest/color-tests-expected.txt b/tests/regression/dumptest/color-tests-expected.csg index 95fe012..a65fdc6 100644 --- a/tests/regression/dumptest/color-tests-expected.txt +++ b/tests/regression/dumptest/color-tests-expected.csg @@ -1,3 +1,4 @@ +group() { color([-1, -1, -1, 1]); color([-1, -1, -1, 1]); multmatrix([[1, 0, 0, 12], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -61,4 +62,4 @@ } } } - +} diff --git a/tests/regression/dumptest/control-hull-dimension-expected.txt b/tests/regression/dumptest/control-hull-dimension-expected.csg index be2e4ee..720ebe7 100644 --- a/tests/regression/dumptest/control-hull-dimension-expected.txt +++ b/tests/regression/dumptest/control-hull-dimension-expected.csg @@ -1,5 +1,6 @@ +group() { hull() { circle($fn = 0, $fa = 12, $fs = 2, r = 1); group(); } - +} diff --git a/tests/regression/dumptest/cube-expected.csg b/tests/regression/dumptest/cube-expected.csg new file mode 100644 index 0000000..91dc5fc --- /dev/null +++ b/tests/regression/dumptest/cube-expected.csg @@ -0,0 +1,3 @@ +group() { + cube(size = [1, 1, 1], center = false); +} diff --git a/tests/regression/dumptest/cube-tests-expected.txt b/tests/regression/dumptest/cube-tests-expected.csg index 697c433..848bd27 100644 --- a/tests/regression/dumptest/cube-tests-expected.txt +++ b/tests/regression/dumptest/cube-tests-expected.csg @@ -1,3 +1,4 @@ +group() { cube(size = [1, 1, 1], center = false); cube(size = [1, 1, 0], center = false); cube(size = [1, 0, 1], center = false); @@ -9,4 +10,4 @@ multmatrix([[1, 0, 0, 6], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [2, 4, 2], center = true); } - +} diff --git a/tests/regression/dumptest/cylinder-expected.csg b/tests/regression/dumptest/cylinder-expected.csg new file mode 100644 index 0000000..aa99b6c --- /dev/null +++ b/tests/regression/dumptest/cylinder-expected.csg @@ -0,0 +1,3 @@ +group() { + cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 1, r2 = 1, center = false); +} diff --git a/tests/regression/dumptest/cylinder-tests-expected.txt b/tests/regression/dumptest/cylinder-tests-expected.csg index c47ffe1..5c57bca 100644 --- a/tests/regression/dumptest/cylinder-tests-expected.txt +++ b/tests/regression/dumptest/cylinder-tests-expected.csg @@ -1,3 +1,4 @@ +group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 1, r2 = 1, center = false); multmatrix([[1, 0, 0, 1], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 0, r2 = 0, center = false); @@ -35,4 +36,4 @@ multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { 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/difference-expected.csg b/tests/regression/dumptest/difference-expected.csg new file mode 100644 index 0000000..09b977f --- /dev/null +++ b/tests/regression/dumptest/difference-expected.csg @@ -0,0 +1,3 @@ +group() { + difference(); +} diff --git a/tests/regression/dumptest/difference-tests-expected.txt b/tests/regression/dumptest/difference-tests-expected.csg index 30dd001..f2c1419 100644 --- a/tests/regression/dumptest/difference-tests-expected.txt +++ b/tests/regression/dumptest/difference-tests-expected.csg @@ -1,3 +1,4 @@ +group() { difference(); difference(); difference() { @@ -35,4 +36,4 @@ } } } - +} diff --git a/tests/regression/dumptest/disable-modifier-expected.txt b/tests/regression/dumptest/disable-modifier-expected.csg index a237a48..652021e 100644 --- a/tests/regression/dumptest/disable-modifier-expected.txt +++ b/tests/regression/dumptest/disable-modifier-expected.csg @@ -1,4 +1,5 @@ +group() { difference() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); } - +} diff --git a/tests/regression/dumptest/dxf_linear_extrude-expected.csg b/tests/regression/dumptest/dxf_linear_extrude-expected.csg new file mode 100644 index 0000000..5404abf --- /dev/null +++ b/tests/regression/dumptest/dxf_linear_extrude-expected.csg @@ -0,0 +1,3 @@ +group() { + linear_extrude(height = 100, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/dxf_rotate_extrude-expected.csg b/tests/regression/dumptest/dxf_rotate_extrude-expected.csg new file mode 100644 index 0000000..54f06b3 --- /dev/null +++ b/tests/regression/dumptest/dxf_rotate_extrude-expected.csg @@ -0,0 +1,3 @@ +group() { + rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/echo-expected.csg b/tests/regression/dumptest/echo-expected.csg new file mode 100644 index 0000000..434cc8f --- /dev/null +++ b/tests/regression/dumptest/echo-expected.csg @@ -0,0 +1,3 @@ +group() { + group(); +} diff --git a/tests/regression/dumptest/escape-test-expected.txt b/tests/regression/dumptest/escape-test-expected.csg index af7f3e7..7303df8 100644 --- a/tests/regression/dumptest/escape-test-expected.txt +++ b/tests/regression/dumptest/escape-test-expected.csg @@ -1,2 +1,3 @@ +group() { import(file = "B-\" C-\t D-\n E-'", layer = "A:\\ B:\" C:\t D:\n E:' F:\\\\", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); - +} diff --git a/tests/regression/dumptest/example001-expected.txt b/tests/regression/dumptest/example001-expected.csg index 7d92377..ab7e4e9 100644 --- a/tests/regression/dumptest/example001-expected.txt +++ b/tests/regression/dumptest/example001-expected.csg @@ -1,3 +1,4 @@ +group() { group() { difference() { sphere($fn = 0, $fa = 12, $fs = 1, r = 25); @@ -18,4 +19,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example002-expected.txt b/tests/regression/dumptest/example002-expected.csg index b3a79ce..a34dd2a 100644 --- a/tests/regression/dumptest/example002-expected.txt +++ b/tests/regression/dumptest/example002-expected.csg @@ -1,3 +1,4 @@ +group() { group() { intersection() { difference() { @@ -18,4 +19,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example003-expected.txt b/tests/regression/dumptest/example003-expected.csg index 480b032..4afbc17 100644 --- a/tests/regression/dumptest/example003-expected.txt +++ b/tests/regression/dumptest/example003-expected.csg @@ -1,3 +1,4 @@ +group() { group() { difference() { union() { @@ -13,4 +14,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example004-expected.txt b/tests/regression/dumptest/example004-expected.csg index 9fda7fe..606d9a6 100644 --- a/tests/regression/dumptest/example004-expected.txt +++ b/tests/regression/dumptest/example004-expected.csg @@ -1,7 +1,8 @@ +group() { group() { difference() { cube(size = [30, 30, 30], center = true); sphere($fn = 0, $fa = 12, $fs = 2, r = 20); } } - +} diff --git a/tests/regression/dumptest/example005-expected.txt b/tests/regression/dumptest/example005-expected.csg index e584aa7..99c017d 100644 --- a/tests/regression/dumptest/example005-expected.txt +++ b/tests/regression/dumptest/example005-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -120], [0, 0, 0, 1]]) { difference() { @@ -40,4 +41,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example006-expected.txt b/tests/regression/dumptest/example006-expected.csg index 467ccbc..72ac87b 100644 --- a/tests/regression/dumptest/example006-expected.txt +++ b/tests/regression/dumptest/example006-expected.csg @@ -1,3 +1,4 @@ +group() { group() { difference() { cube(size = [100, 100, 100], center = true); @@ -370,4 +371,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example007-expected.txt b/tests/regression/dumptest/example007-expected.csg index 4e130bd..cc4d4fa 100644 --- a/tests/regression/dumptest/example007-expected.txt +++ b/tests/regression/dumptest/example007-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -10], [0, 0, 0, 1]]) { group() { difference() { @@ -43,4 +44,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example008-expected.txt b/tests/regression/dumptest/example008-expected.csg index f6d4a4c..f9116e7 100644 --- a/tests/regression/dumptest/example008-expected.txt +++ b/tests/regression/dumptest/example008-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { intersection() { multmatrix([[1, 0, 0, -25], [0, 1, 0, -25], [0, 0, 1, -25], [0, 0, 0, 1]]) { @@ -25,4 +26,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example009-expected.txt b/tests/regression/dumptest/example009-expected.csg index b4c7bcf..5417d6b 100644 --- a/tests/regression/dumptest/example009-expected.txt +++ b/tests/regression/dumptest/example009-expected.csg @@ -1,3 +1,4 @@ +group() { %linear_extrude(height = 22, center = true, convexity = 10, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { import(file = "example009.dxf", layer = "body", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); } @@ -19,4 +20,4 @@ } rotate_extrude(file = "example009.dxf", layer = "fan_side", origin = [0, -40], scale = 1, convexity = 10, $fn = 0, $fa = 12, $fs = 2); } - +} diff --git a/tests/regression/dumptest/example010-expected.txt b/tests/regression/dumptest/example010-expected.csg index d0039ef..b8b49ce 100644 --- a/tests/regression/dumptest/example010-expected.txt +++ b/tests/regression/dumptest/example010-expected.csg @@ -1,7 +1,8 @@ +group() { intersection() { surface(file = "example010.dat", center = true); - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { surface(file = "example010.dat", center = true); } } - +} diff --git a/tests/regression/dumptest/example011-expected.txt b/tests/regression/dumptest/example011-expected.csg index de56dde..653a6cf 100644 --- a/tests/regression/dumptest/example011-expected.txt +++ b/tests/regression/dumptest/example011-expected.csg @@ -1,2 +1,3 @@ +group() { polyhedron(points = [[10, 0, 0], [0, 10, 0], [-10, 0, 0], [0, -10, 0], [0, 0, 10]], triangles = [[0, 1, 2, 3], [4, 1, 0], [4, 2, 1], [4, 3, 2], [4, 0, 3]], convexity = 1); - +} diff --git a/tests/regression/dumptest/example012-expected.txt b/tests/regression/dumptest/example012-expected.csg index 808ed51..2f07112 100644 --- a/tests/regression/dumptest/example012-expected.txt +++ b/tests/regression/dumptest/example012-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { sphere($fn = 0, $fa = 12, $fs = 1, r = 20); multmatrix([[1, 0, 0, -2.92], [0, 1, 0, 0.5], [0, 0, 1, 20], [0, 0, 0, 1]]) { @@ -6,4 +7,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example013-expected.txt b/tests/regression/dumptest/example013-expected.csg index d3ddd17..af686e2 100644 --- a/tests/regression/dumptest/example013-expected.txt +++ b/tests/regression/dumptest/example013-expected.csg @@ -1,3 +1,4 @@ +group() { intersection() { linear_extrude(height = 100, center = true, convexity = 3, $fn = 0, $fa = 12, $fs = 2) { import(file = "example013.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); @@ -13,4 +14,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example014-expected.csg b/tests/regression/dumptest/example014-expected.csg new file mode 100644 index 0000000..46f7d67 --- /dev/null +++ b/tests/regression/dumptest/example014-expected.csg @@ -0,0 +1,16 @@ +group() { + intersection() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.469846, 0.882564, 0.0180283, 0], [-0.813798, 0.44097, -0.378522, 0], [-0.34202, 0.163176, 0.925417, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.417218, 0.668356, -0.615817, 0], [0.642459, -0.696172, -0.320299, 0], [-0.642788, -0.262003, -0.719846, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.0190076, -0.601928, 0.798324, 0], [0.0292692, 0.798461, 0.601335, 0], [-0.999391, 0.0119363, 0.0327948, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + } +} diff --git a/tests/regression/dumptest/example014-expected.txt b/tests/regression/dumptest/example014-expected.txt deleted file mode 100644 index 2b9e21e..0000000 --- a/tests/regression/dumptest/example014-expected.txt +++ /dev/null @@ -1,15 +0,0 @@ - intersection() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.46984631039, 0.88256411925, 0.01802831123, 0], [-0.81379768134, 0.44096961053, -0.37852230637, 0], [-0.34202014332, 0.16317591116, 0.92541657839, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.41721770627, 0.66835566162, -0.61581660836, 0], [0.64245892818, -0.69617191219, -0.32029860173, 0], [-0.64278760968, -0.26200263022, -0.71984631039, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.0190076282, -0.60192849838, 0.7983237394, 0], [0.02926918072, 0.79846077351, 0.60133493846, 0], [-0.99939082701, 0.01193633086, 0.03279479952, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - } - diff --git a/tests/regression/dumptest/example015-expected.txt b/tests/regression/dumptest/example015-expected.csg index defedcd..b1da238 100644 --- a/tests/regression/dumptest/example015-expected.txt +++ b/tests/regression/dumptest/example015-expected.csg @@ -1,3 +1,4 @@ +group() { group() { difference() { multmatrix([[1, 0, 0, -35], [0, 1, 0, -35], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -11,14 +12,14 @@ square(size = [15, 15], center = true); } } - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -15], [0, 0, 1, 0], [0, 0, 0, 1]]) { square(size = [100, 30], center = false); } } } } - multmatrix([[0.70710678118, 0.70710678118, 0, 0], [-0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, 0.707107, 0, 0], [-0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0.7, 0, 0, 0], [0, 1.3, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { circle($fn = 0, $fa = 12, $fs = 2, r = 5); } @@ -26,4 +27,4 @@ } import(file = "example009.dxf", layer = "body", origin = [0, 0], scale = 2, convexity = 6, $fn = 0, $fa = 12, $fs = 2); } - +} diff --git a/tests/regression/dumptest/example016-expected.txt b/tests/regression/dumptest/example016-expected.csg index 401a9f9..a21c353 100644 --- a/tests/regression/dumptest/example016-expected.txt +++ b/tests/regression/dumptest/example016-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { group() { cube(size = [65, 28, 28], center = true); @@ -81,4 +82,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example017-expected.txt b/tests/regression/dumptest/example017-expected.csg index a27ed75..2603f40 100644 --- a/tests/regression/dumptest/example017-expected.txt +++ b/tests/regression/dumptest/example017-expected.csg @@ -1,3 +1,4 @@ +group() { group(); group(); group() { @@ -212,4 +213,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example018-expected.txt b/tests/regression/dumptest/example018-expected.csg index 9e6ee4f..bf23c87 100644 --- a/tests/regression/dumptest/example018-expected.txt +++ b/tests/regression/dumptest/example018-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, -150], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { @@ -11,13 +12,13 @@ multmatrix([[1, 0, 0, 50], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { cube(size = [45, 45, 45], center = true); - multmatrix([[1, 0, 0, 0], [0, 0.70710678118, -0.70710678118, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.707107, -0.707107, 0], [0, 0.707107, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, 0, 0.70710678118, 0], [0, 1, 0, 0], [-0.70710678118, 0, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, 0, 0.707107, 0], [0, 1, 0, 0], [-0.707107, 0, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } } @@ -37,13 +38,13 @@ multmatrix([[1, 0, 0, -50], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { cube(size = [45, 45, 45], center = true); - multmatrix([[1, 0, 0, 0], [0, 0.70710678118, -0.70710678118, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.707107, -0.707107, 0], [0, 0.707107, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, 0, 0.70710678118, 0], [0, 1, 0, 0], [-0.70710678118, 0, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, 0, 0.707107, 0], [0, 1, 0, 0], [-0.707107, 0, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } } @@ -63,13 +64,13 @@ multmatrix([[1, 0, 0, -150], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { cube(size = [45, 45, 45], center = true); - multmatrix([[1, 0, 0, 0], [0, 0.70710678118, -0.70710678118, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.707107, -0.707107, 0], [0, 0.707107, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, 0, 0.70710678118, 0], [0, 1, 0, 0], [-0.70710678118, 0, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, 0, 0.707107, 0], [0, 1, 0, 0], [-0.707107, 0, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } } @@ -101,13 +102,13 @@ multmatrix([[1, 0, 0, 150], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { cube(size = [45, 45, 45], center = true); - multmatrix([[1, 0, 0, 0], [0, 0.70710678118, -0.70710678118, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.707107, -0.707107, 0], [0, 0.707107, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, 0, 0.70710678118, 0], [0, 1, 0, 0], [-0.70710678118, 0, 0.70710678118, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, 0, 0.707107, 0], [0, 1, 0, 0], [-0.707107, 0, 0.707107, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } - multmatrix([[0.70710678118, -0.70710678118, 0, 0], [0.70710678118, 0.70710678118, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { cube(size = [50, 50, 50], center = true); } } @@ -116,4 +117,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example019-expected.txt b/tests/regression/dumptest/example019-expected.csg index 47406e6..8e078ed 100644 --- a/tests/regression/dumptest/example019-expected.txt +++ b/tests/regression/dumptest/example019-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, -100], [0, 1, 0, 0], [0, 0, 1, -30], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 45, r1 = 6, r2 = 2, center = false); @@ -123,4 +124,4 @@ cylinder($fn = 0, $fa = 12, $fs = 2, h = 55.2857, r1 = 6, r2 = 2, center = false); } } - +} diff --git a/tests/regression/dumptest/example020-expected.txt b/tests/regression/dumptest/example020-expected.csg index 733f1e1..07d4ff4 100644 --- a/tests/regression/dumptest/example020-expected.txt +++ b/tests/regression/dumptest/example020-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -30], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { linear_extrude(height = 100, center = false, convexity = 8, twist = 411.429, slices = 34, $fn = 0, $fa = 12, $fs = 1) { @@ -229,4 +230,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example021-expected.txt b/tests/regression/dumptest/example021-expected.csg index 8122a9d..964621c 100644 --- a/tests/regression/dumptest/example021-expected.txt +++ b/tests/regression/dumptest/example021-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -30], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { linear_extrude(height = 0.5, center = true, convexity = 1, $fn = 0, $fa = 12, $fs = 1) { @@ -264,4 +265,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example022-expected.txt b/tests/regression/dumptest/example022-expected.csg index bd200f8..9c9eaa2 100644 --- a/tests/regression/dumptest/example022-expected.txt +++ b/tests/regression/dumptest/example022-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -15], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { group() { @@ -123,4 +124,4 @@ } } } - +} diff --git a/tests/regression/dumptest/example024-expected.txt b/tests/regression/dumptest/example024-expected.csg index e7d6e8b..2d82935 100644 --- a/tests/regression/dumptest/example024-expected.txt +++ b/tests/regression/dumptest/example024-expected.csg @@ -1,5 +1,6 @@ +group() { difference() { - multmatrix([[0.81649658092, 0.40824829046, 0.40824829046, 0], [0, 0.70710678118, -0.70710678118, 0], [-0.57735026919, 0.57735026919, 0.57735026919, 0], [0, 0, 0, 1]]) { + multmatrix([[0.816497, 0.408248, 0.408248, 0], [0, 0.707107, -0.707107, 0], [-0.57735, 0.57735, 0.57735, 0], [0, 0, 0, 1]]) { group() { difference() { cube(size = [100, 100, 100], center = true); @@ -10,13 +11,13 @@ group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -24,7 +25,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -32,7 +33,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -40,7 +41,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -49,7 +50,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -57,7 +58,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -65,7 +66,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -73,7 +74,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -86,13 +87,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -100,7 +101,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -108,7 +109,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -116,7 +117,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -125,7 +126,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -133,7 +134,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -141,7 +142,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -149,7 +150,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -162,13 +163,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -176,7 +177,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -184,7 +185,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -192,7 +193,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -201,7 +202,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -209,7 +210,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -217,7 +218,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -225,7 +226,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -238,13 +239,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -252,7 +253,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -260,7 +261,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -268,7 +269,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -277,7 +278,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -285,7 +286,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -293,7 +294,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -301,7 +302,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -315,13 +316,13 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -329,7 +330,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -337,7 +338,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -345,7 +346,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -354,7 +355,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -362,7 +363,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -370,7 +371,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -378,7 +379,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -391,13 +392,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -405,7 +406,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -413,7 +414,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -421,7 +422,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -430,7 +431,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -438,7 +439,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -446,7 +447,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -454,7 +455,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -467,13 +468,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -481,7 +482,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -489,7 +490,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -497,7 +498,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -506,7 +507,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -514,7 +515,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -522,7 +523,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -530,7 +531,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -543,13 +544,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -557,7 +558,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -565,7 +566,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -573,7 +574,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -582,7 +583,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -590,7 +591,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -598,7 +599,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -606,7 +607,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -628,13 +629,13 @@ group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -642,7 +643,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -650,7 +651,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -658,7 +659,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -667,7 +668,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -675,7 +676,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -683,7 +684,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -691,7 +692,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -704,13 +705,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -718,7 +719,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -726,7 +727,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -734,7 +735,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -743,7 +744,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -751,7 +752,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -759,7 +760,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -767,7 +768,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -780,13 +781,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -794,7 +795,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -802,7 +803,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -810,7 +811,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -819,7 +820,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -827,7 +828,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -835,7 +836,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -843,7 +844,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -856,13 +857,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -870,7 +871,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -878,7 +879,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -886,7 +887,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -895,7 +896,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -903,7 +904,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -911,7 +912,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -919,7 +920,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -933,13 +934,13 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -947,7 +948,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -955,7 +956,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -963,7 +964,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -972,7 +973,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -980,7 +981,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -988,7 +989,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -996,7 +997,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1009,13 +1010,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1023,7 +1024,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1031,7 +1032,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1039,7 +1040,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1048,7 +1049,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1056,7 +1057,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1064,7 +1065,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1072,7 +1073,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1085,13 +1086,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1099,7 +1100,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1107,7 +1108,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1115,7 +1116,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1124,7 +1125,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1132,7 +1133,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1140,7 +1141,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1148,7 +1149,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1161,13 +1162,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1175,7 +1176,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1183,7 +1184,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1191,7 +1192,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1200,7 +1201,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1208,7 +1209,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1216,7 +1217,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1224,7 +1225,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1246,13 +1247,13 @@ group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1260,7 +1261,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1268,7 +1269,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1276,7 +1277,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1285,7 +1286,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1293,7 +1294,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1301,7 +1302,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1309,7 +1310,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1322,13 +1323,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1336,7 +1337,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1344,7 +1345,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1352,7 +1353,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1361,7 +1362,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1369,7 +1370,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1377,7 +1378,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1385,7 +1386,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1398,13 +1399,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1412,7 +1413,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1420,7 +1421,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1428,7 +1429,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1437,7 +1438,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1445,7 +1446,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1453,7 +1454,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1461,7 +1462,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1474,13 +1475,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1488,7 +1489,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1496,7 +1497,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1504,7 +1505,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1513,7 +1514,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1521,7 +1522,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1529,7 +1530,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1537,7 +1538,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1551,13 +1552,13 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1565,7 +1566,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1573,7 +1574,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1581,7 +1582,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1590,7 +1591,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1598,7 +1599,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1606,7 +1607,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1614,7 +1615,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1627,13 +1628,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, -33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, -33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1641,7 +1642,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1649,7 +1650,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1657,7 +1658,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1666,7 +1667,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1674,7 +1675,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1682,7 +1683,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1690,7 +1691,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1703,13 +1704,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1717,7 +1718,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1725,7 +1726,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1733,7 +1734,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1742,7 +1743,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1750,7 +1751,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1758,7 +1759,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1766,7 +1767,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1779,13 +1780,13 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.33333333333], [0, 0, 1, 33.33333333333], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 33.3333], [0, 0, 1, 33.3333], [0, 0, 0, 1]]) { group() { cube(size = [110, 11.1111, 11.1111], center = true); group() { group() { group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1793,7 +1794,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1801,7 +1802,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, -11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1809,7 +1810,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1818,7 +1819,7 @@ } group(); group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1826,7 +1827,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, -11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, -11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1834,7 +1835,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1842,7 +1843,7 @@ } } group() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.11111111111], [0, 0, 1, 11.11111111111], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 11.1111], [0, 0, 1, 11.1111], [0, 0, 0, 1]]) { group() { cube(size = [110, 3.7037, 3.7037], center = true); group(); @@ -1866,4 +1867,4 @@ cube(size = [200, 200, 200], center = true); } } - +} diff --git a/tests/regression/dumptest/for-expected.csg b/tests/regression/dumptest/for-expected.csg new file mode 100644 index 0000000..434cc8f --- /dev/null +++ b/tests/regression/dumptest/for-expected.csg @@ -0,0 +1,3 @@ +group() { + group(); +} diff --git a/tests/regression/dumptest/for-nested-tests-expected.txt b/tests/regression/dumptest/for-nested-tests-expected.csg index d1034b3..7ab595c 100644 --- a/tests/regression/dumptest/for-nested-tests-expected.txt +++ b/tests/regression/dumptest/for-nested-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 3); @@ -108,4 +109,4 @@ sphere($fn = 0, $fa = 12, $fs = 2, r = 3); } } - +} diff --git a/tests/regression/dumptest/for-tests-expected.txt b/tests/regression/dumptest/for-tests-expected.csg index f9cf5e0..7aa29d7 100644 --- a/tests/regression/dumptest/for-tests-expected.txt +++ b/tests/regression/dumptest/for-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group(); group(); multmatrix([[1, 0, 0, -10], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -111,4 +112,4 @@ cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 5, r2 = 5, center = false); } } - +} diff --git a/tests/regression/dumptest/glide-expected.csg b/tests/regression/dumptest/glide-expected.csg new file mode 100644 index 0000000..67e40b8 --- /dev/null +++ b/tests/regression/dumptest/glide-expected.csg @@ -0,0 +1,3 @@ +group() { + glide(path = undef, convexity = 0); +} diff --git a/tests/regression/dumptest/group-expected.csg b/tests/regression/dumptest/group-expected.csg new file mode 100644 index 0000000..434cc8f --- /dev/null +++ b/tests/regression/dumptest/group-expected.csg @@ -0,0 +1,3 @@ +group() { + group(); +} diff --git a/tests/regression/dumptest/highlight-and-background-modifier-expected.txt b/tests/regression/dumptest/highlight-and-background-modifier-expected.csg index eb8931c..8402355 100644 --- a/tests/regression/dumptest/highlight-and-background-modifier-expected.txt +++ b/tests/regression/dumptest/highlight-and-background-modifier-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); %cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); @@ -59,4 +60,4 @@ } } } - +} diff --git a/tests/regression/dumptest/highlight-modifier-expected.txt b/tests/regression/dumptest/highlight-modifier-expected.csg index c0a29ad..70f3d19 100644 --- a/tests/regression/dumptest/highlight-modifier-expected.txt +++ b/tests/regression/dumptest/highlight-modifier-expected.csg @@ -1,3 +1,4 @@ +group() { difference() { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); @@ -17,4 +18,4 @@ } } } - +} diff --git a/tests/regression/dumptest/hull-expected.csg b/tests/regression/dumptest/hull-expected.csg new file mode 100644 index 0000000..6f777b0 --- /dev/null +++ b/tests/regression/dumptest/hull-expected.csg @@ -0,0 +1,3 @@ +group() { + hull(); +} diff --git a/tests/regression/dumptest/hull-tests-expected.txt b/tests/regression/dumptest/hull-tests-expected.csg index fd204b6..22b860c 100644 --- a/tests/regression/dumptest/hull-tests-expected.txt +++ b/tests/regression/dumptest/hull-tests-expected.csg @@ -1,4 +1,5 @@ group() { +group() { group() { hull() { multmatrix([[1, 0, 0, 15], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -43,4 +44,4 @@ group() { } } } -} +}} diff --git a/tests/regression/dumptest/hull2-tests-expected.txt b/tests/regression/dumptest/hull2-tests-expected.csg index c14282f..4d4f207 100644 --- a/tests/regression/dumptest/hull2-tests-expected.txt +++ b/tests/regression/dumptest/hull2-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { hull() { multmatrix([[1, 0, 0, 15], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -62,4 +63,4 @@ circle($fn = 0, $fa = 12, $fs = 2, r = 0); } } - +} diff --git a/tests/regression/dumptest/hull3-tests-expected.txt b/tests/regression/dumptest/hull3-tests-expected.csg index f8def3b..a15f0ce 100644 --- a/tests/regression/dumptest/hull3-tests-expected.txt +++ b/tests/regression/dumptest/hull3-tests-expected.csg @@ -1,3 +1,4 @@ +group() { hull(); hull(); hull() { @@ -33,4 +34,4 @@ sphere($fn = 0, $fa = 12, $fs = 2, r = 0); } } - +} diff --git a/tests/regression/dumptest/if-expected.csg b/tests/regression/dumptest/if-expected.csg new file mode 100644 index 0000000..434cc8f --- /dev/null +++ b/tests/regression/dumptest/if-expected.csg @@ -0,0 +1,3 @@ +group() { + group(); +} diff --git a/tests/regression/dumptest/ifelse-tests-expected.txt b/tests/regression/dumptest/ifelse-tests-expected.csg index e2d3fce..e5b5c6a 100644 --- a/tests/regression/dumptest/ifelse-tests-expected.txt +++ b/tests/regression/dumptest/ifelse-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { cube(size = [2, 2, 2], center = true); multmatrix([[1, 0, 0, -3], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -58,4 +59,4 @@ cube(size = [2, 2, 2], center = true); } } - +} diff --git a/tests/regression/dumptest/import-expected.csg b/tests/regression/dumptest/import-expected.csg new file mode 100644 index 0000000..3cafd32 --- /dev/null +++ b/tests/regression/dumptest/import-expected.csg @@ -0,0 +1,3 @@ +group() { + import(file = "", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/import_dxf-expected.csg b/tests/regression/dumptest/import_dxf-expected.csg new file mode 100644 index 0000000..3cafd32 --- /dev/null +++ b/tests/regression/dumptest/import_dxf-expected.csg @@ -0,0 +1,3 @@ +group() { + import(file = "", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/import_dxf-tests-expected.txt b/tests/regression/dumptest/import_dxf-tests-expected.csg index d98b3e2..b6c6d0c 100644 --- a/tests/regression/dumptest/import_dxf-tests-expected.txt +++ b/tests/regression/dumptest/import_dxf-tests-expected.csg @@ -1,3 +1,4 @@ +group() { import(file = "", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); multmatrix([[1, 0, 0, -210], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { import(file = "../../dxf/polygons.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); @@ -24,4 +25,4 @@ multmatrix([[1, 0, 0, 200], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { import(file = "../../dxf/polygons.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); } - +} diff --git a/tests/regression/dumptest/import_off-expected.csg b/tests/regression/dumptest/import_off-expected.csg new file mode 100644 index 0000000..3cafd32 --- /dev/null +++ b/tests/regression/dumptest/import_off-expected.csg @@ -0,0 +1,3 @@ +group() { + import(file = "", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/import_stl-expected.csg b/tests/regression/dumptest/import_stl-expected.csg new file mode 100644 index 0000000..3cafd32 --- /dev/null +++ b/tests/regression/dumptest/import_stl-expected.csg @@ -0,0 +1,3 @@ +group() { + import(file = "", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/import_stl-tests-expected.txt b/tests/regression/dumptest/import_stl-tests-expected.csg index 0d46a6f..a7f460e 100644 --- a/tests/regression/dumptest/import_stl-tests-expected.txt +++ b/tests/regression/dumptest/import_stl-tests-expected.csg @@ -1,3 +1,4 @@ +group() { import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); @@ -11,4 +12,4 @@ multmatrix([[1, 0, 0, 0], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) { import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); } - +} diff --git a/tests/regression/dumptest/include-tests-expected.txt b/tests/regression/dumptest/include-tests-expected.csg index 3f3ecd9..37e3952 100644 --- a/tests/regression/dumptest/include-tests-expected.txt +++ b/tests/regression/dumptest/include-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { group() { cube(size = [1, 1, 1], center = true); @@ -79,4 +80,4 @@ } } } - +} diff --git a/tests/regression/dumptest/intersection-expected.csg b/tests/regression/dumptest/intersection-expected.csg new file mode 100644 index 0000000..409e196 --- /dev/null +++ b/tests/regression/dumptest/intersection-expected.csg @@ -0,0 +1,3 @@ +group() { + intersection(); +} diff --git a/tests/regression/dumptest/intersection-tests-expected.txt b/tests/regression/dumptest/intersection-tests-expected.csg index a9dba29..2b542ef 100644 --- a/tests/regression/dumptest/intersection-tests-expected.txt +++ b/tests/regression/dumptest/intersection-tests-expected.csg @@ -1,3 +1,4 @@ +group() { intersection(); intersection(); intersection() { @@ -53,4 +54,4 @@ } } } - +} diff --git a/tests/regression/dumptest/intersection_for-expected.csg b/tests/regression/dumptest/intersection_for-expected.csg new file mode 100644 index 0000000..409e196 --- /dev/null +++ b/tests/regression/dumptest/intersection_for-expected.csg @@ -0,0 +1,3 @@ +group() { + intersection(); +} diff --git a/tests/regression/dumptest/intersection_for-tests-expected.csg b/tests/regression/dumptest/intersection_for-tests-expected.csg new file mode 100644 index 0000000..0042824 --- /dev/null +++ b/tests/regression/dumptest/intersection_for-tests-expected.csg @@ -0,0 +1,18 @@ +group() { + intersection(); + intersection(); + intersection() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.469846, 0.882564, 0.0180283, 0], [-0.813798, 0.44097, -0.378522, 0], [-0.34202, 0.163176, 0.925417, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.417218, 0.668356, -0.615817, 0], [0.642459, -0.696172, -0.320299, 0], [-0.642788, -0.262003, -0.719846, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + multmatrix([[0.0190076, -0.601928, 0.798324, 0], [0.0292692, 0.798461, 0.601335, 0], [-0.999391, 0.0119363, 0.0327948, 0], [0, 0, 0, 1]]) { + cube(size = [100, 20, 20], center = true); + } + } +} diff --git a/tests/regression/dumptest/intersection_for-tests-expected.txt b/tests/regression/dumptest/intersection_for-tests-expected.txt deleted file mode 100644 index 8f500c9..0000000 --- a/tests/regression/dumptest/intersection_for-tests-expected.txt +++ /dev/null @@ -1,17 +0,0 @@ - intersection(); - intersection(); - intersection() { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.46984631039, 0.88256411925, 0.01802831123, 0], [-0.81379768134, 0.44096961053, -0.37852230637, 0], [-0.34202014332, 0.16317591116, 0.92541657839, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.41721770627, 0.66835566162, -0.61581660836, 0], [0.64245892818, -0.69617191219, -0.32029860173, 0], [-0.64278760968, -0.26200263022, -0.71984631039, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - multmatrix([[0.0190076282, -0.60192849838, 0.7983237394, 0], [0.02926918072, 0.79846077351, 0.60133493846, 0], [-0.99939082701, 0.01193633086, 0.03279479952, 0], [0, 0, 0, 1]]) { - cube(size = [100, 20, 20], center = true); - } - } - diff --git a/tests/regression/dumptest/linear_extrude-expected.csg b/tests/regression/dumptest/linear_extrude-expected.csg new file mode 100644 index 0000000..5404abf --- /dev/null +++ b/tests/regression/dumptest/linear_extrude-expected.csg @@ -0,0 +1,3 @@ +group() { + linear_extrude(height = 100, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.txt b/tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.csg index 950c724..e4d2430 100644 --- a/tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.txt +++ b/tests/regression/dumptest/linear_extrude-scale-zero-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -250,4 +251,4 @@ } } } - +} diff --git a/tests/regression/dumptest/linear_extrude-tests-expected.txt b/tests/regression/dumptest/linear_extrude-tests-expected.csg index face5e2..a0deb81 100644 --- a/tests/regression/dumptest/linear_extrude-tests-expected.txt +++ b/tests/regression/dumptest/linear_extrude-tests-expected.csg @@ -1,3 +1,4 @@ +group() { rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2) { @@ -59,4 +60,4 @@ square(size = [10, 10], center = true); } } - +} diff --git a/tests/regression/dumptest/localfiles-compatibility-test-expected.txt b/tests/regression/dumptest/localfiles-compatibility-test-expected.csg index 95ba49b..f6a574e 100644 --- a/tests/regression/dumptest/localfiles-compatibility-test-expected.txt +++ b/tests/regression/dumptest/localfiles-compatibility-test-expected.csg @@ -1,3 +1,4 @@ +group() { group() { linear_extrude(height = 100, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { import(file = "localfile.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); @@ -17,4 +18,4 @@ sphere($fn = 0, $fa = 12, $fs = 2, r = 100); } } - +} diff --git a/tests/regression/dumptest/localfiles-test-expected.txt b/tests/regression/dumptest/localfiles-test-expected.csg index a7e81e5..5bb64f3 100644 --- a/tests/regression/dumptest/localfiles-test-expected.txt +++ b/tests/regression/dumptest/localfiles-test-expected.csg @@ -1,3 +1,4 @@ +group() { group() { linear_extrude(height = 100, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { import(file = "localfiles_dir/localfile.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); @@ -17,4 +18,4 @@ sphere($fn = 0, $fa = 12, $fs = 2, r = 100); } } - +} diff --git a/tests/regression/dumptest/minkowski-expected.csg b/tests/regression/dumptest/minkowski-expected.csg new file mode 100644 index 0000000..ecab5f3 --- /dev/null +++ b/tests/regression/dumptest/minkowski-expected.csg @@ -0,0 +1,3 @@ +group() { + minkowski(convexity = 0); +} diff --git a/tests/regression/dumptest/minkowski-tests-expected.txt b/tests/regression/dumptest/minkowski-tests-expected.csg index 7435769..1d132a9 100644 --- a/tests/regression/dumptest/minkowski-tests-expected.txt +++ b/tests/regression/dumptest/minkowski-tests-expected.csg @@ -1,4 +1,5 @@ group() { +group() { multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { minkowski(convexity = 0) { @@ -63,4 +64,4 @@ group() { } } } -} +}} diff --git a/tests/regression/dumptest/minkowski2-tests-expected.txt b/tests/regression/dumptest/minkowski2-tests-expected.csg index dc3ad86..ec67feb 100644 --- a/tests/regression/dumptest/minkowski2-tests-expected.txt +++ b/tests/regression/dumptest/minkowski2-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -20], [0, 1, 0, 5], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { minkowski(convexity = 0) { @@ -28,4 +29,4 @@ } } } - +} diff --git a/tests/regression/dumptest/minkowski3-tests-expected.txt b/tests/regression/dumptest/minkowski3-tests-expected.csg index 5244014..7dc82e1 100644 --- a/tests/regression/dumptest/minkowski3-tests-expected.txt +++ b/tests/regression/dumptest/minkowski3-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -20], [0, 1, 0, 30], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { minkowski(convexity = 0) { @@ -30,4 +31,4 @@ } minkowski(convexity = 0); minkowski(convexity = 0); - +} diff --git a/tests/regression/dumptest/mirror-expected.csg b/tests/regression/dumptest/mirror-expected.csg new file mode 100644 index 0000000..3ad73cb --- /dev/null +++ b/tests/regression/dumptest/mirror-expected.csg @@ -0,0 +1,3 @@ +group() { + multmatrix([[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); +} diff --git a/tests/regression/dumptest/module-recursion-expected.txt b/tests/regression/dumptest/module-recursion-expected.csg index 9ad8877..d7ed7a3 100644 --- a/tests/regression/dumptest/module-recursion-expected.txt +++ b/tests/regression/dumptest/module-recursion-expected.csg @@ -1,32 +1,33 @@ +group() { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 1, r1 = 0.2, r2 = 0.2, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.7, r1 = 0.14, r2 = 0.14, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.7], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.49, r1 = 0.098, r2 = 0.098, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.49], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -36,18 +37,18 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -62,24 +63,24 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.49, r1 = 0.098, r2 = 0.098, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.49], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -89,18 +90,18 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -120,30 +121,30 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.7, r1 = 0.14, r2 = 0.14, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.7], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.49, r1 = 0.098, r2 = 0.098, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.49], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -153,18 +154,18 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -179,24 +180,24 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.49, r1 = 0.098, r2 = 0.098, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.49], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -206,18 +207,18 @@ } } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 0.343, r1 = 0.0686, r2 = 0.0686, center = false); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.343], [0, 0, 0, 1]]) { group() { - multmatrix([[-1, 0, 0, 0], [0, -0.76604444311, 0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[-1, 0, 0, 0], [0, -0.766044, 0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } } - multmatrix([[1, 0, 0, 0], [0, 0.76604444311, -0.64278760968, 0], [0, 0.64278760968, 0.76604444311, 0], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 0.766044, -0.642788, 0], [0, 0.642788, 0.766044, 0], [0, 0, 0, 1]]) { group() { group(); } @@ -241,4 +242,4 @@ } } } - +} diff --git a/tests/regression/dumptest/modulevariables-expected.txt b/tests/regression/dumptest/modulevariables-expected.csg index fed4bbc..36bc63b 100644 --- a/tests/regression/dumptest/modulevariables-expected.txt +++ b/tests/regression/dumptest/modulevariables-expected.csg @@ -1,4 +1,5 @@ +group() { group() { cylinder($fn = 0, $fa = 12, $fs = 2, h = 10, r1 = 23, r2 = 10, center = false); } - +} diff --git a/tests/regression/dumptest/multmatrix-expected.csg b/tests/regression/dumptest/multmatrix-expected.csg new file mode 100644 index 0000000..87e28e2 --- /dev/null +++ b/tests/regression/dumptest/multmatrix-expected.csg @@ -0,0 +1,3 @@ +group() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); +} diff --git a/tests/regression/dumptest/null-polygons-expected.txt b/tests/regression/dumptest/null-polygons-expected.csg index d30c909..80125e2 100644 --- a/tests/regression/dumptest/null-polygons-expected.txt +++ b/tests/regression/dumptest/null-polygons-expected.csg @@ -1,5 +1,6 @@ +group() { linear_extrude(height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1) { import(file = "null-polygons.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); } linear_extrude(file = "null-polygons.dxf", layer = "", origin = [0, 0], scale = 1, height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); - +} diff --git a/tests/regression/dumptest/polygon-expected.csg b/tests/regression/dumptest/polygon-expected.csg new file mode 100644 index 0000000..d04aec9 --- /dev/null +++ b/tests/regression/dumptest/polygon-expected.csg @@ -0,0 +1,3 @@ +group() { + polygon(points = undef, paths = undef, convexity = 1); +} diff --git a/tests/regression/dumptest/polygon-illegal-winding-expected.txt b/tests/regression/dumptest/polygon-illegal-winding-expected.csg index 3a4c32b..fa0f4ac 100644 --- a/tests/regression/dumptest/polygon-illegal-winding-expected.txt +++ b/tests/regression/dumptest/polygon-illegal-winding-expected.csg @@ -1,3 +1,4 @@ group() { +group() { polyhedron(points = [[0, -10, 60], [0, 10, 60], [0, 10, 0], [0, -10, 0], [60, -10, 60], [60, 10, 60], [10, -10, 50], [10, 10, 50], [10, 10, 30], [10, -10, 30], [30, -10, 50], [30, 10, 50]], triangles = [[0, 2, 3], [0, 1, 2], [0, 4, 5], [0, 5, 1], [5, 4, 2], [2, 4, 3], [6, 8, 9], [6, 7, 8], [6, 10, 11], [6, 11, 7], [10, 8, 11], [10, 9, 8], [0, 3, 9], [9, 0, 6], [10, 6, 0], [0, 4, 10], [3, 9, 10], [3, 10, 4], [1, 7, 11], [1, 11, 5], [1, 7, 8], [1, 8, 2], [2, 8, 11], [2, 11, 5]], convexity = 1); -} +}} diff --git a/tests/regression/dumptest/polygon-tests-expected.txt b/tests/regression/dumptest/polygon-tests-expected.csg index be66d21..56995a5 100644 --- a/tests/regression/dumptest/polygon-tests-expected.txt +++ b/tests/regression/dumptest/polygon-tests-expected.csg @@ -1,3 +1,4 @@ +group() { polygon(points = undef, paths = undef, convexity = 1); polygon(points = [], paths = undef, convexity = 1); polygon(points = [[], []], paths = undef, convexity = 1); @@ -32,4 +33,4 @@ multmatrix([[1, 0, 0, 2], [0, 1, 0, -4], [0, 0, 1, 0], [0, 0, 0, 1]]) { polygon(points = [[0, 0], [1, 0], [1, 1], [0, 0]], paths = undef, convexity = 1); } - +} diff --git a/tests/regression/dumptest/polyhedron-expected.csg b/tests/regression/dumptest/polyhedron-expected.csg new file mode 100644 index 0000000..c37a529 --- /dev/null +++ b/tests/regression/dumptest/polyhedron-expected.csg @@ -0,0 +1,3 @@ +group() { + polyhedron(points = undef, triangles = undef, convexity = 1); +} diff --git a/tests/regression/dumptest/polyhedron-tests-expected.txt b/tests/regression/dumptest/polyhedron-tests-expected.csg index 7de5236..f59baa2 100644 --- a/tests/regression/dumptest/polyhedron-tests-expected.txt +++ b/tests/regression/dumptest/polyhedron-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { polyhedron(points = [[1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]], triangles = [[0, 4, 2], [0, 2, 5], [0, 3, 4], [0, 5, 3], [1, 2, 4], [1, 5, 2], [1, 4, 3], [1, 3, 5]], convexity = 1); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -23,4 +24,4 @@ } } } - +} diff --git a/tests/regression/dumptest/polyset-reduce-crash-expected.txt b/tests/regression/dumptest/polyset-reduce-crash-expected.csg index 50253ff..1e83cd2 100644 --- a/tests/regression/dumptest/polyset-reduce-crash-expected.txt +++ b/tests/regression/dumptest/polyset-reduce-crash-expected.csg @@ -1,4 +1,5 @@ group() { +group() { multmatrix([[0.809017, -0.587785, 0, 0], [0.587785, 0.809017, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { multmatrix([[1, 0, 0, 1], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -14,4 +15,4 @@ group() { circle($fn = 0, $fa = 12, $fs = 1, r = 20); } } -} +}} diff --git a/tests/regression/dumptest/projection-expected.csg b/tests/regression/dumptest/projection-expected.csg new file mode 100644 index 0000000..d776c2e --- /dev/null +++ b/tests/regression/dumptest/projection-expected.csg @@ -0,0 +1,3 @@ +group() { + projection(cut = false, convexity = 0); +} diff --git a/tests/regression/dumptest/projection-tests-expected.txt b/tests/regression/dumptest/projection-tests-expected.csg index 92e6870..5d2fc0a 100644 --- a/tests/regression/dumptest/projection-tests-expected.txt +++ b/tests/regression/dumptest/projection-tests-expected.csg @@ -1,3 +1,4 @@ +group() { projection(cut = false, convexity = 0); projection(cut = false, convexity = 0); projection(cut = true, convexity = 0) { @@ -29,7 +30,7 @@ multmatrix([[1, 0, 0, 0], [0, 1, 0, -22], [0, 0, 1, 0], [0, 0, 0, 1]]) { linear_extrude(height = 5, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { projection(cut = true, convexity = 0) { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -4.999999], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -5], [0, 0, 0, 1]]) { cube(size = [10, 10, 10], center = true); } } @@ -53,4 +54,4 @@ } } } - +} diff --git a/tests/regression/dumptest/render-2d-tests-expected.txt b/tests/regression/dumptest/render-2d-tests-expected.csg index 26b916c..75739b3 100644 --- a/tests/regression/dumptest/render-2d-tests-expected.txt +++ b/tests/regression/dumptest/render-2d-tests-expected.csg @@ -1,7 +1,8 @@ +group() { render(convexity = 1) { difference() { square(size = [100, 100], center = true); circle($fn = 0, $fa = 12, $fs = 2, r = 30); } } - +} diff --git a/tests/regression/dumptest/render-expected.csg b/tests/regression/dumptest/render-expected.csg new file mode 100644 index 0000000..c599c6b --- /dev/null +++ b/tests/regression/dumptest/render-expected.csg @@ -0,0 +1,3 @@ +group() { + render(convexity = 1); +} diff --git a/tests/regression/dumptest/render-tests-expected.txt b/tests/regression/dumptest/render-tests-expected.csg index 6914270..11aede0 100644 --- a/tests/regression/dumptest/render-tests-expected.txt +++ b/tests/regression/dumptest/render-tests-expected.csg @@ -1,3 +1,4 @@ +group() { render(convexity = 1); render(convexity = 1); group() { @@ -68,4 +69,4 @@ } } } - +} diff --git a/tests/regression/dumptest/resize-2d-tests-expected.txt b/tests/regression/dumptest/resize-2d-tests-expected.csg index 0bbdd66..5f8d8b5 100644 --- a/tests/regression/dumptest/resize-2d-tests-expected.txt +++ b/tests/regression/dumptest/resize-2d-tests-expected.csg @@ -1,3 +1,4 @@ +group() { color([1, 0, 0, 1]) { multmatrix([[1, 0, 0, -16], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[3, 0, 0, 0], [0, 3, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -172,4 +173,4 @@ } } } - +} diff --git a/tests/regression/dumptest/resize-tests-expected.txt b/tests/regression/dumptest/resize-tests-expected.csg index f31290c..1e7888a 100644 --- a/tests/regression/dumptest/resize-tests-expected.txt +++ b/tests/regression/dumptest/resize-tests-expected.csg @@ -1,3 +1,4 @@ +group() { color([1, 0, 0, 1]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -10], [0, 0, 0, 1]]) { cube(size = [1, 1, 1], center = false); @@ -267,4 +268,4 @@ } } } - +} diff --git a/tests/regression/dumptest/root-modifier-expected.csg b/tests/regression/dumptest/root-modifier-expected.csg new file mode 100644 index 0000000..799636d --- /dev/null +++ b/tests/regression/dumptest/root-modifier-expected.csg @@ -0,0 +1 @@ +cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); diff --git a/tests/regression/dumptest/root-modifier-expected.txt b/tests/regression/dumptest/root-modifier-expected.txt deleted file mode 100644 index c0f1da2..0000000 --- a/tests/regression/dumptest/root-modifier-expected.txt +++ /dev/null @@ -1,5 +0,0 @@ - difference() { - sphere($fn = 0, $fa = 12, $fs = 2, r = 10); - cylinder($fn = 0, $fa = 12, $fs = 2, h = 30, r1 = 6, r2 = 6, center = true); - } - diff --git a/tests/regression/dumptest/root-modifier-if-expected.txt b/tests/regression/dumptest/root-modifier-if-expected.csg index dfcd15a..0cc2d3e 100644 --- a/tests/regression/dumptest/root-modifier-if-expected.txt +++ b/tests/regression/dumptest/root-modifier-if-expected.csg @@ -1,7 +1,8 @@ +group() { group() { sphere($fn = 0, $fa = 12, $fs = 2, r = 5); } group() { cube(size = [5, 5, 5], center = false); } - +} diff --git a/tests/regression/dumptest/rotate-expected.csg b/tests/regression/dumptest/rotate-expected.csg new file mode 100644 index 0000000..87e28e2 --- /dev/null +++ b/tests/regression/dumptest/rotate-expected.csg @@ -0,0 +1,3 @@ +group() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); +} diff --git a/tests/regression/dumptest/rotate_extrude-expected.csg b/tests/regression/dumptest/rotate_extrude-expected.csg new file mode 100644 index 0000000..54f06b3 --- /dev/null +++ b/tests/regression/dumptest/rotate_extrude-expected.csg @@ -0,0 +1,3 @@ +group() { + rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); +} diff --git a/tests/regression/dumptest/rotate_extrude-tests-expected.txt b/tests/regression/dumptest/rotate_extrude-tests-expected.csg index 023d78d..a86dd8f 100644 --- a/tests/regression/dumptest/rotate_extrude-tests-expected.txt +++ b/tests/regression/dumptest/rotate_extrude-tests-expected.csg @@ -1,3 +1,4 @@ +group() { rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2); rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 2) { @@ -49,4 +50,4 @@ } } } - +} diff --git a/tests/regression/dumptest/rotate_extrude_dxf-tests-expected.txt b/tests/regression/dumptest/rotate_extrude_dxf-tests-expected.csg index f79e0ce..8e9963c 100644 --- a/tests/regression/dumptest/rotate_extrude_dxf-tests-expected.txt +++ b/tests/regression/dumptest/rotate_extrude_dxf-tests-expected.csg @@ -1,2 +1,3 @@ +group() { rotate_extrude(file = "../../dxf/open-polyline.dxf", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); - +} diff --git a/tests/regression/dumptest/scale-expected.csg b/tests/regression/dumptest/scale-expected.csg new file mode 100644 index 0000000..87e28e2 --- /dev/null +++ b/tests/regression/dumptest/scale-expected.csg @@ -0,0 +1,3 @@ +group() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); +} diff --git a/tests/regression/dumptest/scale2D-tests-expected.txt b/tests/regression/dumptest/scale2D-tests-expected.csg index 9465b8c..3957609 100644 --- a/tests/regression/dumptest/scale2D-tests-expected.txt +++ b/tests/regression/dumptest/scale2D-tests-expected.csg @@ -1,10 +1,11 @@ - multmatrix([[2, 0, 0, 0], [0, 1.33333333333, 0, 0], [0, 0, 2, 0], [0, 0, 0, 1]]) { +group() { + multmatrix([[2, 0, 0, 0], [0, 1.33333, 0, 0], [0, 0, 2, 0], [0, 0, 0, 1]]) { group() { square(size = [2, 3], center = true); } } multmatrix([[1, 0, 0, 5], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { - multmatrix([[2, 0, 0, 0], [0, 1.33333333333, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + multmatrix([[2, 0, 0, 0], [0, 1.33333, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { square(size = [2, 3], center = true); } @@ -31,4 +32,4 @@ } } } - +} diff --git a/tests/regression/dumptest/scale3D-tests-expected.txt b/tests/regression/dumptest/scale3D-tests-expected.csg index e802117..89bf1af 100644 --- a/tests/regression/dumptest/scale3D-tests-expected.txt +++ b/tests/regression/dumptest/scale3D-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 1]]) { group() { @@ -40,4 +41,4 @@ } } } - +} diff --git a/tests/regression/dumptest/sphere-expected.csg b/tests/regression/dumptest/sphere-expected.csg new file mode 100644 index 0000000..8c5b075 --- /dev/null +++ b/tests/regression/dumptest/sphere-expected.csg @@ -0,0 +1,3 @@ +group() { + sphere($fn = 0, $fa = 12, $fs = 2, r = 1); +} diff --git a/tests/regression/dumptest/sphere-tests-expected.txt b/tests/regression/dumptest/sphere-tests-expected.csg index 461e946..45c0858 100644 --- a/tests/regression/dumptest/sphere-tests-expected.txt +++ b/tests/regression/dumptest/sphere-tests-expected.csg @@ -1,3 +1,4 @@ +group() { sphere($fn = 0, $fa = 12, $fs = 2, r = 1); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 0); @@ -29,4 +30,4 @@ 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/dumptest/square-expected.csg b/tests/regression/dumptest/square-expected.csg new file mode 100644 index 0000000..a4a24d8 --- /dev/null +++ b/tests/regression/dumptest/square-expected.csg @@ -0,0 +1,3 @@ +group() { + square(size = [1, 1], center = false); +} diff --git a/tests/regression/dumptest/square-tests-expected.txt b/tests/regression/dumptest/square-tests-expected.csg index c23c83d..6569da4 100644 --- a/tests/regression/dumptest/square-tests-expected.txt +++ b/tests/regression/dumptest/square-tests-expected.csg @@ -1,3 +1,4 @@ +group() { square(size = [1, 1], center = false); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { square(size = [1, 1], center = true); @@ -20,4 +21,4 @@ multmatrix([[1, 0, 0, 6], [0, 1, 0, 2], [0, 0, 1, 0], [0, 0, 0, 1]]) { square(size = [2, 1], center = true); } - +} diff --git a/tests/regression/dumptest/subdiv-expected.csg b/tests/regression/dumptest/subdiv-expected.csg new file mode 100644 index 0000000..bc40dc2 --- /dev/null +++ b/tests/regression/dumptest/subdiv-expected.csg @@ -0,0 +1,3 @@ +group() { + subdiv(level = 1, convexity = 0); +} diff --git a/tests/regression/dumptest/surface-expected.csg b/tests/regression/dumptest/surface-expected.csg new file mode 100644 index 0000000..4c9b5b8 --- /dev/null +++ b/tests/regression/dumptest/surface-expected.csg @@ -0,0 +1,3 @@ +group() { + surface(file = "", center = false); +} diff --git a/tests/regression/dumptest/surface-simple-expected.txt b/tests/regression/dumptest/surface-simple-expected.csg index 48c918f..4def193 100644 --- a/tests/regression/dumptest/surface-simple-expected.txt +++ b/tests/regression/dumptest/surface-simple-expected.csg @@ -1,5 +1,6 @@ +group() { surface(file = "surface-simple.dat", center = true); multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { surface(file = "surface-simple2.dat", center = true); } - +} diff --git a/tests/regression/dumptest/surface-tests-expected.txt b/tests/regression/dumptest/surface-tests-expected.csg index e3b59c5..18246f5 100644 --- a/tests/regression/dumptest/surface-tests-expected.txt +++ b/tests/regression/dumptest/surface-tests-expected.csg @@ -1,3 +1,4 @@ +group() { surface(file = "", center = false); surface(file = "surface.dat", center = true); - +} diff --git a/tests/regression/dumptest/testcolornames-expected.txt b/tests/regression/dumptest/testcolornames-expected.csg index 63b5e70..06cb365 100644 --- a/tests/regression/dumptest/testcolornames-expected.txt +++ b/tests/regression/dumptest/testcolornames-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, 1], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { color([0.803922, 0.360784, 0.360784, 1]) { sphere($fn = 5, $fa = 12, $fs = 2, r = 0.8); @@ -703,4 +704,4 @@ sphere($fn = 5, $fa = 12, $fs = 2, r = 0.8); } } - +} diff --git a/tests/regression/dumptest/text-search-test-expected.txt b/tests/regression/dumptest/text-search-test-expected.csg index f0c8aad..72e6572 100644 --- a/tests/regression/dumptest/text-search-test-expected.txt +++ b/tests/regression/dumptest/text-search-test-expected.csg @@ -1,3 +1,4 @@ +group() { group(); group() { multmatrix([[1, 0, 0, -60], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -845,4 +846,4 @@ } } } - +} diff --git a/tests/regression/dumptest/transform-tests-expected.txt b/tests/regression/dumptest/transform-tests-expected.csg index 97657da..892af51 100644 --- a/tests/regression/dumptest/transform-tests-expected.txt +++ b/tests/regression/dumptest/transform-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 0.5, 0], [0, 0, 0, 1]]) { group() { @@ -41,4 +42,4 @@ cylinder($fn = 0, $fa = 12, $fs = 1, h = 20, r1 = 10, r2 = 0, center = false); } } - +} diff --git a/tests/regression/dumptest/translate-expected.csg b/tests/regression/dumptest/translate-expected.csg new file mode 100644 index 0000000..87e28e2 --- /dev/null +++ b/tests/regression/dumptest/translate-expected.csg @@ -0,0 +1,3 @@ +group() { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]); +} diff --git a/tests/regression/dumptest/union-expected.csg b/tests/regression/dumptest/union-expected.csg new file mode 100644 index 0000000..34f53c2 --- /dev/null +++ b/tests/regression/dumptest/union-expected.csg @@ -0,0 +1,3 @@ +group() { + union(); +} diff --git a/tests/regression/dumptest/union-tests-expected.txt b/tests/regression/dumptest/union-tests-expected.csg index b0a30f6..064fbe2 100644 --- a/tests/regression/dumptest/union-tests-expected.txt +++ b/tests/regression/dumptest/union-tests-expected.csg @@ -1,3 +1,4 @@ +group() { multmatrix([[1, 0, 0, -12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { union() { cube(size = [10, 10, 10], center = false); @@ -44,4 +45,4 @@ } } } - +} diff --git a/tests/regression/dumptest/use-tests-expected.txt b/tests/regression/dumptest/use-tests-expected.csg index 1095708..bb9c028 100644 --- a/tests/regression/dumptest/use-tests-expected.txt +++ b/tests/regression/dumptest/use-tests-expected.csg @@ -1,3 +1,4 @@ +group() { group() { group() { multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { @@ -45,7 +46,7 @@ linear_extrude(height = 1.5, center = true, convexity = 1, twist = 0, slices = 2, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) { projection(cut = false, convexity = 0) { multmatrix([[0, 0, -1, 0], [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]]) { - multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.31819805153], [0, 0, 0, 1]]) { + multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.318198], [0, 0, 0, 1]]) { cylinder($fn = 30, $fa = 12, $fs = 2, h = 0.212132, r1 = 0.212132, r2 = 0, center = true); } } @@ -98,4 +99,4 @@ } } } - +} diff --git a/tests/regression/echotest/builtin-tests-expected.txt b/tests/regression/echotest/builtin-tests-expected.txt index 385b0dc..b8ef05e 100644 --- a/tests/regression/echotest/builtin-tests-expected.txt +++ b/tests/regression/echotest/builtin-tests-expected.txt @@ -1 +1 @@ -ECHO: 3.14159265359 +ECHO: 3.14159 diff --git a/tests/regression/echotest/dim-all-expected.txt b/tests/regression/echotest/dim-all-expected.txt index a16c580..96456b8 100644 --- a/tests/regression/echotest/dim-all-expected.txt +++ b/tests/regression/echotest/dim-all-expected.txt @@ -1,16 +1,16 @@ WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". -ECHO: linearX = 51.44957554275 +ECHO: linearX = 51.4496 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". -ECHO: linearY = 29.13025467434 +ECHO: linearY = 29.1303 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". ECHO: aligned = 60 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". -ECHO: ordinateX = -49.17542445724 +ECHO: ordinateX = -49.1754 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". -ECHO: ordinateY = 30.86974532565 +ECHO: ordinateY = 30.8697 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". ECHO: radius = 60 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". ECHO: diameter = 120 WARNING: Unsupported DXF Entity 'LEADER' (1) in "dim-all.dxf". -ECHO: arc = 59.03624346792 +ECHO: arc = 59.0362 diff --git a/tests/regression/echotest/lookup-tests-expected.txt b/tests/regression/echotest/lookup-tests-expected.txt index b98ebe2..7e82bbf 100644 --- a/tests/regression/echotest/lookup-tests-expected.txt +++ b/tests/regression/echotest/lookup-tests-expected.txt @@ -6,10 +6,10 @@ ECHO: 0 ECHO: 0.5 ECHO: -55 ECHO: -55 -ECHO: -54.44444444444 +ECHO: -54.4444 ECHO: -2.5 ECHO: 0 ECHO: 0.9 -ECHO: 6.66666666666 +ECHO: 6.66667 ECHO: 333 ECHO: 333 diff --git a/tests/regression/moduledumptest/allexpressions-expected.txt b/tests/regression/moduledumptest/allexpressions-expected.ast index 6d9de40..6d9de40 100644 --- a/tests/regression/moduledumptest/allexpressions-expected.txt +++ b/tests/regression/moduledumptest/allexpressions-expected.ast diff --git a/tests/regression/moduledumptest/allfunctions-expected.txt b/tests/regression/moduledumptest/allfunctions-expected.ast index a8a0fea..a8a0fea 100644 --- a/tests/regression/moduledumptest/allfunctions-expected.txt +++ b/tests/regression/moduledumptest/allfunctions-expected.ast diff --git a/tests/regression/moduledumptest/allmodules-expected.txt b/tests/regression/moduledumptest/allmodules-expected.ast index 0e3fc32..0e3fc32 100644 --- a/tests/regression/moduledumptest/allmodules-expected.txt +++ b/tests/regression/moduledumptest/allmodules-expected.ast diff --git a/tests/test_pretty_print.py b/tests/test_pretty_print.py index 3f4f1c9..15cb236 100755 --- a/tests/test_pretty_print.py +++ b/tests/test_pretty_print.py @@ -266,7 +266,7 @@ TESTLOG s = s.replace(key,str(dic[key])) for t in tests_to_report: - if t.type=='txt': + if t.type in ('txt', 'ast', 'csg', 'term'): newchunk = re.sub('FTESTNAME',t.fullname,repeat2) newchunk = newchunk.replace('TESTLOG',t.fulltestlog) s = s.replace(repeat2, newchunk+repeat2) @@ -288,6 +288,8 @@ TESTLOG newchunk = newchunk.replace('EXPECTEDFILE',wikiname_e) newchunk = newchunk.replace('TESTLOG',t.fulltestlog) s = s.replace(repeat1, newchunk+repeat1) + else: + raise Exception("Unknown test type %r"%t.type) makefiles_wikinames = {} for mf in sorted(makefiles.keys()): @@ -367,7 +369,7 @@ def tohtml(wiki_rootpath, startdate, tests, enddate, sysinfo, sysid, makefiles): s+= '<p>none</p>' for t in tests_to_report: - if t.type=='txt': + if t.type in ('txt', 'ast', 'csg', 'term'): s+='\n<pre>'+t.fullname+'</pre>\n' s+='<p><pre>'+t.fulltestlog+'</pre>\n\n' elif t.type=='png': @@ -388,6 +390,8 @@ def tohtml(wiki_rootpath, startdate, tests, enddate, sysinfo, sysid, makefiles): s+='\n<pre>' s+=t.fulltestlog s+='\n</pre>' + else: + raise Exception("Unknown test type %r"%t.type) s+='\n\n<p>\n\n' |