* Initial commit and refactor reduce
* Refactor reduce to get t values
* Implement self intersection
* Return pairs of t values
* Fix results for the case where self is linear and other is not, address other comments
* Update a rustdoc comment
* Address final PR comments
* Refactor intersections function
* Implement intersect for quadratic and cubic bezier curves
* Return t value instead of point
* Change project return the t value
* Add error threshold for curve intersection
* Refactor to use if let statements and improve comments
* Refactor intersection helper to return vector, other minor name/text changes
* Rename function
* Minor change
* Minor fixes
* Add missing test tag
* Address comments
* Adjust comment
* Change function call
* Edit comments
* Make certain parameters optional
* Use builder pattern for project function's optional parameters
* Address comments posted in bezier-math-lib discord channel
* Minor changes to text
* Address PR comments
* Fix index.html
* Nit
* Replace builder pattern with simple struct
* Move constants to a separate file
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Implement line intersection for quadratics, begin work for cubic
* Implement line intersection for cubic beziers, add tests for cubic root finding
* Rename function and update comments
* Minor refactor and adjust comments
* Address PR comments
* UI section for the projection function
* added bezier project impl
* Fix project function and add test for it
* Search method
* Re-use comptued distances
* Update comments
* rebase project changes
* clean up tests and library code
* use built-in functions and destructure syntax
* Remove redundant project implementation
* Fix typo, add lut size as parameter and add constant
* address comments
Co-authored-by: Thomas Cheng <contact.chengthomas@gmail.com>
* Implement quadratic and cubic from points
* Catch edge cases and integrate `t` slider
* Add 2 sliders for cubic
* Create utils file for bezier-rs and address other PR comments
* Rename variable and remove unnecessary ids
* Update rustdoc comments and rename variables
* Remove unnecessary file and refactor options for drawing beziers
* Address PR comments
* Update quadratic_through_points description
* Add wasm-pack to dependencies and change from spaces to tabs for indents
* Change strut to midpoint_separation, adjust sliders and section name
* Minor refactor
* Added split implementation and UI
Co-authored-by: Thomas Cheng <Androxium@users.noreply.github.com>
* Added bezier split impl
* Adjust struct traits
* Implement trim and adjust FE code to handle multiple sliders per feature
Co-authored-by: Thomas Cheng <contact.chengthomas@gmail.com>
Co-authored-by: Rob Nadal <robnadal44@gmail.com>
* Fix edge case in trim and add rust doc comments
* Stylistic changes per review
* More stylistic changes per review
* replaced last explicit color usages
Co-authored-by: Robert Nadal <Robnadal44@gmail.com>
Co-authored-by: Thomas Cheng <Androxium@users.noreply.github.com>
Co-authored-by: Thomas Cheng <contact.chengthomas@gmail.com>
* added ui for derivative impl
* Add derivative computation for bezier-rs library
* integrate devivative ui with library
* Add implementation for the normal function
* Update rustdoc comments
* Rename handles and getters, add tangent function
* Rename variables, address nits
Co-authored-by: Rob Nadal <robnadal44@gmail.com>
Co-authored-by: Thomas Cheng <contact.chengthomas@gmail.com>
Co-authored-by: ll2zheng <Linda Zheng>
* Add SVG string generator for radial gradients
* Add the UI for the linear vs radial radio inputs
* Initial radial gradient support for gradient tool
* Enabled click and drag support for radial gradients
* Refactor code for gradient in properties panel
* Added gradient type to gradient struct
* Finish refactor to use gradient_type instead of fill
* Fix lint issue
* Combine LinearGradient and RadialGradient in Fill enum
* Add label to properties panel and fix bug
Co-authored-by: Robert Nadal <Robnadal44@gmail.com>
Co-authored-by: Oliver Davies <oliver@psyfer.io>