summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/OpenSCAD-compile.grafflebin4883 -> 4890 bytes
-rw-r--r--doc/OpenSCAD-csg.grafflebin0 -> 2680 bytes
-rw-r--r--doc/OpenSCAD-polygons.grafflebin5035 -> 5047 bytes
-rw-r--r--doc/TODO.txt18
-rw-r--r--doc/testing.txt28
5 files changed, 41 insertions, 5 deletions
diff --git a/doc/OpenSCAD-compile.graffle b/doc/OpenSCAD-compile.graffle
index 14a2ccc..bb505c3 100644
--- a/doc/OpenSCAD-compile.graffle
+++ b/doc/OpenSCAD-compile.graffle
Binary files differ
diff --git a/doc/OpenSCAD-csg.graffle b/doc/OpenSCAD-csg.graffle
new file mode 100644
index 0000000..ca0a0ff
--- /dev/null
+++ b/doc/OpenSCAD-csg.graffle
Binary files differ
diff --git a/doc/OpenSCAD-polygons.graffle b/doc/OpenSCAD-polygons.graffle
index 3e8b5bd..40df7ab 100644
--- a/doc/OpenSCAD-polygons.graffle
+++ b/doc/OpenSCAD-polygons.graffle
Binary files differ
diff --git a/doc/TODO.txt b/doc/TODO.txt
index 67d4d9e..be7d332 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -4,9 +4,6 @@ BUGS
o Some invalid DXF data gets pass the import checks and breaks the tessing code
o Tesselation via GLU sometimes produces strange results
o Export STL: Exports existing CGAL model even though the current model is changed, but not CGAL rendered
-o It's now possible to start a new rendering while one is already running (which call processEvents())
- -> turn off most (or all) interaction while rendering
- -> Lock all or only one MainWindow (MDI)?
o Look into the polygon winding and rotate_extrude() problem reported by Britton
o CGAL Aff_transformation_3 doesn't support non-affine transformations (non-aff-matrix.scad)
@@ -60,7 +57,6 @@ o Preferences
- OpenGL params
- Default language feature settings
- Make the library search path configurable?
-o Export etc.: automatically add missing extension as in SaveAs
o MDI
- Think about how to do MDI the right way
- Ctrl-W should close the current dialog, not the current main window
@@ -180,6 +176,14 @@ o Grammar
- A random(seed) function
- import_*() -> *_import() (consistent prefix vs. postfix)
- linear_extrude()/rotate_extrude(): Cumbersome names? -> (extrude, revolve, lathe, sweep ?)
+o Hollow donut problem
+ When extruding a 2D CSG tree (e.g. a polygon with a hole), the hole
+ information is lost when performing the extrusion. For linear
+ extrusions, this has only a minor visual impact, but for rotate
+ extrusion, the resulting CGAL models will lose the hole. The OpenCSG
+ rendering keeps the hole, but renders slightly incorrect.
+
+
IDEAS FOR LANGUAGE CHANGES
--------------------------
@@ -202,6 +206,9 @@ o dxflinextrude and dxfrotextrude could share code
o Consider decoupling DXF-specific functionality from the 2D subsystem
o Visitation refactoring
- Make AbstractNode members private/protected?
+o Consider evaluating all referenced files relative to the document path instead
+ of being absolute. This would e.g. make regression testing of dumpcaching easier.
+ This would require us to pass a document contect to all traversal methods though.
BUILD SYSTEM
------------
@@ -221,6 +228,8 @@ o Write a simple test script that collects verified and current STL renderings
o Write simple driver scripts for comparing output of above command
o Collect "all" available OpenSCAD scripts from the internets and run the integration
tests on them all
+o dumptest tests:
+ - filename are dumped as absolute filenames - this will fail on other systems
o Write a regression test for the hexagonal cylinder orientation issue
INFRASTRUCTURE
@@ -232,6 +241,5 @@ MISC
----
o Streamline the cmd-line interface a bit
- Implicit output file format
-
o Write checklists for typical extension work (add new module, add new function)
-> make sure new test files are added
diff --git a/doc/testing.txt b/doc/testing.txt
new file mode 100644
index 0000000..417a3b9
--- /dev/null
+++ b/doc/testing.txt
@@ -0,0 +1,28 @@
+Running regression tests:
+-------------------------
+
+Prerequisites: cmake, python
+
+cd tests
+mkdir build
+cd build
+cmake ..
+make
+make test
+
+
+Adding a new regression test:
+------------------------------
+
+1) create a test file at an appropriate location under testdata/
+2) if the test is non-obvious, create a human readable description of the test in the same directory (e.g testdata/scad/mytest.txt)
+3) if a new test app was written, this must be added to tests/CMakeLists
+4) run the test with the environment variable TEST_GENERATE=1, e.g.:
+ $ TEST_GENERATE=1 ctest -R mytest
+ (this will generate a mytest-expected.txt file which is used for regression testing)
+5) manually verify that the output is correct (test-data/scad/mytest-expected.txt)
+6) run the test normally and verify that it passes:
+ $ ctest -R mytest
+
+Note that test files which don't have an *-expected.<suffix> file will
+be ignored for the test apps in question.
contact: Jan Huwald // Impressum