Theater at top level in menu
This commit is contained in:
228
config.js
228
config.js
@@ -44,120 +44,120 @@ export const config = {
|
|||||||
uri : `${BASE_URI}/scenes/ssgp/`,
|
uri : `${BASE_URI}/scenes/ssgp/`,
|
||||||
popup: theater2Popup,
|
popup: theater2Popup,
|
||||||
coords: [45.4401, 12.3408],
|
coords: [45.4401, 12.3408],
|
||||||
nodes: [
|
nodes: {
|
||||||
{
|
label: 'Teatro',
|
||||||
label: 'Teatro',
|
model: 'models/ssgp/Teatro_SSGP_Full_ConSottrazioni.glb',
|
||||||
children: [
|
opacity: 0.0,
|
||||||
/*
|
children: [
|
||||||
{
|
/*
|
||||||
label: 'Struttura complessiva',
|
{
|
||||||
model: 'models/ssgp/Teatro_SSGP_Full_ConSottrazioni.glb',
|
label: 'Struttura complessiva',
|
||||||
},
|
model: 'models/ssgp/Teatro_SSGP_Full_ConSottrazioni.glb',
|
||||||
*/
|
},
|
||||||
{
|
*/
|
||||||
label: 'Involucro',
|
{
|
||||||
model: 'models/ssgp/Teatro_SSGP_Layer_Struttura_parete_di_fondo.glb',
|
label: 'Involucro',
|
||||||
isMain: true,
|
model: 'models/ssgp/Teatro_SSGP_Layer_Struttura_parete_di_fondo.glb',
|
||||||
opacity: 0.2,
|
isMain: true,
|
||||||
},
|
opacity: 0.2,
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Sala / Auditorium',
|
||||||
label: 'Sala / Auditorium',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Peplano / Platea',
|
||||||
label: 'Peplano / Platea',
|
model: 'models/ssgp/Teatro_SSGP_Platea_peplano.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Platea_peplano.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ordini di palchi',
|
||||||
label: 'Ordini di palchi',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Ordine 1',
|
||||||
label: 'Ordine 1',
|
model: 'models/ssgp/Teatro_SSGP_Ordine1.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ordine1.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ordine 2',
|
||||||
label: 'Ordine 2',
|
model: 'models/ssgp/Teatro_SSGP_Ordine2.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ordine2.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ordine 3',
|
||||||
label: 'Ordine 3',
|
model: 'models/ssgp/Teatro_SSGP_Ordine3.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ordine3.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ordine 4',
|
||||||
label: 'Ordine 4',
|
model: 'models/ssgp/Teatro_SSGP_Ordine4.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ordine4.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ordine 5',
|
||||||
label: 'Ordine 5',
|
model: 'models/ssgp/Teatro_SSGP_Ordine5.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ordine5.glb',
|
},
|
||||||
},
|
]
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Parapetto',
|
||||||
label: 'Parapetto',
|
model: 'models/ssgp/Teatro_SSGP_parapetto_scala_piani.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_parapetto_scala_piani.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Percorsi pubblico',
|
||||||
label: 'Percorsi pubblico',
|
model: 'models/ssgp/Teatro_SSGP_Percorsi_scale_corridoi.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Percorsi_scale_corridoi.glb',
|
},
|
||||||
},
|
]
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Scena',
|
||||||
label: 'Scena',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Palcoscenico',
|
||||||
label: 'Palcoscenico',
|
model: 'models/ssgp/Teatro_SSGP_Palcoscenico.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Palcoscenico.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Boccascena / Proscenio',
|
||||||
label: 'Boccascena / Proscenio',
|
model: 'models/ssgp/Teatro_SSGP_Boccascena.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Boccascena.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Quinte architettoniche fisse',
|
||||||
label: 'Quinte architettoniche fisse',
|
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_fisse.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_fisse.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Quinte architettoniche mobili',
|
||||||
label: 'Quinte architettoniche mobili',
|
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_mobili.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Layer_quinte_architettoniche_mobili.glb',
|
},
|
||||||
},
|
]
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Spazi tecnici',
|
||||||
label: 'Spazi tecnici',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Spazio tecnico superiore',
|
||||||
label: 'Spazio tecnico superiore',
|
model: 'models/ssgp/Teatro_SSGP_Layer_Spazio_tecnico_sup_soffitta.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Layer_Spazio_tecnico_sup_soffitta.glb',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Graticcia',
|
||||||
label: 'Graticcia',
|
model: 'models/ssgp/Teatro_SSGP_Graticcia.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Graticcia.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Ballatoio',
|
||||||
label: 'Ballatoio',
|
model: 'models/ssgp/Teatro_SSGP_Ballatoio.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Ballatoio.glb',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Spazio tecnico inferiore',
|
||||||
label: 'Spazio tecnico inferiore',
|
model: 'models/ssgp/Teatro_SSGP_Spazio_tecnico_inf.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Spazio_tecnico_inf.glb',
|
},
|
||||||
},
|
]
|
||||||
]
|
},
|
||||||
},
|
]
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'Orchestra',
|
||||||
label: 'Orchestra',
|
children: [
|
||||||
children: [
|
{
|
||||||
{
|
label: 'Fossa orchestra',
|
||||||
label: 'Fossa orchestra',
|
model: 'models/ssgp/Teatro_SSGP_Fossa_orchestra.glb',
|
||||||
model: 'models/ssgp/Teatro_SSGP_Fossa_orchestra.glb',
|
},
|
||||||
},
|
]
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
],
|
},
|
||||||
pano: `pano/gradient.jpg`,
|
pano: `pano/gradient.jpg`,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ function loadNodes(nodes) {
|
|||||||
node.setRotation(0, 1.5, 0);
|
node.setRotation(0, 1.5, 0);
|
||||||
|
|
||||||
// Apply any transparency before attaching to scene
|
// Apply any transparency before attaching to scene
|
||||||
if (n.opacity) {
|
if (n.opacity !== undefined && n.opacity !== null) {
|
||||||
node.setMaterial(new THREE.MeshPhongMaterial({
|
node.setMaterial(new THREE.MeshPhongMaterial({
|
||||||
transparent: true,
|
transparent: true,
|
||||||
opacity: n.opacity,
|
opacity: n.opacity,
|
||||||
|
|||||||
2
js/ui.js
2
js/ui.js
@@ -25,7 +25,7 @@ const contentMenuTabs = `
|
|||||||
|
|
||||||
<!-- Tab panes -->
|
<!-- Tab panes -->
|
||||||
<div class="tab-content ps-4 ms-3 overflow-y-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 active p-3 ms-2" 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 class="tab-pane p-3" id="media" role="tabpanel" aria-labelledby="media-tab" tabindex="0"></div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -62,10 +62,7 @@ function traverse(node, flatList, depth = 1) {
|
|||||||
**/
|
**/
|
||||||
export function normalizeNodes (nodes) {
|
export function normalizeNodes (nodes) {
|
||||||
let flatList = [];
|
let flatList = [];
|
||||||
|
traverse(nodes, flatList);
|
||||||
for (let node of nodes) {
|
|
||||||
traverse(node, flatList);
|
|
||||||
}
|
|
||||||
|
|
||||||
return flatList;
|
return flatList;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user