@combeenation/3d-viewer 6.4.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,7 @@ import { AnimationManager } from './api/manager/animationManager';
17
17
  import { GltfExportManager } from './api/manager/gltfExportManager';
18
18
  import { SceneManager } from './api/manager/sceneManager';
19
19
  import { VariantInstanceManager } from './api/manager/variantInstanceManager';
20
+ import { SpecStorage } from './api/store/specStorage';
20
21
  import * as BabylonHelper from './api/util/babylonHelper';
21
22
  import { Animation as BabylonAnimation } from '@babylonjs/core/Animations/animation';
22
23
  import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
@@ -48,4 +49,4 @@ import { EventEmitter } from 'eventemitter3';
48
49
  /**
49
50
  * Expose some frequently used babylon modules by our consumers.
50
51
  */
51
- export { AnimationManager, AnimationInterface, Variant, VariantInstanceManager, Viewer, ParameterObservable, Parameterizable, VariantParameterizable, ViewerLight, emitter as Emitter, EventEmitter, Event, Parameter, VariantInstance, Color3, Color4, Vector3, AbstractMesh, InstancedMesh, Mesh, TransformNode, Node, Material, PBRMaterial, StandardMaterial, Scene, Engine, ArcRotateCamera, DynamicTexture, CubeTexture, MeshBuilder, Texture, BabylonAnimation, HemisphericLight, DirectionalLight, Element, EventBroadcaster, SceneManager, PlacementAnimation, BabylonHelper, GltfExportManager, };
52
+ export { AnimationManager, AnimationInterface, Variant, VariantInstanceManager, Viewer, ParameterObservable, Parameterizable, VariantParameterizable, ViewerLight, emitter as Emitter, EventEmitter, Event, Parameter, VariantInstance, Color3, Color4, Vector3, AbstractMesh, InstancedMesh, Mesh, TransformNode, Node, Material, PBRMaterial, StandardMaterial, Scene, Engine, ArcRotateCamera, DynamicTexture, CubeTexture, MeshBuilder, Texture, BabylonAnimation, HemisphericLight, DirectionalLight, Element, EventBroadcaster, SceneManager, PlacementAnimation, BabylonHelper, GltfExportManager, SpecStorage, };
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.GltfExportManager = exports.BabylonHelper = exports.PlacementAnimation = exports.SceneManager = exports.EventBroadcaster = exports.Element = exports.DirectionalLight = exports.HemisphericLight = exports.BabylonAnimation = exports.Texture = exports.MeshBuilder = exports.CubeTexture = exports.DynamicTexture = exports.ArcRotateCamera = exports.Engine = exports.Scene = exports.StandardMaterial = exports.PBRMaterial = exports.Material = exports.Node = exports.TransformNode = exports.Mesh = exports.InstancedMesh = exports.AbstractMesh = exports.Vector3 = exports.Color4 = exports.Color3 = exports.VariantInstance = exports.Parameter = exports.Event = exports.EventEmitter = exports.Emitter = exports.ViewerLight = exports.VariantParameterizable = exports.Parameterizable = exports.ParameterObservable = exports.Viewer = exports.VariantInstanceManager = exports.Variant = exports.AnimationManager = void 0;
26
+ exports.SpecStorage = exports.GltfExportManager = exports.BabylonHelper = exports.PlacementAnimation = exports.SceneManager = exports.EventBroadcaster = exports.Element = exports.DirectionalLight = exports.HemisphericLight = exports.BabylonAnimation = exports.Texture = exports.MeshBuilder = exports.CubeTexture = exports.DynamicTexture = exports.ArcRotateCamera = exports.Engine = exports.Scene = exports.StandardMaterial = exports.PBRMaterial = exports.Material = exports.Node = exports.TransformNode = exports.Mesh = exports.InstancedMesh = exports.AbstractMesh = exports.Vector3 = exports.Color4 = exports.Color3 = exports.VariantInstance = exports.Parameter = exports.Event = exports.EventEmitter = exports.Emitter = exports.ViewerLight = exports.VariantParameterizable = exports.Parameterizable = exports.ParameterObservable = exports.Viewer = exports.VariantInstanceManager = exports.Variant = exports.AnimationManager = void 0;
27
27
  const element_1 = require("./api/classes/element");
