Nitish Choudhary and Keavon Chambers
2293da7d98
Improve Text tool click targets on text layers to use the text box ( #2145 )
...
* Fix text selection
* Remove old implementation
* minor change
* Use inbuilt function instead of helper
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-12-28 22:11:27 +00:00
0SlowPoke0 and Keavon Chambers
6c3c2e8529
Add selection removal to the Select tool's box select (Ctrl+Shift modifier) ( #2162 )
...
* select parent-node,remove deselect all layers message
* Comment nits
* implement negative selection box
* moved comment and formatting
* Apply suggestions from code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-12-28 11:43:29 +00:00
0SlowPoke0 and Keavon Chambers
a6676e4abd
Fix Select tool's box selection not being able to extend a selection with shift ( #2157 )
...
* select parent-node,remove deselect all layers message
* Comment nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-12-24 23:10:43 -08:00
0SlowPoke0 and Keavon Chambers
77936c44b0
Make Path tool deselect all points on single-click, and select all on double-click, of shape's fill ( #2148 )
...
* Implement deselect on single-click and select all anchors on double-click
* fixed the single_click_behaviour
* fix flipSmoothSharp when doubleclick and drag
* Cleanup and Clippy fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-12-22 21:59:59 -08:00
Utsav Singh
bc47d06139
Fix transform cage rotation abort causing broken state upon next transformation ( #2149 )
...
Fix abort functionality on Right Click when performing transformations using select tool
2024-12-22 01:54:30 -08:00
James Ryans
3be7505faf
Automatically place layers into the artboard they're drawn inside of ( #2110 )
...
* place new layer from basic tools within an artboard bounds
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
* add for Text Tool
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
* use click_xray function
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
* support for freehand tool
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
* support spline tool
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
---------
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
2024-12-20 19:02:00 -08:00
Keavon Chambers
ed119ad3d7
Add Freehand tool drawing new subpaths on an existing layer with Shift held
2024-12-17 22:01:42 -08:00
Keavon Chambers
1264ea8246
Tidy up the UI with clearer Layers panel selection marks and removal of most "coming soon" UI elements
2024-12-14 20:49:21 -08:00
James Lindsay
b21b1cbfc7
Simplify the implementation of the message buffering ( #2123 )
...
* Simplify the implementation of the message buffering
* Add assert to ensure list is empty
2024-12-02 20:48:33 +00:00
James Lindsay
e3bb11ec1b
Fix clippy lints ( #2119 )
2024-11-29 22:58:49 +00:00
Pratik Agrawal and Pratik Agrawal
2cf33e45bd
Remove Double-Click Behavior for Switching to Path Tool on Non-Path Layers ( #2116 )
...
* Remove double-click behavior for switching to Path tool on non-Path layers
* removed the else-if block
* removed the path tool activation from shallowm mode
---------
Co-authored-by: Pratik Agrawal <patrik@Pratiks-MacBook-Air.local >
2024-11-26 16:33:14 +00:00
James Lindsay and Keavon Chambers
51ce51ea8c
Refactor collection of snap targets ( #2114 )
...
* Collect snap targets cleanup
* Make Clippy happy
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-11-20 22:27:49 -08:00
James Ryans
ee2d4a03db
Make Pen tool always snap to endpoint anchors, even when snapping is off ( #2107 )
...
* pen should always snap on last anchor
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
* snap anchor on every single connected points
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
---------
Signed-off-by: James Ryans <james.ryans2012@gmail.com >
2024-11-12 13:53:55 -08:00
James Lindsay and Keavon Chambers
3ce1317053
Make the Pen tool only append new paths when Shift is held ( #2102 )
...
* Append to a path with shift
* Fixup transforms
* Revert unnecessary transform change
* Fix delete node button transaction
* Prevent artboard from being selected after making a new document
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-11-11 15:14:32 -08:00
Keavon Chambers
de366f9514
Add Brush tool warning; move font list loading to document creation time
2024-11-09 12:27:09 -08:00
Keavon Chambers
457619794b
Improve nudging when tilted and add Artboard tool nudge resizing; disable menu bar entries when no layer is selected ( #2098 )
...
* Make nudging follow a tilted viewport
* Add artboard nudge resizing
2024-11-08 16:16:20 -08:00
November-6 and Keavon Chambers
b3a196c0b6
Fix point nudging to work in document space ( #2095 )
...
* Modified Path tool Behaviour
* Make the code simpler and more self-descriptive
* Make it work for transformed layers
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-11-05 22:27:31 -08:00
Keavon Chambers
f1b0d8fa87
Improve the node graph with revamped top bar and disabling tools when graph is open ( #2093 )
...
* Add "Fade Artwork" slider and disable tools when graph is open
* Add navigation and layer/node management buttons to graph top bar
* Reduce code duplication
2024-11-04 20:41:53 +00:00
Keavon Chambers
8d3da83606
Avoid sometimes breaking the selected layer upon switching away from the Select tool
2024-11-02 18:55:57 -07:00
adamgerhant
c7b08246c2
Allow the Pen tool to connect layers by their endpoints, merging into a single layer ( #2076 )
...
* Merge vector data layers
* Fix early return
* Fix layer space multiplication error
* Recalculate positions when changing layer space
* Add transform node
* Remove pen tool layer state
2024-11-01 12:19:46 -07:00
Daragh and Keavon Chambers
018e9839f8
Add Path tool support for the Tab key swapping to dragging the opposite handle ( #2058 )
...
* feat: tab alternates between handles
* fix: handle hints, remove anchor to handle switch
Added specific handle hints,
Can no longer switch to handle if just anchor is selected
typo fix
* fix: no longer deselect on esc/rclick
* feat: hides cursor when switching
A pointerlock implementation would be ideal in the future to keep the screen from panning,
* fix: tidy up dynamic tool hints
switch colinear to V
* fix: can no longer hide cursor if anchor selected
remove debug statement
* fix: clippy
* Solve some issues and remap V to C to toggle colinear
* Cleanup + change equidistant key from Shift to Alt
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-10-30 02:48:20 -07:00
Daragh
b1399af5cd
In the Path tool, make Space shift the anchor while dragging handles ( #2065 )
...
* in progress:
* cherry-pick
* works kinda, fails when holding down space
* seems to be working
* naming
* fix :clippy
* fix: put back in newline
* fix: add overlay draw message
will now visibly select points when pressing space instantly as opposed
to when its moved
* cleanup + rename
* refactor to use refresh keys
* fix: naming
* add back in todo
* :)
* fix: Small bugs relating to space handle selection
If release mouse before space, reselect previous points and unselects points
selected by space.
If only anchor is selected it will not select handles.
Removed comment as its now clear what its doing / where its coming from
2024-10-26 09:20:08 +00:00
Mohamed Osama
3c839ffd2b
Clean up old usages of NodeId(generate_uuid()) by replacing it with NodeId::new() ( #2009 )
...
Replace all `NodeId(generate_uuid())` with `NodeId::new()`
2024-10-25 19:43:46 -07:00
RyanRothweiler and Keavon Chambers
63d44f22e3
Fix Text tool clearing text when hitting Escape by changing it to commit the edit instead ( #2052 )
...
* Text tool escape sends commit message
* Improve hint text
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-10-25 18:12:54 -07:00
adamgerhant
fd20d51e85
Fix various crashes and bugs ( #2075 )
...
* Fix offset brush tool
* Fixes
2024-10-25 16:54:37 -07:00
James Lindsay and Keavon Chambers
d6f46f73da
Factor in artboard clipping to the click target x-ray function ( #2028 )
...
* Add clipping to the click xray function
* Clip area rays as well
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-10-12 23:38:17 +00:00
Keavon Chambers
2d86fb24ab
Add line height and character spacing to the Text node ( #2016 )
2024-10-01 12:28:27 -07:00
Keavon Chambers
904cf09c79
Add drag-and-drop and copy-paste file importing/opening throughout the UI ( #2012 )
...
* Add file importing by dragging and dropping throughout the UI
* Disable comment-profiling-changes.yaml
* Fix CI
2024-09-28 00:19:43 -07:00
adamgerhant and Keavon Chambers
20470b566b
Fix many regressions introduced mostly in #1946 ( #1986 )
...
* Fix text tool
* Implement buffering to fix freehand tool
* Fix tools
* Fix clippy lints
* Small fixes
* Move vector modify back to Monitor nodes
* Code review
* Fix abort
* Fix svg import
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-26 15:37:03 -07:00
Keavon Chambers
c738b4a1f9
Replace terminology "primary" with "call argument" and "parameter" with "secondary input"
2024-09-25 20:05:00 -07:00
ca0d102296
Fix click targets (in, e.g., the boolean node) by resolving footprints from render output ( #1946 )
...
* add NodeId (u64) and Footprint to Graphic Group
* Render Output footprints
* Small bug fixes
* Commented out render output click targets/footprints
* Run graph when deleting
* Switch to node path
* Add upstream clicktargets for boolean operation
* Fix boolean operations
* Fix grouped layers
* Add click targets to vello render
* Add cache to artwork
* Fix demo artwork
* Improve recursion
* Code review
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-16 01:26:59 +00:00
James Lindsay and Keavon Chambers
dd4a97b09f
Correctly apply transforms to vector data and strokes ( #1977 )
...
* Fix adding a layer to a transformed group
* Fix assorted transform issues
* Default stroke transform
* Fix bench
* Transform gradient
* Gradient fix
* Add gradient reversal buttons to Fill node in the Properties panel
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-15 22:26:11 +00:00
0c5bccc2fd
Make the primitive shape tools avoid setting a negative transform scale ( #1973 )
...
* Fix transformation for primitive tools, make odd-sided polygons and stars flipped with radius instead of scale
* Extract to function and add comment
* Code review
---------
Co-authored-by: hypercube <0hypercube@gmail.com >
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-14 23:15:56 +00:00
adamgerhant and Keavon Chambers
70dacac474
Refactor navigation metadata ( #1956 )
...
* Fix path tool select
* Refactor rounded edge distance
* comment
* Fix demo artwork
* Fix comments
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-05 19:53:37 +00:00
James Lindsay
06e11b6f46
Fix invalid segment crash when disolving point loop ( #1959 )
...
* Fix invalid segment crash
* Further improve robustness
2024-09-05 11:45:14 -07:00
adamgerhant
19541c9684
Fix broken SVG importing and crash when exporting ( #1953 )
...
* Fix importing SVG and crash when exporting
* Code improvements, prevent entering network after drag
2024-09-03 06:54:51 +00:00
adamgerhant and Keavon Chambers
9adc640f19
Improve layer positioning in graph upon reordering; improve history system; add selection history ( #1945 )
...
* Improve layer positioning
* Collapse space when deleting
* Improve moving layers in layer panel
* Improved transactions
* Selection history
* Code review
* Select previous selection when aborting
* Fix crash and artboard select
* Add mouse forward/back button selection history bindings
Code review
* Menu buttons
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-09-01 02:34:18 -07:00
adamgerhant and Keavon Chambers
78337f9b8e
Add shifting of layers in stacks as blocks that collide and bump other layers/nodes ( #1940 )
...
* Shift nodes as blocks
* Implement rubber banding
* Improve upstream locking when shifting layers
* WIP: Reworked shifting
* WIP: Reworked node shifting
* Finish shifting
* Fix demo artwork
* Code review
* Right click to end shift
* Improve rubber banding
* Fix clippy issues
* Skip collision for intersecting nodes
* Rubber banding bug fix
* Fix ctrl+delete node in chain
* Grip drag
* Fix layer width
* Add icon to frontend for the solo drag grip
* Reconnect during ctrl+delete
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-08-22 01:56:32 -07:00
Keavon Chambers
6a2b0d74dc
Rename document_node_types.rs to document_node_definitions.rs
2024-08-15 17:48:57 -07:00
adamgerhant and Keavon Chambers
2bd213f1aa
Improve layer panel positioning for upstream nodes ( #1928 )
...
* Improve layer panel positioning for upstream nodes
* highlight parents
* Final improvements
* Fill for selection box, bug fixes
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-08-14 03:27:42 -07:00
James Lindsay and Keavon Chambers
1f278799d6
Add quick measure overlays with Alt pressed ( #1894 )
...
* Measure with alt
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-08-10 04:56:02 -07:00
James Lindsay and Keavon Chambers
cdd179cf10
Add snapping targets for b-box edges and multi-layer spacing distribution ( #1793 )
...
* Initial work on aligning bounding boxes
* Work in progress distribution
* Distribution snapping
* Distribution overlays
* Align points and clean up
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-08-04 22:12:20 -07:00
0dbbabe73e
Add layer node chains, import/export edge connectors, and refactor graph editing to go thru a NodeNetworkInterface ( #1794 )
...
* WIP: NodeNetworkInterface
* Organize ModifyInputsContext to use network interface
* Improve ClickTarget and Position state
* Rework ClickTarget state
* Continue fixing NodeGraphMessageHandler
* Restructure network_metadata
* Final(?) NodeNetworkInterface struct
* Final(??) NodeNetworkInterface
* Final(???) NodeNetworkInterface. Separated persistent and transient data
* Final NodeNetworkInterface data structure. Implemented all basic getters
* Continue migrating functionality to network interface
* Migrate all NodeGraphMessage's to use network interface
* Fix all helper functions in NodeGraphMessageHandler
* Move document metadata to network interface, remove various cached fields
* Move all editor only NodeNetwork implementations to NodeNetworkInterface
* Fix all DocumentNodeDefinitions
* Rework and migrate GraphOperationMessages to network interface
* Continue migration to NodeNetworkInterface
* Save point before merging master
* Fix all errors in network_interface
* 850 -> 160 errors
* Fix all errors :D
* Render default document
* Visualize click targets
* merge conflicts
* Cache transient metadata separately, store entire interface in document history
* Start migration to storing selected nodes for each network
* Remove selected nodes from document message handler
* Move outward wires and all nodes bounding box to transient metadata
* Fix connecting/disconnecting nodes
* Layer stack organization for disconnecting/connecting nodes
* Basic chain locking
* Improve chain positioning
* Add copy/pasting
* Move upstream nodes on shift+drag
* merge conflict fixes
* Improve Graph.svelte code quality
* Final improvements to Graph.svelte
* Fix layer panel
* Performance optimizations
* Bug fixes and derived PTZ
* Chain organization improvement and bug fixes
* Bug fixes, remove all warnings
* Automatic file upgrade
* Final code review
* Fix editor tests
* Fix compile errors
* Remove select tool intersection check when panning
* WIP: Import/Exports
* Fix JS issues
* Finish simplified import/export UI
* Import/Export viewport edge UI
* Remove minimum y bound on import/export ports
* Improve performance while panning graph
* cargo fmt
* Fix CI code build
* Format the demo artwork graph with chains
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
Co-authored-by: dennis@kobert.dev <dennis@kobert.dev >
2024-08-04 06:47:13 -07:00
Dennis Kobert and Keavon Chambers
a6af5d4831
Memoize hashing ( #1876 )
...
* Implement memoization wrapper for hashing
* Fix pattern matching errors
* Revert proper point modification hash calculiton
* Remove unused hashing code
* Code review and bug fixes
* Improve pattern matching
* Fix tests
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-08-01 04:42:15 -07:00
Keavon Chambers
44ffb635e9
Improve rendered SVG output syntax for better compatibility and terseness ( #1880 )
...
* Improve rendered SVG output syntax for better compatibility and terseness
* Fix CI failing on boolean operations without wasm32?
* Attempt 2
2024-07-30 08:28:49 -07:00
Dennis Kobert and Keavon Chambers
ab8748627d
Fix Layers panel UI not updating on selection change and expand/collapsing ( #1847 )
...
Also fixes a panic on empty layer.
* Fix layer properties updete on layer change + fix panic on empty layer
* Fix Layers panel expand/collapse
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-07-23 23:44:57 +00:00
Umer Khan and PersonOOO
3a591dac6a
Fix breakage of shallow select mode in the Select tool ( #1843 )
...
* fixed bug with shallow selecting ROOT_PARENT
* fixed formatting
---------
Co-authored-by: PersonOOO <82835562+PersonOOO@users.noreply.github.com >
2024-07-22 03:39:39 -07:00
James Lindsay and Keavon Chambers
fa1535d0bb
Update dependencies and lock files ( #1841 )
...
* Bump lock files
* Fix glam mismatch version
* Add tokio feature
* Update all deps
* Fix gpu-compiler not able to reference the root workspace
* Bump a few more deps
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-07-22 02:56:29 -07:00
Dennis Kobert and Keavon Chambers
3657b37574
Deprecate LetNodes in favor of new scope API ( #1814 )
...
* WIP
* Start deprecating let nodes
* Replace WasmEditorApi network imports with new Scope input
* Add missing unwrap
* Add #[serde(default)] to scope_injections
* Restructure WasmEditorApi definition to be available as a TaggedValue
* Fix text node
* Use stable toolchain in nix shell again
* Code review
* FIx text node and remove all remaining warnings
* Require executor input to be 'static
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-07-10 14:18:21 +02:00
adamgerhant and Keavon Chambers
9d749c49fb
Add a stack-based Boolean Operation layer node ( #1813 )
...
* Multiple boolean operation node
* Change boolean operation ordering
* Complete layer boolean operation node
* Automatically insert new boolean operation node
* Remove divide operation
* Fix subtract operations
* Remove stack data from boolean operation properties
* Fix images and custom vectors
* Code cleanup
* Use slice instead of iter to avoid infinite type recursion
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-07-10 02:12:55 -07:00