Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-05-21 16:57:15 +00:00
parent 38963d7e23
commit e9046b6aa7
+18 -20
View File
@@ -773,28 +773,26 @@ function VisibilityApplier() {
const selected = selectedElementKeys.has(key); const selected = selectedElementKeys.has(key);
el.traverse((m) => { el.traverse((m) => {
if (!(m instanceof THREE.Mesh)) return; if (!(m instanceof THREE.Mesh)) return;
const mats = Array.isArray(m.material) ? m.material : [m.material]; if (selected) {
mats.forEach((mat) => { if (!m.userData.__origMaterial) {
if (!(mat instanceof THREE.MeshStandardMaterial)) return; m.userData.__origMaterial = m.material;
if (selected) { const src = Array.isArray(m.material) ? m.material[0] : m.material;
if (m.userData.__origColor === undefined) { const cloned = (src as THREE.Material).clone() as THREE.MeshStandardMaterial;
m.userData.__origColor = mat.color.getHex(); if (cloned instanceof THREE.MeshStandardMaterial) {
m.userData.__origEmissive = mat.emissive.getHex(); cloned.color.set('#f59e0b');
m.userData.__origEmissiveIntensity = mat.emissiveIntensity; cloned.emissive.set('#f59e0b');
cloned.emissiveIntensity = 0.8;
cloned.needsUpdate = true;
} }
mat.color.set('#f59e0b'); m.material = cloned;
mat.emissive.set('#f59e0b');
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;
} }
mat.needsUpdate = true; } else if (m.userData.__origMaterial) {
}); // Dispose the cloned highlight material
const cur = Array.isArray(m.material) ? m.material[0] : m.material;
(cur as THREE.Material)?.dispose?.();
m.material = m.userData.__origMaterial as THREE.Material;
delete m.userData.__origMaterial;
}
}); });
}); });
}); });