28
28
  Object.defineProperty(exports, "Element", { enumerable: true, get: function () { return element_1.Element; } });
29
29
  const event_1 = require("./api/classes/event");
@@ -57,6 +57,8 @@ const sceneManager_1 = require("./api/manager/sceneManager");
57
57
  Object.defineProperty(exports, "SceneManager", { enumerable: true, get: function () { return sceneManager_1.SceneManager; } });
58
58
  const variantInstanceManager_1 = require("./api/manager/variantInstanceManager");
59
59
  Object.defineProperty(exports, "VariantInstanceManager", { enumerable: true, get: function () { return variantInstanceManager_1.VariantInstanceManager; } });
60
+ const specStorage_1 = require("./api/store/specStorage");
61
+ Object.defineProperty(exports, "SpecStorage", { enumerable: true, get: function () { return specStorage_1.SpecStorage; } });
60
62
  const BabylonHelper = __importStar(require("./api/util/babylonHelper"));
61
63
  exports.BabylonHelper = BabylonHelper;
62
64
  const animation_1 = require("@babylonjs/core/Animations/animation");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mDAAgD;AAqF9C,wFArFO,iBAAO,OAqFP;AApFT,+CAAqD;AA4DnD,sFA5DO,aAAK,OA4DP;AAFM,wFA1DG,eAAO,OA0DH;AAzDpB,qEAAkE;AAoFhE,iGApFO,mCAAgB,OAoFP;AAnFlB,uDAAoD;AA2DlD,0FA3DO,qBAAS,OA2DP;AA1DX,2EAAwE;AAmDtE,oGAnDO,yCAAmB,OAmDP;AAlDrB,mEAAgE;AAmD9D,gGAnDO,iCAAe,OAmDP;AAlDjB,yEAAsE;AAkFpE,mGAlFO,uCAAkB,OAkFP;AAjFpB,mDAAgD;AA6C9C,wFA7CO,iBAAO,OA6CP;AA5CT,mEAAgE;AAuD9D,gGAvDO,iCAAe,OAuDP;AAtDjB,iFAA8E;AAgD5E,uGAhDO,+CAAsB,OAgDP;AA/CxB,iDAA8C;AA4C5C,uFA5CO,eAAM,OA4CP;AA3CR,2DAAwD;AA+CtD,4FA/CO,yBAAW,OA+CP;AA9Cb,qEAAkE;AAsChE,iGAtCO,mCAAgB,OAsCP;AArClB,uEAAoE;AA6ElE,kGA7EO,qCAAiB,OA6EP;AA5EnB,6DAA0D;AAyExD,6FAzEO,2BAAY,OAyEP;AAxEd,iFAA8E;AAsC5E,uGAtCO,+CAAsB,OAsCP;AArCxB,wEAA0D;AAyExD,sCAAa;AAxEf,oEAAqF;AAiEnF,iGAjEoB,qBAAgB,OAiEpB;AAhElB,6EAA0E;AA2DxE,gGA3DO,iCAAe,OA2DP;AA1DjB,2DAAwD;AAyDtD,uFAzDO,eAAM,OAyDP;AAxDR,8EAA2E;AAgEzE,iGAhEO,mCAAgB,OAgEP;AA/DlB,8EAA2E;AA8DzE,iGA9DO,mCAAgB,OA8DP;AA7DlB,2EAAwE;AAmDtE,4FAnDO,yBAAW,OAmDP;AAlDb,gFAA6E;AAwD3E,4FAxDO,yBAAW,OAwDP;AAvDb,sFAAmF;AAsDjF,+FAtDO,+BAAc,OAsDP;AArDhB,wEAAqE;AAwDnE,wFAxDO,iBAAO,OAwDP;AAvDT,iEAA8D;AA8C5D,yFA9CO,mBAAQ,OA8CP;AA7CV,iFAA8E;AA+C5E,iGA/CO,mCAAgB,OA+CP;AA9ClB,iEAAkE;AAoChE,uFApCO,mBAAM,OAoCP;AACN,uFArCe,mBAAM,OAqCf;AApCR,mEAA4D;AAqC1D,wFArCO,qBAAO,OAqCP;AApCT,sEAAmE;AAqCjE,6FArCO,2BAAY,OAqCP;AApCd,wEAAqE;AAqCnE,8FArCO,6BAAa,OAqCP;AApCf,sDAAmD;AAqCjD,qFArCO,WAAI,OAqCP;AApCN,oEAAiE;AA+C/D,4FA/CO,yBAAW,OA+CP;AA9Cb,wEAAqE;AAoCnE,8FApCO,6BAAa,OAoCP;AAlCf;;;;GAIG;AACH,yDAAuD;AACvD,+CAA4C;AA6B1C,qFA7BO,WAAI,OA6BP;AA5BN,iDAA8C;AAgC5C,sFAhCO,aAAK,OAgCP;AA/BP,iDAA6C;AAgB3C,6FAhBO,4BAAY,OAgBP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mDAAgD;AAsF9C,wFAtFO,iBAAO,OAsFP;AArFT,+CAAqD;AA6DnD,sFA7DO,aAAK,OA6DP;AAFM,wFA3DG,eAAO,OA2DH;AA1DpB,qEAAkE;AAqFhE,iGArFO,mCAAgB,OAqFP;AApFlB,uDAAoD;AA4DlD,0FA5DO,qBAAS,OA4DP;AA3DX,2EAAwE;AAoDtE,oGApDO,yCAAmB,OAoDP;AAnDrB,mEAAgE;AAoD9D,gGApDO,iCAAe,OAoDP;AAnDjB,yEAAsE;AAmFpE,mGAnFO,uCAAkB,OAmFP;AAlFpB,mDAAgD;AA8C9C,wFA9CO,iBAAO,OA8CP;AA7CT,mEAAgE;AAwD9D,gGAxDO,iCAAe,OAwDP;AAvDjB,iFAA8E;AAiD5E,uGAjDO,+CAAsB,OAiDP;AAhDxB,iDAA8C;AA6C5C,uFA7CO,eAAM,OA6CP;AA5CR,2DAAwD;AAgDtD,4FAhDO,yBAAW,OAgDP;AA/Cb,qEAAkE;AAuChE,iGAvCO,mCAAgB,OAuCP;AAtClB,uEAAoE;AA8ElE,kGA9EO,qCAAiB,OA8EP;AA7EnB,6DAA0D;AA0ExD,6FA1EO,2BAAY,OA0EP;AAzEd,iFAA8E;AAuC5E,uGAvCO,+CAAsB,OAuCP;AAtCxB,yDAAsD;AA4EpD,4FA5EO,yBAAW,OA4EP;AA3Eb,wEAA0D;AAyExD,sCAAa;AAxEf,oEAAqF;AAiEnF,iGAjEoB,qBAAgB,OAiEpB;AAhElB,6EAA0E;AA2DxE,gGA3DO,iCAAe,OA2DP;AA1DjB,2DAAwD;AAyDtD,uFAzDO,eAAM,OAyDP;AAxDR,8EAA2E;AAgEzE,iGAhEO,mCAAgB,OAgEP;AA/DlB,8EAA2E;AA8DzE,iGA9DO,mCAAgB,OA8DP;AA7DlB,2EAAwE;AAmDtE,4FAnDO,yBAAW,OAmDP;AAlDb,gFAA6E;AAwD3E,4FAxDO,yBAAW,OAwDP;AAvDb,sFAAmF;AAsDjF,+FAtDO,+BAAc,OAsDP;AArDhB,wEAAqE;AAwDnE,wFAxDO,iBAAO,OAwDP;AAvDT,iEAA8D;AA8C5D,yFA9CO,mBAAQ,OA8CP;AA7CV,iFAA8E;AA+C5E,iGA/CO,mCAAgB,OA+CP;AA9ClB,iEAAkE;AAoChE,uFApCO,mBAAM,OAoCP;AACN,uFArCe,mBAAM,OAqCf;AApCR,mEAA4D;AAqC1D,wFArCO,qBAAO,OAqCP;AApCT,sEAAmE;AAqCjE,6FArCO,2BAAY,OAqCP;AApCd,wEAAqE;AAqCnE,8FArCO,6BAAa,OAqCP;AApCf,sDAAmD;AAqCjD,qFArCO,WAAI,OAqCP;AApCN,oEAAiE;AA+C/D,4FA/CO,yBAAW,OA+CP;AA9Cb,wEAAqE;AAoCnE,8FApCO,6BAAa,OAoCP;AAlCf;;;;GAIG;AACH,yDAAuD;AACvD,+CAA4C;AA6B1C,qFA7BO,WAAI,OA6BP;AA5BN,iDAA8C;AAgC5C,sFAhCO,aAAK,OAgCP;AA/BP,iDAA6C;AAgB3C,6FAhBO,4BAAY,OAgBP"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
