Views
Un array utilizzato per separare logicamente le modalità di visualizzazione del modello 3D.
Se vuoto o non definito verranno inserite delle viste di default.
Ogni vista è rappresentata da un oggetto con due proprietà:
name: string (Può essere omesso). Se specificato, il nome verrà riportato al di sopra della finestra della relativa vista.
buttons: array. Array di bottoni contenenti le varie configurazioni da usare nella vista, ogni elemento all’interno dell’array buttons contiene le proprietà spiegate in seguito.
Default:
"views": [
{
"name": "Composizione",
"buttons": [
{
"type" : "showAll",
"name": "Composizione",
"first": true,
"orientation": { "ang_y": 0, "ang_x": 0 }
}
]
},
{
“name": "Collo",
"buttons": [
{
"type": "showItem",
"name": "Collo",
"explode": true,
"transparency": {"mode": "top", "percentage": 0.5, "color": {"r":0, "g": 0, "b": 0}, "secondary" : "edges" },
"orientation": { "ang_y": 0, "ang_x": 0 },
"focus" : { "pivotHorizontal": "top", "pivotVertical": "centro", "zoom": "top"}
},
{
"type": "showItem",
"name": "Vedi in Comp.",
"transparency": {"mode": "edges", "percentage": 0.3, "color": {"r":0, "g": 0, "b": 0} },
"orientation": { "ang_y": 0, "ang_x": 0 },
"focus" : { "pivotHorizontal": "ordine", "pivotVertical": "centro", "zoom": "ordine"}
}
]
}
]

