mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-30 22:08:12 +08:00
Add path-bool library (#1952)
* Add path-bool library * Cleanup code * Cargo format * Integrate boolean ops into graphite * Add test for editor crash * Fix edge sort floating point instability * Add unit test for red-dress failure * Backport tests and aux functions * Use curvature based sorting * Convert linear cubic splines to line segments * Deduplicate reversed path segments * Fix epsilon for empty segments * Remove parameter based intersection pruning * Add support for reversed paths * Add benchmark infrastructure * Add intersection benchmark * Add recursion bound * Implement support for overlapping path segments * Remove rouge prinln * Fix sorting for bezier segments with one control point at the start of the segment * Cleanup log statements * Directly translate graphite paths to Path segments * Round data before passing it to path_bool * Fix flag_faces traversal order * Add test for white dots in bottom right of painted dreams * Make rounding configurable * Update demo artwork to remove manual path modifications * Convert from path segments to manipulator groups directly * Remove dead code * Fix clippy lints * Replace functions in path segment with methods and add documentation * Add more documentation * Close subpaths * Reorganize files and add README.md * Add license information * Code review * Fix license info * Adopt new node macro and fix demo artwork * Close subpaths with Z --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
2febbfd698
commit
3eb98c6d6d
@@ -0,0 +1,38 @@
|
||||
[package]
|
||||
name = "path-bool"
|
||||
version = "0.1.0"
|
||||
rust-version = "1.81"
|
||||
authors = ["Graphite Authors <contact@graphite.rs>"]
|
||||
edition = "2021"
|
||||
keywords = ["bezier", "boolean", "path", "ops", "operations", "2d"]
|
||||
categories = ["graphics", "mathematics"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
|
||||
[features]
|
||||
logging = ["parsing"]
|
||||
parsing = []
|
||||
default = ["parsing"]
|
||||
|
||||
[dependencies]
|
||||
glam = "0.28.0"
|
||||
regex = "1.10.6"
|
||||
slotmap = "1.0.7"
|
||||
|
||||
[dev-dependencies]
|
||||
glob = "0.3"
|
||||
svg = "0.13"
|
||||
resvg = "0.42"
|
||||
image = "0.24"
|
||||
|
||||
# Required dependencies
|
||||
criterion = { version = "0.5", features = ["html_reports"]}
|
||||
|
||||
# Benchmarks
|
||||
[[bench]]
|
||||
name = "painted_dreams"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "path_segment_intersection"
|
||||
harness = false
|
||||
Reference in New Issue
Block a user