Commit Graph

48 Commits

Author SHA1 Message Date
0HyperCube
d9177f5f4d Add a basic API and rudimentary frontend for node graph layers (#846)
* Node graph API stub

* Rename and fix SetInputValue

* Get list of links from network

* Test populating node graph UI

* Node properties

* Fix viewport bounds

* Slightly change promise usage

* A tiny bit of cleanup I did while reading code

* Cleanup and work towards hooking up node links in Vue template

* Add the brighten colour node

* Run cargo fmt

* Add to and from hsla

* GrayscaleImage node with small perf improvement

* Fix gutter panel resizing

* Display node links from backend

* Add support for connecting node links

* Use existing message

* Fix formatting error

* Add a (currently crashing) brighten node

* Replace brighten node with proto node implementation

* Add support for connecting node links

* Update watch dirs

* Add hue shift node

* Add create_node function to editor api

* Basic insert node UI

* Fix broken names

* Add log

* Fix positioning

* Set connector index to 0

* Add properties for Heu shift / brighten

* Allow deselecting nodes

* Redesign Properties panel collapsible sections

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2022-11-12 13:23:28 -08:00
Keavon Chambers
265f11a751 Add rotation custom cursor icon for the transform cage 2022-11-05 23:02:21 -07:00
0HyperCube
9cdebfb1f0 Integrate the node graph as a Node Graph Frame layer type (#812)
* Add node graph frame tool

* Add a brighten

* Use the node graph

* Fix topological_sort

* Update UI

* Add icons for the tool and layer type

* Avoid serde & use bitmaps to improve performance

* Allow serialising a node graph

* Fix missing ..Default::default()

* Fix incorrect comments

* Cache node graph output image

* Suppress no-cycle import warning

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-11-05 14:38:14 -07:00
TrueDoctor
52048cb0d2 Implement Upcasting without nightly support (#825) 2022-10-25 16:37:18 -07:00
TrueDoctor
a65ac7ddfd Node graph dynamic execution (#824)
Restructure document node implementation

* Implement topological sort

* Enforce the usage of type annotations

* Add complete test case
2022-10-25 15:45:42 -07:00
0hypercube
1a4a0db7e8 Add some raster protonodes 2022-10-26 00:37:05 +02:00
TrueDoctor
2873c8fb00 Relax borrow stack lifetimes (#823)
Relax lifetimes for borrow_stack
2022-10-25 15:35:30 -07:00
TrueDoctor
097899611f Implement node registry (#822) 2022-10-25 15:32:50 -07:00
TrueDoctor
06acd45a81 Rework DynAnyNode design to work with the borrow stack (#796) 2022-10-15 03:02:58 +02:00
0hypercube
99d92ef887 Some initial testing on dynamic nodes and composition
* Test use of borrow stack
2022-10-15 02:45:02 +02:00
TrueDoctor
e3237b2c4e Implement the initial Document Nodes system (#795)
* Add testcase for flattening graph

* Implement equality for Values

* Implement input resolution
2022-10-15 02:02:50 +02:00
0HyperCube
7ca45c25e1 Use .then() instead of .after() for sequencing nodes (#760)
* Add .then() for sequencing nodes

* Remove all uses af after

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-08-28 12:52:46 -07:00
Keavon Chambers
7848391f6e Clean up MenuList types and fix many Vue and Clippy warnings
Also remove hard-coded-in-Vue Graphite logo in the menu bar in favor of a Rust definition.
2022-08-26 00:10:41 -07:00
Dennis
d566ba852d Impl DynNode 2022-08-23 14:02:50 -07:00
Keavon Chambers
5531fc690f Add grayscale sample image for its node graph test 2022-08-23 14:00:17 -07:00
Dennis
ce9e02f36d Make node trait consume self 2022-08-23 14:00:17 -07:00
Dennis
fa0b896825 Implement image loding test 2022-08-23 14:00:17 -07:00
Dennis
7eb050092c Add tests for op nodes 2022-08-23 14:00:17 -07:00
Dennis
abf04753e2 Implement cons node 2022-08-23 14:00:17 -07:00
Dennis
a6a41c4b97 Add test for gray scale node
# Conflicts:
#	node-graph/gcore/src/raster.rs
2022-08-23 14:00:17 -07:00
Dennis
6b45927a60 Reintroduce input for the node trait
# Conflicts:
#	node-graph/gcore/src/raster.rs
2022-08-23 14:00:17 -07:00
Dennis
83ff548596 Add raster module to graphene_core 2022-08-05 17:43:49 -07:00
Dennis
9e1f4eb46d Add license information for node_graph crates 2022-08-04 11:47:38 +02:00
Keavon Chambers
0c7870c5b0 Fix formatting of previous commit 2022-08-04 00:18:42 -07:00
Dennis
5e9545322e Bump dyn-any version + format code 2022-08-04 09:08:48 +02:00
Dennis
30af1ba8db Integrate dyn-any into the main graphite repo 2022-08-04 09:05:19 +02:00
Dennis
4fd0042f9b Temporarily remove pretty printing for token streams 2022-08-02 11:53:35 +02:00
Dennis
a348804908 Add dyn-any as a submodule 2022-08-02 11:52:08 +02:00
Dennis
089a3f5684 Compile node graph description to GPU code 2022-08-01 23:44:25 -07:00
Dennis
41a602bba9 Add Unit and Id nodes to node graph 2022-08-01 23:44:24 -07:00
Dennis
09f550bcd4 Don't force nodes to store references to other nodes 2022-08-01 23:44:22 -07:00
Dennis
4b8c0ec4e1 Remove input from the node definition 2022-08-01 23:44:19 -07:00
Dennis
aa5e6f43f6 Add GPU support for node graph 2022-08-01 23:44:18 -07:00
Dennis
bfe21cb179 Implement borrow stack for node graph 2022-08-01 23:44:16 -07:00
Dennis
1ae1fd5704 Make graphene_core no_std 2022-08-01 23:44:14 -07:00
Dennis
119e865007 Restructure node graph proxy architecture 2022-08-01 23:44:13 -07:00
Dennis
6349edfeb3 Replace GAT with lifetime on trait in node graph 2022-08-01 23:44:11 -07:00
Dennis
7384514b87 Try and fail to make nodes object-safe in node graph 2022-08-01 23:44:10 -07:00
Dennis
fef173d3fe Restructure node graph project layout 2022-08-01 23:44:08 -07:00
Dennis
850ca7c73a Add Exec trait to simplify calling nodes without input data 2022-08-01 23:44:07 -07:00
Dennis
a4542b20be Implement ProxyNode for node graph 2022-08-01 23:44:05 -07:00
Dennis
066b57f43e Add Fst- and SndNode to node graph 2022-08-01 23:44:03 -07:00
Dennis
f58f2ee7ed Add FnNode and FnNodeWithState to node graph 2022-08-01 23:44:01 -07:00
Dennis
33244e7122 Finish implementation of compose node 2022-08-01 23:44:00 -07:00
Dennis
49aa948971 Rewrite node graph using generic associated types 2022-08-01 23:43:58 -07:00
Dennis
7a79a892b4 Implement node composition and Cache node 2022-08-01 23:43:56 -07:00
Dennis
4f492b24d2 Transition to a trait-based node graph 2022-08-01 23:43:54 -07:00
TrueDoctor
01bbe5dced Initial implementation of node graph based on structs 2022-08-01 23:43:42 -07:00