diff options
Diffstat (limited to 'doc/TODO.txt')
-rw-r--r-- | doc/TODO.txt | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/doc/TODO.txt b/doc/TODO.txt new file mode 100644 index 0000000..b61e57b --- /dev/null +++ b/doc/TODO.txt @@ -0,0 +1,122 @@ + +BUGS +---- +o Some invalid DXF data gets pass the import checks and breaks the tessing code +o Broken polyhedron() entities are not correctly detected and cause CGAL segfaults +o Tesselation via GLU sometimes produces strange results +o Non-manifold objects make CGAL crash (e.g. two cubes which touch at one edge) +o Export STL: Exports existing CGAL model even though the current model is changed, but not CGAL rendered + +USER INTERFACE +-------------- +o Preferences + - Beautify color schemes + - Color schemes read from file + - Color scheme editor + - wireframe width + - pointsize + - OpenGL params + - Default language feature settings + - Auto-view CSG/thrown together on load +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 + -> implement as for Preferences? + - Menu bar handling: + Mac: share menubar among all top-level windows? +o 3D View + - Improve mouse rotation + - Add modifier key combos to handle pan on 1 mouse button systems + - Show grid + - 4 x split view w/orthogonal cameras? + - Quick highlighting of object under the cursor in the editor + - View All + - overlay indicator displaying current view mode +o Editor + - Autocompletion/hints for builtin (and user-defined) functions/modules + - builtin quick function reference/help + - Drawer/popup with all modules/functions listed which can be inserted into + the editor by clicking or drag&drop -> icons in toolbar? + -> This would be moving in the direction of a traditional CAD GUI + and needs a fair bit of thinking. + - More infrastructur for external editor (or is the reload good enough?) + - Evaluate QCodeEdit (http://qcodeedit.edyuk.org) + - Display some kind of line wrap indicator + - Couple the source code to the AST to allow highlighting selected elements + in the source code in the 3D view +o Misc + - Reload and compile: Ask for confirmation if file is locally edited + (make this configurable in preferences?) + - Save: Ask for confirmation if file has been externaly changed + - Rename OpenCSG and CGAL to smth. not specific to the underlying libraries + (e.g Preview, Render) + +ENGINE +------ +o Primitives + - Springs, spirals (requested by Cathal Garvey) + - (TTF) Text +o 2D Subsystem + - Add generic 3D->2D projection statements + - 2D->3D using clipping plane + - Performance: Is it necessary to union children before extrusion + when compiling? Can this be postponed to CGAL evaluation time? +o Built-in modules + - extrude*: Allow the base 2D primitive to have a Z value +o Advanced Transformations + - Add statement for 2D and 3D minkowski sum + - Add statement for refinement via surface subdivision + - Add statement for intersections in cartesian product of childs +o Function-Module-Interface + - Pass a module instanciation to a function (e.g. for a volume() function) + - Pass a function to a module instanciation (e.g. for dynamic extrusion paths) +o Language Frontend + - Allow local variables and functions everywhere (not only on module level) +o DXF Import + - Support for POLYLINE entity + - Support for SPLINE entity + - Support for LEADER entity + - Support for MTEXT entity ? + - idea: DXF inline - convert from dxf to OpenSCAD syntax -> parametrize dxf content +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 + - Go through default values of parameters (e.g. cube() has x,y,z=1 while linear_extrude() has height=100) +o Grammar + - dim->name -> dim->label + - A random(seed) function + - import_*() -> *_import() (consistent prefix vs. postfix) + - linear_extrude()/rotate_extrude(): Cumbersome names? -> (extrude, revolve, lathe, sweep ?) + +CODE +---- + +o Refactor from MainWindow: + - Fix current_win hack + - CSG data structure (compiled model) + - CGAL data structure (compiled model) +o C++-ify + - Use smart pointers where it makes sense (e.g. instead of homegrown refcount, + and to get memory ownership under control) + - Use static_cast instead of C-style casts +o dxflinextrude and dxfrotextrude could share code +o Consider decoupling DXF-specific functionality from the 2D subsystem +o Make the interfaces from OpenSCAD and OpenCSG and CGAL cleaner to facilitate + experimentation with other frameworks (ref. Nef_polyhedron_2() problems) + +INFRASTRUCTURE +-------------- +o Think about making external libraries easier available. Probably mostly convenience. +o Use a logging framework to get debugging/info output more under control? + (check log4j, google project) + +MISC +---- +o Collect "all" available OpenSCAD scripts from the internets and batch convert them + to STL to assist with robustness testing. +o Mac OS X: + - universal binary -> fix cgal and opencsg + |