import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial" import { Nullable } from "babylonjs/types" import { Observable } from 'babylonjs/Misc/observable'; import { DefaultNodeModel } from './components/diagram/defaultNodeModel'; import { LogEntry } from './components/log/logComponent'; import { NodeModel } from 'storm-react-diagrams'; import { INodeLocationInfo } from './nodeLocationInfo'; import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock'; import { PreviewMeshType } from './components/preview/previewMeshType'; import { DataStorage } from './dataStorage'; export class GlobalState { nodeMaterial: NodeMaterial; hostElement: HTMLElement; hostDocument: HTMLDocument; onSelectionChangedObservable = new Observable>(); onRebuildRequiredObservable = new Observable(); onResetRequiredObservable = new Observable>(); onUpdateRequiredObservable = new Observable(); onZoomToFitRequiredObservable = new Observable(); onReOrganizedRequiredObservable = new Observable(); onLogRequiredObservable = new Observable(); onErrorMessageDialogRequiredObservable = new Observable(); onPreviewMeshTypeChanged = new Observable(); onGetNodeFromBlock: (block: NodeMaterialBlock) => NodeModel; previewMeshType: PreviewMeshType; public constructor() { this.previewMeshType = DataStorage.ReadNumber("PreviewMeshType", PreviewMeshType.Box); } }