scaenae/js/main.js

77 lines
2.0 KiB
JavaScript

/*
Main js entry for template ATON web-app
===============================================*/
// Realize our app
let APP = ATON.App.realize();
const material = {
color: "#e6f2ff",
emissive: true,
};
APP.showEdges = function(object) {
if (object.isMesh) {
let edges = new THREE.EdgesGeometry(child.geometry, 45);
let line = new THREE.LineSegments(edges, edgeMaterial);
child.add(line);
}
}
/**
* @param {String} id - The settings button id
*/
APP.toggleSettingsPanel = function(id) {
const btn = document.querySelector(`#${id}`);
btn.addEventListener('click', () => {
ATON.UI.showSidePanel({header: 'Settings'});
})
}
// 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();
ATON.UI.init();
ATON.UI.setSidePanelLeft();
// Open settings side panel when clicking on btn
APP.toggleSettingsPanel('settings');
// All assets for this app are stored here
ATON.setPathCollection('./assets/');
ATON.setMainLightDirection(new THREE.Vector3(0.2,-0.3,-0.7));
// Load 3D model
let mainNode = ATON.createSceneNode("teatro").load("teatro_san_salvador_20250926.gltf");
const pano = "defsky-grass.jpg";
ATON.setMainPanorama(pano);
mainNode.setMaterial(new THREE.MeshPhongMaterial(material));
mainNode.setRotation(0, 1.5, 0)
//showEdges(mainNode.children[0]);
mainNode.attachToRoot();
ATON.toggleShadows(true);
ATON.setExposure(1.3);
// 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 = ()=>{
};
*/