-- Add github hash or version number to SolidPython code appended to SCAD code.
-- Add bezier support
-- Add fillet_2d() section to README
-- unit tests for box_align & other rotation methods in utils.py
-- Parent transforms of hole() objects still get put in the positive section
    of SCAD code, even if there are no other positive children that need them:
     ex: 
            $fn = 12;
            difference() {
            	union() {
            		union();
            		union() {
            			translate(v = [0, 0, 2.5000000000]) {
            				cube(center = true, size = [50, 50, 5]);
            			}
                        /* NOTE empty transform here */
            			translate(v = [18.0000000000, 18.0000000000]) {
            			}
            		}
            	}
            	/* All Holes Below*/
            	union(){
            		union(){
            			translate(v = [18.0000000000, 18.0000000000]){
            				union() {
            					translate(v = [0, 0, -0.0050000000]) {
            						cylinder(h = 5.0100000000, r = 2.5000000000, center = false);
            					}
            				}
            			}
            		}
            	}
            }     

-- Applescript or other inter-app communication that will recompile in OpenSCAD
    whenever requested via your Python code
-- Debugging info?  This isn't really present for SCAD, so it's hard from Python.
-- Programmatic way to designate parameters users might want to change
-- Gui for setting parameters - sliders, dropdowns, etc.  Well... that's a separate project.
-- Some way to interrogate objects about their shape.  bounding_box() for all
    openscad objects? With that in place, you could do things like "move piece 
    A up so its northern edge lines up with object B's northern edge."
-- Some way to split an object into two shapes as if it's been cut. The way
    I go about that is to intersect an object with two different shapes, and
    then move those results around.  It would be nice if this were more 
    automatic. -ETJ 07 Jul 2012         
-- Current practice prevents any re-use of the SCAD code generated.  A Python
    function called a hundred times will compile to 100 separate lists of SCAD
    code, rather than 100 calls to a function, which makes the SCAD code larger
    than necessary and harder to read.  It would be nice if Python functions
    were compiled to SCAD functions somehow.  Haven't figured out how to make
    this work yet. -ETJ 29 Aug 2012
-- Bounding Box class added to all objects, so they have some sense for how
    large they are and can be queried (This probably can't be done, so put it
    on hold)
    


Completed:
-- Include support for OpenSCAD animation. (Hacky, but I'm not sure there's
    another way to do it than I did)
-- README needs a table of contents with #hash links
-- More robust screw threads -- lead-in, lead-out, and cross-sectional support
-- Add handling for the #*!% SCAD characters (debug, disable, root, background) -ETJ 15 Feb 2011
-- Improving syntax so it's as close as possible to OpenSCAD's -ETJ 15 Feb 2011
-- By default, let polygon assume that connectivity between specified points (the paths argument) is
    in the order specified in the points array.  Without this, there's always 
    boilerplate: polygon(points=arr, paths= range(len(arr)))
-- Add 'segments' arguments to circle(), sphere() and cylinder()? This breaks 
    with OpenSCAD, but is simpler than circle(10).add_param('$fn', 30)    
-- Unit testing.
-- setup.py should include PyPi-required metadata.
-- Add to PyPI so SolidPython can be installed with pip install solidpython
-- Update README with PyEuclid information and PyPI-aware install info
-- Comprehensive docs
-- Once you've declared something a hole(), you *can't put anything in
    it*.  This kind of defeats the purpose of most holes in mechanical design.
    This feature may need some rethinking. (Resolved via the part() class)
-- bill_of_materials() entries should be left-justified in their columns. (BOM 
    now created via prettytable module)

    