marchingcubestest/src/interface.js

47 lines
1.3 KiB
JavaScript

export function mkslider(title, min, max, step, val, callback) {
const gui = document.createElement('div');
gui.classList.add('slider');
const label = document.createElement('label');
const input = document.createElement('input');
const value = document.createElement('span');
input.setAttribute('type', 'range');
input.setAttribute('min', min);
input.setAttribute('max', max);
input.setAttribute('step', step);
input.setAttribute('value', val);
label.innerText = title;
value.innerText = val;
gui.appendChild(label);
gui.appendChild(input);
gui.appendChild(value);
input.addEventListener('input', function() {
callback(parseFloat(input.value));
value.innerText = input.value;
})
return gui;
}
export function mkcheckbox(title, val, callback) {
const gui = document.createElement('div');
gui.classList.add('checkbox');
const label = document.createElement('label');
const input = document.createElement('input');
input.setAttribute('type', 'checkbox');
if (val) {
input.setAttribute('checked', 'checked');
}
label.innerText = title;
gui.appendChild(label);
gui.appendChild(input);
input.addEventListener('input', function() {
callback(input.checked);
});
return gui;
}
export function mkspacer() {
const gui = document.createElement('div');
gui.classList.add('spacer');
return gui;
}