From 38963d7e23a2f6ff505c8f1347aaaa25ba8b31da Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 16:56:58 +0000 Subject: [PATCH] Changes Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com> --- src/components/three/ModelViewer.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/three/ModelViewer.tsx b/src/components/three/ModelViewer.tsx index 501f71f..4e98c9d 100644 --- a/src/components/three/ModelViewer.tsx +++ b/src/components/three/ModelViewer.tsx @@ -759,37 +759,37 @@ function VisibilityApplier() { useEffect(() => { const st = useModelStore.getState(); const { hiddenElementKeys, isolatedElementKeys, selectedElementKeys } = st; - let touched = 0, highlighted = 0; scene.traverse((root) => { const modelId = root.userData?.modelId as string | undefined; if (!modelId) return; - // For each ifcElement descendant inside this model root root.traverse((el) => { if (!el.userData?.ifcElement) return; - touched++; const key = elementKey(modelId, el); const hidden = hiddenElementKeys.has(key); const isolated = isolatedElementKeys ? !isolatedElementKeys.has(key) : false; el.visible = !(hidden || isolated); const selected = selectedElementKeys.has(key); - if (selected) highlighted++; el.traverse((m) => { if (!(m instanceof THREE.Mesh)) return; const mats = Array.isArray(m.material) ? m.material : [m.material]; mats.forEach((mat) => { if (!(mat instanceof THREE.MeshStandardMaterial)) return; if (selected) { - if (m.userData.__origEmissive === undefined) { + if (m.userData.__origColor === undefined) { + m.userData.__origColor = mat.color.getHex(); m.userData.__origEmissive = mat.emissive.getHex(); m.userData.__origEmissiveIntensity = mat.emissiveIntensity; } + mat.color.set('#f59e0b'); mat.emissive.set('#f59e0b'); - mat.emissiveIntensity = 0.6; - } else if (m.userData.__origEmissive !== undefined) { + mat.emissiveIntensity = 1.0; + } else if (m.userData.__origColor !== undefined) { + mat.color.setHex(m.userData.__origColor as number); mat.emissive.setHex(m.userData.__origEmissive as number); mat.emissiveIntensity = (m.userData.__origEmissiveIntensity as number) ?? 0; + delete m.userData.__origColor; delete m.userData.__origEmissive; delete m.userData.__origEmissiveIntensity; } @@ -798,7 +798,6 @@ function VisibilityApplier() { }); }); }); - console.log('[VisibilityApplier] ran', { touched, highlighted, selectedKeys: Array.from(selectedElementKeys) }); }, [scene, nonce, models, opacity, renderMode, checklist]); return null;