Skip to content

Releases: folkertdev/one-true-path-experiment

Fix bug in path parsing

14 Jun 17:24
Compare
Choose a tag to compare

There was an issue in parsing relative curve instructions with multiple arguments. The package normalizes the instructions by only allowing absolute instructions, and there was an error in the transformation. This has now been fixed.

Thanks to @unsoundscapes for reporting

Fix bug in CatmullRom

10 Nov 11:07
Compare
Choose a tag to compare

Catmull Rom would not render an input of length 3.

Using parsing and formatting features, it is now quite easy to let D3 generate some output and check it against ours, so all curve types are now checked for correctness at 0,1,2, 3 and 4 points.

Loosen elm-list-extra version bounds

31 Jan 09:48
Compare
Choose a tag to compare

The elm-list-extra package was recently upgraded with a major version. After this release,
this package supports elm-list-extra 6.1.0 <= v < 8.0.0.

One True Path v3.0.0 release notes

07 Nov 13:53
Compare
Choose a tag to compare
  • use OpenSolid/geometry for segments

    OpenSolid already implements a lot of mathematical functions, so why duplicate the work? I'm working with @ianmackenzie of OpenSolid to get arc length, arc length parameterization, and elliptical arcs in OpenSolid for use
    in this package (the arc length (parameterization) is now done, but not yet released).

    I've removed Segment.length for now, because we'll soon get a good implementation.

  • Swap clockwise and counterClockwise

    These values now match the visual intuition. Previously they were clockwise and coutnerClockwise in the SVG coordinate system, which notoriously lets the positive y-axis point down.

  • Split the parser into its own package

    I've published svg-path-lowlevel, a package for dealing with parsing and writing SVG.
    It supports all the svg instructions, both absolute and relative.

    It means that we can let go of some particulars of SVG in this package.

  • Remove smooth curve extension instructions

    these are really tricky to work with, and rarely used as far as I can see.
    The conversion from svg-path-lowlevel automatically converts these instructions to normal, absolute curve instructions.

    There is a replacement: Curve has smoothQuadraticBezier and smoothCubicBezier that simulate the smooth curve extensions on the SubPath level.

  • Add SubPath.compress and SubPath.reverse

    compress tries to merge adjacent instructions of the same type. reverse reverses the direction of the stroke. the direction can be important when using SVG fills - the algorithm uses stroke direction to figure out what is inside and what is outside.

  • more tests/examples

    using elm-verify-examples

  • fixed a bug in the monotone curves
    the first curve instruction was wrong, thanks @gampleman