* 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
* Implement scale and offset
* Add tests for offset and reduce
* Added scale to documentation page
* address comments
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
Co-authored-by: Thomas Cheng <Androxium@users.noreply.github.com>
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
* Added Subpath constructor, iterator and length
* Asserted that subpaths of len < 2 cannot be closed. Added len() and comments
* Added subpath to_svg(), made structs public, made quadratic use either in_handle or out_handle
* add bezier handles
* Added basic interactivity and index traits
* Added SubPath interactivity
* Added svg styling
* Broke subpath impl across multiple files. More sylistic changes per review
* Fixed format error
* Added closed subpath to documentation page
* Modified subpath to_svg to use functional style
* Stylistic changes per review
* Fixed build errors
* More sylistic changes per review
* Moved svg commands to constants
* Moved formatting for svg arguments to ToSVGOptions
* Renamed files in git
* Even more stylistic changes per review
* pre-rebase
* broken wasm
* hull lines
* update rust lib description
* update comments, handle match statement better, pass Point type to vue
* cleanup
* add linear case
* More idiomatic code
* Further simplifications to the algorithm and removal of more heap allocations
* Rename to de_casteljau_points and use colors for the iterations
* Small comment changes
* Improve colors
Co-authored-by: Jackie Chen <jackiechen73>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
* Renamed VectorAnchor, VectorShape and VectorControlPoint. Also fixed other naming inconsistencies.
* Renamed messages relating to vector and updated naming in several tools
* Renamed comments + caught a few areas I had missed.
* Caught a few more incorrect names
* Code review pass
* Review changes
* Fixed warning
* Additional review feedback
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fixed extrema bug and added reduce impl
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
Co-authored-by: Linda Zheng <ll2zheng@uwaterloo.ca>
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
* Stylistic changes related to reduce
* Fixed reduce splitting bug causing panic
* Added shortcuts and simplified reduce
* Stylistic changes per review
* address comments
* Removed color gradient function and added consts
* Tweaks
* Change colors faster
* Don't drop on mouseout
Co-authored-by: Thomas Cheng <contact.chengthomas@gmail.com>
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
Co-authored-by: Linda Zheng <ll2zheng@uwaterloo.ca>
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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
* Implement backend of extrema in bezier-rs
* Added extrema frontend
* Added extrema interface
* Wrapped extrema in filter function to remove points not on the curve
* Saved intermediate results while computing extrema
* Fixed extrema bug when a in cubic formula is 0
* Removed extra prints
* Fixed quadratic extrema regression
* Moved helper functions to utils file
* Fixed bug in solve linear
* Stylistic changes per review
* Sentence comments
Co-authored-by: Linda Zheng <thelindazheng@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>
Co-authored-by: Thomas Cheng <35661641+Androxium@users.noreply.github.com>
Co-authored-by: Robert Nadal <Robnadal44@gmail.com>
Co-authored-by: ll2zheng <ll2zheng@uwaterloo.ca>