Commit Graph

602 Commits

Author SHA1 Message Date
Dennis Kobert 349ec5da72
Add MemoizeImpure node and cache image base64 in graph (#1595)
* Cache base64 representation of images when converting to graphic group

* Fix build

* Fix build again

* Actually fix it this time

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-02-03 23:16:03 +01:00
Keavon Chambers 8fa46ba63a
Copy to Points node: add scale/rotation randomization parameters (#1592)
* WIP, transforms broken with rot/scale

* Transform around bounding box centre

* Add units and tooltips

---------

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-02-01 12:20:35 -08:00
Keavon Chambers 6b6accfb91
Add Poisson-disk sampling node and Bezier-rs 0.4 release (#1586)
* Add Poisson-disk sampling node and Bezier-rs 0.4 release

* Additional optimizations

* More performance optimizations with help from 0Hypercube

* Add comments
2024-01-28 02:25:46 -08:00
Keavon Chambers a7bf6e2459 Fix triple graph evaluation on Windows by removing hash-based ExecutionRequest dedupe 2024-01-27 16:58:15 -08:00
0HyperCube 208e907fa4
Restore select tool functionality and shallow select mode (#1583)
* Restore select tool functionality

* UI tweak

* Change all of the things

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-18 22:28:45 +00:00
Keavon Chambers 5c9d3c5d75 UI refinements for radio buttons and the Snapping/Grid popovers 2024-01-18 05:03:43 -08:00
Keavon Chambers 3f76526d6d Update dependencies and reuse the same usvg version 2024-01-17 20:33:07 -08:00
Keavon Chambers b4dccb8655 Add a workaround for a Safari rendering bug with floating menus 2024-01-17 00:58:07 -08:00
0HyperCube 002151d9c0
SVG import (#1579)
* SVG import

* Fix error

* Transforms

* Code review nits

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-16 17:42:48 -08:00
Keavon Chambers 8eef96511e Improve document tilt and reset 2024-01-15 04:05:36 -08:00
Keavon Chambers d602603d46 Remove unused DocumentIsDirty 2024-01-15 02:51:40 -08:00
0HyperCube 8df59be1d5
Display graph errors in the viewport (#1577)
* Display graph errors in the viewport

* Polish up the styling

* Clear click targets while graph can't be rendered

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-15 06:18:08 +00:00
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 c777d4d430
Work around the weird treatment of the primary input (#1575)
* Work around the weird treatment of the primary input

* take2
2024-01-14 00:35:45 +00:00
0HyperCube e868bf9532
Fix path tool neighbours for normal snapping (#1570) 2024-01-13 16:08:34 -08: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 e0adf1040f
Fix graph UI not rerendering (#1568) 2024-01-13 16:25:08 +00:00
0HyperCube bf0ec2c9c8
Snapping improvements (#1567) 2024-01-13 08:10:24 -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 78a1bb17cd Move selected node list from DocumentMetadata to the document (#1565) 2024-01-13 04:52:47 -08: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 c14c6fbe93
Fix text tool broken by #1543 (#1555)
Text tool setting font as f32
2024-01-07 13:45:32 +00:00
0hypercube cd61daf869 Fix issue with pasting an image in the centre 2024-01-07 05:16:01 -08:00
Keavon Chambers 7998947202 Remove GRAPHITE_DOCUMENT_VERSION 2024-01-06 17:25:05 -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 c7fd9cfc21 New demo artwork: Procedural String Lights 2024-01-05 15:16:48 -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
Keavon Chambers 1af6252f2d Redesign the pivot overlay to a yellow crosshair 2023-12-30 18:34:51 -08:00
Keavon Chambers 134c10b543 Change default Text tool font to Cabin 2023-12-30 14:51:20 -08: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 96b5d7b520
Many subtle improvements to the UI design system (#1537) 2023-12-28 04:35:20 -08: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
Keavon Chambers 5c7e04a725 Additional clean up and bug fixes after migrating document-legacy 2023-12-20 18:43:32 -08:00
0HyperCube 4733134b22
Fix serialising document (#1526)
* Fix serialising document

* Remove unused import

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-20 22:58:04 +00:00
Keavon Chambers 92203f3576
Remove the whole document-legacy crate (#1524)
Remove the whole document-legacy crate

Closes #1520
2023-12-20 05:45:54 -08:00
Keavon Chambers dcd38f2e4c Remove all references to legacy layers (#1523)
* Remove visible field from LegacyLayer

* Remove LegacyLayer wrapper around LegacyLayerType

* Remove FolderLegacyLayer and LayerLegacyLayer wrappers around their data

* Remove legacy layers
2023-12-19 20:50:45 -08:00
Keavon Chambers 9a7d7de8fa Remove most of document-legacy (#1519)
* Remove boolean ops and unused doc-legacy Operations

* Remove Shape legacy layers

* Remove legacy layer Properties panel code

* Remove additional unused doc-legacy Operations

* Removed unused rendering-related legacy-layer code

* Upgrade dep so CI builds

* Remove various additional unused functions and messages

* Remove the LayerData trait

* Remove RenderData struct and usages

* Banish the Operations system

* Further removals
2023-12-19 04:36:19 -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 9d3344808f Add the user manual to the website (#1390) 2023-12-14 05:29:19 -08:00
Keavon Chambers 4d9e76063d Update website for the unified document graph release
Closes #1394
2023-12-14 05:01:54 -08:00
Keavon Chambers d5b161e7d1 Clean up some document-legacy code 2023-12-12 22:40:04 -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
Keavon Chambers f58aa73edc Bump the document version 2023-12-12 01:29:31 -08:00