summaryrefslogtreecommitdiff
path: root/doc/TODO.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/TODO.txt')
-rw-r--r--doc/TODO.txt122
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
+
contact: Jan Huwald // Impressum