basic ui, some filters

This commit is contained in:
2019-01-21 20:39:56 +01:00
parent e76aafc35a
commit 6394f2a869
30 changed files with 974 additions and 111 deletions

View File

@@ -1,10 +1,13 @@
import {Inputs, Outputs} from './io.js';
import uuidv4 from 'uuid/v4';
export default class Node {
constructor(inputNames, outputNames) {
this.__in = new Inputs(inputNames);
this.__out = new Outputs(outputNames);
constructor(name, inputNames, outputNames) {
this.name = name;
this.id = uuidv4();
this.__in = new Inputs(inputNames, this);
this.__out = new Outputs(outputNames, this);
this.__in.update = (name) => this.__update([name]);
}
@@ -25,5 +28,33 @@ export default class Node {
get out() {
return this.__out;
}
serialize() {
return {
id: this.id,
name: this.name,
options: {
in: this.in.serialize(),
},
}
}
deserialize({id, options}) {
this.id = id || uuidv4();
}
reconnect({options}, outputs) {
console.log('outputs', outputs)
for (let name of Object.keys(options.in)) {
const {value, output} = options.in[name];
if (value) {
this.in[name].value = value;
}
if (output) {
console.log('connecting', this.in[name].id, outputs[output])
this.in[name].connect(outputs[output]);
}
}
}
};