* Add locking layer feature
* Update locked state data to adjust the refactor
* Make the locked layer cannot be selected using pointer and select all key
* Make locked layer cannot be moved and disable bounding box
* Add locked status selected node on CopyBuffer
* Make locked layer cannot be selected when selected all layers, and disabled GRS and nudging operation on locked layer
* Add refresh document metadata before update button on visible and locked
* Updated from master
* Fix icon logic on panel locked layer
* Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked
* Revert "Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked"
This reverts commit 7c93259bc2bef492e203d6ac9c48852112e6c3a3.
* Revert "Fix icon logic on panel locked layer"
This reverts commit 33939f2e84431d64e6bc2bef07161eafcfba0c0e.
* Delete Make Lock button in the node graph top bar
* Add ToggleSelectedLocked to action_with_node_graph_open
* Fix parent and child locking behavior icon on panel
* Fix boolean operator on icon button locking layer
* Make bolean logic more readable in icon button locking layer
* Fix locking layer can be moved or resizing when selected with unlocking layer, disabled pivot widget on locking layer, disable all action on pivot point, alignment, flipping, and boolean operation for locking layer
* Fix axis align drag crash
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
- Move message handler payload data into structs
- Organize the file structure used by `editor/src/messages/portfolio/document` `/node_graph` and `/graph_operation`
- Make derive attributes use `serde::Serialize, serde::Deserialize` consistently instead of `use serde::{Deserialize, Serialize};` imports
- Various other code cleanup and refactoring
* added struct and registered fill from stroke node. not functional yet.
* properly registered new node
* finished fill-from-stroke feature. works on both closed and open shapes. supports line caps and line joins.
* fixed import issues and miter limit handling
* fix outline function. use both subpaths for solid shapes now
* code quality improvements
* use radius instead of diameter, functionality not yet working for shapes as transform is not properly applied before calculating new shapes.
* Updated to follow new VectorData structure. Fully functional.
* fix repeat node
* remove comment
* add a test, remove unused code.
* Use doubles in graph
* Format .graphite files onto one line
* Rename new node to Vector2
* No primary input
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Cache base64 representation of images when converting to graphic group
* Fix build
* Fix build again
* Actually fix it this time
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* WIP, transforms broken with rot/scale
* Transform around bounding box centre
* Add units and tooltips
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* Add Poisson-disk sampling node and Bezier-rs 0.4 release
* Additional optimizations
* More performance optimizations with help from 0Hypercube
* Add comments
* Add morph node
* Range slider time parameter, better lerping
* Lerp more fill and stroke parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Remove visible field from LegacyLayer
* Remove LegacyLayer wrapper around LegacyLayerType
* Remove FolderLegacyLayer and LayerLegacyLayer wrappers around their data
* Remove legacy layers
* Port gradient tool overlays
* Fix tests
* Text tool
* Artboard tool and some of select tool
* Port select tool drawing box
* Pen and path tool
* Remove overlays document
* Show the overlay refactor as done on the website roadmap
* Select tool bounds in layer space (first layer)
* Code review and fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Allow generic node input for type inference
* Make imaginate resolution picking depend on the image resolution instead of the transform
* Remove dead code
* Fix console spam after crash
* Fix crash when disconnecting Imaginate node input
* Update Imaginate tool tooltip
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>