* added arcs impl
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
* fixed arc drawing, todo - fix linear check
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
* fixed linear bug + added comments and tests
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
* added max iteration guard + made params optional + added impl todo
* Add functionality to get arcs between extrema
* Add ArcsOptions to manage optional parameters of the arcs function
* added slider to toggle between arcs impl
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
* Remove unused types
* address some comments
* added rustdoc for CircularArc struct
* Extract duplicate code into helper, remove loop labels, use window function
* Make JsValue handling consistent in WasmBezier and add comments for the underlying type
* Add enum for MaximizeArcs Auto/On/Off functionality
* Change Auto to Automatic
* fix errors from resolving merge conflict
* fixed error from resolving merge conflicts
* fixed formatting
* address comments
* Small fix
* Add some missing comments
* address comments
* rename variable
* Use unit to show maximize_arcs values
* Change i32 to usize and other minor adjustments
* Change computation for middle t values
* Remove tsconfig
* Fix more usize number handling
Co-authored-by: Hannah Li <hannahli2010@gmail.com>
Co-authored-by: Rob Nadal <RobNadal@users.noreply.github.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* IPP for Mac, flawed initial experiments
* Cleanup and progress, but not compiling yet
* Fix error and rename nonmac -> standard
* Extentd ipp macros to accomodate mac input
* Add Mac versions of shortcuts; refactor and document the input mapper macros
* Change frontend styling for user input labels in floating menus
* Additional macro documentation
* A little more documentation
* Improve entry macro syntax
* Move input mapper macros to a separate file
* Adapt the keyboard shortcuts to the user's OS
* Display keyboard shortcuts in the menu bar based on OS
* Change Input Mapper macro syntax from {} to ()
* Fix esc key bug in Vue
* Tweaks
* Interim solution for Mac-specific hints
* Feed tooltip input hotkeys from their actions
* Fix hotkeys for tools because of missing actions
* Make Vue respect Ctrl/Cmd differences per platform
* Remove commented lines
* Code review pass by me
* Code review suggestions with TrueDoctor
* Turn FutureKeyMapping struct into ActionKeys enum which is a bit cleaner
* Add serde derive attributes for message discriminants
* Re-add serde deserialize
* Fix not mutating ActionKeys conversion; remove custom serializer
* Add serde to dev dependencies
Co-authored-by: Dennis <dennis@kobert.dev>
* 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>
* Log message tree
* Log when message execution deferred
* Tree structure in traces
* Fix ordering when queue partially consumed
* Change some log settings and wording
* Revert default max log level to debug
* Change messages to On/Names/Contents as log::info, change trace to toggle, rename GlobalMessage to DebugMessage
* DebugPrintDocument cleanup
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* unfinished implementation
* Add frontend for the empty panel screen
* Add an icon for Folder based on NodeFolder
* fixed messages causing peicees of ui not to render on new document
* Standardize nextTick syntax
* WIP generisization of component subscriptions (not compiling yet)
* Fix crash when loading font and there is no active document
* Only advertise tool actions with a document
* Fix failure to create new document
* Initalise the properties panel
* Fix highlight tab, canvas jump, warns and layer tree
* Fix tests
* Possibly fix some things?
* Move WorkingColors layout definition to backend
* Standardize action macro formatting
* Provide typing for widgets in TS/Vue and associated cleanup
* Fix viewport positioning initialization
* Fix menu bar init at startup not document creation
* Fix no viewport bounds bug
* Change !=0 to >0
* Simplify the init system
Closes#656
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Improve behavior of occluded layer dragging
Layers or groups of layers can only be dragged if they are
not occluded at the point of dragging. Otherwise the layer(s)
are deselected and the occluding layer is selected instead.
Closes#705
Co-authored-by: David Chiasson <david@sagemotion.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>