summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RELEASE_NOTES2
-rw-r--r--doc/openscad.114
-rw-r--r--doc/testing.txt40
-rw-r--r--src/openscad.cc46
-rw-r--r--src/value.cc9
-rw-r--r--tests/.gitignore9
-rw-r--r--tests/CMakeLists.txt75
-rw-r--r--tests/cgalpngtest.cc175
-rw-r--r--tests/cgaltest.cc120
-rw-r--r--tests/csgtermtest.cc135
-rwxr-xr-xtests/dumptest7
-rw-r--r--tests/dumptest.cc161
-rwxr-xr-xtests/echotest5
-rw-r--r--tests/echotest.cc116
-rw-r--r--tests/moduledumptest.cc118
-rw-r--r--tests/opencsgtest.cc5
-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.csg1
-rw-r--r--tests/regression/dumptest/allexpressions-expected.txt1
-rw-r--r--tests/regression/dumptest/allfunctions-expected.csg1
-rw-r--r--tests/regression/dumptest/allfunctions-expected.txt1
-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.csg3
-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.csg1
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/dxf_rotate_extrude-expected.csg3
-rw-r--r--tests/regression/dumptest/echo-expected.csg3
-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.csg16
-rw-r--r--tests/regression/dumptest/example014-expected.txt15
-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.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/group-expected.csg3
-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.csg3
-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.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/import_dxf-expected.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/import_stl-expected.csg3
-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.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/intersection_for-tests-expected.csg18
-rw-r--r--tests/regression/dumptest/intersection_for-tests-expected.txt17
-rw-r--r--tests/regression/dumptest/linear_extrude-expected.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg1
-rw-r--r--tests/regression/dumptest/root-modifier-expected.txt5
-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.csg3
-rw-r--r--tests/regression/dumptest/rotate_extrude-expected.csg3
-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.csg3
-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.csg3
-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.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/surface-expected.csg3
-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.csg3
-rw-r--r--tests/regression/dumptest/union-expected.csg3
-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.txt2
-rw-r--r--tests/regression/echotest/dim-all-expected.txt10
-rw-r--r--tests/regression/echotest/lookup-tests-expected.txt4
-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-xtests/test_pretty_print.py8
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'
contact: Jan Huwald // Impressum