]>
git.r.bdr.sh - rbdr/lissajous/blob - lib/systems/global_adjuster.js
1 import { System
} from '@serpentity/serpentity';
2 import Frequent
from '../nodes/configurable';
3 import { settingsContainer
, slider
} from '../factories/ui';
6 * UI that adjusts global configuration settings for the scene.
8 export default class GlobalAdjuster
extends System
{
10 constructor(container
) {
13 this.container
= container
;
18 this.nodes
= engine
.getNodes(Frequent
);
19 const container
= document
.getElementById('settings');
20 this.adjusterContainer
= settingsContainer({
21 id: 'global-adjuster',
26 for (const node
of this.nodes
) {
27 const nodeElement
= settingsContainer({
28 id: `global-adjuster-${i}`,
33 nodeElement
.appendChild(slider({
34 id: `global-adjuster-${i}-slider`,
39 className: 'lineLength',
40 get: () => node
.configuration
.lineLength
.toString(),
41 set: (value
) => (node
.configuration
.lineLength
= parseFloat(value
))
44 this.adjusterContainer
.appendChild(nodeElement
);
48 this.container
.appendChild(this.adjusterContainer
);
53 this.container
.removeChild(this.adjusterContainer
);
54 delete this.adjusterContainer
;