mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-20 11:28:30 +08:00
Finish the convex hull node: in-repo algorithm, robustness, and tests
Replaces the WIP node crate, which depended on a convex_hull crate that only existed outside the repository, with a self-contained implementation: - The curved hull algorithm lives in vector-types' algorithms module. It splits curves at inflections and cusps into curvature-monotone arcs, discovers the boundary structure from a sampled polygonal hull, refines every transition to an exact tangency with closed-form quartic tangent-through-point solves, then emits the boundary as cuts of the original segments joined by straight bridge lines. - The node moves into vector-nodes alongside the other 'Vector: Modifier' nodes, ported to the List/attributes model. It accepts Graphic[] or Vector[], wraps every subpath (open or closed) and free-floating anchor point across all items, and outputs a single world-space hull path. - The boolean-union pre-pass is dropped as unnecessary: the hull of all segments equals the hull of their union, and the polyline connector it relied on lost floating points and mishandled open paths.
This commit is contained in:
@@ -44,7 +44,6 @@ text-nodes = { workspace = true }
|
||||
transform-nodes = { workspace = true }
|
||||
vector-nodes = { workspace = true }
|
||||
path-bool-nodes = { workspace = true }
|
||||
convex-hull-nodes = { workspace = true }
|
||||
math-nodes = { workspace = true }
|
||||
rendering = { workspace = true }
|
||||
graphene-application-io = { workspace = true }
|
||||
|
||||
@@ -7,7 +7,6 @@ pub mod render_pixel_preview;
|
||||
pub mod text;
|
||||
pub use blending_nodes;
|
||||
pub use brush_nodes as brush;
|
||||
pub use convex_hull_nodes;
|
||||
pub use core_types::*;
|
||||
pub use graphene_application_io as application_io;
|
||||
pub use graphene_core;
|
||||
|
||||
Reference in New Issue
Block a user