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

2D Geometry Clipping #13

Merged
merged 91 commits into from
Aug 16, 2024
Merged

2D Geometry Clipping #13

merged 91 commits into from
Aug 16, 2024

Conversation

LuizZak
Copy link
Owner

@LuizZak LuizZak commented Jul 8, 2024

A tentative implementation of boolean operations on 2-dimensional non-intersecting shapes made up of lines and arcs, the result of which is not a raster output but instead other lines and arcs.

Sample of a union between a circle and a hexagon:

image

A small interactive sample of the generated clipped geometry along with how the periods map to a scalar value is available on p5js:

https://editor.p5js.org/LuizZak/sketches/M7GCbu6SK

Checklist

  • Define final clipping geometry type API
  • Implement tolerance in new unit test APIs and new unit tests
  • Implement Union boolean operation
  • Implement Intersection boolean operation
  • Implement Subtraction boolean operation
  • Derive a better name, as 'periodic geometry' relates to crystal and prism-like geometric grids that repeat periodically
    • Renamed to GeometriaClipping
  • Support holes as extra contours within a geometry
  • Apply optimizations and inlinable attributes
    • Optimize compound geometry inversion
  • Handle interference of vertices/edges

@LuizZak LuizZak changed the title [WIP] Periodic Geometry [WIP] 2D Geometry Clipping Jul 8, 2024
…parametric intersections

Renaming Periodic -> Parametric in types
@LuizZak LuizZak merged commit 37c6cb5 into main Aug 16, 2024
1 check passed
@LuizZak LuizZak deleted the periodic-types branch August 16, 2024 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant