From 36ea08e50b0a82d0010c4f261c6ed43bcc16cff5 Mon Sep 17 00:00:00 2001 From: Impaczus Date: Fri, 29 May 2026 09:59:19 +0800 Subject: [PATCH] Added Gridhelper toggle, Added Mabulig logo, UI improvements --- img/Mabulig_logo.png | Bin 0 -> 27148 bytes index.html | 2 +- main.js | 19 ++++++++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 img/Mabulig_logo.png diff --git a/img/Mabulig_logo.png b/img/Mabulig_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..100833086c569d11cdc0952c59aaa5e63fdbff63 GIT binary patch literal 27148 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 1a2006c..593f7db 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@
-

Mabulig Web

+

Record Number

diff --git a/main.js b/main.js index a649465..ee78aa6 100644 --- a/main.js +++ b/main.js @@ -121,11 +121,13 @@ function loadModel(modelPath) { } loaderContainer.style.display = 'flex'; console.log(`Loaded: ${modelPath}`); + setGuiEnabled(gui, false); loader.load(modelPath, (glb) => { currentModel = glb.scene; scene.add(glb.scene); loaderContainer.style.display = 'none'; // Hide Loading Throbber + setGuiEnabled(gui, true); }); } @@ -147,6 +149,8 @@ function startApp() { let variantOptions = Object.keys(modelsData[0].variants); let variantController = gui.add(params, 'variant', variantOptions).name('Variant'); + let gridcontroller = gui.add(gridHelper, 'visible').name('Toggle Grid'); + // 4. Handle dynamic updates nameController.onChange((selectedName) => { const selectedModelData = modelsData.find(item => item.name === selectedName); // Find the data for the newly selected model @@ -154,9 +158,11 @@ function startApp() { params.variant = newVariants[0]; // Update the param state to the first available variant of the new model - // Destroy the old variant dropdown and create a new one with updated options + // Destroy the old variant dropdown and gridhelper and create a new ones with updated options variantController.destroy(); + gridcontroller.destroy(); variantController = gui.add(params, 'variant', newVariants).name('Variant'); + gridcontroller = gui.add(gridHelper, 'visible').name('Toggle Grid'); // Re-attach the onChange listener to the new dropdown attachVariantListener(variantController, selectedModelData); @@ -220,6 +226,17 @@ function animate( time ) { renderer.render( scene, camera ); } +//Toggle GUI +function setGuiEnabled(guiInstance, isEnabled) { + guiInstance.controllersRecursive().forEach(controller => { + isEnabled ? controller.enable() : controller.disable(); + }); + + // Visually dim the GUI when disabled + guiInstance.domElement.style.opacity = isEnabled ? '1' : '0.5'; + guiInstance.domElement.style.pointerEvents = isEnabled ? 'auto' : 'none'; +} + //Show Info div after 5 seconds after initial load setTimeout(() => { const infoElement = document.getElementById('info');