diff --git a/src/components/three/ModelViewer.tsx b/src/components/three/ModelViewer.tsx index a7ad651..a6d95f7 100644 --- a/src/components/three/ModelViewer.tsx +++ b/src/components/three/ModelViewer.tsx @@ -712,6 +712,7 @@ function SelectionHandler() { if (o.geometry instanceof THREE.PlaneGeometry) return false; return true; }); + console.log('[Selection] click', { intersects: intersects.length, hit: !!hit, hitName: hit?.object?.name, hitUserData: hit?.object?.userData }); if (!hit) return; // Walk up to find ifcElement node AND the GLBModel root (carrying modelId) @@ -723,11 +724,13 @@ function SelectionHandler() { if (!modelId && cur.userData?.modelId) modelId = cur.userData.modelId as string; cur = cur.parent; } + console.log('[Selection] walked', { foundIfcElement: !!element, modelId, elementName: element?.name }); // Non-IFC fallback: pick the mesh itself if (!element) element = hit.object; if (!modelId) modelId = useModelStore.getState().activeModelId; - if (!modelId || !element) return; + if (!modelId || !element) { console.log('[Selection] aborted: no modelId/element'); return; } const key = elementKey(modelId, element); + console.log('[Selection] toggling', key); useModelStore.getState().toggleElementSelection(key); };