1. 09 Mar, 2012 1 commit
    • Whitham D. Reeve II's avatar
      Direction cone speed improvements. · 911d16a4
      Whitham D. Reeve II authored
      This code commits draw_direction_cone_mesh which is an adaptation of draw_direction_cone to generate a mesh of triangles for compression inside a vertex buffer object. The rest of the opengl code in Toolpath has been changed to use this. Only remaining use of old rendering path way is simulation.
      
      Whitham D. Reeve II
      911d16a4
  2. 07 Mar, 2012 3 commits
  3. 05 Mar, 2012 1 commit
    • Whitham D. Reeve II's avatar
      Replace Point class with a 3 position tuple and a collection of helper functions. · 3ca79c3c
      Whitham D. Reeve II authored
      PyCam has been spending about 75% of it's time creating point objects. I decided to replace
      the pycam Point object with a 3 position tuple, and the pycam Vector object with a 4 position tuple.
      
      All of the point object methods were rewritten to accept and emit tuples. The transform_by_matrix method
      was rewritten to accept both 3 and 4 position tuples with behavior dependent on that size. The
      normalized method is the only method required to emit the same kind of object that it is called on, and
      this has been taken care of with the tuple version.
      
      What does this mean?
      All instances of Point(x,y,z) have been converted into (x,y,z)
      All instances of Vector(x,y,z) have been converted into (x,y,z,'v')
      The notation to access the x,y,z of the Point objects has been been changed
      	from p.x,p.y,p.z to p[0],p[1],p[2]
      The notation for the point math functions has been completely changed.
      Instead of p1.sub(p2) it has been converted to psub(p1,p2)
      Instead of p1.sub(p2).mul(0.5) it has been converted to pmul(psub(p1,p2), 0.5)
      
      It is very important to point out that the tuple is an immutable type.
      You can not change it once you create it.
      t[0] = calculated_x_value # syntax error
      You have to replace the reference (t) to the old tuple with a new reference to a new tuple.
      t = (calculated_x_value, t[1], t[2]) # works
      
      There was a particularly hairy mutable/immutable barrier in the next() generator present in each class that
      inherits TransformableContainer. The TransformableContainer.transform_by_matrix function uses these
      generators to collapse polygons and lines and triangles into points where a shift is performed on each.
      Now that point is immutable, you can not change the value emitted by the generator.
      Geometry/__init__.py transform_by_marix and the associated next() generator in each sub class has been
      rewritten to transfer the attr used to store the reference to the tuple.
      Geometry/__init__.py transform_by_matrix now sets these attributes which effectively gets around this
      limitation.
      
      There could be some old point object code in any of the files not contained in this commit.
      It is impossible to know without running the code path and/or careful analysis of each file.
      
      Some list comprehensions that convert a list of point objects into a 3 position tuple have been removed.
      
      Whitham D. Reeve II
      3ca79c3c
  4. 08 Feb, 2012 1 commit
  5. 03 Feb, 2012 1 commit
    • Sebastian Kuzminsky's avatar
      upgrade inkscape and pstoedit to Recommends · 6d533ffa
      Sebastian Kuzminsky authored
      PyCAM currently shells out to inkscape and pstoedit to read SVG files -
      without those helper programs, pycam cannot read SVGs.
      
      The pycam debian package currently Suggests those dependencies, which
      means that by default (unless the user explicitly selects them) they
      won't be installed.
      
      This commit upgrades the relationship from Suggests to Recommends,
      so they'll be installed by default, making SVG work "out of the box".
      6d533ffa
  6. 26 Jan, 2012 3 commits
  7. 25 Jan, 2012 3 commits
  8. 24 Jan, 2012 2 commits
  9. 23 Jan, 2012 7 commits
  10. 22 Dec, 2011 4 commits
  11. 21 Dec, 2011 1 commit
  12. 21 Jan, 2012 7 commits
  13. 20 Jan, 2012 1 commit
  14. 19 Jan, 2012 4 commits
  15. 17 Jan, 2012 1 commit