blob: c1c188d360c3b1f8bfe843e8d3b690d85311e3a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import { System } from '@serpentity/serpentity';
import Frequent from '../nodes/configurable';
import { settingsContainer, slider } from '../factories/ui';
/**
* UI that adjusts global configuration settings for the scene.
*/
export default class GlobalAdjuster extends System {
constructor(container) {
super();
this.container = container;
}
added(engine){
this.nodes = engine.getNodes(Frequent);
const container = document.getElementById('settings');
this.adjusterContainer = settingsContainer({
id: 'global-adjuster',
label: 'Global'
});
let i = 0;
for (const node of this.nodes) {
const nodeElement = settingsContainer({
id: `global-adjuster-${i}`,
label: 'Line',
level: 3
});
nodeElement.appendChild(slider({
id: `global-adjuster-${i}-slider`,
min: '5',
max: '1000',
step: '5',
label: '𝜆',
className: 'lineLength',
get: () => node.configuration.lineLength.toString(),
set: (value) => (node.configuration.lineLength = parseFloat(value))
}));
this.adjusterContainer.appendChild(nodeElement);
++i;
}
this.container.appendChild(this.adjusterContainer);
}
removed(){
this.container.removeChild(this.adjusterContainer);
delete this.adjusterContainer;
delete this.nodes;
}
update(){}
};
|