Mohd Mohsin
c5800aa96e
Fix the Bevel node so it applies a consistent bevel size regardless of angle ( #2293 )
...
* feat: update the bevel algorithm for same bevel length
* Fix: Resolves issue in bevel algorithm
* fix bevel algorithm
* Feat : update the bevel algorithm for bezier curve
* Feat: Add support for rounded and inward-rounded Bevel options
* fix bevel algo for curves
* Nits
* refactor area node
* refactor close path node
* small refactor of 'check_point_inside_shape' method
* copy is_linear function from bezier-rs lib
* refactor bevel node implementation
* cleanup
* refactor bevel implementation
* fix transformation
* cleanup
* update the bevel algorithm
* Code review
* Clean up setup logic for failing test
* update tests to reflect new algorithm
* Decimal integer nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: indierusty <indierusty@gmail.com>
2025-07-13 21:45:51 +00:00
Oliver Davies
e89cded4b8
Add selection cycle and gray pre-selection outlines to the Path tool, and Tab to swap Select/Path tools ( #2818 )
...
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
Website / build (push) Has been cancelled
* Added initial version of this feature for the path tool
* Removed debug statements
* Thickened the overlay width
* Added hover highlighting for path tool
* Experimental switch to path tool at leaf layer
* Ghost outline initial implementation
* Added tab swap for select tool -> path tool
* Minor fix for Select Tool dbl click -> Path Tool
* Added support for ghosts when using GRS in the path tool
* Fixed GRS undo bug, vastly improved hover behavior and now clearly visualize next double click target
* Fixed unused import warnings
* Updated behavior to handle mouse movement cases, reverted line width to 1px
* Fixed merge behavioral issues
* Disabled Select Tool to Path Tool double click toggle, fixed single click drill through for special case
* Clean up of unused consts and comment
* Properly cancel the drill through state when the mouse moves
* Fix some stuff
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-13 08:26:36 +00:00
Keavon Chambers
d6d1bbb1e6
Add editor structure outline to the developer guide on the website
2025-07-12 23:09:29 -07:00
Keavon Chambers
765092fbe9
Rename the message system's 'data' argument to 'context' ( #2872 )
2025-07-12 22:50:59 -07:00
Firestar99
4c75ddf936
Refactor node migration to be less susceptible to forgetting outdated strings ( #2853 )
...
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
* migration: make document migration use ProtoNodeIdentifier
* migration: NodeReplacement struct for better formatting
* migration: test for duplicates and fix them
2025-07-10 17:40:54 -07:00
Adesh Gupta
912e6f61a9
Fix regression with inability to drag segments using the Path tool's segment mode ( #2850 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fix segment dragging
2025-07-10 08:51:25 +00:00
James Lindsay
13ad814639
Add a complexity limit on displaying layer thumbnails to improve performance ( #2828 )
...
* Skip complex layer thumbnails
* Set Raster<GPU> to have usize::MAX render complexity
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-10 07:57:45 +00:00
Keavon Chambers
ceffcfd8df
Update website deployment CI script to output auto-generated code docs artifacts ( #2849 )
2025-07-09 23:51:25 -07:00
Kavin
e02510303e
Add X and Y offset distance overlay while dragging with the Select tool ( #2814 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Add offset overlay to select tool
* Add overlay to Dragging
* Add axis align behavior
* Style changes
* Add trim to string
* reduce code duplication
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-09 10:49:39 +00:00
mTvare
a40de58c7c
Fix brush bounding boxes by making BrushCacheImpl's hash not shared between different instances ( #2845 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fix: add cache to each layer
* fix: warning
* fix: tests
* Clean up code
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-09 06:45:41 +00:00
Mohd Mohsin
00236c8136
Generate a visualization of the editor's hierarchical message system tree ( #2499 )
...
* Feat: implement the hierarchical tree for visualization
* rename HierarchicalTree trait function
* feat: change the HierarchicalTree from String to DebugMessageTree struct
* Nits
* feat: impliment proc macro to extract field from messagedata structs
* update the hierarchical-tree for hanlder data
* feat: added message handler struct to hierarchical tree
* feat: add the line number to message handler struct
* feat: added handler path to tree and NITS
* clean the white spaces in type string
* fixes some white spaces
* feat: added path to message enum in hierarchical tree
* feat: add file creation of hierarchical message system tree
* cleanup
* Code review
* Add todo comment for deferred change
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 19:13:51 -07:00
HWienhold
d0e1d8982f
Allow tooling to treat near-zero-length handles as zero-length when converting to colinear ( #2747 )
...
fix colinear handles on connected path
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 18:47:56 -07:00
Keavon Chambers
d2f8c99744
Avoid panics during document migration
2025-07-08 18:13:05 -07:00
mTvare
8a68683a93
Add pivot type selection with Custom Pivot, Origin (Average Point), and Origin (Active Object) to the Select tool ( #2730 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* add origin
* cleanup pivot
* a lot of stuff
* reset pivot
* fix transform with pivot issues
* fixes
* some more cleanup
* fixes
* finally works
* origin fixes
* fix spaces
* fix using dragged_layers
* simplify pivot logic
* fix bugs
* fix the final bug
* fix in select_tool
* fix updates
* some more refactors to fix misunderstanding and refactor
* add checkboxes
* fix labels
* fix stuff which broke at merge
* update
* cargo fmt
* fix serde crash
* fix pivot not updating on move
* fix pivot not becoming last active refernce
* fix redraw issues
* add: active pivot
* cargo fmt
* fix pivot showing up in default mode
* add: pivot pin
* fix: use pin icons
* cargo: cargo lock update?
* fix: use checkbox instead of Overlays
* refactor: add dot to path_tool
* add: active origins
* UI tweaks
* add: add all of the stuff for path tool
* remove: unused layer
* fix: pivot pinning and origin angle
* fix: pin only if moved in first place
* cargo: fmt
* fix: pivot use disabled method
* fix: remove redudant NoOp
* fix: 3 stuff
* fix: select from elsewhere
* fix: compass rose wobbling around
* add: move pivot on grab
* add: move pivot on nudge
* add: move pivot on Grab
* Code review and tooltips
* fixes
* fixes
* fixes
* fix: skipping artboard on bounds calculation
* fix: by default have origin
* Fix prior fix
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-08 09:24:54 +00:00
Keavon Chambers
a1d93da532
Fix 'Grid' node migrations breaking up-to-date documents
Editor: Dev & CI / cargo-deny (push) Waiting to run
Editor: Dev & CI / build (push) Waiting to run
2025-07-07 18:39:04 -07:00
Firestar99
69ed80b79b
Add ::IDENTITY to node macro to return a ProtoNodeIdentifier that is always a &'static str ( #2842 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* fix warnings on master
* make the `ProtoNodeIdentifier` of a Node be accessible and always a borrowed `&'static str`
* always generate `node_name::identifier()`, even with `skip_impl`
* make `FrontendNodeType` use Cow
* remove broken `DocumentNodeDefinition`s for old GPU nodes
* don't reexport `graphic_element` in it's entirety, only data structures
* adjust everything to use the new `node_name::identifier()`
* fixup imports for wasm
* turn identifier fn into a constant
2025-07-07 16:29:59 -07:00
James Lindsay
4a83067081
Fix Path tool's Path node transform calculation by skipping local transform based on first instance source ID ( #2843 )
...
* First instance source id
* Set source node id and migrations
2025-07-07 22:09:21 +00:00
celyk
88c059a607
Add Normalize and Length nodes ( #2837 )
...
* Add vector length node
* Add normalize node
* Add comments
* Make normalize node safer for the user
2025-07-07 21:48:22 +00:00
Adam Gerhant
24c6281644
Fix regression with migration code changed in node UI wire refactor ( #2840 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fixes
2025-07-06 14:34:43 -07:00
Adesh Gupta
ce605acf3a
Make the Path tool's segment drag molding work with linear segments ( #2838 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fix path tool molding
2025-07-06 04:20:06 -07:00
Firestar99
2b380cec3a
Fix more node migrations that lost their implementations ( #2836 )
...
* fix migration for `SampleGradientNode`
* fix `BrushNode` unadjusted path
* fix `NoisePatternNode` unadjusted path
2025-07-06 02:00:07 -07:00
Keavon Chambers
c2f9a42a8e
Update allowed license signatures
2025-07-06 01:01:44 -07:00
Adesh Gupta
8b0a27939e
Clean up the Path tool's FSM to move segment molding state into the dragging state ( #2835 )
...
Cleanup molding segments state
2025-07-06 00:39:47 -07:00
Adesh Gupta
49db963ce1
Improve Path tool layer selection behavior using double-click instead of single-click ( #2794 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Improve path tool layer selection behaviour
* Fix layer selection behaviour
* Fix layer double click selection behaviour
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-05 14:17:30 -07:00
Ezbaze
5b5b369dcd
Make selected Text category nodes show a multi-line text area instead of one-line text field ( #2816 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Make String Value node input a TextArea
Signed-off-by: ezbaze <68749104+Ezbaze@users.noreply.github.com>
* Replace link to Tauri
Signed-off-by: ezbaze <68749104+Ezbaze@users.noreply.github.com>
* Make String Concatenate node & Replace String node inputs into a TextArea
Signed-off-by: ezbaze <68749104+Ezbaze@users.noreply.github.com>
---------
Signed-off-by: ezbaze <68749104+Ezbaze@users.noreply.github.com>
2025-07-05 11:34:35 +00:00
Adam Gerhant
f57163c795
Port node graph wires to the backend and improve graph UI performance ( #2795 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
* Improve node graph performance
* Fix wire bugs, add type default for properties.
* Grid aligned wire paths
* remove type source
* node from exposed input
* Refresh wires on preference change
* merge fixes
* Code review
* Fix names
* Code review
* Fix wires on redo/undo
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-04 22:53:37 -07:00
Keavon Chambers
354a68911e
Improve hotkeys with canonical flag, more industry-standard mappings, and fix GRS menu bar labels ( #2827 )
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-04 04:58:52 -07:00
Firestar99
8a0241f0fa
Fix running tests locally; fix migrations for relocated nodes ( #2805 )
...
* fix `BoundingBox for Raster<GPU>` when `wgpu` feature is disabled
* fix `tinyvec` crate not being `std` by default
* fixup migration for `CoordinateValueNode`
* fixup migration for raster nodes
2025-07-04 02:56:22 -07:00
Firestar99
a182a7347e
Extract gbrush ( #2784 )
Editor: Dev & CI / build (push) Has been cancelled
Editor: Dev & CI / cargo-deny (push) Has been cancelled
2025-07-01 18:38:47 +00:00
Firestar99
602d7e8bd1
Extract graster-nodes ( #2783 )
2025-07-01 18:12:12 +00:00
Firestar99
8e2c206a01
node macro: copy visibility from node function ( #2782 )
2025-07-01 15:29:00 +00:00
Keavon Chambers
8c5accc069
Clean up node catalog by adding missing units, more tooltips; fix 'Line' node missing parameters ( #2813 )
...
* Fix unit usages
* Add node and parameter doc comments
* Fix the parameters panel for the 'Line' node when added from the graph
* Clean up nodes
* Fix tests
* Update the demo artwork
2025-07-01 07:47:54 -07:00
Keavon Chambers
0febfaf142
Make the node graph unrenderable message less scary
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-07-01 05:29:09 -07:00
Keavon Chambers
c671705945
New node: 'Index'
2025-07-01 05:25:33 -07:00
Salman Abuhaimed
83773baa00
Replace Rustybuzz with Parley for text layout, and add text tilt parameter ( #2739 )
...
* replace rustybuzz with parley for text layout handling
change text input direction based on text direction
* Code review
* change default character spacing to 0
* add shear to text node
this also adds migration code for documents that don't have shear
* shear migration for text node
- add shear property
- set character spacing to 0
* use old max_width and max_height in text migration if available
* Final code review pass
* Add units to the parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-07-01 02:23:17 -07:00
Keavon Chambers
d8e15aeb93
Update the video on the project readme
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
2025-06-30 15:53:02 -07:00
Keavon Chambers
d7fbbac95e
Add videos to the website home page and features page
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Website / build (push) Has been cancelled
2025-06-30 10:04:37 -07:00
Keavon Chambers
217d112aae
Update the readme with a new video
2025-06-30 08:02:22 -07:00
Dennis Kobert
0c376d1f9b
Disable preprocessor insertion of IntoNodes in the graph to avoid intermittent math node type errors ( #2802 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Disable insertion of into nodes into the graph
2025-06-30 03:07:09 -07:00
0SlowPoke0
71ddae9028
Fix Path tool multi-point handle scaling behavior and double-click smooth/sharp conversion on rectangles ( #2765 )
...
* fixed double-click on anchor connected to linear segments
* fix when scaling when anchor
* Nit
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-06-30 07:56:22 +00:00
Firestar99
59e34836cd
Fix the 'Split Coordinate' node that was broken in an earlier refactor commit ( #2787 )
...
fix "Split Coordinate" node
2025-06-30 06:49:00 +00:00
Adesh Gupta
391ed34a30
Add segment editing mode to the Path tool ( #2712 )
...
* Segment select mode upto dragging
* Lasso select for segment editing
* Formatting
* Compatibility with point selection mode
* Add delete segment support and drawing from inside of shape
* Add GRS support for selected segments
* Cleanup and add dynamic hints
* Fix double click behaviour and overlays
* Format code
* Fix merge
* Fix Lint
* Fix formatting
* Fix lasso bug
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-06-29 23:19:54 -07:00
Hemu
a4fbea9193
Fix lasso select extending the previous selection area after it was aborted ( #2792 )
...
Editor: Dev & CI / build (push) Waiting to run
Editor: Dev & CI / cargo-deny (push) Waiting to run
Fix lasso select extends previous path after abort
2025-06-28 22:19:50 -07:00
James Lindsay
532e913017
Fix DropdownInput widget not reactively updating when its content changes ( #2770 )
...
* Improve reactivity of DropdownInput.svelte
* Fix formatting lint
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-06-28 02:59:03 +00:00
James Lindsay
62c7f88f5b
Fix incorrectly calculating nonzero-area bounding boxes for empty raster images ( #2772 )
...
No bounding box for empty rasters
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-06-27 19:37:37 -07:00
Dennis Kobert
357e77077d
Only compute bounding box for layers being rendered by Vello when actually used ( #2771 )
...
Only compute bounding box for vello when it is actually used
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-06-27 19:06:52 -07:00
James Lindsay
cf8496b5a0
Fix Shape tool custom color picker using gamma not linear space ( #2773 )
...
Fix colour space for options
2025-06-27 18:32:14 -07:00
Firestar99
ecd7999ca7
Extract gmath_nodes from gcore::ops, create mods debug and extract_xy ( #2764 )
2025-06-28 00:04:24 +02:00
Firestar99
9c4ab34a58
Extract gsvg_renderer from gcore, remove gcore/vello feature ( #2760 )
...
Extract `gsvg_renderer` from `gcore`, remove `gcore/vello` feature
2025-06-27 13:47:46 +00:00
Firestar99
ffc6c5532b
Extract gpath_bool from mod gstd::ops path_bool-related nodes ( #2762 )
...
* cargo shear
* Extract `gpath_bool` from `mod gstd::ops` path_bool-related nodes
2025-06-27 13:12:08 +00:00