Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a xoder I want to explode patch nodes so that I can evolve quick-start nodes #1740

Open
10 tasks
nkrkv opened this issue Apr 5, 2019 · 0 comments
Open
10 tasks

Comments

@nkrkv
Copy link
Member

nkrkv commented Apr 5, 2019

Rationale

XOD has a convention of quick-start nodes for dealing with hardware. They are trivial combinations of the device and action nodes, but when a xoder wants to get more features out of his device, he has to step back: delete the quick-start node and re-create the existing functionality with new device and action nodes. This is cumbersome. Let’s make a shortcut allowing in-place patch node explosion.

User story

  • I select a node
  • I hit Edit → Explode Selection
  • The node gets replaced with contents of its patch
  • The program stays the same semantically: the links are preserved, the values bound to terminals are re-bound to the corresponding pins of internal nodes.
  • The neighbor nodes are pushed to the right and bottom so that the explosion does not overlay other nodes on the patch

Acceptance criteria

  • I can place and explode xod/math/log-bx, it is replaced with two log-e and a divide
  • I can bind B and X to log-bx and they are re-bound to log-e inputs after explosion
  • I can link the pins of log-bx to other nodes and they will be kept after the explosion
  • The tabtest node is stripped out of the explosion result
  • I can put a node to the right of log-bx and it will be pushed by 2 slots to the right on the explosion (1 slot margin)
  • I can put a node to the bottom of log-bx and it will be pushed by 2 slots down on the explosion (1 slot margin)
  • If I select several nodes and hit Explode Selections, the effect is the same as when exploding one by one (but grouped as a single undo/redo action)
  • I can hit Undo once after an explosion and the patch state is reverted back to the pre-explosion state
  • If I try to explode a C++ node an error message is shown¹
  • If I try to explode a variadic with the arity level more than one, an error message is shown²

¹

C++ nodes don't explode
You may only explode nodes composed out of other nodes internally.
If you want to change the node implementation, make its local fork in your project.

²

Variadic nodes don't explode
You may only explode variadic nodes with the arity level of one. Exploding other
levels are not supported yet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant