v0.4.2: iconen gerepareerd, lucht-achtergrond (skybox) met toggle

- bootstrap-icons: @font-face correct ingebed (selector .bi::before was stuk)
- core/skybox.js + assets/skybox-data.js (lazy), knop Lucht in alle 3D-weergaven
- woning: met lucht aan raster en sandwichpanelen onzichtbaar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Machiel
2026-09-30 11:58:07 +02:00
co-authored by Claude Opus 5.5
parent 3591fad220
commit 3a4b9608c0
10 changed files with 121 additions and 6 deletions
+9 -2
View File
@@ -301,6 +301,7 @@ function mountHouseEditor(container, callbacks) {
let cameraFitted = CameraMemory.restore(overviewCamKey, camera, controls);
let beplatingVisible = true, isolatieVisible = true, lampenVisible = true;
let fullRender = false;
let skyOn = Skybox.isOn();
// Weergave-filter (core/view-filter.js). Beplating = wandplaten, vloer-
// en plafondplaten, dakleer en boeideel/daktrim.
@@ -319,12 +320,17 @@ function mountHouseEditor(container, callbacks) {
// Volle render: avondscène, lampen en spots als echte lichtbronnen.
let lightsGroup = null;
// Lucht (core/skybox.js): alleen in de gewone weergave (de volle render is
// een avondscène). De sandwichpanelen zitten in de grond: met lucht aan
// zijn ze niet zichtbaar.
function applyRenderMode() {
scene.background = new THREE.Color(fullRender ? 0x0b0f18 : 0x1a1a1a);
if (fullRender) scene.background = new THREE.Color(0x0b0f18);
else Skybox.apply(scene, skyOn, 0x1a1a1a, () => skyOn && !fullRender);
if (parts && parts.sandwichGroup) parts.sandwichGroup.visible = beplatingVisible && !(skyOn && !fullRender);
ambient.intensity = fullRender ? 0.1 : 0.6;
dirLight.intensity = fullRender ? 0.12 : 0.8;
ground.visible = fullRender;
grid.visible = !fullRender;
grid.visible = !fullRender && !skyOn;
if (lightsGroup) { scene.remove(lightsGroup); lightsGroup = null; }
// De nep-lichtbundels (kegels) alleen in de snelle weergave; in de
// volle render schijnt er echt licht.
@@ -335,6 +341,7 @@ function mountHouseEditor(container, callbacks) {
scene.add(lightsGroup);
}
}
Skybox.createToggle(document.getElementById('ho-toolbar-3d'), (on) => { skyOn = on; applyRenderMode(); });
document.getElementById('ho-btn-render').addEventListener('click', (e) => {
fullRender = !fullRender;
e.currentTarget.classList.toggle('active', fullRender);