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 - background colors - colors - OpenCSG: face back/front, edges? - CGAL: face back/front, edge back/front, vertex back/front - wireframe width - pointsize - OpenGL params - Default language feature settings - Auto-view CSG/thrown together on load - editor font o Export etc.: automatically add missing extension as in SaveAs o Mac OS X: - embed examples into bundle -> separate example menu? - Use examples as default File Open folder - distribute as (self-unpacking?) dmg containing a single .app instead of zip - universal binary -> fix cgal and opencsg o MDI - Think about how to do MDI the right way - Quit vs. Close MainWindow. Today Quit just closes the current window and there is no close function - Ctrl-W should close the current dialog, not the current main window 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 o Editor - Autocompletion/hints for builtin (and user-defined) functions/modules - builtin quick function reference/help - More infrastructur for external editor (or is the reload good enough?) - Evaluate QCodeEdit (http://qcodeedit.edyuk.org) o Misc - Fix current_win hack - 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 ENGINE ------ o 2D Subsystem - Add generic 3D->2D projection statements 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 Aligned, Radius, Diameter and Ordinate DIMENSION - Support for LEADER entity - Test INSERT with rotation. code looks wrong - 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 CODE ---- o Refactor from MainWindow: - 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 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.