Patrick Walton
b6a60ef987
Make FreeType no longer a dependency of `path-utils`
2017-10-04 19:03:38 -07:00
Patrick Walton
8de1970682
Implement stroking ourselves, and rename `PathSegment` to `PathCommand`.
...
This makes Pathfinder no longer use the FreeType stroker.
2017-10-04 18:57:30 -07:00
Patrick Walton
93de8383f9
Replace the implicitization algorithm for curve intersection with a
...
simpler one based on binary search and the quadratic formula.
This does a better job avoiding floating point error and improves the
rendering of the tiger.
2017-09-25 18:51:02 -07:00
Patrick Walton
8c518deebe
Do a better job of approximating cubic Bézier curves with quadratics
...
This still isn't great, but it's a lot better than the old approximation, which was just bogus.
2017-09-22 17:15:19 -07:00
Patrick Walton
be1b100826
Split B-quads whose curves' convex hulls intersect in most cases.
...
Avoids some rendering artefacts with Loop-Blinn, improving the tiger.
2017-09-21 22:47:00 -07:00
Patrick Walton
4ac11e9010
Switch to a more robust intersection algorithm based on implicitization
2017-09-20 21:23:56 -07:00
Patrick Walton
d644f1b6a6
Implement curve-curve and curve-line intersection, untested as of yet
2017-09-18 21:00:34 -07:00
Patrick Walton
a7d75f913c
Split paths into monotonic segments before partitioning them in the demo
2017-09-12 09:35:57 -07:00
Patrick Walton
c3e02d6faa
Add a streaming API for monotonic path conversion, untested as of yet
2017-09-11 22:28:14 -07:00
Patrick Walton
3e5b53f13c
Partially refactor the path APIs to be streaming, like Lyon
2017-09-08 13:09:00 -07:00