diff options
Diffstat (limited to 'tests')
136 files changed, 487 insertions, 184 deletions
| diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1d3a004..1874669 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -96,6 +96,8 @@ include_directories(../src)  add_definitions(-DOPENSCAD_VERSION=test)  set(COMMON_SOURCES +  ../src/handle_dep.cc  +  ../src/qhash.cc    ../src/export.cc     ../src/value.cc     ../src/expr.cc  @@ -107,6 +109,7 @@ set(COMMON_SOURCES    ../src/polyset.cc     ../src/csgops.cc     ../src/transform.cc  +  ../src/color.cc     ../src/primitives.cc     ../src/projection.cc     ../src/cgaladv.cc  @@ -124,6 +127,7 @@ set(COMMON_SOURCES    ../src/nodedumper.cc     ../src/traverser.cc     ../src/PolySetEvaluator.cc  +  ../src/PolySetCache.cc     ../src/Tree.cc    ${FLEX_OpenSCADlexer_OUTPUTS}    ${BISON_OpenSCADparser_OUTPUTS}) @@ -156,15 +160,29 @@ include_directories(${CGAL_INCLUDE_DIRS})  #  # cgaltest  # -add_executable(cgaltest cgaltest.cc ../src/cgal.cc ../src/CSGTermEvaluator.cc ../src/CGALEvaluator.cc -                        ../src/PolySetCGALEvaluator.cc ../src/qhash.cc ../src/nef2dxf.cc -                        ../src/cgaladv_minkowski2.cc ../src/cgaladv_minkowski3.cc ${COMMON_SOURCES}) +add_executable(cgaltest cgaltest.cc ../src/CGAL_Nef_polyhedron.cc ../src/cgalutils.cc ../src/CSGTermEvaluator.cc +                        ../src/CGALEvaluator.cc ../src/CGALCache.cc ../src/PolySetCGALEvaluator.cc ../src/qhash.cc +                        ../src/CGAL_Nef_polyhedron_DxfData.cc ../src/cgaladv_minkowski2.cc ../src/cgaladv_convexhull2.cc +                        ${COMMON_SOURCES})  set_target_properties(cgaltest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}")  target_link_libraries(cgaltest ${CGAL_LIBRARY} ${CGAL_3RD_PARTY_LIBRARIES} ${QT_LIBRARIES} ${OPENGL_LIBRARY})  # +# cgalpngtest +# +add_executable(cgalpngtest cgalpngtest.cc OffscreenView.cc OffscreenContext.mm +                           ../src/CGALRenderer.cc ../src/CGAL_Nef_polyhedron.cc ../src/cgalutils.cc +                           ../src/CSGTermEvaluator.cc ../src/CGALEvaluator.cc ../src/CGALCache.cc +                           ../src/PolySetCGALEvaluator.cc ../src/qhash.cc +                           ../src/CGAL_Nef_polyhedron_DxfData.cc ../src/cgaladv_minkowski2.cc ../src/cgaladv_convexhull2.cc +                           ${COMMON_SOURCES}) +set_target_properties(cgalpngtest PROPERTIES COMPILE_FLAGS "-DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}") +target_link_libraries(cgalpngtest ${CGAL_LIBRARY} ${CGAL_3RD_PARTY_LIBRARIES} ${QT_LIBRARIES}  ${GLEW_LIBRARY} ${COCOA_LIBRARY} ${OPENGL_LIBRARY}) + +#  # opencsgtest  # +<<<<<<< HEAD  if (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "")  	set(OFFSCREEN_SOURCE "OffscreenContext.mm")  else() @@ -175,6 +193,13 @@ add_executable(opencsgtest opencsgtest.cc OffscreenView.cc ${OFFSCREEN_SOURCE}                             ../src/cgal.cc ../src/OpenCSGRenderer.cc ../src/ThrownTogetherRenderer.cc ../src/CSGTermEvaluator.cc ../src/CGALEvaluator.cc                             ../src/PolySetCGALEvaluator.cc ../src/qhash.cc ../src/nef2dxf.cc                             ../src/cgaladv_minkowski2.cc ../src/cgaladv_minkowski3.cc +======= +add_executable(opencsgtest opencsgtest.cc OffscreenView.cc OffscreenContext.mm +                           ../src/OpenCSGRenderer.cc ../src/ThrownTogetherRenderer.cc +                           ../src/CSGTermEvaluator.cc ../src/CGAL_Nef_polyhedron.cc ../src/cgalutils.cc +                           ../src/CGALEvaluator.cc ../src/CGALCache.cc ../src/PolySetCGALEvaluator.cc ../src/qhash.cc +                           ../src/CGAL_Nef_polyhedron_DxfData.cc ../src/cgaladv_minkowski2.cc ../src/cgaladv_convexhull2.cc +>>>>>>> upstream/visitor                             ${COMMON_SOURCES})  set_target_properties(opencsgtest PROPERTIES COMPILE_FLAGS "-DENABLE_OPENCSG -DENABLE_CGAL ${CGAL_CXX_FLAGS_INIT}")  target_link_libraries(opencsgtest ${CGAL_LIBRARY} ${CGAL_3RD_PARTY_LIBRARIES} ${QT_LIBRARIES} ${OPENCSG_LIBRARY} ${GLEW_LIBRARY} ${COCOA_LIBRARY} ${OPENGL_LIBRARY}) @@ -207,16 +232,56 @@ add_cmdline_test(csgtexttest txt ${MINIMAL_FILES})  add_cmdline_test(csgtermtest txt ${MINIMAL_FILES})  # Add cgaltest tests to CTest +<<<<<<< HEAD  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/cube.scad)  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/sphere.scad)  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/minimal/cylinder.scad)  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/background-modifier.scad)  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/features/highlight-modifier.scad)  LIST(APPEND CGALTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example001.scad) +======= +>>>>>>> upstream/visitor  add_cmdline_test(cgaltest stl ${CGALTEST_FILES}) +# Add cgalpngtest tests to CTest +LIST(APPEND CGALPNGTEST_FILES  +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/2d-3d.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/circle-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/square-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/polygon-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/cube-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/sphere-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/cylinder-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/union-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/difference-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/intersection-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/linear_extrude-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/rotate_extrude-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/minkowski2-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/minkowski3-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/hull2-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/surface-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/import_dxf-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/transform-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/color-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/background-modifier.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/highlight-modifier.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/root-modifier.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/disable-modifier.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/for-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/for-nested-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/intersection_for-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/render-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/projection-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/assign-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/include-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/child-tests.scad +            ${CMAKE_SOURCE_DIR}/../testdata/scad/features/ifelse-tests.scad) +#LIST(APPEND CGALPNGTEST_FILES ${CMAKE_SOURCE_DIR}/../examples/example001.scad) +add_cmdline_test(cgalpngtest png ${CGALPNGTEST_FILES}) +  # Add opencsg tests to CTest -LIST(APPEND OPENCSGTEST_FILES ${CGALTEST_FILES}) +LIST(APPEND OPENCSGTEST_FILES ${CGALPNGTEST_FILES})  add_cmdline_test(opencsgtest png ${OPENCSGTEST_FILES})  # Add dxfexport tests to CTest diff --git a/tests/FindGLEW.cmake b/tests/FindGLEW.cmake index a784990..edf590c 100644 --- a/tests/FindGLEW.cmake +++ b/tests/FindGLEW.cmake @@ -23,16 +23,26 @@ IF (WIN32)  		${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib  		DOC "The GLEW library")  ELSE (WIN32) +<<<<<<< HEAD       	MESSAGE( "-- GLEW_DIR value:" ${GLEW_DIR})  	FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h                  PATHS /usr/include /usr/local/include                  ${GLEW_DIR}/include +======= +        message("GLEW_DIR: " ${GLEW_DIR}) +	FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h +                PATHS ${GLEW_DIR}/include /usr/include /usr/local/include +>>>>>>> upstream/visitor                  NO_DEFAULT_PATH  		DOC "The directory where GL/glew.h resides")  	FIND_LIBRARY( GLEW_LIBRARY  		NAMES GLEW glew +<<<<<<< HEAD  		PATHS /usr/lib /usr/local/lib                  ${GLEW_DIR}/lib +======= +		PATHS ${GLEW_DIR}/lib /usr/lib /usr/local/lib +>>>>>>> upstream/visitor                  NO_DEFAULT_PATH  		DOC "The GLEW library")  ENDIF (WIN32) @@ -43,5 +53,3 @@ IF (GLEW_INCLUDE_PATH)  ELSE (GLEW_INCLUDE_PATH)  	SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")  ENDIF (GLEW_INCLUDE_PATH) - -MARK_AS_ADVANCED( GLEW_FOUND ) diff --git a/tests/OffscreenView.cc b/tests/OffscreenView.cc index 9565908..8a4b57d 100644 --- a/tests/OffscreenView.cc +++ b/tests/OffscreenView.cc @@ -10,10 +10,8 @@  #define FAR_FAR_AWAY 100000.0  OffscreenView::OffscreenView(size_t width, size_t height) -	: orthomode(false), showaxes(true), showfaces(true), showedges(false), -		object_rot_x(35), object_rot_y(0), object_rot_z(25),  -		camera_eye_x(0), camera_eye_y(0), camera_eye_z(0), -		camera_center_x(0), camera_center_y(0), camera_center_z(0) +	: orthomode(false), showaxes(false), showfaces(true), showedges(false), +		object_rot(35, 0, 25), camera_eye(0, 0, 0), camera_center(0, 0, 0)  {  	for (int i = 0; i < 10; i++) this->shaderinfo[i] = 0;    this->ctx = create_offscreen_context(width, height); @@ -156,15 +154,14 @@ void OffscreenView::resizeGL(int w, int h)  #endif  	glViewport(0, 0, w, h);  	w_h_ratio = sqrt((double)w / (double)h); -	setupPerspective();  }  void OffscreenView::setupPerspective()  {  	glMatrixMode(GL_PROJECTION);  	glLoadIdentity(); -	gluPerspective(90, w_h_ratio, 0.1*(this->camera_center_y - this->camera_eye_y),  -								 3*(this->camera_center_y - this->camera_eye_y)); +	double dist = (this->camera_center - this->camera_eye).norm(); +	gluPerspective(45, w_h_ratio, 0.1*dist, 100*dist);  }  void OffscreenView::setupOrtho(bool offset) @@ -172,7 +169,7 @@ void OffscreenView::setupOrtho(bool offset)  	glMatrixMode(GL_PROJECTION);  	glLoadIdentity();  	if (offset) glTranslated(-0.8, -0.8, 0); -	double l = (this->camera_eye_y - this->camera_center_y)/10; +	double l = (this->camera_center - this->camera_eye).norm() / 10;  	glOrtho(-w_h_ratio*l, +w_h_ratio*l,  					-(1/w_h_ratio)*l, +(1/w_h_ratio)*l,  					-FAR_FAR_AWAY, +FAR_FAR_AWAY); @@ -192,13 +189,13 @@ void OffscreenView::paintGL()  	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); -	gluLookAt(this->camera_eye_x, this->camera_eye_y, this->camera_eye_z, -						this->camera_center_x, this->camera_center_y, this->camera_center_z,  +	gluLookAt(this->camera_eye[0], this->camera_eye[1], this->camera_eye[2], +						this->camera_center[0], this->camera_center[1], this->camera_center[2],   						0.0, 0.0, 1.0); -	glRotated(object_rot_x, 1.0, 0.0, 0.0); -	glRotated(object_rot_y, 0.0, 1.0, 0.0); -	glRotated(object_rot_z, 0.0, 0.0, 1.0); +	// glRotated(object_rot[0], 1.0, 0.0, 0.0); +	// glRotated(object_rot[1], 0.0, 1.0, 0.0); +	// glRotated(object_rot[2], 0.0, 0.0, 1.0);  	// Large gray axis cross inline with the model    // FIXME: This is always gray - adjust color to keep contrast with background @@ -207,7 +204,7 @@ void OffscreenView::paintGL()  		glLineWidth(1);  		glColor3d(0.5, 0.5, 0.5);  		glBegin(GL_LINES); -		double l = 3*(this->camera_eye_y - this->camera_center_y); +		double l = 3*(this->camera_center - this->camera_eye).norm();  		glVertex3d(-l, 0, 0);  		glVertex3d(+l, 0, 0);  		glVertex3d(0, -l, 0); @@ -237,14 +234,9 @@ bool OffscreenView::save(const char *filename)  	return save_framebuffer(this->ctx, filename);  } -void OffscreenView::setCamera(double xpos, double ypos, double zpos,  -															double xcenter, double ycenter, double zcenter) +void OffscreenView::setCamera(const Eigen::Vector3d &pos, const Eigen::Vector3d ¢er)  { -	this->camera_eye_x = xpos; -	this->camera_eye_y = ypos; -	this->camera_eye_z = zpos; -	this->camera_center_x = xcenter; -	this->camera_center_y = ycenter; -	this->camera_center_z = zcenter; +	this->camera_eye = pos; +	this->camera_center = center;  } diff --git a/tests/OffscreenView.h b/tests/OffscreenView.h index d71ea2f..587255a 100644 --- a/tests/OffscreenView.h +++ b/tests/OffscreenView.h @@ -2,6 +2,8 @@  #define OFFSCREENVIEW_H_  #include "OffscreenContext.h" +#include <Eigen/Core> +#include <Eigen/Geometry>  #include <stdint.h>  class OffscreenView @@ -11,8 +13,7 @@ public:  	~OffscreenView();  	void setRenderer(class Renderer* r); -	void setCamera(double xpos, double ypos, double zpos,  -								 double xcenter, double ycenter, double zcenter); +	void setCamera(const Eigen::Vector3d &pos, const Eigen::Vector3d ¢er);  	void initializeGL();  	void resizeGL(int w, int h);  	void setupPerspective(); @@ -25,15 +26,9 @@ public:  private:  	Renderer *renderer;  	double w_h_ratio; -	double object_rot_x; -	double object_rot_y; -	double object_rot_z; -	double camera_eye_x; -	double camera_eye_y; -	double camera_eye_z; -	double camera_center_x; -	double camera_center_y; -	double camera_center_z; +	Eigen::Vector3d object_rot; +	Eigen::Vector3d camera_eye; +	Eigen::Vector3d camera_center;  	bool orthomode;  	bool showaxes; diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc new file mode 100644 index 0000000..4c5c914 --- /dev/null +++ b/tests/cgalpngtest.cc @@ -0,0 +1,230 @@ +/* + *  OpenSCAD (www.openscad.at) + *  Copyright (C) 2009  Clifford Wolf <clifford@clifford.at> + * + *  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 "myqhash.h" +#include "openscad.h" +#include "node.h" +#include "module.h" +#include "polyset.h" +#include "context.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" +#include "handle_dep.h" + +#include <QApplication> +#include <QFile> +#include <QDir> +#include <QSet> +#include <QTextStream> +#include <getopt.h> +#include <iostream> +#include <assert.h> +#include <sstream> + +std::string commandline_commands; +QString currentdir; +QString examplesdir; +QString librarydir; + +using std::string; + +void cgalTree(Tree &tree) +{ +	assert(tree.root()); + +	CGALEvaluator evaluator(tree); +	Traverser evaluate(evaluator, *tree.root(), Traverser::PRE_AND_POSTFIX); +	evaluate.execute(); +} + +AbstractNode *find_root_tag(AbstractNode *n) +{ +	foreach(AbstractNode *v, n->children) { +		if (v->modinst->tag_root) return v; +		if (AbstractNode *vroot = find_root_tag(v)) return vroot; +	} +	return NULL; +} + +struct CsgInfo +{ +	OffscreenView *glview; +}; + +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]; + +	initialize_builtin_functions(); +	initialize_builtin_modules(); + +	QApplication app(argc, argv, false); +	QDir original_path = QDir::current(); + +	currentdir = QDir::currentPath(); + +	QDir libdir(QApplication::instance()->applicationDirPath()); +#ifdef Q_WS_MAC +	libdir.cd("../Resources"); // Libraries can be bundled +	if (!libdir.exists("libraries")) libdir.cd("../../.."); +#elif defined(Q_OS_UNIX) +	if (libdir.cd("../share/openscad/libraries")) { +		librarydir = libdir.path(); +	} else +	if (libdir.cd("../../share/openscad/libraries")) { +		librarydir = libdir.path(); +	} else +	if (libdir.cd("../../libraries")) { +		librarydir = libdir.path(); +	} else +#endif +	if (libdir.cd("libraries")) { +		librarydir = libdir.path(); +	} + +	Context root_ctx; +	root_ctx.functions_p = &builtin_functions; +	root_ctx.modules_p = &builtin_modules; +	root_ctx.set_variable("$fn", Value(0.0)); +	root_ctx.set_variable("$fs", Value(1.0)); +	root_ctx.set_variable("$fa", Value(12.0)); +	root_ctx.set_variable("$t", Value(0.0)); + +	Value zero3; +	zero3.type = Value::VECTOR; +	zero3.append(new Value(0.0)); +	zero3.append(new Value(0.0)); +	zero3.append(new Value(0.0)); +	root_ctx.set_variable("$vpt", zero3); +	root_ctx.set_variable("$vpr", zero3); + + +	AbstractModule *root_module; +	ModuleInstantiation root_inst; + +	QFileInfo fileInfo(filename); +	handle_dep(filename); +	FILE *fp = fopen(filename, "rt"); +	if (!fp) { +		fprintf(stderr, "Can't open input file `%s'!\n", filename); +		exit(1); +	} else { +		std::stringstream text; +		char buffer[513]; +		int ret; +		while ((ret = fread(buffer, 1, 512, fp)) > 0) { +			buffer[ret] = 0; +			text << buffer; +		} +		fclose(fp); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false); +		if (!root_module) { +			exit(1); +		} +	} + +	QDir::setCurrent(fileInfo.absolutePath()); + +	AbstractNode::resetIndexCounter(); +	AbstractNode *absolute_root_node = root_module->evaluate(&root_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); + +	QDir::setCurrent(original_path.absolutePath()); + +	csgInfo.glview = new OffscreenView(512,512); + +	glewInit(); +#ifdef DEBUG +	cout << "GLEW version " << glewGetString(GLEW_VERSION) << "\n"; +	cout << (const char *)glGetString(GL_RENDERER) << "(" << (const char *)glGetString(GL_VENDOR) << ")\n" +			 << "OpenGL version " << (const char *)glGetString(GL_VERSION) << "\n"; +	cout  << "Extensions: " << (const char *)glGetString(GL_EXTENSIONS) << "\n"; + + +	if (GLEW_ARB_framebuffer_object) { +		cout << "ARB_FBO supported\n"; +	} +	if (GLEW_EXT_framebuffer_object) { +		cout << "EXT_FBO supported\n"; +	} +	if (GLEW_EXT_packed_depth_stencil) { +		cout << "EXT_packed_depth_stencil\n"; +	} +#endif + +	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(); +	} +	Vector3d center = (bbox.min() + bbox.max()) / 2; +	double radius = (bbox.max() - bbox.min()).norm() / 2; + + +	Vector3d cameradir(1, 1, -0.5); +	Vector3d camerapos = center - radius*2*cameradir; +	csgInfo.glview->setCamera(camerapos, center); + + +	csgInfo.glview->setRenderer(&cgalRenderer); +	csgInfo.glview->paintGL(); +	csgInfo.glview->save("/dev/stdout"); + +	destroy_builtin_functions(); +	destroy_builtin_modules(); + +	return 0; +} diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc index df03a43..8dfb63c 100644 --- a/tests/cgaltest.cc +++ b/tests/cgaltest.cc @@ -25,6 +25,7 @@  #include "myqhash.h"  #include "openscad.h" +#include "handle_dep.h"  #include "node.h"  #include "module.h"  #include "context.h" @@ -32,6 +33,7 @@  #include "export.h"  #include "builtin.h"  #include "Tree.h" +#include "CGAL_Nef_polyhedron.h"  #include "CGALEvaluator.h"  #include "PolySetCGALEvaluator.h" @@ -42,41 +44,34 @@  #include <QTextStream>  #include <getopt.h>  #include <iostream> +#include <assert.h> +#include <sstream> -QString commandline_commands; -const char *make_command = NULL; -QSet<QString> dependencies; +std::string commandline_commands;  QString currentdir;  QString examplesdir;  QString librarydir;  using std::string; -void handle_dep(QString filename) -{ -	if (filename.startsWith("/")) -		dependencies.insert(filename); -	else -		dependencies.insert(QDir::currentPath() + QString("/") + filename); -	if (!QFile(filename).exists() && make_command) { -		char buffer[4096]; -		snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data()); -		system(buffer); // FIXME: Handle error -	} -} - -// FIXME: enforce some maximum cache size (old version had 100K vertices as limit) -QHash<std::string, CGAL_Nef_polyhedron> cache; -  void cgalTree(Tree &tree)  {  	assert(tree.root()); -	CGALEvaluator evaluator(cache, tree); +	CGALEvaluator evaluator(tree);  	Traverser evaluate(evaluator, *tree.root(), Traverser::PRE_AND_POSTFIX);  	evaluate.execute();  } +AbstractNode *find_root_tag(AbstractNode *n) +{ +	foreach(AbstractNode *v, n->children) { +		if (v->modinst->tag_root) return v; +		if (AbstractNode *vroot = find_root_tag(v)) return vroot; +	} +	return NULL; +} +  int main(int argc, char **argv)  {  	if (argc != 2) { @@ -132,7 +127,6 @@ int main(int argc, char **argv)  	AbstractModule *root_module;  	ModuleInstantiation root_inst; -	AbstractNode *root_node;  	QFileInfo fileInfo(filename);  	handle_dep(filename); @@ -141,15 +135,16 @@ int main(int argc, char **argv)  		fprintf(stderr, "Can't open input file `%s'!\n", filename);  		exit(1);  	} else { -		QString text; +		std::stringstream text;  		char buffer[513];  		int ret;  		while ((ret = fread(buffer, 1, 512, fp)) > 0) {  			buffer[ret] = 0; -			text += buffer; +			text << buffer;  		}  		fclose(fp); -		root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false);  		if (!root_module) {  			exit(1);  		} @@ -158,20 +153,22 @@ int main(int argc, char **argv)  	QDir::setCurrent(fileInfo.absolutePath());  	AbstractNode::resetIndexCounter(); -	root_node = root_module->evaluate(&root_ctx, &root_inst); +	AbstractNode *absolute_root_node = root_module->evaluate(&root_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); -	QHash<std::string, CGAL_Nef_polyhedron> cache; -	CGALEvaluator cgalevaluator(cache, tree); +	CGALEvaluator cgalevaluator(tree);   	PolySetCGALEvaluator psevaluator(cgalevaluator);  	CGAL_Nef_polyhedron N = cgalevaluator.evaluateCGALMesh(*root_node);  	QDir::setCurrent(original_path.absolutePath()); -	QTextStream outstream(stdout); -	export_stl(&N, outstream, NULL); - +	if (!N.empty()) { +		export_stl(&N, std::cout, NULL); +	}  	destroy_builtin_functions();  	destroy_builtin_modules(); diff --git a/tests/csgtermtest.cc b/tests/csgtermtest.cc index 9be09fc..f23ec70 100644 --- a/tests/csgtermtest.cc +++ b/tests/csgtermtest.cc @@ -23,9 +23,12 @@   *   */ +#include "myqhash.h" +#include "PolySetEvaluator.h"  #include "CSGTermEvaluator.h"  #include "CSGTextCache.h"  #include "openscad.h" +#include "handle_dep.h"  #include "node.h"  #include "module.h"  #include "context.h" @@ -42,29 +45,15 @@  #include <getopt.h>  #include <assert.h>  #include <iostream> +#include <sstream>  using std::cout; -QString commandline_commands; -const char *make_command = NULL; -QSet<QString> dependencies; +std::string commandline_commands;  QString currentdir;  QString examplesdir;  QString librarydir; -void handle_dep(QString filename) -{ -	if (filename.startsWith("/")) -		dependencies.insert(filename); -	else -		dependencies.insert(QDir::currentPath() + QString("/") + filename); -	if (!QFile(filename).exists() && make_command) { -		char buffer[4096]; -		snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data()); -		system(buffer); // FIXME: Handle error -	} -} -  int main(int argc, char **argv)  {  	if (argc != 2) { @@ -131,15 +120,16 @@ int main(int argc, char **argv)  		fprintf(stderr, "Can't open input file `%s'!\n", filename);  		exit(1);  	} else { -		QString text; +		std::stringstream text;  		char buffer[513];  		int ret;  		while ((ret = fread(buffer, 1, 512, fp)) > 0) {  			buffer[ret] = 0; -			text += buffer; +			text << buffer;  		}  		fclose(fp); -		root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false);  		if (!root_module) {  			exit(1);  		} @@ -154,9 +144,17 @@ int main(int argc, char **argv)  //	cout << tree.getString(*root_node) << "\n"; +<<<<<<< HEAD  	CSGTermEvaluator evaluator(tree);  	vector<CSGTerm*> empty = vector<CSGTerm*>();  	CSGTerm *root_term = evaluator.evaluateCSGTerm(*root_node, empty, empty); +======= +	vector<CSGTerm*> highlights; +	vector<CSGTerm*> background; +	PolySetEvaluator psevaluator(tree); +	CSGTermEvaluator evaluator(tree, &psevaluator); +	CSGTerm *root_term = evaluator.evaluateCSGTerm(*root_node, highlights, background); +>>>>>>> upstream/visitor  	// cout << "Stored terms: " << evaluator.stored_term.size() << "\n";  	// for (map<int, class CSGTerm*>::iterator iter = evaluator.stored_term.begin(); diff --git a/tests/csgtexttest.cc b/tests/csgtexttest.cc index c259e2d..3c4451d 100644 --- a/tests/csgtexttest.cc +++ b/tests/csgtexttest.cc @@ -26,6 +26,7 @@  #include "CSGTextRenderer.h"  #include "CSGTextCache.h"  #include "openscad.h" +#include "handle_dep.h"  #include "node.h"  #include "module.h"  #include "context.h" @@ -41,27 +42,13 @@  #include <getopt.h>  #include <assert.h>  #include <iostream> +#include <sstream> -QString commandline_commands; -const char *make_command = NULL; -QSet<QString> dependencies; +std::string commandline_commands;  QString currentdir;  QString examplesdir;  QString librarydir; -void handle_dep(QString filename) -{ -	if (filename.startsWith("/")) -		dependencies.insert(filename); -	else -		dependencies.insert(QDir::currentPath() + QString("/") + filename); -	if (!QFile(filename).exists() && make_command) { -		char buffer[4096]; -		snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data()); -		system(buffer); // FIXME: Handle error -	} -} -  void csgTree(CSGTextCache &cache, const AbstractNode &root)  {  	CSGTextRenderer renderer(cache); @@ -135,15 +122,16 @@ int main(int argc, char **argv)  		fprintf(stderr, "Can't open input file `%s'!\n", filename);  		exit(1);  	} else { -		QString text; +		std::stringstream text;  		char buffer[513];  		int ret;  		while ((ret = fread(buffer, 1, 512, fp)) > 0) {  			buffer[ret] = 0; -			text += buffer; +			text << buffer;  		}  		fclose(fp); -		root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false);  		if (!root_module) {  			exit(1);  		} diff --git a/tests/dumptest.cc b/tests/dumptest.cc index 3f6068a..65424b3 100644 --- a/tests/dumptest.cc +++ b/tests/dumptest.cc @@ -25,6 +25,7 @@   */  #include "openscad.h" +#include "handle_dep.h"  #include "node.h"  #include "module.h"  #include "context.h" @@ -41,29 +42,15 @@  #include <getopt.h>  #include <assert.h>  #include <iostream> +#include <sstream>  using std::string; -QString commandline_commands; -const char *make_command = NULL; -QSet<QString> dependencies; +std::string commandline_commands;  QString currentdir;  QString examplesdir;  QString librarydir; -void handle_dep(QString filename) -{ -	if (filename.startsWith("/")) -		dependencies.insert(filename); -	else -		dependencies.insert(QDir::currentPath() + QString("/") + filename); -	if (!QFile(filename).exists() && make_command) { -		char buffer[4096]; -		snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data()); -		system(buffer); // FIXME: Handle error -	} -} -  int main(int argc, char **argv)  {  	if (argc != 2) { @@ -130,15 +117,16 @@ int main(int argc, char **argv)  		fprintf(stderr, "Can't open input file `%s'!\n", filename);  		exit(1);  	} else { -		QString text; +		std::stringstream text;  		char buffer[513];  		int ret;  		while ((ret = fread(buffer, 1, 512, fp)) > 0) {  			buffer[ret] = 0; -			text += buffer; +			text << buffer;  		}  		fclose(fp); -		root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false);  		if (!root_module) {  			exit(1);  		} @@ -156,7 +144,7 @@ int main(int argc, char **argv)  	string dumpstdstr = tree.getString(*root_node);  	string dumpstdstr_cached = tree.getString(*root_node); -	if (dumpstdstr != dumpstdstr_cached) rc = 1; +	assert(dumpstdstr == dumpstdstr_cached);  	std::cout << dumpstdstr << "\n"; diff --git a/tests/opencsgtest.cc b/tests/opencsgtest.cc index 6d92312..98e1037 100644 --- a/tests/opencsgtest.cc +++ b/tests/opencsgtest.cc @@ -1,5 +1,6 @@  #include <GL/glew.h>  #include "openscad.h" +#include "handle_dep.h"  #include "builtin.h"  #include "context.h"  #include "node.h" @@ -21,36 +22,16 @@  #include <QDir>  #include <QSet>  #include <QTimer> +#include <sstream>  using std::cerr;  using std::cout; -QString commandline_commands; +std::string commandline_commands;  QString librarydir; -QSet<QString> dependencies; -const char *make_command = NULL;  //#define DEBUG -void handle_dep(QString filename) -{ -	if (filename.startsWith("/")) -		dependencies.insert(filename); -	else -		dependencies.insert(QDir::currentPath() + QString("/") + filename); -	if (!QFile(filename).exists() && make_command) { -		char buffer[4096]; -		snprintf(buffer, 4096, "%s '%s'", make_command, filename.replace("'", "'\\''").toUtf8().data()); -		system(buffer); // FIXME: Handle error -	} -} - -// static void renderfunc(void *vp) -// { -// 	glClearColor(1.0, 0.0, 0.0, 0.0); -// 	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); -// } -  struct CsgInfo  {  	CSGTerm *root_norm_term;          // Normalized CSG products @@ -62,6 +43,15 @@ struct CsgInfo  	OffscreenView *glview;  }; +AbstractNode *find_root_tag(AbstractNode *n) +{ +	foreach(AbstractNode *v, n->children) { +		if (v->modinst->tag_root) return v; +		if (AbstractNode *vroot = find_root_tag(v)) return vroot; +	} +	return NULL; +} +  int main(int argc, char *argv[])  {  	if (argc != 2) { @@ -118,7 +108,6 @@ int main(int argc, char *argv[])  	AbstractModule *root_module;  	ModuleInstantiation root_inst; -	AbstractNode *root_node;  	QFileInfo fileInfo(filename);  	handle_dep(filename); @@ -127,15 +116,16 @@ int main(int argc, char *argv[])  		fprintf(stderr, "Can't open input file `%s'!\n", filename);  		exit(1);  	} else { -		QString text; +		std::stringstream text;  		char buffer[513];  		int ret;  		while ((ret = fread(buffer, 1, 512, fp)) > 0) {  			buffer[ret] = 0; -			text += buffer; +			text << buffer;  		}  		fclose(fp); -		root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); +		text << commandline_commands; +		root_module = parse(text.str().c_str(), fileInfo.absolutePath().toLocal8Bit(), false);  		if (!root_module) {  			exit(1);  		} @@ -144,15 +134,16 @@ int main(int argc, char *argv[])  	QDir::setCurrent(fileInfo.absolutePath());  	AbstractNode::resetIndexCounter(); -	root_node = root_module->evaluate(&root_ctx, &root_inst); +	AbstractNode *absolute_root_node = root_module->evaluate(&root_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; -	QHash<std::string, CGAL_Nef_polyhedron> cache; -	CGALEvaluator cgalevaluator(cache, tree); -	PolySetCGALEvaluator psevaluator(cgalevaluator); -	CSGTermEvaluator evaluator(tree); +	CGALEvaluator cgalevaluator(tree); +	CSGTermEvaluator evaluator(tree, &cgalevaluator.psevaluator);  	CSGTerm *root_raw_term = evaluator.evaluateCSGTerm(*root_node,   																										 csgInfo.highlight_terms,   																										 csgInfo.background_terms); @@ -162,9 +153,8 @@ int main(int argc, char *argv[])  		return 1;  	} -	csgInfo.root_norm_term = root_raw_term->link(); -		  	// CSG normalization +	csgInfo.root_norm_term = root_raw_term->link();  	while (1) {  		CSGTerm *n = csgInfo.root_norm_term->normalize();  		csgInfo.root_norm_term->unlink(); @@ -177,6 +167,7 @@ int main(int argc, char *argv[])  	csgInfo.root_chain = new CSGChain();  	csgInfo.root_chain->import(csgInfo.root_norm_term); +	fprintf(stderr, "Normalized CSG tree has %d elements\n", csgInfo.root_chain->polysets.size());  	if (csgInfo.highlight_terms.size() > 0) {  		cerr << "Compiling highlights (" << csgInfo.highlight_terms.size() << "  CSG Trees)...\n"; @@ -217,8 +208,11 @@ int main(int argc, char *argv[])  	Vector3d center = (bbox.min() + bbox.max()) / 2;  	double radius = (bbox.max() - bbox.min()).norm() / 2; -	csgInfo.glview->setCamera(center[0], center[1] - 2 * radius, center[2], -														center[0], center[1], center[2]); + + +	Vector3d cameradir(1, 1, -0.5); +	Vector3d camerapos = center - radius*1.8*cameradir; +	csgInfo.glview->setCamera(camerapos, center);  	glewInit();  #ifdef DEBUG diff --git a/tests/regression/cgalpngtest/2d-3d-expected.png b/tests/regression/cgalpngtest/2d-3d-expected.pngBinary files differ new file mode 100644 index 0000000..4d202ac --- /dev/null +++ b/tests/regression/cgalpngtest/2d-3d-expected.png diff --git a/tests/regression/cgalpngtest/assign-tests-expected.png b/tests/regression/cgalpngtest/assign-tests-expected.pngBinary files differ new file mode 100644 index 0000000..465a94d --- /dev/null +++ b/tests/regression/cgalpngtest/assign-tests-expected.png diff --git a/tests/regression/cgalpngtest/background-modifier-expected.png b/tests/regression/cgalpngtest/background-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..e003a87 --- /dev/null +++ b/tests/regression/cgalpngtest/background-modifier-expected.png diff --git a/tests/regression/cgalpngtest/child-tests-expected.png b/tests/regression/cgalpngtest/child-tests-expected.pngBinary files differ new file mode 100644 index 0000000..ed6207c --- /dev/null +++ b/tests/regression/cgalpngtest/child-tests-expected.png diff --git a/tests/regression/cgalpngtest/circle-tests-expected.png b/tests/regression/cgalpngtest/circle-tests-expected.pngBinary files differ new file mode 100644 index 0000000..0736af5 --- /dev/null +++ b/tests/regression/cgalpngtest/circle-tests-expected.png diff --git a/tests/regression/cgalpngtest/color-tests-expected.png b/tests/regression/cgalpngtest/color-tests-expected.pngBinary files differ new file mode 100644 index 0000000..207fc5b --- /dev/null +++ b/tests/regression/cgalpngtest/color-tests-expected.png diff --git a/tests/regression/cgalpngtest/cube-tests-expected.png b/tests/regression/cgalpngtest/cube-tests-expected.pngBinary files differ new file mode 100644 index 0000000..536f220 --- /dev/null +++ b/tests/regression/cgalpngtest/cube-tests-expected.png diff --git a/tests/regression/cgalpngtest/cylinder-tests-expected.png b/tests/regression/cgalpngtest/cylinder-tests-expected.pngBinary files differ new file mode 100644 index 0000000..9d96df2 --- /dev/null +++ b/tests/regression/cgalpngtest/cylinder-tests-expected.png diff --git a/tests/regression/cgalpngtest/difference-tests-expected.png b/tests/regression/cgalpngtest/difference-tests-expected.pngBinary files differ new file mode 100644 index 0000000..e672c48 --- /dev/null +++ b/tests/regression/cgalpngtest/difference-tests-expected.png diff --git a/tests/regression/cgalpngtest/disable-modifier-expected.png b/tests/regression/cgalpngtest/disable-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..550a71d --- /dev/null +++ b/tests/regression/cgalpngtest/disable-modifier-expected.png diff --git a/tests/regression/cgalpngtest/for-nested-tests-expected.png b/tests/regression/cgalpngtest/for-nested-tests-expected.pngBinary files differ new file mode 100644 index 0000000..e7178c2 --- /dev/null +++ b/tests/regression/cgalpngtest/for-nested-tests-expected.png diff --git a/tests/regression/cgalpngtest/for-tests-expected.png b/tests/regression/cgalpngtest/for-tests-expected.pngBinary files differ new file mode 100644 index 0000000..bf1970a --- /dev/null +++ b/tests/regression/cgalpngtest/for-tests-expected.png diff --git a/tests/regression/cgalpngtest/highlight-modifier-expected.png b/tests/regression/cgalpngtest/highlight-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..29a4117 --- /dev/null +++ b/tests/regression/cgalpngtest/highlight-modifier-expected.png diff --git a/tests/regression/cgalpngtest/hull2-tests-expected.png b/tests/regression/cgalpngtest/hull2-tests-expected.pngBinary files differ new file mode 100644 index 0000000..256b349 --- /dev/null +++ b/tests/regression/cgalpngtest/hull2-tests-expected.png diff --git a/tests/regression/cgalpngtest/ifelse-tests-expected.png b/tests/regression/cgalpngtest/ifelse-tests-expected.pngBinary files differ new file mode 100644 index 0000000..fcda7bc --- /dev/null +++ b/tests/regression/cgalpngtest/ifelse-tests-expected.png diff --git a/tests/regression/cgalpngtest/import_dxf-tests-expected.png b/tests/regression/cgalpngtest/import_dxf-tests-expected.pngBinary files differ new file mode 100644 index 0000000..7c8a63e --- /dev/null +++ b/tests/regression/cgalpngtest/import_dxf-tests-expected.png diff --git a/tests/regression/cgalpngtest/intersection-tests-expected.png b/tests/regression/cgalpngtest/intersection-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6d004b0 --- /dev/null +++ b/tests/regression/cgalpngtest/intersection-tests-expected.png diff --git a/tests/regression/cgalpngtest/intersection_for-tests-expected.png b/tests/regression/cgalpngtest/intersection_for-tests-expected.pngBinary files differ new file mode 100644 index 0000000..dc4c56a --- /dev/null +++ b/tests/regression/cgalpngtest/intersection_for-tests-expected.png diff --git a/tests/regression/cgalpngtest/linear_extrude-tests-expected.png b/tests/regression/cgalpngtest/linear_extrude-tests-expected.pngBinary files differ new file mode 100644 index 0000000..4ed4361 --- /dev/null +++ b/tests/regression/cgalpngtest/linear_extrude-tests-expected.png diff --git a/tests/regression/cgalpngtest/minkowski2-tests-expected.png b/tests/regression/cgalpngtest/minkowski2-tests-expected.pngBinary files differ new file mode 100644 index 0000000..ebdbc74 --- /dev/null +++ b/tests/regression/cgalpngtest/minkowski2-tests-expected.png diff --git a/tests/regression/cgalpngtest/minkowski3-tests-expected.png b/tests/regression/cgalpngtest/minkowski3-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6d74961 --- /dev/null +++ b/tests/regression/cgalpngtest/minkowski3-tests-expected.png diff --git a/tests/regression/cgalpngtest/polygon-tests-expected.png b/tests/regression/cgalpngtest/polygon-tests-expected.pngBinary files differ new file mode 100644 index 0000000..89aed2f --- /dev/null +++ b/tests/regression/cgalpngtest/polygon-tests-expected.png diff --git a/tests/regression/cgalpngtest/projection-tests-expected.png b/tests/regression/cgalpngtest/projection-tests-expected.pngBinary files differ new file mode 100644 index 0000000..800f7ba --- /dev/null +++ b/tests/regression/cgalpngtest/projection-tests-expected.png diff --git a/tests/regression/cgalpngtest/render-tests-expected.png b/tests/regression/cgalpngtest/render-tests-expected.pngBinary files differ new file mode 100644 index 0000000..8087794 --- /dev/null +++ b/tests/regression/cgalpngtest/render-tests-expected.png diff --git a/tests/regression/cgalpngtest/root-modifier-expected.png b/tests/regression/cgalpngtest/root-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..550a71d --- /dev/null +++ b/tests/regression/cgalpngtest/root-modifier-expected.png diff --git a/tests/regression/cgalpngtest/rotate_extrude-tests-expected.png b/tests/regression/cgalpngtest/rotate_extrude-tests-expected.pngBinary files differ new file mode 100644 index 0000000..ee60a72 --- /dev/null +++ b/tests/regression/cgalpngtest/rotate_extrude-tests-expected.png diff --git a/tests/regression/cgalpngtest/sphere-tests-expected.png b/tests/regression/cgalpngtest/sphere-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6ad650f --- /dev/null +++ b/tests/regression/cgalpngtest/sphere-tests-expected.png diff --git a/tests/regression/cgalpngtest/square-tests-expected.png b/tests/regression/cgalpngtest/square-tests-expected.pngBinary files differ new file mode 100644 index 0000000..8c9bc60 --- /dev/null +++ b/tests/regression/cgalpngtest/square-tests-expected.png diff --git a/tests/regression/cgalpngtest/surface-tests-expected.png b/tests/regression/cgalpngtest/surface-tests-expected.pngBinary files differ new file mode 100644 index 0000000..cc29f66 --- /dev/null +++ b/tests/regression/cgalpngtest/surface-tests-expected.png diff --git a/tests/regression/cgalpngtest/transform-tests-expected.png b/tests/regression/cgalpngtest/transform-tests-expected.pngBinary files differ new file mode 100644 index 0000000..08cfce8 --- /dev/null +++ b/tests/regression/cgalpngtest/transform-tests-expected.png diff --git a/tests/regression/cgalpngtest/union-tests-expected.png b/tests/regression/cgalpngtest/union-tests-expected.pngBinary files differ new file mode 100644 index 0000000..c390f42 --- /dev/null +++ b/tests/regression/cgalpngtest/union-tests-expected.png diff --git a/tests/regression/csgtermtest/allfunctions-expected.txt b/tests/regression/csgtermtest/allfunctions-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/allfunctions-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/allmodules-expected.txt b/tests/regression/csgtermtest/allmodules-expected.txt new file mode 100644 index 0000000..f544c01 --- /dev/null +++ b/tests/regression/csgtermtest/allmodules-expected.txt @@ -0,0 +1 @@ +((((((cube23 + sphere24) + cylinder25) + polyhedron26) + square27) + circle28) + polygon29) diff --git a/tests/regression/csgtermtest/assign-expected.txt b/tests/regression/csgtermtest/assign-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/assign-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/child-expected.txt b/tests/regression/csgtermtest/child-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/child-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/circle-expected.txt b/tests/regression/csgtermtest/circle-expected.txt new file mode 100644 index 0000000..b8c8161 --- /dev/null +++ b/tests/regression/csgtermtest/circle-expected.txt @@ -0,0 +1 @@ +circle2 diff --git a/tests/regression/csgtermtest/color-expected.txt b/tests/regression/csgtermtest/color-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/color-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/cube-expected.txt b/tests/regression/csgtermtest/cube-expected.txt new file mode 100644 index 0000000..3393bc4 --- /dev/null +++ b/tests/regression/csgtermtest/cube-expected.txt @@ -0,0 +1 @@ +cube2 diff --git a/tests/regression/csgtermtest/cylinder-expected.txt b/tests/regression/csgtermtest/cylinder-expected.txt new file mode 100644 index 0000000..f3dd1f9 --- /dev/null +++ b/tests/regression/csgtermtest/cylinder-expected.txt @@ -0,0 +1 @@ +cylinder2 diff --git a/tests/regression/csgtermtest/difference-expected.txt b/tests/regression/csgtermtest/difference-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/difference-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/dxf_linear_extrude-expected.txt b/tests/regression/csgtermtest/dxf_linear_extrude-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/dxf_linear_extrude-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/dxf_rotate_extrude-expected.txt b/tests/regression/csgtermtest/dxf_rotate_extrude-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/dxf_rotate_extrude-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/echo-expected.txt b/tests/regression/csgtermtest/echo-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/echo-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/for-expected.txt b/tests/regression/csgtermtest/for-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/for-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/glide-expected.txt b/tests/regression/csgtermtest/glide-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/glide-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/group-expected.txt b/tests/regression/csgtermtest/group-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/group-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/hull-expected.txt b/tests/regression/csgtermtest/hull-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/hull-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/if-expected.txt b/tests/regression/csgtermtest/if-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/if-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/import-expected.txt b/tests/regression/csgtermtest/import-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/import-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/import_dxf-expected.txt b/tests/regression/csgtermtest/import_dxf-expected.txt new file mode 100644 index 0000000..847d6c3 --- /dev/null +++ b/tests/regression/csgtermtest/import_dxf-expected.txt @@ -0,0 +1 @@ +import2 diff --git a/tests/regression/csgtermtest/import_off-expected.txt b/tests/regression/csgtermtest/import_off-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/import_off-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/import_stl-expected.txt b/tests/regression/csgtermtest/import_stl-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/import_stl-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/intersection-expected.txt b/tests/regression/csgtermtest/intersection-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/intersection-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/intersection_for-expected.txt b/tests/regression/csgtermtest/intersection_for-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/intersection_for-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/linear_extrude-expected.txt b/tests/regression/csgtermtest/linear_extrude-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/linear_extrude-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/minkowski-expected.txt b/tests/regression/csgtermtest/minkowski-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/minkowski-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/mirror-expected.txt b/tests/regression/csgtermtest/mirror-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/mirror-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/multmatrix-expected.txt b/tests/regression/csgtermtest/multmatrix-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/multmatrix-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/polygon-expected.txt b/tests/regression/csgtermtest/polygon-expected.txt new file mode 100644 index 0000000..b41dfc6 --- /dev/null +++ b/tests/regression/csgtermtest/polygon-expected.txt @@ -0,0 +1 @@ +polygon2 diff --git a/tests/regression/csgtermtest/polyhedron-expected.txt b/tests/regression/csgtermtest/polyhedron-expected.txt new file mode 100644 index 0000000..5ccc055 --- /dev/null +++ b/tests/regression/csgtermtest/polyhedron-expected.txt @@ -0,0 +1 @@ +polyhedron2 diff --git a/tests/regression/csgtermtest/projection-expected.txt b/tests/regression/csgtermtest/projection-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/projection-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/render-expected.txt b/tests/regression/csgtermtest/render-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/render-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/rotate-expected.txt b/tests/regression/csgtermtest/rotate-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/rotate-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/rotate_extrude-expected.txt b/tests/regression/csgtermtest/rotate_extrude-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/rotate_extrude-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/scale-expected.txt b/tests/regression/csgtermtest/scale-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/scale-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/sphere-expected.txt b/tests/regression/csgtermtest/sphere-expected.txt new file mode 100644 index 0000000..f9b8d73 --- /dev/null +++ b/tests/regression/csgtermtest/sphere-expected.txt @@ -0,0 +1 @@ +sphere2 diff --git a/tests/regression/csgtermtest/square-expected.txt b/tests/regression/csgtermtest/square-expected.txt new file mode 100644 index 0000000..8190c0f --- /dev/null +++ b/tests/regression/csgtermtest/square-expected.txt @@ -0,0 +1 @@ +square2 diff --git a/tests/regression/csgtermtest/subdiv-expected.txt b/tests/regression/csgtermtest/subdiv-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/subdiv-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/surface-expected.txt b/tests/regression/csgtermtest/surface-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/surface-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/transform-insert-expected.txt b/tests/regression/csgtermtest/transform-insert-expected.txt new file mode 100644 index 0000000..847d6c3 --- /dev/null +++ b/tests/regression/csgtermtest/transform-insert-expected.txt @@ -0,0 +1 @@ +import2 diff --git a/tests/regression/csgtermtest/translate-expected.txt b/tests/regression/csgtermtest/translate-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/translate-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtermtest/union-expected.txt b/tests/regression/csgtermtest/union-expected.txt new file mode 100644 index 0000000..a40cf60 --- /dev/null +++ b/tests/regression/csgtermtest/union-expected.txt @@ -0,0 +1 @@ +No top-level CSG object diff --git a/tests/regression/csgtexttest/allfunctions-expected.txt b/tests/regression/csgtexttest/allfunctions-expected.txt new file mode 100644 index 0000000..331822f --- /dev/null +++ b/tests/regression/csgtexttest/allfunctions-expected.txt @@ -0,0 +1 @@ +group1 diff --git a/tests/regression/csgtexttest/allmodules-expected.txt b/tests/regression/csgtexttest/allmodules-expected.txt index 6b13f07..34fa5ae 100644 --- a/tests/regression/csgtexttest/allmodules-expected.txt +++ b/tests/regression/csgtexttest/allmodules-expected.txt @@ -1 +1 @@ -group1(minkowski2+glide3+subdiv4+hull5+group6+group6+group6+intersection_for9+group6+union11+difference12+intersection13+linear_extrude+linear_extrude+rotate_extrude+rotate_extrude+import_stl+import_off+import_dxf+group6+cube+sphere+cylinder+polyhedron+square+circle+polygon+projection+render30+surface+transform32+transform32+transform34+transform32+transform32+transform37) +group1(minkowski2+glide3+subdiv4+hull5+group6+group6+group6+intersection_for9+group6+union11+difference12+intersection13+linear_extrude+linear_extrude+rotate_extrude+rotate_extrude+import+import+import+import+group6+cube+sphere+cylinder+polyhedron+square+circle+polygon+projection+render31+surface+transform33+transform33+transform35+transform33+transform33+color38) diff --git a/tests/regression/csgtexttest/color-expected.txt b/tests/regression/csgtexttest/color-expected.txt index 80024d2..6140174 100644 --- a/tests/regression/csgtexttest/color-expected.txt +++ b/tests/regression/csgtexttest/color-expected.txt @@ -1 +1 @@ -group1(transform2) +group1(color2) diff --git a/tests/regression/csgtexttest/import-expected.txt b/tests/regression/csgtexttest/import-expected.txt new file mode 100644 index 0000000..a673ddb --- /dev/null +++ b/tests/regression/csgtexttest/import-expected.txt @@ -0,0 +1 @@ +group1(import) diff --git a/tests/regression/csgtexttest/import_dxf-expected.txt b/tests/regression/csgtexttest/import_dxf-expected.txt index ffb96fc..a673ddb 100644 --- a/tests/regression/csgtexttest/import_dxf-expected.txt +++ b/tests/regression/csgtexttest/import_dxf-expected.txt @@ -1 +1 @@ -group1(import_dxf) +group1(import) diff --git a/tests/regression/csgtexttest/import_off-expected.txt b/tests/regression/csgtexttest/import_off-expected.txt index 8a3bafa..a673ddb 100644 --- a/tests/regression/csgtexttest/import_off-expected.txt +++ b/tests/regression/csgtexttest/import_off-expected.txt @@ -1 +1 @@ -group1(import_off) +group1(import) diff --git a/tests/regression/csgtexttest/import_stl-expected.txt b/tests/regression/csgtexttest/import_stl-expected.txt index 47c4707..a673ddb 100644 --- a/tests/regression/csgtexttest/import_stl-expected.txt +++ b/tests/regression/csgtexttest/import_stl-expected.txt @@ -1 +1 @@ -group1(import_stl) +group1(import) diff --git a/tests/regression/csgtexttest/transform-insert-expected.txt b/tests/regression/csgtexttest/transform-insert-expected.txt index ffb96fc..a673ddb 100644 --- a/tests/regression/csgtexttest/transform-insert-expected.txt +++ b/tests/regression/csgtexttest/transform-insert-expected.txt @@ -1 +1 @@ -group1(import_dxf) +group1(import) diff --git a/tests/regression/dumptest/allfunctions-expected.txt b/tests/regression/dumptest/allfunctions-expected.txt new file mode 100644 index 0000000..0a04719 --- /dev/null +++ b/tests/regression/dumptest/allfunctions-expected.txt @@ -0,0 +1 @@ +group(); diff --git a/tests/regression/dumptest/allmodules-expected.txt b/tests/regression/dumptest/allmodules-expected.txt index b51fae3..2f920df 100644 --- a/tests/regression/dumptest/allmodules-expected.txt +++ b/tests/regression/dumptest/allmodules-expected.txt @@ -11,13 +11,14 @@ group() {  	union();  	difference();  	intersection(); -	linear_extrude(file = "", cache = "0.0", layer = "", height = 100, origin = [ 0 0 ], scale = 1, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); -	linear_extrude(file = "", cache = "0.0", layer = "", height = 100, origin = [ 0 0 ], scale = 1, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); -	rotate_extrude(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); -	rotate_extrude(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); -	import_stl(file = "", cache = "0.0", convexity = 1); -	import_off(file = "", cache = "0.0", convexity = 1); -	import_dxf(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	linear_extrude(height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	linear_extrude(height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  	group();  	cube(size = [1, 1, 1], center = false);  	sphere($fn = 0, $fa = 12, $fs = 1, r = 1); @@ -34,5 +35,5 @@ group() {  	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]]);  	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/color-expected.txt b/tests/regression/dumptest/color-expected.txt index 87e28e2..ef862fc 100644 --- a/tests/regression/dumptest/color-expected.txt +++ b/tests/regression/dumptest/color-expected.txt @@ -1,3 +1,3 @@  group() { -	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/dxf_linear_extrude-expected.txt b/tests/regression/dumptest/dxf_linear_extrude-expected.txt index fd6535d..9284114 100644 --- a/tests/regression/dumptest/dxf_linear_extrude-expected.txt +++ b/tests/regression/dumptest/dxf_linear_extrude-expected.txt @@ -1,3 +1,3 @@  group() { -	linear_extrude(file = "", cache = "0.0", layer = "", height = 100, origin = [ 0 0 ], scale = 1, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	linear_extrude(height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/dxf_rotate_extrude-expected.txt b/tests/regression/dumptest/dxf_rotate_extrude-expected.txt index 2d65d35..e2f5832 100644 --- a/tests/regression/dumptest/dxf_rotate_extrude-expected.txt +++ b/tests/regression/dumptest/dxf_rotate_extrude-expected.txt @@ -1,3 +1,3 @@  group() { -	rotate_extrude(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/import-expected.txt b/tests/regression/dumptest/import-expected.txt new file mode 100644 index 0000000..b424afe --- /dev/null +++ b/tests/regression/dumptest/import-expected.txt @@ -0,0 +1,3 @@ +group() { +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +} diff --git a/tests/regression/dumptest/import_dxf-expected.txt b/tests/regression/dumptest/import_dxf-expected.txt index 08238d2..b424afe 100644 --- a/tests/regression/dumptest/import_dxf-expected.txt +++ b/tests/regression/dumptest/import_dxf-expected.txt @@ -1,3 +1,3 @@  group() { -	import_dxf(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/import_off-expected.txt b/tests/regression/dumptest/import_off-expected.txt index 51293c9..b424afe 100644 --- a/tests/regression/dumptest/import_off-expected.txt +++ b/tests/regression/dumptest/import_off-expected.txt @@ -1,3 +1,3 @@  group() { -	import_off(file = "", cache = "0.0", convexity = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/import_stl-expected.txt b/tests/regression/dumptest/import_stl-expected.txt index 2da7d35..b424afe 100644 --- a/tests/regression/dumptest/import_stl-expected.txt +++ b/tests/regression/dumptest/import_stl-expected.txt @@ -1,3 +1,3 @@  group() { -	import_stl(file = "", cache = "0.0", convexity = 1); +	import(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/linear_extrude-expected.txt b/tests/regression/dumptest/linear_extrude-expected.txt index fd6535d..9284114 100644 --- a/tests/regression/dumptest/linear_extrude-expected.txt +++ b/tests/regression/dumptest/linear_extrude-expected.txt @@ -1,3 +1,3 @@  group() { -	linear_extrude(file = "", cache = "0.0", layer = "", height = 100, origin = [ 0 0 ], scale = 1, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	linear_extrude(height = 100, center = false, convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/dumptest/rotate_extrude-expected.txt b/tests/regression/dumptest/rotate_extrude-expected.txt index 2d65d35..e2f5832 100644 --- a/tests/regression/dumptest/rotate_extrude-expected.txt +++ b/tests/regression/dumptest/rotate_extrude-expected.txt @@ -1,3 +1,3 @@  group() { -	rotate_extrude(file = "", cache = "0.0", layer = "", origin = [ 0 0 ], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 1); +	rotate_extrude(convexity = 1, $fn = 0, $fa = 12, $fs = 1);  } diff --git a/tests/regression/opencsgtest/2d-3d-expected.png b/tests/regression/opencsgtest/2d-3d-expected.pngBinary files differ new file mode 100644 index 0000000..47418f0 --- /dev/null +++ b/tests/regression/opencsgtest/2d-3d-expected.png diff --git a/tests/regression/opencsgtest/assign-tests-expected.png b/tests/regression/opencsgtest/assign-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6fe8e10 --- /dev/null +++ b/tests/regression/opencsgtest/assign-tests-expected.png diff --git a/tests/regression/opencsgtest/background-modifier-expected.png b/tests/regression/opencsgtest/background-modifier-expected.pngBinary files differ index f1d48d9..24149d0 100644 --- a/tests/regression/opencsgtest/background-modifier-expected.png +++ b/tests/regression/opencsgtest/background-modifier-expected.png diff --git a/tests/regression/opencsgtest/child-tests-expected.png b/tests/regression/opencsgtest/child-tests-expected.pngBinary files differ new file mode 100644 index 0000000..e8ea39b --- /dev/null +++ b/tests/regression/opencsgtest/child-tests-expected.png diff --git a/tests/regression/opencsgtest/circle-tests-expected.png b/tests/regression/opencsgtest/circle-tests-expected.pngBinary files differ new file mode 100644 index 0000000..7066eb9 --- /dev/null +++ b/tests/regression/opencsgtest/circle-tests-expected.png diff --git a/tests/regression/opencsgtest/color-tests-expected.png b/tests/regression/opencsgtest/color-tests-expected.pngBinary files differ new file mode 100644 index 0000000..b2ef8dd --- /dev/null +++ b/tests/regression/opencsgtest/color-tests-expected.png diff --git a/tests/regression/opencsgtest/cube-expected.png b/tests/regression/opencsgtest/cube-expected.pngBinary files differ deleted file mode 100644 index 2de1a5f..0000000 --- a/tests/regression/opencsgtest/cube-expected.png +++ /dev/null diff --git a/tests/regression/opencsgtest/cube-tests-expected.png b/tests/regression/opencsgtest/cube-tests-expected.pngBinary files differ new file mode 100644 index 0000000..8f0a361 --- /dev/null +++ b/tests/regression/opencsgtest/cube-tests-expected.png diff --git a/tests/regression/opencsgtest/cylinder-expected.png b/tests/regression/opencsgtest/cylinder-expected.pngBinary files differ deleted file mode 100644 index aea350c..0000000 --- a/tests/regression/opencsgtest/cylinder-expected.png +++ /dev/null diff --git a/tests/regression/opencsgtest/cylinder-tests-expected.png b/tests/regression/opencsgtest/cylinder-tests-expected.pngBinary files differ new file mode 100644 index 0000000..17c10b8 --- /dev/null +++ b/tests/regression/opencsgtest/cylinder-tests-expected.png diff --git a/tests/regression/opencsgtest/difference-tests-expected.png b/tests/regression/opencsgtest/difference-tests-expected.pngBinary files differ new file mode 100644 index 0000000..d88d98b --- /dev/null +++ b/tests/regression/opencsgtest/difference-tests-expected.png diff --git a/tests/regression/opencsgtest/disable-modifier-expected.png b/tests/regression/opencsgtest/disable-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..1e4b471 --- /dev/null +++ b/tests/regression/opencsgtest/disable-modifier-expected.png diff --git a/tests/regression/opencsgtest/example001-expected.png b/tests/regression/opencsgtest/example001-expected.pngBinary files differ deleted file mode 100644 index 48509b2..0000000 --- a/tests/regression/opencsgtest/example001-expected.png +++ /dev/null diff --git a/tests/regression/opencsgtest/for-nested-tests-expected.png b/tests/regression/opencsgtest/for-nested-tests-expected.pngBinary files differ new file mode 100644 index 0000000..c9cdb74 --- /dev/null +++ b/tests/regression/opencsgtest/for-nested-tests-expected.png diff --git a/tests/regression/opencsgtest/for-tests-expected.png b/tests/regression/opencsgtest/for-tests-expected.pngBinary files differ new file mode 100644 index 0000000..968659d --- /dev/null +++ b/tests/regression/opencsgtest/for-tests-expected.png diff --git a/tests/regression/opencsgtest/highlight-modifier-expected.png b/tests/regression/opencsgtest/highlight-modifier-expected.pngBinary files differ index 7a117fa..78d0309 100644 --- a/tests/regression/opencsgtest/highlight-modifier-expected.png +++ b/tests/regression/opencsgtest/highlight-modifier-expected.png diff --git a/tests/regression/opencsgtest/hull2-tests-expected.png b/tests/regression/opencsgtest/hull2-tests-expected.pngBinary files differ new file mode 100644 index 0000000..66ee6b2 --- /dev/null +++ b/tests/regression/opencsgtest/hull2-tests-expected.png diff --git a/tests/regression/opencsgtest/ifelse-tests-expected.png b/tests/regression/opencsgtest/ifelse-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6dae4df --- /dev/null +++ b/tests/regression/opencsgtest/ifelse-tests-expected.png diff --git a/tests/regression/opencsgtest/import_dxf-tests-expected.png b/tests/regression/opencsgtest/import_dxf-tests-expected.pngBinary files differ new file mode 100644 index 0000000..6e568c7 --- /dev/null +++ b/tests/regression/opencsgtest/import_dxf-tests-expected.png diff --git a/tests/regression/opencsgtest/intersection-tests-expected.png b/tests/regression/opencsgtest/intersection-tests-expected.pngBinary files differ new file mode 100644 index 0000000..fc23560 --- /dev/null +++ b/tests/regression/opencsgtest/intersection-tests-expected.png diff --git a/tests/regression/opencsgtest/intersection_for-tests-expected.png b/tests/regression/opencsgtest/intersection_for-tests-expected.pngBinary files differ new file mode 100644 index 0000000..08c8e06 --- /dev/null +++ b/tests/regression/opencsgtest/intersection_for-tests-expected.png diff --git a/tests/regression/opencsgtest/linear_extrude-tests-expected.png b/tests/regression/opencsgtest/linear_extrude-tests-expected.pngBinary files differ new file mode 100644 index 0000000..579479e --- /dev/null +++ b/tests/regression/opencsgtest/linear_extrude-tests-expected.png diff --git a/tests/regression/opencsgtest/minkowski2-tests-expected.png b/tests/regression/opencsgtest/minkowski2-tests-expected.pngBinary files differ new file mode 100644 index 0000000..062f1ed --- /dev/null +++ b/tests/regression/opencsgtest/minkowski2-tests-expected.png diff --git a/tests/regression/opencsgtest/minkowski3-tests-expected.png b/tests/regression/opencsgtest/minkowski3-tests-expected.pngBinary files differ new file mode 100644 index 0000000..1f0d572 --- /dev/null +++ b/tests/regression/opencsgtest/minkowski3-tests-expected.png diff --git a/tests/regression/opencsgtest/polygon-tests-expected.png b/tests/regression/opencsgtest/polygon-tests-expected.pngBinary files differ new file mode 100644 index 0000000..4d88973 --- /dev/null +++ b/tests/regression/opencsgtest/polygon-tests-expected.png diff --git a/tests/regression/opencsgtest/projection-tests-expected.png b/tests/regression/opencsgtest/projection-tests-expected.pngBinary files differ new file mode 100644 index 0000000..8239d3d --- /dev/null +++ b/tests/regression/opencsgtest/projection-tests-expected.png diff --git a/tests/regression/opencsgtest/render-tests-expected.png b/tests/regression/opencsgtest/render-tests-expected.pngBinary files differ new file mode 100644 index 0000000..40a1703 --- /dev/null +++ b/tests/regression/opencsgtest/render-tests-expected.png diff --git a/tests/regression/opencsgtest/root-modifier-expected.png b/tests/regression/opencsgtest/root-modifier-expected.pngBinary files differ new file mode 100644 index 0000000..1e4b471 --- /dev/null +++ b/tests/regression/opencsgtest/root-modifier-expected.png diff --git a/tests/regression/opencsgtest/rotate_extrude-tests-expected.png b/tests/regression/opencsgtest/rotate_extrude-tests-expected.pngBinary files differ new file mode 100644 index 0000000..96452e1 --- /dev/null +++ b/tests/regression/opencsgtest/rotate_extrude-tests-expected.png diff --git a/tests/regression/opencsgtest/sphere-expected.png b/tests/regression/opencsgtest/sphere-expected.pngBinary files differ deleted file mode 100644 index 63636d4..0000000 --- a/tests/regression/opencsgtest/sphere-expected.png +++ /dev/null diff --git a/tests/regression/opencsgtest/sphere-tests-expected.png b/tests/regression/opencsgtest/sphere-tests-expected.pngBinary files differ new file mode 100644 index 0000000..06161f3 --- /dev/null +++ b/tests/regression/opencsgtest/sphere-tests-expected.png diff --git a/tests/regression/opencsgtest/square-tests-expected.png b/tests/regression/opencsgtest/square-tests-expected.pngBinary files differ new file mode 100644 index 0000000..4f9db9d --- /dev/null +++ b/tests/regression/opencsgtest/square-tests-expected.png diff --git a/tests/regression/opencsgtest/surface-tests-expected.png b/tests/regression/opencsgtest/surface-tests-expected.pngBinary files differ new file mode 100644 index 0000000..2655afb --- /dev/null +++ b/tests/regression/opencsgtest/surface-tests-expected.png diff --git a/tests/regression/opencsgtest/transform-tests-expected.png b/tests/regression/opencsgtest/transform-tests-expected.pngBinary files differ new file mode 100644 index 0000000..9c763ba --- /dev/null +++ b/tests/regression/opencsgtest/transform-tests-expected.png diff --git a/tests/regression/opencsgtest/union-tests-expected.png b/tests/regression/opencsgtest/union-tests-expected.pngBinary files differ new file mode 100644 index 0000000..caa1467 --- /dev/null +++ b/tests/regression/opencsgtest/union-tests-expected.png | 
