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

Implement SpadeBoolops trait #1089

Open
wants to merge 56 commits into
base: main
Choose a base branch
from
Open

Commits on Dec 12, 2023

  1. feat: implement a stitch trait

    This trait is a non-panicking alternative for the `BooleanOps::union`
    and actually doesn't modify the location of any of the coordinates.
    Instead it returns an error in failing scenarios.
    
    Co-Authored-By: RobWalt <[email protected]>
    Co-Authored-By: Azorlogh <[email protected]>
    3 people committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    74dcadf View commit details
    Browse the repository at this point in the history
  2. test: add test and fixup small details of algorithm

    Co-Authored-By: RobWalt <[email protected]>
    Co-Authored-By: Azorlogh <[email protected]>
    3 people committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    b9c1e05 View commit details
    Browse the repository at this point in the history
  3. chore: add changelog entry

    RobWalt committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    940dde4 View commit details
    Browse the repository at this point in the history
  4. tests: add new failing tests

    RobWalt committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    88ad88c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2a3005f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c0f99e3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    95d7fe5 View commit details
    Browse the repository at this point in the history
  8. test: add further test cases

    RobWalt committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    14b47b9 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    523bfc1 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f0c02ce View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    db025eb View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4a04b6a View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    2a79ce4 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    7782937 View commit details
    Browse the repository at this point in the history
  15. fix: fix doc test

    RobWalt committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    85828b4 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    ae961d3 View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2024

  1. fix(review): doc comment formatting

    Adding a code block around a ASCII drawing to preserve monospace
    rendering in docs.
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    aaa2bcd View commit details
    Browse the repository at this point in the history
  2. chore(benches): add stitch benchmark

    This benchmark was added to meassure performance improvements for the
    stitching algorithm.
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    c0bb1a4 View commit details
    Browse the repository at this point in the history
  3. perf(stitch): improve line comparison

    The previous implementation created a whole new line to check if one of
    the lines was the inverse of the other. Removing this construction and
    inlining the function got us a good performance improvement.
    
    improvement: -27%
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    961b89e View commit details
    Browse the repository at this point in the history
  4. perf(stitch): n^2 loop to fold

    Instead of iterating through all n^2 possibilities we can just iterate
    through the vector once (n^1) and kick out duplicates if we find some.
    This results in the same return values as before and is significantly
    faster.
    
    improvement: -88%
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    a7b9b7f View commit details
    Browse the repository at this point in the history
  5. perf(stitch): idomatic std use

    Making the code mildly more idiomatic resulted in performance gains.
    
    improvement: -8%
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    1fe52f5 View commit details
    Browse the repository at this point in the history
  6. chore(stitch): remove clones

    Minor removals of clones, but not really. It showed up as a small
    performance improvement in the benchmark but I'm not confident it's
    really an improvement.
    
    improvement: maybe -2.5%
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    7403440 View commit details
    Browse the repository at this point in the history
  7. fix(review): typo for consistency

    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    22083e9 View commit details
    Browse the repository at this point in the history
  8. chore(comments): add perf comments

    Leave some nice comments for the after world and also tell the future
    developers to benchmark their optimizations!
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    5ccdff9 View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2024

  1. docs(stitch): clarify edge cases

    In the review process we figured that this still was a bit ambiguous.
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 12, 2024
    Configuration menu
    Copy the full SHA
    4ded8ac View commit details
    Browse the repository at this point in the history
  2. docs(stitch): more details

    adding more details to the `find_boundary_lines` functions since it's
    quiet important for performance to get the cencepts right there
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 12, 2024
    Configuration menu
    Copy the full SHA
    d95b92f View commit details
    Browse the repository at this point in the history
  3. refactor(stitch): macro function dispatch

    Factor out common code and call it directly in the `Triangle` and
    `MultiPolygon` impls to prevent needless cloning and indirection.
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 12, 2024
    Configuration menu
    Copy the full SHA
    7a6a253 View commit details
    Browse the repository at this point in the history
  4. chore(cleanup): docs + simplifications

    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 12, 2024
    Configuration menu
    Copy the full SHA
    aafc8e7 View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2024

  1. fix(review): special case the algo to triangles only

    As stated in one of the review comments, the main purpose of the algo is
    to stitch together triangles that resulted from a triangulation.
    
    Although it would also be nice to generalize the algo for polygons and
    multi polygons, it makes the code harder to read. It is advised to just
    triangulate in those cases and then run the stitching on the compound
    triangulation.
    
    On another note: special casing the algorithm to triangles also gave us
    a real good performance boost again. We gained another ~50% boost from
    all of the improvements in this commit.
    
    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 15, 2024
    Configuration menu
    Copy the full SHA
    9d85f1e View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2024

  1. chore(cleanup): use pr suggestions

    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    3d06d2b View commit details
    Browse the repository at this point in the history
  2. Add inverse method to AffineTransform

    urschrei authored and RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    d0e8bed View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6e19071 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5cbae2d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e702bbb View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    db5ab43 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    aac98c6 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    38fa9f0 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    af12bb6 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    31d8290 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3bedf0e View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    1c8606a View commit details
    Browse the repository at this point in the history
  13. chore: add some more tests

    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    692ae02 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    0a9a196 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a0ab57f View commit details
    Browse the repository at this point in the history
  16. chore: add legacy tests

    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    0ceda1d View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    77ab177 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    0ab7052 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    23cbd7d View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    23d438f View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    eaa213c View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    aa1ea84 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    5fa2d8e View commit details
    Browse the repository at this point in the history
  24. chore: fixes after rebase

    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    efae45c View commit details
    Browse the repository at this point in the history
  25. chore: add changelog entry

    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    1483d40 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    7d32475 View commit details
    Browse the repository at this point in the history
  27. chore(rebase): cleanup after rebase

    Authored-by: RobWalt <[email protected]>
    RobWalt committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    4d4d92f View commit details
    Browse the repository at this point in the history