TODO LIST

June 20, 2017 ยท View on GitHub

REV 0004

  • P2D renderer doesn't work for shapeImpl
  • Same for P3D
  • CLOSED shapes don't properly wrap the last dash around if necessary
  • Change version updating to MINOR updates.

REV 0003

  • Create a protected array for curve parameters, just like the vertices one used for beginShape()
  • Change bezier() to the above
  • Change arc() to the above
  • Add linear interpolation of parameters for arcs/ellipses --> they can now be computed faster! :)
  • For default 10-10 pattern, there are a lot of glitches in large beziers. Adjust dt precision based on a super rough approximated length, and/or how small the minimum dash/gap param is?
  • Negative values in pattern() lead to infinite loops and badness. Prevent.

REV 0002

  • Remove dev packages from project

REV 00001

  • Implement variable dash pattern on all methods

  • Rename dashes to dashPattern

  • Implement CHORD + PIE modes on arcs...

  • Develop this into an actual library

  • Implement dash.offset()

    • line
    • rect
    • quad
    • triangle
    • ellipse
    • arc
    • arcPolar
  • At some point, implement 'offset' or something so that animations like this are possible: https://www.youtube.com/watch?v=8uZgU3f8p9A

  • dash.beginShape(), dash.endShape()

    • dash.vertex()
    • properly continue dashes over kinks with native corners
    • Add CLOSE to endShape
    • When CLOSING a POLYGON, the first/last vertex doesn't form a corner if the dash is continuous. It shouldn't be hard to do.
    • Add working MODES to beginShape() (take them from PGraphicsFX2D implementation...)
    • Migrate all linear geometry to shape + vertices (it gets to Processing's core faster, and allows for dashes to bend on corners).
    • Since most dashed lines won't likely be filled, add "if (g.fill == true)" to prefill on all shapes
  • Good Bezier refs:

  • dash.bezier()

  • Publication

    • Document methods a la javadoc
    • Rethink package name
    • Write examples
    • Decide where I am going to host this...
    • Remove dev package from javadoc exports
    • and compilation
    • Create a dashedlines.zip + dashedlines.txt (copy of library.properties)
    • Go over library.properties and make sure things are in the right place
    • Write a nice Readme for the github page
    • Licensing --> MIT

SOON

  • Try out Pomax' Gauss-Lagrande approximation for arc length

  • dash.curve()

  • dash.bezierVertex()

  • dash.curveVertex()

  • Implement dash.mode()

  • Design which modes are there and how they work

  • Dashes are not continuous in arcs with modes CHORD or PIE. Must figure out how to link growing parameters, and hopefuly the corner stroke into a continuous one with the kink.

  • Respond to this: https://forum.processing.org/two/discussion/comment/93993/#Comment_93993

  • Expand methods to 3D

  • Add rounded corners to rect() (need quadraticVertex implementation, which needs bezierVertex impl...)

  • When drawing shapes with continuous primitives (TRIANGLES, QUADS, STRIPS), newer fills overlap previous strokes because of drawing order. Figure out a way to fix this by buffering styles?

  • Fork https://pomax.github.io/bezierinfo/ and add:

    • General matrix solution for curve splitting between [a, b]

LONG RUN