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) USER INTERFACE -------------- o Preferences - background colors - colors (NB! CGAL colors are hardcoded in CGAL) - Model outside/inside color - wireframe color and width - 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 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?) 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 INFRASTRUCTURE -------------- o Think about making external libraries easier available. Probably mostly convenience. 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 - 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) - 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