diff options
Diffstat (limited to 'test-code')
| -rwxr-xr-x | test-code/batch-cgal-tests.sh | 9 | ||||
| -rwxr-xr-x | test-code/batch-cgal.sh | 14 | ||||
| -rwxr-xr-x | test-code/batch-dump.sh | 16 | ||||
| -rw-r--r-- | test-code/exportdxf.cc (renamed from test-code/dumptest.cc) | 54 | ||||
| -rw-r--r-- | test-code/exportdxf.pro (renamed from test-code/dumptest.pro) | 71 | 
5 files changed, 80 insertions, 84 deletions
| diff --git a/test-code/batch-cgal-tests.sh b/test-code/batch-cgal-tests.sh deleted file mode 100755 index 12b8fe1..0000000 --- a/test-code/batch-cgal-tests.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -cmd="./cgaltest" - -for f in ../testdata/scad/*-tests.scad; do -  echo == `basename $f .scad` == -  "$cmd" "$f" -done - diff --git a/test-code/batch-cgal.sh b/test-code/batch-cgal.sh deleted file mode 100755 index 031020d..0000000 --- a/test-code/batch-cgal.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -cmd="./cgaltest" - -if [ $# == 0 ]; then -  dir=../testdata/scad -else -  dir=$1 -fi - -for f in $dir/*.scad; do -  echo == `basename $f` == -  "$cmd" "$f" -done diff --git a/test-code/batch-dump.sh b/test-code/batch-dump.sh deleted file mode 100755 index e8c9cd5..0000000 --- a/test-code/batch-dump.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -cmd="./dumptest" - -if [ $# == 0 ]; then -  dir=../testdata/scad -else -  dir=$1 -fi - -echo $dir; - -for f in $dir/*.scad; do -  echo `basename $f` -  "$cmd" "$f" -done diff --git a/test-code/dumptest.cc b/test-code/exportdxf.cc index 2cb8f12..97d6f49 100644 --- a/test-code/dumptest.cc +++ b/test-code/exportdxf.cc @@ -1,7 +1,6 @@  /* - *  OpenSCAD (www.openscad.org) - *  Copyright (C) 2009-2011 Clifford Wolf <clifford@clifford.at> and - *                          Marius Kintel <marius@kintel.net> + *  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 @@ -24,6 +23,7 @@   *   */ +#include "myqhash.h"  #include "openscad.h"  #include "node.h"  #include "module.h" @@ -31,13 +31,17 @@  #include "value.h"  #include "export.h"  #include "builtin.h" -//#include "nodedumper.h" +#include "Tree.h" +#include "CGALRenderer.h" +#include "PolySetCGALRenderer.h"  #include <QApplication>  #include <QFile>  #include <QDir>  #include <QSet> +#include <QTextStream>  #include <getopt.h> +#include <iostream>  QString commandline_commands;  const char *make_command = NULL; @@ -46,6 +50,8 @@ QString currentdir;  QString examplesdir;  QString librarydir; +using std::string; +  void handle_dep(QString filename)  {  	if (filename.startsWith("/")) @@ -59,6 +65,18 @@ void handle_dep(QString filename)  	}  } +// 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()); + +	CGALRenderer renderer(cache, tree); +	Traverser render(renderer, *tree.root(), Traverser::PRE_AND_POSTFIX); +	render.execute(); +} +  int main(int argc, char **argv)  {  	if (argc != 2) { @@ -144,22 +162,18 @@ int main(int argc, char **argv)  	AbstractNode::resetIndexCounter();  	root_node = root_module->evaluate(&root_ctx, &root_inst); -	// Cache test -	QString dumpstr = root_node->dump(""); -	QString dumpstr_cached = root_node->dump(""); -	if (dumpstr != dumpstr_cached) rc = 1; - -	printf(dumpstr.toUtf8()); - -#if 0 -	NodeDumper dumper; -	Traverser trav(dumper, *root_node, Traverser::PRE_AND_POSTFIX); -	trav.execute(); -	std::string dumpstdstr = dumper.getDump(); -	trav.execute(); -	std::string dumpstdstr_cached = dumper.getDump(); -	if (dumpstdstr != dumpstdstr_cached) rc = 1; -#endif +	Tree tree; +	tree.setRoot(root_node); + +	cgalTree(tree); + +	CGAL_Nef_polyhedron N = cache[tree.getString(*root_node)]; + +	QDir::setCurrent(original_path.absolutePath()); +	QTextStream outstream(stdout); +	export_dxf(&N, outstream, NULL); + +	PolySetRenderer::setRenderer(NULL);  	destroy_builtin_functions();  	destroy_builtin_modules(); diff --git a/test-code/dumptest.pro b/test-code/exportdxf.pro index a6729f7..62c2734 100644 --- a/test-code/dumptest.pro +++ b/test-code/exportdxf.pro @@ -1,38 +1,30 @@  DEFINES += OPENSCAD_VERSION=test  TEMPLATE = app -OBJECTS_DIR = objects -MOC_DIR = objects -UI_DIR = objects -RCC_DIR = objects +OBJECTS_DIR = cgal-objects +MOC_DIR = cgal-objects +UI_DIR = cgal-objects +RCC_DIR = cgal-objects  INCLUDEPATH += ../src -TARGET = dumptest  macx { +  macx { +    DEPLOYDIR = $$(MACOSX_DEPLOY_DIR) +    !isEmpty(DEPLOYDIR) { +      INCLUDEPATH += $$DEPLOYDIR/include +      LIBS += -L$$DEPLOYDIR/lib +    } +  }    CONFIG -= app_bundle    LIBS += -framework Carbon  }  CONFIG += qt  QT += opengl +CONFIG += cgal -# Optionally specify location of Eigen2 using the  -# EIGEN2DIR env. variable -EIGEN2_DIR = $$(EIGEN2DIR) -!isEmpty(EIGEN2_DIR) { -  INCLUDEPATH += $$EIGEN2_DIR -} -else { -  macx { -    INCLUDEPATH += /opt/local/include/eigen2 -  } -  else { -    INCLUDEPATH += /usr/include/eigen2 -  } -} -FORMS += ../src/Preferences.ui -HEADERS += ../src/Preferences.h -SOURCES += ../src/Preferences.cc +include(../cgal.pri) +include(../eigen2.pri)  LEXSOURCES += ../src/lexer.l  YACCSOURCES += ../src/parser.y @@ -50,13 +42,32 @@ HEADERS += ../src/builtin.h \             ../src/grid.h \             ../src/module.h \             ../src/node.h \ +           ../src/dxflinextrudenode.h \ +           ../src/dxfrotextrudenode.h \ +           ../src/projectionnode.h \ +           ../src/importnode.h \ +           ../src/csgnode.h \ +           ../src/transformnode.h \ +           ../src/rendernode.h \             ../src/openscad.h \             ../src/polyset.h \             ../src/printutils.h \             ../src/value.h \ -           ../src/progress.h +           ../src/progress.h \ +           ../src/traverser.h \ +           ../src/csgnode.h \ +           ../src/visitor.h \ +           ../src/nodedumper.h \ +           ../src/CGALRenderer.h \ +           ../src/nodecache.h \ +           ../src/importnode.h \ +           ../src/state.h \ +           ../src/PolySetRenderer.h \ +           ../src/PolySetCGALRenderer.h \ +           ../src/myqhash.h \ +           ../src/Tree.h -SOURCES += dumptest.cc \ +SOURCES += exportdxf.cc \             ../src/export.cc \             ../src/value.cc \             ../src/expr.cc \ @@ -71,11 +82,14 @@ SOURCES += dumptest.cc \             ../src/primitives.cc \             ../src/projection.cc \             ../src/cgaladv.cc \ +           ../src/cgaladv_minkowski2.cc \ +           ../src/cgaladv_minkowski3.cc \             ../src/surface.cc \             ../src/control.cc \             ../src/render.cc \             ../src/import.cc \             ../src/dxfdata.cc \ +           ../src/nef2dxf.cc \             ../src/dxftess.cc \             ../src/dxftess-glu.cc \             ../src/dxftess-cgal.cc \ @@ -83,4 +97,11 @@ SOURCES += dumptest.cc \             ../src/dxflinextrude.cc \             ../src/dxfrotextrude.cc \             ../src/printutils.cc \ -           ../src/progress.cc +           ../src/progress.cc \ +           ../src/nodedumper.cc \ +           ../src/CGALRenderer.cc \ +           ../src/traverser.cc \ +           ../src/PolySetRenderer.cc \ +           ../src/PolySetCGALRenderer.cc \ +           ../src/qhash.cc \ +           ../src/Tree.cc | 
