GraphiteEditor / GraphiteEditor/Graphite

A network's import cannot be connected directly to its export

Open
#1,762 2 comments 0 reactions 0 assignees View on GitHub
Architecture Graphene
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

Currently it is only possible to connect NodeInput::Value (disconnected export), or NodeInput::Node (link to node) to an export (UI only export node). It is not possible to connect an import directly to the export, which would result in a NodeInput::Import. To fix this, the flattening processing in `flatten_with_fns` will have to be adjusted to include exports when setting a NodeInput::Import to whatever that parent nodes input is.

I started some code, which outlines the general idea, but I could not get it to compile. I think this is an interesting problem to solve, which requires understanding the flattening process during compilation, and how to adapt the various methods to work with the network exports vec, rather than the node inputs vec.

Some relevant starting points are uncommenting the (None, None) case in `NodeGraphMessage::ConnectNodesByLink`, removing the reconnect restriction in `remove_references_from_network`, and understanding `flatten_with_fns`.

There are also some pictures and helpful discussion here:
https://discord.com/channels/731730685944922173/1238015208534966313/1239327786104262730
![image](https://github.com/GraphiteEditor/Graphite/assets/116332429/a60b2e8c-e7b6-41c3-952a-a0f1d86df0b3)

https://discord.com/channels/731730685944922173/1238015208534966313/1240797177467506688
![image](https://github.com/GraphiteEditor/Graphite/assets/116332429/7b9bf657-04b6-4c4d-b7a1-71ee448b6ef5)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.