diff --git a/naloga_1/index.html b/naloga_1/index.html index cf333de..6449c23 100644 --- a/naloga_1/index.html +++ b/naloga_1/index.html @@ -7,7 +7,20 @@ - - + + +
+ +
\ No newline at end of file diff --git a/naloga_1/script.js b/naloga_1/script.js index 10254e4..7af7a6f 100644 --- a/naloga_1/script.js +++ b/naloga_1/script.js @@ -1,12 +1,21 @@ -async function main() { - const canvas = document.getElementById("canvas"); +const canvas = document.getElementById("canvas"); +const ctx = canvas.getContext("2d"); - /** - * @type RenderingContext - */ - const ctx = canvas.getContext("2d"); +const dropZone = document.getElementById("drop-zone"); +dropZone.addEventListener("dragenter", (e) => e.preventDefault()); +dropZone.addEventListener("dragover", (e) => e.preventDefault()); +dropZone.addEventListener("drop", (e) => { + const reader = new FileReader(); + reader.addEventListener("loadend", async () => { + const data = JSON.parse(reader.result); + await run(data); + }); + reader.readAsText(e.dataTransfer.files[0]); + e.preventDefault(); +}); - const { models, scene } = await fetch("test.json").then(res => res.json()); +async function run({ models, scene }) { + ctx.clearRect(0, 0, canvas.width, canvas.height); for (const { model, transforms } of scene) { let m = Matrix.identity(); @@ -38,8 +47,6 @@ async function main() { } } -main(); - class Matrix extends Array { /** * @param {number[][]} matrix