diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/OpenSCAD-compile.graffle | bin | 4883 -> 4873 bytes | |||
-rw-r--r-- | doc/OpenSCAD-csg.graffle | bin | 0 -> 2692 bytes | |||
-rw-r--r-- | doc/TODO.txt | 18 | ||||
-rw-r--r-- | doc/testing.txt | 28 |
4 files changed, 41 insertions, 5 deletions
diff --git a/doc/OpenSCAD-compile.graffle b/doc/OpenSCAD-compile.graffle Binary files differindex 14a2ccc..02e8bc8 100644 --- a/doc/OpenSCAD-compile.graffle +++ b/doc/OpenSCAD-compile.graffle diff --git a/doc/OpenSCAD-csg.graffle b/doc/OpenSCAD-csg.graffle Binary files differnew file mode 100644 index 0000000..7ad552c --- /dev/null +++ b/doc/OpenSCAD-csg.graffle diff --git a/doc/TODO.txt b/doc/TODO.txt index cca4a2a..1d29fb1 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 STL Import BUGS @@ -61,7 +58,6 @@ o Preferences - Default language feature settings - Auto-view CSG/thrown together on load - 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 @@ -172,6 +168,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 -------------------------- @@ -194,6 +198,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 ------------ @@ -213,6 +220,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 INFRASTRUCTURE -------------- @@ -223,6 +232,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..ee429f7 --- /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.: + $ ECAD_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. |