0HyperCube
484acbcde3
New node: Morph ( #1576 )
...
* Add morph node
* Range slider time parameter, better lerping
* Lerp more fill and stroke parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-13 23:35:40 -08:00
0HyperCube
768bbe820d
Preserve group IDs in the Spline from Points node ( #1574 )
2024-01-14 00:49:52 +00:00
0HyperCube
e242ce26a0
Fix circular repeat node without bounding box ( #1571 )
2024-01-14 00:23:13 +00:00
0HyperCube
47b3355950
Remove FillType::None for the fill node ( #1572 )
...
* Remove FillType::None for the fill node
* Fix demo art
2024-01-13 15:52:10 -08:00
0HyperCube
456ca170a4
Layer and grid snapping systems ( #1521 )
...
* Grid overlays
* Rectangle tool basic snapping
* Fix bezier demos
* Fix bézier crate tests
* Constrained snapping for circle & shape tool
* Line tool snapping
* Pen tool snapping
* Path tool snapping
* Snapping whilst dragging layers (not constrained)
* Constrained drag
* Resize snapping
* Normal and tangent
* Cleanup
* Grid snapping
* Grid snapping
* Fix imports
* Fix bug in artboard tool
* Fix hang on 0 size grid spacing
* Fix NaN when scaling
* Polishing
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-13 14:32:10 +00:00
Keavon Chambers
aab0fcf84c
Update graph UI and improve simplicity and robustness of sending graph and layer panel updates ( #1564 )
...
* WIP
* Fix loading the structure of layers
* Fix broken indents
* Remove debugging stuff
* Fix displaying errors and node graph UI fixes/improvements
* Fix compilation failure
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-01-13 04:15:36 -08:00
0HyperCube
83116aa744
Fix selecting upsidedown layers ( #1560 )
2024-01-12 02:27:08 -08:00
Keavon Chambers
121c1d2b9d
Sample Points node: employ caching and deduplication ( #1546 )
...
Sample Points node: split out expensive computation so it can be deduped
2024-01-06 16:07:45 -08:00
Keavon Chambers
93aa10a76f
Sample Points node: fix major inefficiencies
2024-01-06 07:55:19 -08:00
Keavon Chambers
b3e4caec1a
Rename 'Resample Points' to 'Sample Points'
2024-01-05 05:24:16 -08:00
Dennis Kobert
6bfb2bf344
Change number inputs to be f32 instead of f64 for most nodes ( #1543 )
2024-01-05 13:13:26 +00:00
Keavon Chambers
ed82c5f20f
Copy to Points node: add Start/Stop Offset and Adaptive Spacing parameters
2024-01-03 06:11:42 -08:00
0HyperCube
4c64df038f
Copy to Points node: add support for groups ( #1541 )
...
Copy to points by group
2024-01-03 04:21:10 -08:00
0HyperCube
202390e422
Apply transform before copy to points node ( #1540 )
2024-01-03 09:55:40 +00:00
Keavon Chambers
1cc23320a5
Hide the Cull node by integrating it into all generator nodes ( #1538 )
...
* Hide the Cull node by integrating it into all generator nodes
* Remove internal Cull node from Mandelbrot
2023-12-30 12:28:06 -08:00
Dennis Kobert
0e49388312
Make CopyToPoints node resolution aware ( #1536 )
...
* Make CopyToPoints node resolution aware
* Add unfinished code review as todo comment
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-30 11:56:50 +00:00
0HyperCube
947a131a4b
Add graph type error diagnostics to the UI ( #1535 )
...
* Fontend input types
* Fix index of errors / types
* Bug fixes, styling improvements, and code review
* Improvements to the error box
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-29 08:38:45 +00:00
Keavon Chambers
34f952bad1
Convert u64 IDs to newtypes ( #1532 )
2023-12-22 03:24:13 -08:00
Keavon Chambers
7bfe0ce55b
Retire layer paths used throughout the code ( #1531 )
...
* Part 1
* Part 2
* Part 3
* Part 4
* Part 5
* Part 6
* Part 7
* Part 8
2023-12-21 19:32:46 -08:00
0HyperCube
c42d030f18
New overlay system ( #1516 )
...
* 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>
2023-12-18 11:17:43 +00:00
Keavon Chambers
9e06e70aa2
New node: Copy to Points ( #1513 )
...
* New node: Copy to Points
* Remove dead code
2023-12-17 04:17:17 -08:00
Keavon Chambers
9f0ea35d9b
New node: Noise Pattern ( #1518 )
...
Add the Noise Pattern node
Closes #1517
2023-12-17 02:06:25 -08:00
Keavon Chambers
83af879a7c
Fix the Imaginate node from crashing ( #1512 )
...
* 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>
2023-12-12 22:39:33 -08:00
0HyperCube
29222700f4
Fix the blend mode and opacity widgets of the Layers panel ( #1506 )
...
* Fix blend mode and opacity
* Cleanup and bug fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-12 09:27:23 +00:00
0HyperCube
b60736c2c6
Fixes for removing artboards; white infinite canvas background ( #1497 )
...
* Fix crash when drawing on a deleted artboard
* Fix clear artboards button
* White background on no artboards
* Re-disable Clear Artboards since it still crashes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-10 00:17:18 +00:00
Henry Barreto
cbda811480
Add the Image Color Palette node ( #1311 )
...
* Add image color palette node
* Add max size of palette
* Code review cleanup
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-09 15:21:41 -08:00
0HyperCube
fe4b9ef8bb
Exporting ( #1495 )
2023-12-09 17:11:06 +00:00
Keavon Chambers
e459e599b4
Wrap opacity/blend_mode in alpha_blending struct for graphic elements
2023-12-08 22:42:45 -08:00
Keavon Chambers
10f2fa92e5
Eliminate GraphicElementData wrapper around GraphicElement
2023-12-08 20:22:37 -08:00
Keavon Chambers
5a6815dd91
Rename Raster to Bitmap
2023-12-08 16:18:56 -08:00
Keavon Chambers
c5ed54cbd2
Rename several node graph structs/fields
2023-12-08 15:30:00 -08:00
Keavon Chambers
d082b15abb
Improve naming of several proto nodes
2023-12-08 15:29:46 -08:00
Keavon Chambers
60a9c27bf1
Add viewing/editing layer names, add Blend Mode node, and clean up Layer node ( #1489 )
2023-12-07 15:10:47 -08:00
0HyperCube
f8b9c5db6d
Improve text transforms ( #1487 )
2023-12-04 14:57:44 -08:00
Dennis Kobert
d2450b4d61
Refactor Graphite dependency management ( #1455 )
...
* Refactor Graphite dependency management
* Remove deprecated future executor
* Code review nits
* Remove unused dependencies
* Update dependencies and make compile with all features
* Replace use of future_executor with wasm-bindgen-futures
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-04 12:39:55 +01:00
Dennis Kobert
b7fe38cf31
Fix how transforms work with footprints and remove a redundant transforms field ( #1484 )
...
* Prune unused thumbnails in node graph executor
* Fix transform downcasting failure for GraphicElementData
* Remove more warnings
* Revert upstream transform calculation change
* Use footprint to calculate layer transforms
* Fix artboards
* Move artwork with artboard
* Remove Keavon's warnings
* Prevent misordered FrontendMessages failing to reach JS handlers
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-03 14:17:28 -08:00
0HyperCube
b2ca643e6e
Fix transforms, Brush tool, and G/R/S ( #1473 )
...
* Transform fixes
* Fix the desert artwork
* Change artboard icon
* Better handling when transforming brush strokes
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-26 20:54:06 -08:00
0hypercube
82908f8185
Fix doctest trying to compile text diagram
2023-11-26 17:46:57 +00:00
0HyperCube
8a1cf3ad5d
Migrate demo artwork and fix all failing CI tests ( #1459 )
...
* Initial work on fixing tests
* Fix formatting
* Remove dead code to satisfy rustc warnings
* Insert into an artboard
* Load updated artwork in editor
* Remove popup when importing image
* Fix up demo art
* Change transform app[lication method
* Reduce number of enums called BlendMode
* Finalize the demo artwork upgrade
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-19 23:06:21 -08:00
Dennis Kobert
81519601ae
Store Input for Monitor Nodes ( #1454 )
...
* Add input storage to monitor_node
* Return input via serialize function
2023-11-14 21:17:50 +01:00
Keavon Chambers
605c0de392
Fix Rust code lints ( #1448 )
...
* Fix Rust lints to satisfy Clippy
* Remove some unused commented out code
2023-11-05 13:52:00 -08:00
0HyperCube
e0ac073805
Improve previewing node data ( #1446 )
...
* Improve preview
* Improve contrast
* Restructure in order to duplicate code
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-11-04 02:52:26 -07:00
Joel Afriyie
c823016316
Reimplement Brightness/Contrast node using the Curves node to reduce code ( #1434 )
...
* using cubic spline from curves
* updating to fix tests
2023-11-02 08:21:11 +00:00
0HyperCube
ceb2f4c13f
Add more details to Graphene concept documentation ( #1437 )
...
* Start improving node system docs
* Add note on debugging
* Explain testing protonodes
* Code review comments
* Review pass
* Further improve explanation of manual_compostion
* Fix explanation of ComposeNode graph rewriting
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-10-27 19:21:15 -07:00
Keavon Chambers
bafde43145
Add comments to help explain Graphene concepts
2023-10-24 22:26:08 -07:00
Keavon Chambers
ee08938bb0
Rename 'Grayscale' node to 'Black & White'
2023-10-24 21:22:22 -07:00
Yuri Astrakhan
3d4e3a74e5
A few minor lints and docs ( #1436 )
...
* A few minor lints and docs
* Added required packages to compile on Debian-style linux
* Inlined some format args, and removed some `&` in args (they cause about 6% slowdown that compiler cannot inline)
* a few spelling mistakes
* fix fmt
2023-10-18 23:33:10 -07:00
0HyperCube
5827e989dc
Migrate the Select tool to the document graph ( #1433 )
...
* function for accessing document metadata
* Better select tool
* Fix render
* Fix transforms
* Fix loading saved documents
* Populate graph UI when loading autosave
* Multiple transform nodes
* Fix deep select
* Graph tooltips
* Fix flip axis icon
* Show disabled widgets
* Stop select tool from selecting artboards
* Disable (not hide) the pivot widget; remove Deep/Shallow select for now
* Code review changes
* Fix pivot position with select tool
* Fix incorrectly selected layers when shift clicking
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-10-17 11:09:32 -07:00
Dennis Kobert
e1cdb2242d
Lay Groundwork for Rust-based SVG rasterization ( #1422 )
...
* Add functions for constructing a usvg tree
* Actually encode the image in the usvg tree
* Implement path translation
* Render document using resvg
2023-10-17 11:02:07 -07:00
Dennis Kobert
833f41bccb
Insert pasted images as layers in document graph ( #1418 )
...
Changes:
Graph is evaluated on every viewport change
move all navigation logic into the viewport
reduce the number of js roundtrips
add canvas rendering
enable image pasting
various cleanups
Fix cache nodes being reset every evaluation
2023-10-17 11:02:07 -07:00