feat(viewer3d): attenuate non-highlighted pieces ghost wireframe to 5% opacity in process filter mode

This commit is contained in:
2026-09-21 02:08:58 +00:00
parent b947a7bc80
commit 4782d0aaa1
+4 -3
View File
@@ -391,13 +391,13 @@ export const ModelViewer3D: React.FC<ModelViewer3DProps> = ({
mesh.userData.edgesLine.visible = false; mesh.userData.edgesLine.visible = false;
} }
} else { } else {
// Peça NÃO apontada no processo: ARAMADO CINZA CLARO FANTASMA (Ghost Frame) // Peça NÃO apontada no processo: ARAMADO CINZA CLARO FANTASMA ULTRA-SUAVE (Atenuação a 5% - Quase invisível)
if (!mesh.userData.edgesLine) { if (!mesh.userData.edgesLine) {
const edgesGeo = new THREE.EdgesGeometry(mesh.geometry, 24); const edgesGeo = new THREE.EdgesGeometry(mesh.geometry, 24);
const lineMat = new THREE.LineBasicMaterial({ const lineMat = new THREE.LineBasicMaterial({
color: 0x94a3b8, // Cinza claro industrial color: 0x94a3b8, // Cinza claro industrial
transparent: true, transparent: true,
opacity: 0.65, opacity: 0.05, // 5% de opacidade para foco total nas peças verdes
}); });
const edgesLine = new THREE.LineSegments(edgesGeo, lineMat); const edgesLine = new THREE.LineSegments(edgesGeo, lineMat);
mesh.userData.edgesLine = edgesLine; mesh.userData.edgesLine = edgesLine;
@@ -405,7 +405,8 @@ export const ModelViewer3D: React.FC<ModelViewer3DProps> = ({
} else { } else {
if (mesh.userData.edgesLine.material) { if (mesh.userData.edgesLine.material) {
mesh.userData.edgesLine.material.color.set(0x94a3b8); mesh.userData.edgesLine.material.color.set(0x94a3b8);
mesh.userData.edgesLine.material.opacity = 0.65; mesh.userData.edgesLine.material.transparent = true;
mesh.userData.edgesLine.material.opacity = 0.05;
} }
} }
mesh.userData.edgesLine.visible = true; mesh.userData.edgesLine.visible = true;