Esempio con viste di default
buttons
Un array che determina quali modalità di visualizzazione sono disponibili all’utente all’interno della view.
Ogni oggetto all’interno di questo array rappresenta un pulsante che consente di visualizzare il modello con la configurazione definita. Le proprietà di tipo object di ogni bottone sono spiegate nei paragrafi successivi.
Tipo di valore: array di object. Default: - .
Proprietà di ogni oggetto:
type: string. Determina il tipo di visualizzazione, showAll mostra i colli all’interno dell’intera composizione, showItem mostra solamente il collo selezionato.
Valori possibili: “showAll”, “showItem”.
name: string. Determina il nome da mostrare sul pulsante.
first: boolean(può essere omesso, solo uno per mode). Determina se questa modalità di visualizzazione deve essere attiva all’apertura del template, se più bottoni hanno questo parametro a true verrà selezionato il primo trovato.
explode: boolean. (può essere omesso, solo per showItem). Determina se in questa modalità di visualizzazione è consentito esplodere il collo mostrato, se inserito in un bottone di tipo showAll verrà ignorato.
transparency: object. Spiegato in seguito.
orientation: object. Spiegato in seguito.
focus: object. Spiegato in seguito.
Valori:
showAll: In questa modalità di visualizzazione il modello 3d è interamente visibile, a prescindere dal numero di colli presenti sarà visibile la lista di colli sulla sinistra, tramite la quale è possibile evidenziare la parte di modello contenuta nel collo. Viceversa, è possibile evidenziare il collo nella lista selezionando un elemento del modello 3d associato (gli elementi del modello non associati ad un collo nella lista non sono selezionabili).
showItem: In questa modalità di visualizzazione il collo selezionato (nascondendo tutti i colli se nessuno è selezionato), se sono presenti più colli sarà visibile la lista di colli sulla sinistra, tramite la quale è possibile cambiare il collo selezionato. Se un collo è visualizzato è possibile selezionare le parti del modello con matricole associate.
Esempio:
"buttons" : [{
"type": "showItem", "name": "Collo", “explode": true, “first": true,
"transparency": {
"mode": "top",
"percentage": 0.5,
"color": {"r":0, "g": 0, "b": 0},
"secondary" : "edges"
},
"orientation": { "ang_y": -30, “ang_x": -30 },
"focus" : { "pivotHorizontal": "top", "pivotVertical": "centro", "zoom": "top"}
}]
orientation
Determina l’orientamento iniziale del modello sugli assi Y e X, i valori impostati sono la rotazione in gradi da applicare e possono essere negativi.
Tipo di valore: object. Default : { “ang_y”: 0, “ang_x”: 00 }.
Proprietà:
ang_y: integer (Può essere negativo). Rotazione in gradi da dare rispetto all’asse Y. Con ang_y = 0, l’oggetto sarà ruotato in modo che il collo attivo sia rivolto verso la camera. Valori positivi ruoteranno l’oggetto in senso orario, valori negativi in senso antiorario (Default 0).
ang_x: integer (Può essere negativo). Rotazione in gradi dare rispetto all’asse X. Con ang_x = 0, l’oggetto sarà ruotato in modo che il collo attivo sia rivolto verso l’utente. Valori positivi ruoteranno l’oggetto verso il basso, valori negativi verso l’alto (Default 0).
Esempio:
"orientation" : { "ang_y": 30, "ang_x": -30 }

Esempio con ang_y: 0 e ang_x: 0

Esempio con ang_y: 0 e ang_x: 30

Esempio con ang_y: 30 e ang_x: 30
focus
Determina il pivot di rotazione e lo zoom iniziale della camera attorno al modello, calcolando il punto centrale rispetto alla somma delle bounding box specificate.
Tipo di valore: object. Default: {“pivotHorizontal”:“top”, “pivotVertical”:“centro”, “zoom”:“top”}.
Proprietà:
pivotHorizontal: string. Determina quali bounding box usare per calcolare il pivot.
Valori possibili: “collo”, “ordine”, “top” (Default).
pivotVertical: string. Determina dove posizionare verticalmente il pivot.
Valori possibili: “centro” (Default), “pavimento”.
zoom: string. Determina quali bounding box dovranno essere interamente inquadrate dalla camera.
Valori possibili: “collo”, “ordine”, “top” (Default).
Valori:
collo: Considera le bounding box dei nodi contenenti matricole appartenenti al collo selezionato.
ordine: Considera le bonding box di tutti i nodi nel modello.
top: Considero le bounding box del top level in cui è contenuto il collo selezionato (uguale a collo se il collo è già il top level).
centro: Prende il punto centrale in altezza rispetto alla somma delle bounding box selezionate da pivotHorizontal.
pavimento: Posiziona il pivot sul pavimento.
Esempio:
"focus" : {"pivotHorizontal" : "collo", "pivotVertical" : "centro", "zoom" : "top"}

Esempio con pivotHorizontal: “collo” e zoom: “collo”

Esempio con pivotHorizontal: “ordine” e zoom: “ordine”

Esempio con pivotHorizontal: “ordine” e zoom: “collo”
transparency
Determina la modalità di visualizzazione delle matricole nascoste, cioè le matricole che non sono parte del collo attivo. Le matricole attive saranno sempre poste in primo piano rispetto alle altre, a prescindere dalla modalità di visualizzazione.
Tipo di valore: object.
Default: {“mode” : “top”, “percentage” : 0.5, “color” : {“r” : 0, “g” : 0, “b” : 0 },“secondary” : “edges”}.
Proprietà:
mode: string. Determina la modalità principale di visualizzazione delle matricole nascoste.
Valori possibili: “invisible”, “transparent”, “wireframe”, “edges” ,“top” (Default).
percentage: float. Determina la percentuale di visibilità delle matricole nascoste (in “mode”: “transparent”) o delle linee mostrate al loro posto (in tutte le altre modalità tranne “invisible”). (Default 0.5, 50% trasparenza)
color: color. Determina il colore delle linee create nelle modalità “wireframe” ed “edges”.
Valori possibili: {“r”:0, “g”: 0, “b”: 0} (nero)
secondary: string. Determina la modalità di visualizzazione delle matricole nascoste che sono parte dei top level in cui sono presenti matricole mostrate (usato solo in modalità “top”).
Valori possibili: “invisible”, “transparent”, “wireframe”, “edges” (Default).
Valori:
invisible: Le matricole nascoste vengono rese completamente invisibili.
transparent: Le matricole nascoste vengono rese trasparenti della percentuale definita nel parametro percentage, con percentage a 0 saranno invisibili (come in modalità invisible), mentre con percentage a 1 saranno completamente visibili.
wireframe: Viene mostrato il wireframe che compone le matricole nascoste, il quale sarà reso trasparente in base a percentage ed il cui colore sarà determinato da color.
edges: Vengono mostrati i bordi delle matricole nascoste, con trasparenza data da percentage e colore definito da color.
top: Le matricole nascoste appartenenti ai top level in cui sono presenti matricole attive verranno mostrate con la modalità definita in secondary (usando percentage e color per determinare le specifiche della modalità secondaria), mentre tutte le altre matricole nascoste saranno rese invisibili. Se le matricole attive equivalgono al top level, la modalità top è equivalente alla modalità invisible.
Esempio:
"transparency" : {"mode": "edges", "percentage": 0.3, "color": {"r":0, "g": 1, "b": 0 }, "secondary" : "edges"}

Esempio con mode: “invisible”

Esempio con mode: transparent“ e percentage: 0.2

Esempio con mode: “wireframe”, percentage:0.2 e color: {r: 0, g: 0, b: 0}

Esempio con mode: “edges”, percentage: 0.5 e color: {r: 0, g: 0, b: 0}

Esempio con mode: “top”, percentage: 0.5, color: {r: 0, g: 0, b: 0} e secondary: “edges”
Casi Particolari
Collo senza Matricole
Nel caso di collo senza matricole associate non saranno presenti elementi del modello da selezionare o mostrare, in modalità showAll viene mostrato l’intero modello mentre in modalità showItem il modello verrà nascosto usando la configurazione specificata.
Matricole Mancanti
Nel caso di selezione di un collo con matricole non rilevate all’interno del modello, viene creata una lista di pulsanti, uno per matricola, che consente di chiamare eventuali comandi associati alla matricola.
Se nessuna matricola associata al collo viene trovata nel modello, questo verrà rappresentato come spiegato sopra nel caso di collo senza matricole.

Esempio di lista matricole mancanti