midtowndrafting.com/content/docs/3d-scanning/script.js
brooke 9d7dee4d1f
All checks were successful
Hugo / build (push) Successful in 48s
add 3d scanning article, add styles and scripts to allow for rendering
2024-05-31 22:56:29 -04:00

39 lines
No EOL
1.2 KiB
JavaScript

import * as SPLAT from "https://cdn.jsdelivr.net/npm/gsplat@latest";
const canvas = document.getElementById("canvas");
const progressDialog = document.getElementById("progress-dialog");
const progressIndicator = document.getElementById("progress-indicator");
const loadButton = document.querySelector("#load-button");
const loadingLabel = document.querySelector('#progress-dialog label');
const renderer = new SPLAT.WebGLRenderer(canvas);
const scene = new SPLAT.Scene();
const camera = new SPLAT.Camera();
const controls = new SPLAT.OrbitControls(camera, canvas);
loadButton.addEventListener('click', () => {
loadingLabel.textContent = 'Loading...';
main();
});
async function main() {
const url = "model.splat";
await SPLAT.Loader.LoadAsync(url, scene, (progress) => (progressIndicator.value = progress * 100));
progressDialog.close();
const handleResize = () => {
renderer.setSize(canvas.clientWidth, canvas.clientHeight);
};
const frame = () => {
controls.update();
renderer.render(scene, camera);
requestAnimationFrame(frame);
};
handleResize();
window.addEventListener("resize", handleResize);
requestAnimationFrame(frame);
}