Add the GPU split polygon#68
Open
madhephaestus wants to merge 817 commits into
Open
Conversation
This ensures that the the points that each core checks if a finite and fixed number. the process can be run in iterations that are indexed at the end of the loop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@miho I Have here a PR that i know is unlikely to be merged, but represents a huge amount of work to bring this library up to date. I re-wrote the splitPolygon algorithm, as well as added a full-manifold mesh repair, both of which use Aparapi to run on the GPU. Other important changes were using newels method to compute the normal, instead of a dot product of 2 vectors, produces a valid normal on convex and edge case geometry. It also detects sets of colinear points, which can not be triangulated and therefor must be pruned. I also changed the CCW detection to use a reference normal and the computed normal of the points using newels method to more robustly detect CW vs CCW for concave polygons (Mosly important in SVG loading). I updated the text and svg loading to use a common Bezier extrapolation and also to use a common and triangulated monotone extrude (the rectangular method was breaking when doing spirals.)
Beyond those core algorithm corrections, i have added a ton of additional features. Many additional primitives, including parametric sweeps, threads spirals, bezier path exrsuions and 2 and 3d hexaganoal distribution methods. I have added Slicing, SVG loading and export, fixed the OBJ export, and implemented a "hole" classification where geometries are differences in union operations to simplify process flow.
All of these updates were in service of making CaDoodle CAD faster and more stable. CaDoodle is a cross-traainable open source alternative to TinkerCAD. Under the hood, JCSG powers the entire cad engine.