* add code to calculate area and centroid of subpath
* change library to poly_it
* add a demo of area and centroid
* modify algorithm to consider negetive area as positive
* add code for manipulating polynomials in bezier-rs
* remove `poly_it` dependency and use custom Polynomial
* formatting floats to skip last zero
* add debug mechanism
* collect both intersection points instead of one
* fix test and cargo fmt
* apply minimum separation filtering in self_intersection and use better endpoint filtering algorithm
* remove debug mechanism and cargo fmt
* consider the subpath as closed for intersection calculation
* add documentation for polynomial.rs
* impl display for Polynomial
* make area always positive
* add missing docs
* fix test and cargo fmt
* Naming/formatting code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add Poisson-disk sampling node and Bezier-rs 0.4 release
* Additional optimizations
* More performance optimizations with help from 0Hypercube
* Add comments
* Add tangent/normal to point to bézier-rs
* Add license information and general cleanup
* Bump version
* Add iframe demos
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Intial work
* Improve miter and add round join
* Get arcs to go opposite direction
* Add cap and other refactors
* Rename joint to join, fix some bugs
* Fix single point issue
* Clean up
* Fix iframe sizes and update UI
* Address comments and handle single point outline
* Rename variables, fix branches in outline
* Address comments
* Added subpath offset
* Enhanced offset to produce smooth curves
* Lots of outline bugfixes
* Fixed failing unit tests
* Added subpath outline
* Refactor bezier offset and outline to return Subpaths
* Fix outline bug due to smooth joining and removed reduce optimization that causes jumping approximations
* Bugfix when subpath angle is acute but doesn't intersect
* Stylistic changes per review
* Stylistic changes per review and updated doc comments
---------
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Create helper for converting d to t values
* Add euclidean option for tangent and normal
* Modified bezier functions signatures to accept ComputeType
* Stylistic changes per review
* Added ComputeType documentation
* Renamed ComputeType to TValue
* Fixed comments
* Fixed failing unit tests
* Code review
* Fix comments in code review
* Renamed compute_type_to_parametric to t_value_to_parametric
---------
Co-authored-by: Linda Zheng <thelindazheng@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add enum to evaluate for differenciating compute type
* Add euclidean parameterization and update styling in the UI
Co-authored-by: Rob Nadal <robnadal44@gmail.com>
* Update usage of evaluate in graphite
* Add description
* Code review changes
* Update tests
* Improve ComputeType ergonomics
* Large code review/cleanup pass
Co-authored-by: Rob Nadal <robnadal44@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Change Bezier to_svg to include handles and endpoints
* Move params into brackets of format macro, remove unused comment
* Use write macro instead of format
* Fix path for watched directory
* Refactor functions to remove ToSVGOptions
* Refactor bezier lib file into a separate folder
* Add better implementation comments
* Update import of Subpath from bezier-rs
* Add comment to describe compare.rs
* Remove printlns and adjust spacing