/** * @namespace AppState */ /** * @typedef {Object} NormalizedSceneNode * @property {String} label Required * @property {String} id * @property {String} model * @property {Boolean} isMain * @property {Number|null} opacity * @property {Boolean} active */ let AppState = { // The Leaflet map object map : null, // The root scene object root: null, // {id: String, active: Boolean} nodes: [], /** * @property {NormalizedSceneNode[]} normalizedNodes */ normalizedNodes: [], mainNodeId: null, currentScene: null, sceneHasAudio: false, layersMenuBuilt: false, initialRotation: null, camera: null, renderer: null, ambientOcclusion : true, shadows : true, lightProbe : false, clipping : { enabled: false, plane : null, controls: null, onDrag: null, helper : null, arrow : null, boundingSphere: null, listeners: { button: false, plane: false, }, vector: null, }, /** * Reset the overall app state * to default values but keep map * * @param {L.Map} map - The Leaflet map object */ resetSceneState(map) { AppState = { root: null, mainNodeId: null, initialRotation: null, camera: null, renderer: null, ambientOcclusion : true, shadows : true, lightProbe : false, map, clipping : { enabled: false, plane : null, controls: null, onDrag: null, helper : null, arrow : null, boundingSphere: null, listeners: { button: false, plane: false, }, vector: null, } } } } export default AppState;