- [ ] -s?
- Could just use * -1
- [X] s + s
- [X] s - s
- [X] s * s
- [X] s / s
- [X] s ^ s
- [ ] s % s
- [ ] |s|
- [ ] sqrt(s)
- [X] v * s
- [X] v / s
- [X] v + v
- [X] v - v
- [X] v . v
- [X] v x v
- [X] ||v||
- [X] norm(v) -> v
- [X] v.proj(v) -> v
- [ ] lerp(v, v, s) -> v
- [ ] rotate[XYZ](v, origin, rad) -> v
- [X] m + m
- [X] m - m
- [X] m * m
- [X] inverse(m) -> m
- [X] determinant(m) -> s
- [ ] eigenvalue(m) -> s
- [ ] eigenvector(m) -> v
- [X] v * m -> v
- [ ] translate/rotate/scale/skew helpers -> m
- Should this produce a value, or should it act like an operation? or both somehow?
- Maybe inverse these functions too?
- [X] transpose(m) -> m
- [ ] v -> (s, s, s)
- [ ] (s, s, s) -> v
- [ ] m -> (v, v, v, v)
- [ ] (v, v, v, v) -> m
- [ ] sin/cos/tan… etc(s) -> s
- [X] angle_between(v, v) -> s
- [ ] rad -> deg, deg -> rad
- or should this be a global option?
- Sphere
- Plane
- [ ] Draggable quadrant boundaries
- [ ] Optional 4x1 layout instead of 2x2?
- More operations
- More hotkeys
- [X] Delete: delete nodes
- [ ] Ctrl-A: select all nodes
- [-] Current history plugin does not give access to undo stack, which prevents
me from doing a couple things. Maybe submit a patch to the plugin, or write
my own, or just try to find some workarounds…
- retejs/history-plugin#2
- [X] Need to re-work BasicOperationComponent to not change any state in worker(). Re-write functions to be pure, traverse graph myself.
- [X] “Collapse” multiple similar actions (node value updates, cascading socket type changes + connection changes, etc.)
- [ ] Save undo/redo state between page loads?
- Every action must be serializable
- [X]
Clear history stack on load to avoid being able to undo loading?- (breaks saving between page loads if I go that way)
- Just don’t set up actions until after page loaded
- retejs/history-plugin#2
- [ ] Recenter view on page load?
- [X] Recenter view try to fit all nodes
- [ ] Right click pan to match viewport?
- This works but brings up context menu
- [ ] Left click box select?
- [X] When adding nodes, add to center of view and only reposition if node too close to center
- [X] More render settings
- [X] “Render at pos”/”Origin”
- [X] Togglable rendering, or maybe just alpha support
- [X] Random output colors
- [X] Hide some of these in a “show advanced render settings” option?
- [X] Custom node titles
- [ ] Render node name in viewport?
- [X] Custom paste handler
- [ ] Configurable input width?
- [X] Truncate input display values
- [X] Condense everything a bit more if possible
- [ ] “Dense mode” layout to match other node editors, e.g. Blender: Outputs on top, controls in middle, inputs on bottom
- If input is connected, don’t show intermediate values?
- [-] Render scalar values
- [X] As circle
- [X] Update on horizontal resize, or figure out how to write in such a way that viewport size doesn’t matter
- Can I somehow use the camera’s current matrices?
- [X] Update on horizontal resize, or figure out how to write in such a way that viewport size doesn’t matter
- [ ] As vector?
- [X] As sphere
- [X] As circle
- [-] Render matrices?
- [ ] grid w/ transform?
- [X] vector field?
- [X] New matrix icon?
- [ ] Keyboard plugin
- Delete hotkey
- Could I modify this to get copy-paste?
- [ ] Area plugin
- I think this just gives view recentering like I do manually, but it also gives zoom/translate bounds on the canvas
- [ ] Code plugin
- Generate JS from node editor (can I go the other way too?)
- [ ] Minimap plugin
- [ ] Auto-arrange plugin
- Tried using this and it didn’t seem to work…
- [X] History plugin
- Undo/redo support!