scaenae/js/main.js
2025-09-22 15:17:50 +02:00

60 lines
1.6 KiB
JavaScript

/*
Main js entry for template ATON web-app
===============================================*/
// Realize our app
let APP = ATON.App.realize();
const materialProperties = {
color: "#8993a4",
//transparent: true,
//opacity: 0.8,
flatShading: false,
//wireframe: true,
};
function showEdges (object) {
if (object.isMesh) {
let edges = new THREE.EdgesGeometry(child.geometry, 45);
let line = new THREE.LineSegments(edges, edgeMaterial);
child.add(line);
}
}
// You can require here flares (plugins) if needed by the app
//APP.requireFlares(["myFlare","anotherFlare"]);
// APP.setup() is required for web-app initialization
// You can place here UI setup (HTML), events handling, etc.
APP.setup = ()=>{
// Realize base ATON and add base UI events
ATON.realize();
ATON.UI.addBasicEvents();
let lightProbe = new ATON.LightProbe();
lightProbe.setPosition(2, 6, 2);
// Load 3D model
let mainNode = ATON.createSceneNode("teatro").load("nicolo/models/teatro_san_salvador.glb");
mainNode.setMaterial(new THREE.MeshPhongMaterial(materialProperties));
//showEdges(mainNode.children[0]);
mainNode.attachToRoot();
lightProbe.update();
//ATON.addLightProbe(lightProbe);
// If our app required ore or more flares (plugins), we can also wait for them to be ready for specific setups
ATON.on("AllFlaresReady",()=>{
// Do stuff
console.log("All flares ready");
});
};
/* If you plan to use an update routine (executed continuously), you can place its logic here.
APP.update = ()=>{
};
*/