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 | 19 | ||||
| -rw-r--r-- | doc/testing.txt | 28 | 
4 files changed, 41 insertions, 6 deletions
| diff --git a/doc/OpenSCAD-compile.graffle b/doc/OpenSCAD-compile.graffleBinary files differ index 14a2ccc..02e8bc8 100644 --- a/doc/OpenSCAD-compile.graffle +++ b/doc/OpenSCAD-compile.graffle diff --git a/doc/OpenSCAD-csg.graffle b/doc/OpenSCAD-csg.graffleBinary files differ new file mode 100644 index 0000000..7ad552c --- /dev/null +++ b/doc/OpenSCAD-csg.graffle diff --git a/doc/TODO.txt b/doc/TODO.txt index b9440c6..c0772f6 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) @@ -62,7 +59,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 @@ -166,7 +162,6 @@ o Mesh optimization on STL export    - Remove super small triangles (all sides are short)    - Replace super thin triangles (one h is short)  o Misc -  - Add symbolic colors to the color() statement    - When specifying a transparency with the color() statement,      the object is not sorted and will be rendered wrongly    - Go through default values of parameters (e.g. cube() has x,y,z=1 while linear_extrude() has height=100) @@ -181,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  -------------------------- @@ -203,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  ------------ @@ -222,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 @@ -233,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. | 
