Commit Graph
449 Commits
Author SHA1 Message Date
Keavon Chambers 471ef87801 Add reference point input to the Mirror node 2025-04-24 05:33:20 -07:00
0SlowPoke0andKeavon Chambers d39308c048 Add Path tool feature for angle locking upon pressing Ctrl while dragging handle over anchor (#2612)
* almost_fixed

* fix need to refactor

* fixed issed need to refactor

* refactor-done fixed issue

* move function to common_functionality

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-23 20:39:14 -07:00
MateoandKeavon Chambers 3d37ef79ac Add shape fill overlays when closing a path (Pen tool) or filling it (Fill tool) (#2521)
* Make the Pen tool show a path being closed by drawing a filled overlay when hovering the endpoint

* Add to_css to color.rs

* Check before unwrapping layer

* Close if in the right place

* Fix typo

* Format code

* Support discontinuous paths for closing preview

* Code review

* Denser fill lines

* Fill tool preview with strip lines only and revert pen shape-closing opacity

* Small adjustments to fill preview

* Fix line width of fill preview

* Use a pattern to preview the fill tool and fix canvas clearing

* Update pattern

* Simplify code

* Format code

* Use secondary color to preview fill if shift is pressed

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-23 18:33:08 -07:00
0SlowPoke0andKeavon Chambers a4a0e110d7 Improve Pen tool behavior to less aggressively delete single-point layers (#2605)
* add single-anchor-place

* clippy_changes

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-23 11:45:51 +00:00
Sidharth-Singh10 6196dbff95 Add Gradient tool test for select and delete removes a stop (#2571)
* Add Gradient tool test for select and delete removes a stop

* refactor fills and double click into functions

* refactor
2025-04-19 16:00:59 -07:00
Rahat b45f7ef0c7 Add Line tool tests for drawing within a transformed artboard (#2572)
* Adding tests for artboard with transform

* Hypercube changes suggested
2025-04-19 17:44:27 +01:00
Sidharth-Singh10 73d12bcb82 Add tests for Spline tool to support continuing a previously drawn spline (#2591)
* Add tests for Spline tool to support continuing a previously drawn spline

* refactor
2025-04-18 22:24:35 +00:00
ilya sheprutandKeavon Chambers adfcff7599 New node: Arc (#2470)
* init

* add closed and slice options

* Make it work beyond -360 to 360 degrees

* Switch "closed" and "slice" to ArcType enum

* Update default ranges

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-18 09:42:07 +00:00
0SlowPoke0andKeavon Chambers 33de539d6d Fix Pen tool unable to combine multiple selected paths by extending their endpoints or mesh points (#2570)
* fixed issue

* merge-layers

* node-graph-autopanning-wire

* store the layer whne created instead of querying

* fix layers temporarily geting deselected while exteneding path

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-18 00:18:39 -07:00
mTvare 29e8e8bdac Fix Shift-drag axis color inconsistency and pivot not being draggable with a zero-width bounding box (#2593)
* Fix axis colors not being consistent and pivot not being draggable with zero width boxes

Fixes #2311

* Even for path
2025-04-17 13:45:08 -07:00
Utsav SinghandKeavon Chambers 7cb16a8bec Fix Path tool behavior with Shift-dragging an already selected point, where it wrongly got deselected (#2395)
* Send path tool FSM to Dragging state on MouseDown if clicking selected point

* Cleanup

* Store selected point state before new selection is made and setup deselect logic

* update previously saved point data on every point selection

* Decide whether to deselect or select on extended_select if node not already selected,  when DragStop state is reached instead of inside the  mouse_down function.

* Fix broken merge and remove leftover debug statements

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-17 02:57:56 -07:00
Adesh GuptaandKeavon Chambers ab39f3f837 Add Path tool support for Alt-dragging an anchor to pull out a fresh equidistant handle pair (#2496)
* Added initial logic for dragging

* Alt drag stop makes opposite handle back to its position

* Implement new requested behaviour

* Fix sharp point bug

* Apply suggestions from code review

* Add hints

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-17 06:05:45 +00:00
Sidharth-Singh10 9acc23d0cc Add Gradient tool test for dragging the stop rearranges the ordering (#2565) 2025-04-16 13:38:26 +00:00
Mohamed OsamaandKeavon Chambers af4f57ef38 Add "Perpendicular to Endpoint" snapping target (#2581)
* Perpendicular snap for line's endpoints

* move comment

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-16 12:23:45 +00:00
James LindsayandKeavon Chambers 435a6daf25 Add the first field-based nodes: 'Instance on Points', 'Instance Position', 'Instance Index', as well as 'Grid' (#2574)
* Basic fields

* Add 'Extract XY' and 'Split Vector2' nodes

* Add 'Instance Index' node

* Fix test again

* Improve grid generator to support rectangular as well

* Avoid crashing

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-16 11:58:59 +00:00
Sidharth-Singh10 98558c74f4 Add Gradient tool test for dragging an endpoint setting the correct point in the viewport (#2564)
* Add Gradient tool test for dragging an endpoint sets the correct point in the viewport

* add canvas_zoom and transformset to verify correct viewport-space behavior
2025-04-14 19:25:07 +00:00
Dennis KobertandKeavon Chambers 9b23c7e2db Update Tauri to v2 and execute only the node graph in native (#2362)
* Migrate tauri app to v2

* Move flake files to sub directory

* Remove unused plugins

* Backport some of the tauri code

* Implement async node graph execution

Only move node runtime to native code

* Always use gpu feature for tauri

* Fix serialization

* Add logging filters

* Enable native window rendering with vello

* Cleanup

* Remove unused editor instance

* Remove changes from vite config

* Remove warnings

* Remove unused files

* Fix most tests

* Cleanup

* Apply frontend lint

* Readd flake.nix

* Fix tests using --all-features

* Code review

* Enable all backends

* Fix monitor node downcast types

* Change debug log to a warning

* Disable shader passthrough

* Cleanup unused imports

* Remove warning

* Update project setup instructions

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-14 11:43:15 +00:00
0SlowPoke0andKeavon Chambers d194c784be Prevent auto-panning in Pen/Spline tools while drawing without dragging (#2463)
don't autopann when mouse up

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-13 18:21:59 -07:00
Rahat b3d6be9618 Add tests for Line tool with PTZ (#2559)
* cli failing

* cli failing

* Adding tests for line tool with zoom pann and tilt
2025-04-13 20:13:59 +00:00
Rahat 272a5ce0df Add GRS tests for different types of nested layer multi-selections (#2518)
* cli failing

* cli failing

* test_transform_with_different_selections and groups

* merge conflict

* Use abs_diff_eq in assertions

* Added test 4

* Added test 4

* removed unnecessary changes
2025-04-13 20:06:11 +01:00
mTvareandKeavon Chambers 3e6021fb8f Fix inability to drag axis-aligned lines (#2561)
* Fix 1 and 3

* Fix 2

* Shape tools refactor

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-13 03:51:40 -07:00
Ellen GuandKeavon Chambers fdff5d4e5e Disallow the Gradient tool from applying to raster images (#2456)
* fix gradient on raster graph error

* Remove should panic from gradient ignore raster tag

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-12 18:42:59 -07:00
Adesh GuptaandKeavon Chambers 550ffc3f7f Fix box selection erroneously including zero-length handles; fix GRS failing on sharp points (#2550)
* Fixed box selection selecting zero length handles

* Fix GRS for sharp points

* Apply suggestions from code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-13 01:21:36 +00:00
Keavon Chambers e759e62291 Comment out all remaining active Imaginate code 2025-04-12 17:32:24 -07:00
0SlowPoke0andKeavon Chambers c156c0a4ce Improve Pen tool segment drawing confirm/cancel behavior (#2555)
* implement enter to end path

* fixed_abort

* added_hints

* edge-case

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-12 09:50:35 +00:00
Sidharth-Singh10andJames Lindsay e4d998a400 Add test for double clicking to insert a gradient stop (#2527)
gradient tool test: Double click to insert a gradient stop

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
2025-04-11 14:26:07 +00:00
Adesh GuptaandKeavon Chambers 8b0f16e74c Make GRS rotation (R) angle overlay label show values between -360° and 360° (#2473)
* Fixes issues

* Revert changes

* Viewing angle using R

* Revert other fix so it can be its own PR

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-09 06:15:31 +00:00
Sidharth-Singh10andKeavon Chambers b38d725d98 Add input hints to interactions in the node graph (#2415)
* node_graph: add hints in status bar

* allow in-progress interactions

* Fix node graph hints not restoring after panning operation

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-09 05:50:48 +00:00
0SlowPoke0andKeavon Chambers 6a8386d1e9 Improve Pen tool handle dragging with Tab swapping, Ctrl angle locking, and directly dragging the closing endpoint in handle (#2452)
* added handle_types and refactored the handle_adjustments

* anchor move refactor

* code-todo-fix

* removed-draw-mode

* kind of works need to figure out snapping

* some refactoring

* refactor+overlays..need to fix the snapping and dragging

* added docs

* got stuck in space move

* fixed all issues

* comments and small fixes

* completed last issue and refactor

* major fixes and improv

* fixed edge cases

* edge cases fixed

* fix edge cases and add docs

* Code review pass

* rename ,bug fixes

* Add terminology diagram

* Add Ctrl "Lock Angle" hint

* Rename other hint

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-07 23:26:51 -07:00
Sidharth-Singh10andKeavon Chambers 3c425d9a71 Fix Gradient tool always re-selecting its end point after any click/drag (#2472)
fix  gradient tool incorrectly selecting end point on pointer up

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-06 15:14:19 -07:00
Rahat 1001ec2740 Add test for scaling objects to zero without any crash (#2491)
* Add test for scaling objects to zero

* added non zero scale after near zero scale to check if everything is working ifine

* unnecessary change

* cli failing

* chore: upgrade openssl to fix RUSTSEC-2025-0022

* cli failing

* new changes
2025-04-06 14:42:15 +01:00
James LindsayandKeavon Chambers e11b57a7af Add tests for gradient drawing with transformations (#2481)
* Test gradient drawing with transformations

* Fix bad import

* Fix merge conflicts

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-06 10:35:20 +00:00
mTvareandKeavon Chambers f003d5d0db Fix Line/Spline tools being offset when drawing in an artboard not at the origin (#2489)
* Fix line overlays not showing up for horizontal/vertical line

* Fix spline tool transform

* Fix line tool transform

* Fix pivot following mouse even after confirm

* cargo fmt

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-04-06 03:06:03 -07:00
MateoandStarklosch a6d3c06641 Fix bug introduced in #2511 (#2513)
Fix issue when extending existing paths

Co-authored-by: Starklosch <45690579+Starklosch@users.noreply.github.com>
2025-04-04 22:23:26 -07:00
Mateo c486c6e3e3 Fix Pen tool creates single anchor path (#2511)
* Delete layer if path has a single anchor

* Remove unnecessary layer reference from pen state
2025-04-03 19:41:51 +00:00
Rahat 6de235f80c Test that select tool GRS works with only one anchor (#2502)
* one-anchor-point-testing implementation

* merge conflict

* merge conflict

* ci cd error
2025-04-02 21:31:29 +01:00
prathmesh703anddoxe-2611 fb17b9389c Add tests for drawing lines with ctrl, shift, and alt (#2490)
* test_tool_line

* Test-line-tool

* ALT-test-case

* formatted

---------

Co-authored-by: doxe-2611 <kolpe2611@gmail.com>
2025-04-02 17:48:13 +00:00
Dennis Kobert 8d8e2edc5f Add 'Freeze Real Time' and 'Boundless Footprint' nodes as alternatives to using 'Memoize Impure' (#2509)
* WIP debugging

* Only create parent ref if var args are used in context + Cleanup

* Eval nodes with None instead of relying on MemoImpure

* Remove unused imports

* Show parent in debug output

* Remove TODO comment
2025-04-02 11:31:52 +00:00
Rahat c4e16e1aac Add tests for document panning, zooming, and rotating (#2492)
* add tests for panned, zoomed, and rotated

* add tests for panned, zoomed, and rotated

* Did some changes for grs system

* change
2025-03-31 12:28:47 -07:00
Rahat a1ce796d94 Add test for chained GRS transformations (#2475)
* added tests for chained tasks

* added tests for chained tasks, applied the feedback from 0hypercube

* some changes in grs chained test to make it more robust

* unnecessary changes
2025-03-29 20:21:40 +00:00
Dennis Kobert 41288d7642 Fix the Into nodes, which were broken but unused except in GPU nodes (#2480)
* Prototype document network level into node insertion

* Fix generic type resolution

* Cleanup

* Remove network nesting
2025-03-27 02:11:11 -07:00
Rahat dd27f4653d Add tests for GRS transform cancellation (#2467)
* tests for GRS transform cancellation

* Added all the tests with not cancelling and cancelling both

* remove unnecessary code from gitignore
2025-03-23 18:40:26 +00:00
Dennis KobertandKeavon Chambers 44694ff8d6 Experimental animation support (#2443)
* Implement experimental time routing to the node graph

* Allow toggling live preview with SHIFT + SPACE

* Add animation message handler

* Fix hotkeys

* Fix milisecond node

* Adevertize set frame index action

* Fix frame index

* Fix year calculation

* Add comment for why month and day are not exposed

* Combine animation nodes and fix animation time implementation

* Fix animation time interaction with playback

* Add set animation time mode message

* Captalize UTC

* Fix compiling

* Fix crash and add text nodes

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-03-19 01:19:49 -07:00
mTvareandKeavon Chambers b98711dbdb Improve Text tool resize/drag behavior (#2428)
* Have red be below quads

* Code review pt 1

* Skip rendering of pivot

* Code review pt 2

* Code review pt 3

* Cancel resize and its hints

* Remove the redundant placing message

* Dragging state for text tool fsm

* Cleanup

* Fix line tool undo and abort problems

* Code review

* 3px textbox overflow bottom

* Some more cleanup

* Fix reversed match arms that had been converted to if-else

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-03-19 06:49:49 +00:00
Keavon Chambers 6292dea103 Refactor many usages of Color to natively store linear not gamma (#2457) 2025-03-18 05:37:20 -07:00
Adesh GuptaandKeavon Chambers 4275eaf5bf Add Path tool support for dragging along an axis when Shift is held (#2449)
* Initial logic for snapping

* Solved switching of axes

* Solved conflict

* Fixed autopanning issue

* Autopanning issue

* cleared comments

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-03-18 07:57:48 +00:00
mTvareandKeavon Chambers 7e7e88f6fa Refactor GRS messages and fix regression in chained GRS operations (#2450)
* Refactor GRS messages and have a switch handler

* some cleanup

* rename variables

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-03-17 11:50:11 +00:00
James Lindsay cabc027cda Fix Select tool resizing with Shift held allowing the constrained aspect ratio to change when snapping (#2441)
Fix bug in constrained snap
2025-03-17 03:18:05 -07:00
0SlowPoke0andKeavon Chambers bd97c15da8 Make the Select tool box-select the deepest individual layers or their common shared parent (#2424)
* fixed deep-select and overlays

* minor fix

* made minor fixes in filtering

* small fix

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-03-15 12:42:42 +00:00
James Lindsay ca5810c92a Fix drawing tools to work in viewport space instead of document space (#2438)
* Stroke width in viewports

* Update rectangle tests
2025-03-15 04:22:50 -07:00