- "version": "6.4.0",
3
+ "version": "6.5.0",
4
4
  "description": "Combeenation 3D Viewer",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "bugs": {
@@ -1,4 +1,5 @@
1
1
  import { applyMaterialAfterTexturesLoaded, getOrCreateMaterial, injectNodeMetadata } from './babylonHelper';
2
+ import { sleep } from './resourceHelper';
2
3
  import { ISceneLoaderPlugin } from '@babylonjs/core/Loading/sceneLoader';
3
4
  import { Material } from '@babylonjs/core/Materials/material';
4
5
  import { InstancedMesh } from '@babylonjs/core/Meshes/instancedMesh';
@@ -56,8 +57,8 @@ export const getMaterialPostLoadObserver = function (concerningMesh: Mesh) {
56
57
  const scene = concerningMesh.getScene();
57
58
 
58
59
  // can't check `isEnabled` immediatly, since the enabled state of parents and childs is not synced yet
59
- // postpone to "when scene ready" to ensure a correct parent-child enable relation
60
- await scene.whenReadyAsync();
60
+ // postpone one cycle to ensure a correct parent-child enable relation
61
+ await sleep(0);
61
62
 
62
63
  const hasBeenEnabled = concerningMesh.isEnabled(true);
63
64
  const materialMissing = has(concerningMesh.metadata, missingMaterialMetadataName);
@@ -72,7 +73,7 @@ export const getMaterialPostLoadObserver = function (concerningMesh: Mesh) {
72
73
 
73
74
  // remove all "enable" observers that were assigned to the concerning mesh
74
75
  // the mesh got visible and therefore the observers are not needed anymore
75
- enableObserverMap[concerningMesh.id].forEach(entry => {
76
+ enableObserverMap[concerningMesh.id]?.forEach(entry => {
76
77
  const currNode = scene.getMeshById(entry.currNodeId);
77
78
  currNode?.onEnabledStateChangedObservable.remove(entry.observer);
78
79
  });
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ import { AnimationManager } from './api/manager/animationManager';
18
18
  import { GltfExportManager } from './api/manager/gltfExportManager';
19
19
  import { SceneManager } from './api/manager/sceneManager';
20
20
  import { VariantInstanceManager } from './api/manager/variantInstanceManager';
21
+ import { SpecStorage } from './api/store/specStorage';
21
22
  import * as BabylonHelper from './api/util/babylonHelper';
22
23
  import { Animation as BabylonAnimation } from '@babylonjs/core/Animations/animation';
23
24
  import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
@@ -93,4 +94,5 @@ export {
93
94
  PlacementAnimation,
94
95
  BabylonHelper,
95
96
  GltfExportManager,
97
+ SpecStorage,
96
98
  };