Fix bug with clipping
This commit is contained in:
224
config.js
224
config.js
@@ -36,7 +36,7 @@ export const config = {
|
||||
isMain: true,
|
||||
},
|
||||
],
|
||||
pano: `pano/defsky-grass.jpg`,
|
||||
pano: `pano/gradient.jpg`,
|
||||
},
|
||||
{
|
||||
id : "ssgp",
|
||||
@@ -45,116 +45,118 @@ export const config = {
|
||||
popup: theater2Popup,
|
||||
coords: [45.4401, 12.3408],
|
||||
nodes: [
|
||||
{
|
||||
label: 'Teatro',
|
||||
children: [
|
||||
{
|
||||
label: 'Struttura complessiva',
|
||||
model: 'models/ssgp/Teatro_SSGP_Full_ConSottrazioni.glb',
|
||||
},
|
||||
{
|
||||
label: 'Involucro',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_Struttura_parete_di_fondo.glb',
|
||||
isMain: true,
|
||||
opacity: 0.2,
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Sala / Auditorium',
|
||||
children: [
|
||||
{
|
||||
label: 'Peplano / Platea',
|
||||
model: 'models/ssgp/Teatro_SSGP_Platea_peplano.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordini di palchi',
|
||||
children: [
|
||||
{
|
||||
label: 'Ordine 1',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine1.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 2',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine2.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 3',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine3.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 4',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine4.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 5',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine5.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Parapetto',
|
||||
model: 'models/ssgp/Teatro_SSGP_parapetto_scala_piani.glb',
|
||||
},
|
||||
{
|
||||
label: 'Percorsi pubblico',
|
||||
model: 'models/ssgp/Teatro_SSGP_Percorsi_scale_corridoi.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Scena',
|
||||
children: [
|
||||
{
|
||||
label: 'Palcoscenico',
|
||||
model: 'models/ssgp/Teatro_SSGP_Palcoscenico.glb',
|
||||
},
|
||||
{
|
||||
label: 'Boccascena / Proscenio',
|
||||
model: 'models/ssgp/Teatro_SSGP_Boccascena.glb',
|
||||
},
|
||||
{
|
||||
label: 'Quinte architettoniche fisse',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_fisse.glb',
|
||||
},
|
||||
{
|
||||
label: 'Quinte architettoniche mobili',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_mobili.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Spazi tecnici',
|
||||
children: [
|
||||
{
|
||||
label: 'Spazio tecnico superiore',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_Spazio_tecnico_sup_soffitta.glb',
|
||||
children: [
|
||||
{
|
||||
label: 'Graticcia',
|
||||
model: 'models/ssgp/Teatro_SSGP_Graticcia.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ballatoio',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ballatoio.glb',
|
||||
},
|
||||
{
|
||||
label: 'Spazio tecnico inferiore',
|
||||
model: 'models/ssgp/Teatro_SSGP_Spazio_tecnico_inf.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Orchestra',
|
||||
children: [
|
||||
{
|
||||
label: 'Fossa orchestra',
|
||||
model: 'models/ssgp/Teatro_SSGP_Fossa_orchestra.glb',
|
||||
},
|
||||
]
|
||||
}
|
||||
{
|
||||
label: 'Teatro',
|
||||
children: [
|
||||
/*
|
||||
{
|
||||
label: 'Struttura complessiva',
|
||||
model: 'models/ssgp/Teatro_SSGP_Full_ConSottrazioni.glb',
|
||||
},
|
||||
*/
|
||||
{
|
||||
label: 'Involucro',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_Struttura_parete_di_fondo.glb',
|
||||
isMain: true,
|
||||
opacity: 0.2,
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Sala / Auditorium',
|
||||
children: [
|
||||
{
|
||||
label: 'Peplano / Platea',
|
||||
model: 'models/ssgp/Teatro_SSGP_Platea_peplano.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordini di palchi',
|
||||
children: [
|
||||
{
|
||||
label: 'Ordine 1',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine1.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 2',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine2.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 3',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine3.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 4',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine4.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ordine 5',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ordine5.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Parapetto',
|
||||
model: 'models/ssgp/Teatro_SSGP_parapetto_scala_piani.glb',
|
||||
},
|
||||
{
|
||||
label: 'Percorsi pubblico',
|
||||
model: 'models/ssgp/Teatro_SSGP_Percorsi_scale_corridoi.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Scena',
|
||||
children: [
|
||||
{
|
||||
label: 'Palcoscenico',
|
||||
model: 'models/ssgp/Teatro_SSGP_Palcoscenico.glb',
|
||||
},
|
||||
{
|
||||
label: 'Boccascena / Proscenio',
|
||||
model: 'models/ssgp/Teatro_SSGP_Boccascena.glb',
|
||||
},
|
||||
{
|
||||
label: 'Quinte architettoniche fisse',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_fisse.glb',
|
||||
},
|
||||
{
|
||||
label: 'Quinte architettoniche mobili',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_mobili.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Spazi tecnici',
|
||||
children: [
|
||||
{
|
||||
label: 'Spazio tecnico superiore',
|
||||
model: 'models/ssgp/Teatro_SSGP_Layer_Spazio_tecnico_sup_soffitta.glb',
|
||||
children: [
|
||||
{
|
||||
label: 'Graticcia',
|
||||
model: 'models/ssgp/Teatro_SSGP_Graticcia.glb',
|
||||
},
|
||||
{
|
||||
label: 'Ballatoio',
|
||||
model: 'models/ssgp/Teatro_SSGP_Ballatoio.glb',
|
||||
},
|
||||
{
|
||||
label: 'Spazio tecnico inferiore',
|
||||
model: 'models/ssgp/Teatro_SSGP_Spazio_tecnico_inf.glb',
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Orchestra',
|
||||
children: [
|
||||
{
|
||||
label: 'Fossa orchestra',
|
||||
model: 'models/ssgp/Teatro_SSGP_Fossa_orchestra.glb',
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
pano: `pano/gradient.jpg`,
|
||||
}
|
||||
|
||||
2
js/ui.js
2
js/ui.js
@@ -24,7 +24,7 @@ UI.contentMenuTabs = `
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content ps-4 ms-3" style="overflow: auto">
|
||||
<div class="tab-content ps-4 ms-3 overflow-y-auto">
|
||||
<div class="tab-pane active p-3 ms-3" id="layer" role="tabpanel" aria-labelledby="layer-tab" tabindex="0"></div>
|
||||
<div class="tab-pane p-3" id="media" role="tabpanel" aria-labelledby="media-tab" tabindex="0"></div>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,13 @@
|
||||
* @param {Number} depth
|
||||
*/
|
||||
function traverse(node, flatList, depth = 1) {
|
||||
const normNode = {label: node.label};
|
||||
const normNode = {
|
||||
id: node.label,
|
||||
label: node.label,
|
||||
opacity: node.opacity ?? null,
|
||||
isMain: node.isMain ?? false,
|
||||
active: true,
|
||||
};
|
||||
if (node.model) {
|
||||
normNode.model = node.model;
|
||||
}
|
||||
@@ -18,9 +24,8 @@ function traverse(node, flatList, depth = 1) {
|
||||
depth
|
||||
});
|
||||
if (node.children) {
|
||||
depth++;
|
||||
for(let child of node.children) {
|
||||
traverse(child, flatList, depth);
|
||||
traverse(child, flatList, depth + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,11 +37,11 @@ function traverse(node, flatList, depth = 1) {
|
||||
* @returns {Object[]} A flat list of nodes
|
||||
**/
|
||||
export function normalizeNodes (nodes) {
|
||||
let flatNodes = [];
|
||||
let flatList = [];
|
||||
|
||||
for (let node of nodes) {
|
||||
traverse(node, flatNodes);
|
||||
traverse(node, flatList);
|
||||
}
|
||||
|
||||
return flatNodes;
|
||||
return flatList;
|
||||
}
|
||||
|
||||
@@ -7,9 +7,6 @@ AppState.currentScene = 'salvador';
|
||||
AppState.sceneHasAudio = true;
|
||||
const marker = config.markers.find(m => m.id === 'salvador');
|
||||
AppState.normalizedNodes = normalizeNodes(marker.nodes);
|
||||
|
||||
AppState.normalizedNodes.forEach(node => node.active = true);
|
||||
|
||||
Scene.openScene(marker, AppState.normalizedNodes);
|
||||
|
||||
Scene.UI.pauseAudio('[data-bs-dismiss="modal"]');
|
||||
|
||||
@@ -6,7 +6,4 @@ import { normalizeNodes } from "../../js/utils/nodeUtils.js";
|
||||
AppState.currentScene = 'ssgp';
|
||||
const marker = config.markers.find(m => m.id === 'ssgp');
|
||||
AppState.normalizedNodes = normalizeNodes(marker.nodes);
|
||||
|
||||
AppState.normalizedNodes.forEach(node => node.active = true);
|
||||
|
||||
Scene.openScene(marker, AppState.normalizedNodes);
|
||||
|
||||
Reference in New Issue
Block a user