fcwv-flask/static/ThreeGuiElement.js

40 lines
852 B
JavaScript
Raw Permalink Normal View History

2023-03-21 19:42:22 -04:00
import { GUI } from 'GUI';
export class ThreeGUIElement extends HTMLElement{
constructor() {
super();
this.GUI = new GUI();
this.GUI.onChange(this.onGUIValueChange.bind(this));
}
onGUIValueChange(evt) {
this.dispatchEvent(new CustomEvent('value-change', {
detail: {
property: evt.property,
value: evt.value
}
}));
}
reset() {
while(this.GUI.children.length > 0) {
this.GUI.children[0].destroy();
}
}
setElements(elements) {
var self = this;
this.elements = {};
var gui = this.GUI;
this.reset();
elements.forEach(function(parameter) {
console.log(parameter)
self.elements[parameter.alias] = parameter.value;
gui.add(self.elements, parameter.alias, parameter.value);
});
}
}
customElements.define('three-gui', ThreeGUIElement);