Adesh Gupta
09ece9424d
Fix undo/redo history related issues with the Path tool ( #3111 )
...
* Fix transactions
* A little cleanup
* Fix bug in delete
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-11 05:02:45 +00:00
Adam Gerhant
332088bce1
Make the Transform node use angles in degrees instead of radians for Rotation and Skew ( #3160 )
...
* Make the Transform node use degrees not radians
* Migration script
* Migrate skew value input to store degrees
* Add comments
* Fix migrations to account for the old deprecated "Pivot" parameter
* Fix tooling interactions with degrees-based transforms
* Upgrade demo art
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-11 00:19:10 +00:00
0SlowPoke0
485152bf8d
Add "Spiral" to the Shape tool and as a new node ( #2803 )
...
* made spiral node
* number of turns in decimal and arc-angle implementation
* logarithmic spiral
* unified log and arc spiral into spiral node
* add spiral shape in shape tool
* fix min value and degree unit
* make it compile
* updated the api
* changed the function_name
* [/] to update the turns widget in shape tool
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-08 14:37:43 -07:00
Priyanshu
84470b6b6d
Fix a regression with duplicating or pasting vector geometry in the Path tool ( #3142 )
...
* fix path tool duplication
* fix copy and paste
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-08 05:11:15 +00:00
0SlowPoke0
3e50d177b7
Add "Grid" to the Shape tool along with row/column gizmos ( #2921 )
...
* integrated grid shape in shape-tool
* add overlays,detection,transform for gizmo
* fix compile issues
* handle negative correctly,fix undo redo and abort
* fix missed merge conflicts
* fixed mouse cursor,correctly translatiing
* cleanup
* fix click-target area inside rect and spacing
* add 10px closer to gizmo line
* resolved conflicts
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-07 17:53:37 -07:00
Priyanshu
65171a5b8e
Fix Path tool box selection not selecting enclosed segments, only intersected ( #3141 )
...
fix path tool box selection not selecting the enclosed segment
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-07 22:08:56 +00:00
Adesh Gupta
57111cff92
Fix undo history getting stuck when the Select tool clicks the background to deselect ( #3143 )
...
Remove unnecessary start transaction messages
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-09-07 19:55:12 +00:00
Meet Zalavadiya
0a153150f5
Add quick measurement support to the Artboard tool for distances between artboard edges ( #3102 )
...
* logic added for artboard
* fixed measurement logic
* fix linting issues
* removed unused code
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-29 21:27:29 +00:00
Adam Gerhant
f1a1275601
Add support for adding/removing a graph's primary imports/exports separately from the secondary ( #3089 )
...
* Primary Import/Export
* Primary Import/Export
* Complete import exports
* Final changes
* Improve line width
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-29 20:57:15 +00:00
Adesh Gupta
34b52bcc54
Clean up Path tool related code and fix bugs in several cases ( #3070 )
...
* Fix regressions related to path tool
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-27 23:42:04 +00:00
Dennis Kobert
d9cbf975ff
Deprecate automatic composition ( #3088 )
...
* Make manual_compositon non optional and rename to call_argument
* Fix clippy warnings
* Remove automatic composition compiler infrastructure
* Implement document migration
* Fix tests
* Fix compilation on web
* Fix doble number test
* Remove extra parens
* Cleanup
* Update demo artwork
* Remove last compose node mention
* Remove last mention of manual composition
2025-08-24 08:34:59 +00:00
Dennis Kobert
7377871106
Fix clippy warnings ( #3085 )
...
* Run clippy fix
* Clippy v2
* Make const item static
* Cargo fmt
2025-08-23 11:45:47 +02:00
Dennis Kobert
7c30f6168b
Improve snapping performance ( #3067 )
...
* Use lyon_geom for intersection calculation of bezier segments
* Implement approximate nearest point calculation and loosen bounding boxes
* Add algorithm explanation
* Update editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs
Co-authored-by: Keavon Chambers <keavon@keavon.com >
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-20 10:47:58 +02:00
Priyanshu
615c035683
Fix a Path tool regression where selection depends on box winding direction ( #3062 )
...
fix path tool selection
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-19 04:36:18 +00:00
Mohd Mohsin
17d70dc60e
Add struct field visualization to the editor message hierarchy tree visualization on the website ( #2917 )
...
* Fix Message Tree: Enforce Structure and Visibility
* Code review
* fix the erroreous ouputs
* error handling for MessageHandler
* Fix website visualization HTML generation
* error handling for tuple-style message enum variant
* cleanup
* Update messages
* Normalize BroadcastEvent
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-18 21:04:29 -07:00
Vineet Puranik
0a4a822837
Fix Alt-based quick measurement to show document space coordinates instead of viewport space ( #2995 )
...
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-18 06:33:09 +00:00
Meet Zalavadiya
4da732dcc3
Fix artboard labels not reappearing once the node graph is closed to return to the viewport ( #3061 )
...
Closes #3045
2025-08-18 05:49:21 +00:00
Adesh Gupta
52174fa4c2
Remap Path tool point sliding to G G ( #2913 )
...
* Feat: Point sliding on G G
* Code cleanup
* Fix gg sliding behaviour
* Fix build after merge conflict resolution
* Fix slide point and add hints
* Fix history in segment insertion
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-17 03:39:38 +00:00
Priyanshu
d22b2ca927
Refactor the Centroid node and Subpath struct and methods to use Kurbo, eliminating all remaining usages of Bezier-rs ( #3036 )
...
* define Subpath struct in gcore and refactor node-graph
* Refactor few methods
* refactoring worked!
* refactor centoid area and length
* remove unused
* cleanup
* fix pathseg_points function
* fix tranforming segments
* fix segment intersection
* refactor to_path_segments fn in gpath-bool crate
* refactor gcraft
* add bezier-rs dep
* Code review the editor directory
* use path-bool for solving roots
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-16 13:39:25 -07:00
Adesh Gupta
99984fc2d6
Fix regression in shallow select ( #3050 )
...
* Add defer message for shallow select
* Fixed infinite loop
2025-08-15 12:55:05 +02:00
Keavon Chambers
bdc029c692
Add Table<Gradient> as a graphical type ( #3051 )
2025-08-13 01:42:51 -07:00
Keavon Chambers
1b351aca76
Replace the Color type with Table<Color> everywhere ( #3048 )
2025-08-12 00:38:23 -07:00
Dennis Kobert
ef2fab32a2
Track which document the deferred executions belong to ( #3010 )
...
* Track which document the deferred executions belong to
* Cleanup
* Fix tests
* Fix freehand tool
* Notify defer handler of graph execution updates asap
2025-08-06 21:16:02 +02:00
Keavon Chambers
0f638314dc
Rename the Group type to Graphic everywhere ( #3009 )
2025-08-05 20:55:15 -07:00
James Lindsay
23eb5998db
Fix pen tool ( #3002 )
2025-08-05 11:41:59 +00:00
Keavon Chambers
2e1396462c
Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables ( #2996 )
...
* Eliminate bare Graphic and Artboard graph data by making Merge and Artboard nodes internally use tables
* Make the Extend node user-facing
2025-08-05 02:24:12 -07:00
Keavon Chambers
c98477d8ed
Rename graphic subtypes to remove their "data" and "group" suffixes ( #2990 )
...
* Rename VectorData to Vector
* Rename other VectorData* types to Vector*
* Move assorted data types out of vector_data.rs into misc.rs
* Rename vector_data.rs to vector_types.rs and remove the vector_types module folder
* Rename other references to "vector data"
* Remove label widgets for raster/vector/group to use "-" instead
* Rename RasterData to Raster
* Rename GraphicGroup to Group
* Fix migrations and rename graphic_element.rs -> graphic.rs
* Rename TaggedValue::ArtboardGroup -> TaggedValue::Artboard
2025-08-04 04:53:25 -07:00
0SlowPoke0
fd66f29853
Fix Shape tools bugs with stars/polygons with negative radii and circle radius click detection when viewport is zoomed ( #2986 )
...
* fixed spacing,click detection in radius gizmo fix drag in start point radiius gizmo
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-04 01:14:28 +00:00
Timon
8fad295e36
Make checkboxes not use interior mutability ( #2976 )
...
* Make checkboxes not use interior mutability
* Use copy instead of cloning
* Fix
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-03 15:16:21 -07:00
Dennis Kobert
7fcdad1f88
Remove message deferral for text creation ( #2978 )
...
* Remove message deferral for text creation
* Restructure Trigger Navigation ready to not hijack the PTZ Update
2025-08-03 16:06:30 +02:00
Keavon Chambers
a0ce56d9b6
Rename Instances<T> to Table<T> and the "instance" terminology to "TableRow" and "element" ( #2981 )
...
* Instances -> Table
* instances.rs -> table.rs
* Rename occurrances of the word "instances"
* .instance -> .element
* Instance* -> TableRow*
* Rename Table and TableRow methods to not say "instance"
* Remove presumed unused serde defaults now that tables default to length 0 not 1
* Rename occurences of the word "instance"
* Un-alias the RasterDataTable<Storage>, VectorDataTable, GraphicGroupTable, ArtboardGroupTable typedefs
* Move artboard type and node code out of graphic_element.rs to a new artboard.rs
* Organize the TaggedValues
* Fix tests
* Fix prior regression with Image Value node not upgrading
2025-08-03 04:12:18 -07:00
James Lindsay
1e3c3da3fe
Fix the Path tool erroneously showing editable geometry overlays belonging to hidden Path nodes ( #2932 )
...
* Ignore hidden path nodes
* Use correct path node vector modification
* Break test
* Better fix for test
* Fix rustfmt
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-02 22:53:05 +00:00
Adesh Gupta
c42011f8e2
Partly fix when the "Make Path Editable" button is shown as enabled ( #2968 )
...
* Fix add path node button enable
* Fix add path node button enable
* Refactor code
* Fix formatting
* Clean up logic
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-02 21:55:04 +00:00
Adesh Gupta
b9a1b2e951
Add copy/cut/paste/duplicate functionality for path geometry ( #2812 )
...
* Copy and Paste for paths
* Fix merge
* Implement Copy, Cut and Duplicate
* Fix selection of segments
* Fix formatting
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-02 21:15:01 +00:00
Adesh Gupta
668acd3c30
Improve the Path tool's segment editing mode and make hovering manipulators react contextually ( #2860 )
...
* Improve path editing mode
* Code review
* Tidy up UI
* Update path selection behaviour
* Fix linting
* Remove frozen flag
* Code review
* Fix segment split
* Fix deleting segments
* Add requred methods in vello overlay context
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-01 23:58:35 -07:00
0SlowPoke0
523132da17
Add 'Circle' to the Shape tool and its associated gizmos ( #2914 )
...
* merged with circle and impl inner radius gizmo for arc
* impl radius-gizmo for arc
* fix only one gizmo shown at a time
* Code review
* make hints update when changing shape,add default behaviour when dragging to make circle earlier fixed to from center
* fixed arc-radius hover threshold and show arc-endpoint when hover over arc-radius gizmo
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-08-01 22:23:21 -07:00
Dennis Kobert
f15023ef58
Fix regression with double-click in the Path tool not working ( #2963 )
...
* Fix double click in path tool not working
* Remove debug line
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-31 21:53:28 +00:00
0SlowPoke0
7e0a274bd1
Fix Shape tool arc gizmo snap visualization and pointer cursor icon when hovering or dragging ( #2957 )
...
* fixed cursor,arc bugs
* Update cursor icon
* send pointer-move only when required
* make it compile
* Code review
* remove repeated modifier key
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-31 00:04:08 -07:00
Keavon Chambers
b348fabfd2
Remove the unsupported Brush tool warning dialog now that raster performance is improved
2025-07-28 17:03:48 -07:00
Dennis Kobert
35ab266bbb
Add handler for deferred execution of messages ( #2951 )
...
* Add Handler for defered execution of messages
* Cleanup
* Track graph execution id to associate messages with their corresponding execution id
* Rename ViewportReady -> NavigationReady
* Defer layer deselection
2025-07-29 01:57:11 +02:00
Adesh Gupta
75614eb9d4
Fix vector mesh editing behavior in various edge cases ( #2943 )
...
* Fix colinear switch behaviour
* Fix Tab to switch handles
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-27 00:20:39 +00:00
0SlowPoke0
3a8c1b6f97
Add Arc drawing mode to the Shape tool and the associated angle gizmos ( #2757 )
...
* implement arc gizmo handler
* fixed wrapping need to fix snapping and overlays
* fixed all the issues
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-26 14:55:38 -07:00
Salman Abuhaimed
85021fd9e0
Add text alignment to the Text node ( #2920 )
...
* Add text alignment to Text node
* Lots of renames and improvements
* Add text alignment to the Text tool
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-25 22:04:12 -07:00
Firestar99
4fec24893e
Shaders: add gcore-shaders and make graster-nodes no-std ( #2925 )
...
* gcore-shaders: add crate, move `color` and `blending` from gcore
* gcore-shaders: move `AsU32`
* gcore-shaders: move `ChoiceType`, switch `Cow` for `&str`, adjust node macro
* gcore-shaders: move `registry::types`
* gcore-shaders: move `context::Ctx`
* raster-nodes: make it `no_std` with `std` feature
* gcore-shaders: fix doctest
2025-07-25 17:53:26 +00:00
Szilveszter Ábrám
0d43ad2ea0
Fix Path tool path drag ghost outline sticking to viewport, not moving with document while dragging ( #2912 )
...
* Added ghost outline clearing when moving outlines via Path Tool
* Fix ghost outline staying fixed during drag by storing it in document space
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-24 09:28:17 +00:00
Firestar99
890da6a3c3
Clean up code by using Iterator::collect() when constructing instance tables ( #2918 )
...
* instances: `Iterator::collect()` instances
* instances: adjust nodes to use iterators
* fix warnings on master
* Bump MSRV
* Port the remaining usages
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-23 05:51:40 +00:00
Adam Gerhant
e4ec67d852
Fix wires on document change and errors on hidden nodes ( #2897 )
...
* Fix wires on document change and errors on hidden nodes
* Code cleanup
2025-07-19 01:48:42 -07:00
Adesh Gupta
4427e97f73
Add "Make Path Editable" buttons in the Path tool control bar and Layer menu ( #2900 )
...
* Add graph message for adding a path
* Disable options when adding path tool is not possible
* Move Layer menu entry location
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-07-18 12:22:40 +00:00
Keavon Chambers
99966d848d
Fix text per-glyph instance overlays and click target issues
2025-07-14 14:47:01 -07:00
Oliver Davies
74e35f026f
Fix regression with GRS cancellation being broken ( #2877 )
...
Fix for cancel regression in path tool
2025-07-13 22:03:51 -07:00