globalState.ts 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial"
  2. import { Nullable } from "babylonjs/types"
  3. import { Observable } from 'babylonjs/Misc/observable';
  4. import { DefaultNodeModel } from './components/diagram/defaultNodeModel';
  5. import { LogEntry } from './components/log/logComponent';
  6. import { NodeModel } from 'storm-react-diagrams';
  7. import { INodeLocationInfo } from './nodeLocationInfo';
  8. import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock';
  9. import { PreviewMeshType } from './components/preview/previewMeshType';
  10. import { DataStorage } from './dataStorage';
  11. export class GlobalState {
  12. nodeMaterial: NodeMaterial;
  13. hostElement: HTMLElement;
  14. hostDocument: HTMLDocument;
  15. onSelectionChangedObservable = new Observable<Nullable<DefaultNodeModel>>();
  16. onRebuildRequiredObservable = new Observable<void>();
  17. onResetRequiredObservable = new Observable<Nullable<INodeLocationInfo[]>>();
  18. onUpdateRequiredObservable = new Observable<void>();
  19. onZoomToFitRequiredObservable = new Observable<void>();
  20. onReOrganizedRequiredObservable = new Observable<void>();
  21. onLogRequiredObservable = new Observable<LogEntry>();
  22. onErrorMessageDialogRequiredObservable = new Observable<string>();
  23. onPreviewMeshTypeChanged = new Observable<void>();
  24. onGetNodeFromBlock: (block: NodeMaterialBlock) => NodeModel;
  25. previewMeshType: PreviewMeshType;
  26. public constructor() {
  27. this.previewMeshType = DataStorage.ReadNumber("PreviewMeshType", PreviewMeshType.Box);
  28. }
  29. }