Skip to content

One True Path v3.0.0 release notes

Compare
Choose a tag to compare
@folkertdev folkertdev released this 07 Nov 13:53
· 69 commits to master since this release
  • 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