Skip to content

Latest commit

 

History

History
125 lines (125 loc) · 4.21 KB

todo.org

File metadata and controls

125 lines (125 loc) · 4.21 KB

Operations to support

Scalars

  • [ ] -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)

Vectors

  • [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

Matrices

  • [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

Mux/demux

  • [ ] v -> (s, s, s)
  • [ ] (s, s, s) -> v
  • [ ] m -> (v, v, v, v)
  • [ ] (v, v, v, v) -> m

Trig

  • [ ] sin/cos/tan… etc(s) -> s
  • [X] angle_between(v, v) -> s

Misc

  • [ ] rad -> deg, deg -> rad
    • or should this be a global option?

Quaternions?

Other geometry?

  • Sphere
  • Plane

Branching or other control flow?

2D mode?

Named save/load support

Misc viewport

  • [ ] Draggable quadrant boundaries
  • [ ] Optional 4x1 layout instead of 2x2?

Misc node editor

  • More operations
  • More hotkeys
    • [X] Delete: delete nodes
    • [ ] Ctrl-A: select all nodes

Undo/redo support

  • [-] 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

View

  • [ ] 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

Nodes

  • [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?

Node types

  • [-] 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?
    • [ ] As vector?
    • [X] As sphere
  • [-] Render matrices?
    • [ ] grid w/ transform?
    • [X] vector field?

Matrix support

  • [X] New matrix icon?

Plugins

Ads/donation link

Help/about dialog?