diff --git a/script.js b/script.js index 40d7cff..0a2fe64 100644 --- a/script.js +++ b/script.js @@ -1,15 +1,33 @@ -import { Color } from 'https://cdn.skypack.dev/three@0.132.2'; -import { IfcViewerAPI } from 'https://cdn.skypack.dev/ifc-viewer-api@1.0.0'; +document.addEventListener("DOMContentLoaded", async function() { + const viewer = new IfcViewerAPI({ container: document.body, backgroundColor: new THREE.Color(0xffffff) }); -const container = document.getElementById('viewer-container'); -const viewer = new IfcViewerAPI({ container, backgroundColor: new Color(0xffffff) }); + viewer.IFC.setWasmPath("https://unpkg.com/web-ifc@0.0.37/"); -viewer.axes.setAxes(); -viewer.grid.setGrid(); + // Controlli della telecamera + await viewer.IFC.applyWebIfcConfig(); + await viewer.IFC.setupThreeScene(); -const input = document.getElementById('file-input'); -input.addEventListener('change', async (changed) => { - const file = changed.target.files[0]; - const ifcURL = URL.createObjectURL(file); - await viewer.IFC.loadIfcUrl(ifcURL); + // Selezione del file IFC + document.getElementById('ifc-file').addEventListener('change', async (event) => { + const file = event.target.files[0]; + if (!file) return; + + document.getElementById("status").innerText = `Caricamento di ${file.name} in corso...`; + + const reader = new FileReader(); + reader.readAsArrayBuffer(file); + + reader.onload = async (e) => { + try { + const data = e.target.result; + const model = await viewer.IFC.loadIfc(new Uint8Array(data)); + console.log("Modello IFC caricato:", model); + document.getElementById("status").innerText = `Caricamento completato: ${file.name}`; + } catch (error) { + console.error("Errore nel caricamento IFC:", error); + alert("Errore nel caricamento del file IFC."); + document.getElementById("status").innerText = "Errore nel caricamento del file."; + } + }; + }); });