Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First cut at stroke expansion #286

Merged
merged 9 commits into from
Jun 27, 2023
Merged

First cut at stroke expansion #286

merged 9 commits into from
Jun 27, 2023

Commits on May 19, 2023

  1. First cut at stroke expansion

    This is a starting point; no dashes, only butt and miter.
    
    Also not tested yet.
    
    Will close #285
    raphlinus committed May 19, 2023
    Configuration menu
    Copy the full SHA
    2ae4986 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2023

  1. Configuration menu
    Copy the full SHA
    7d044fa View commit details
    Browse the repository at this point in the history

Commits on May 25, 2023

  1. Refine stroke implementation.

    Fix some todo() items. Reverse forward and backward so area is positive. Implement line caps and joins.
    
    Make end_point a public method of `PathEl`, as suggested.
    
    Dashes remain, as well as closed paths.
    raphlinus committed May 25, 2023
    Configuration menu
    Copy the full SHA
    6674355 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2023

  1. Implement closed subpaths

    Handle stroking of closed subpaths. This generates two closed subpaths as output, one for the inner contour, one for the outer.
    
    Also apply a threshold for joins.
    raphlinus committed May 31, 2023
    Configuration menu
    Copy the full SHA
    be41b0d View commit details
    Browse the repository at this point in the history
  2. Add dashing

    This should handle closed paths and phase, but do need to validate.
    raphlinus committed May 31, 2023
    Configuration menu
    Copy the full SHA
    af22c87 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. Add optimization options to strokes

    Add an additional argument to stroke expansion. It's designed so it can be Default::default() in the common case, and uses the builder pattern to add more options as needed without breaking semver.
    raphlinus committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    6e1b2bb View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. Configuration menu
    Copy the full SHA
    6497fb6 View commit details
    Browse the repository at this point in the history
  2. Refine stroke expansion

    Wire up regularization in parallel curve generation (now merged into branch). Fix zero length segment detection (it was overly eager, also triggering on degenerate tangents).
    
    In response to review comments.
    raphlinus committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    9d5fc88 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    063839e View commit details
    Browse the repository at this point in the history