GraphiteEditor / GraphiteEditor/Graphite

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

Abierto
#1,762 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Architecture Graphene
Lenguaje dominante
Rust
Estrellas
27.2k
Forks
1.3k
Merge medio
20 h 5 min
PR fusionados (30 d)
57

Descripción

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)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza examinando NodeGraphMessage::ConnectNodesByLink, la restricción de reconexión en remove_references_from_network y flatten_with_fns. Rastrea cómo se gestionan las exportaciones de red y las entradas de los nodos durante el flattening, usando como contexto la discusión enlazada y los diagramas. Se considera terminado cuando una importación puede conectarse directamente a una exportación y el flattening produce el NodeInput::Import correspondiente sin romper las conexiones existentes.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
backend, compilers
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.