Files
Graphite/libraries/path-bool/Cargo.toml
Dennis Kobert 3eb98c6d6d 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>
2024-09-21 02:06:43 -07:00

39 lines
702 B
TOML

[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