@combeenation/3d-viewer 14.0.1-rc1 → 15.0.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.
Files changed (81) hide show
  1. package/README.md +9 -9
  2. package/dist/lib-cjs/buildinfo.json +3 -3
  3. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  4. package/dist/lib-cjs/index.d.ts +51 -62
  5. package/dist/lib-cjs/index.js +84 -94
  6. package/dist/lib-cjs/index.js.map +1 -1
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +10 -10
  8. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +131 -131
  9. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -1
  10. package/dist/lib-cjs/internal/cloning-helper.d.ts +19 -19
  11. package/dist/lib-cjs/internal/cloning-helper.js +163 -163
  12. package/dist/lib-cjs/internal/device-helper.d.ts +9 -9
  13. package/dist/lib-cjs/internal/device-helper.js +24 -24
  14. package/dist/lib-cjs/internal/geometry-helper.d.ts +21 -21
  15. package/dist/lib-cjs/internal/geometry-helper.js +145 -145
  16. package/dist/lib-cjs/internal/metadata-helper.d.ts +26 -26
  17. package/dist/lib-cjs/internal/metadata-helper.js +50 -50
  18. package/dist/lib-cjs/internal/paintable-helper.d.ts +40 -40
  19. package/dist/lib-cjs/internal/paintable-helper.js +234 -286
  20. package/dist/lib-cjs/internal/paintable-helper.js.map +1 -1
  21. package/dist/lib-cjs/internal/svg-helper.d.ts +4 -0
  22. package/dist/lib-cjs/internal/svg-helper.js +67 -0
  23. package/dist/lib-cjs/internal/svg-helper.js.map +1 -0
  24. package/dist/lib-cjs/internal/tags-helper.d.ts +12 -12
  25. package/dist/lib-cjs/internal/tags-helper.js +39 -37
  26. package/dist/lib-cjs/internal/tags-helper.js.map +1 -1
  27. package/dist/lib-cjs/internal/texture-parameter-helper.d.ts +37 -0
  28. package/dist/lib-cjs/internal/texture-parameter-helper.js +287 -0
  29. package/dist/lib-cjs/internal/texture-parameter-helper.js.map +1 -0
  30. package/dist/lib-cjs/manager/camera-manager.d.ts +110 -110
  31. package/dist/lib-cjs/manager/camera-manager.js +209 -206
  32. package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
  33. package/dist/lib-cjs/manager/debug-manager.d.ts +60 -60
  34. package/dist/lib-cjs/manager/debug-manager.js +217 -217
  35. package/dist/lib-cjs/manager/event-manager.d.ts +52 -52
  36. package/dist/lib-cjs/manager/event-manager.js +71 -71
  37. package/dist/lib-cjs/manager/gltf-export-manager.d.ts +75 -84
  38. package/dist/lib-cjs/manager/gltf-export-manager.js +286 -290
  39. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
  40. package/dist/lib-cjs/manager/material-manager.d.ts +35 -35
  41. package/dist/lib-cjs/manager/material-manager.js +125 -125
  42. package/dist/lib-cjs/manager/model-manager.d.ts +145 -145
  43. package/dist/lib-cjs/manager/model-manager.js +382 -382
  44. package/dist/lib-cjs/manager/parameter-manager.d.ts +228 -210
  45. package/dist/lib-cjs/manager/parameter-manager.js +573 -514
  46. package/dist/lib-cjs/manager/parameter-manager.js.map +1 -1
  47. package/dist/lib-cjs/manager/scene-manager.d.ts +45 -45
  48. package/dist/lib-cjs/manager/scene-manager.js +64 -64
  49. package/dist/lib-cjs/manager/texture-manager.d.ts +12 -12
  50. package/dist/lib-cjs/manager/texture-manager.js +43 -43
  51. package/dist/lib-cjs/viewer-error.d.ts +49 -48
  52. package/dist/lib-cjs/viewer-error.js +61 -60
  53. package/dist/lib-cjs/viewer-error.js.map +1 -1
  54. package/dist/lib-cjs/viewer.d.ts +115 -115
  55. package/dist/lib-cjs/viewer.js +217 -217
  56. package/dist/lib-cjs/viewer.js.map +1 -1
  57. package/package.json +94 -91
  58. package/src/buildinfo.json +3 -3
  59. package/src/dev.ts +47 -47
  60. package/src/global-types.d.ts +39 -39
  61. package/src/index.ts +71 -81
  62. package/src/internal/cbn-custom-babylon-loader-plugin.ts +159 -159
  63. package/src/internal/cloning-helper.ts +225 -225
  64. package/src/internal/device-helper.ts +25 -25
  65. package/src/internal/geometry-helper.ts +181 -181
  66. package/src/internal/metadata-helper.ts +63 -63
  67. package/src/internal/paintable-helper.ts +258 -310
  68. package/src/internal/svg-helper.ts +52 -0
  69. package/src/internal/tags-helper.ts +43 -41
  70. package/src/internal/texture-parameter-helper.ts +353 -0
  71. package/src/manager/camera-manager.ts +368 -365
  72. package/src/manager/debug-manager.ts +245 -245
  73. package/src/manager/event-manager.ts +72 -72
  74. package/src/manager/gltf-export-manager.ts +356 -357
  75. package/src/manager/material-manager.ts +135 -135
  76. package/src/manager/model-manager.ts +458 -458
  77. package/src/manager/parameter-manager.ts +730 -652
  78. package/src/manager/scene-manager.ts +101 -101
  79. package/src/manager/texture-manager.ts +32 -32
  80. package/src/viewer-error.ts +69 -68
  81. package/src/viewer.ts +290 -290
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
- import { AbstractMesh, Material, Viewer } from '../index';
2
- /**
3
- * Manager for material related tasks
4
- */
5
- export declare class MaterialManager {
6
- protected viewer: Viewer;
7
- /**
8
- * CAUTION: this has to be in sync with the Combeenation backend!
9
- * @internal
10
- */
11
- static readonly CBN_FALLBACK_MATERIAL_NAME = "$fallback";
12
- protected _createMaterialPromises: {
13
- [materialId: string]: Promise<Material | null>;
14
- };
15
- /** @internal */
16
- constructor(viewer: Viewer);
17
- /**
18
- * Assigns material with certain id to desired mesh.\
19
- * Creates the material if not already available (see {@link getOrCreateMaterial}).
20
- */
21
- setMaterialOnMesh(materialId: string, mesh: AbstractMesh): Promise<void>;
22
- /**
23
- * Returns material with certain id if already available in the scene.\
24
- * If this is not the case material is created from a
25
- * "[Material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset)"
26
- * on the Combeenation server.\
27
- * Waits until textures of material are fully loaded and shader is compiled. In this way "flickering" effects
28
- * will be avoided, since the material would be incomplete without its loaded textures.
29
- *
30
- * @param mesh Required for shader compilation check, can be omitted if this check should not be done.\
31
- * Use {@link setMaterialOnMesh} instead if the material should be applied on the mesh immediately.
32
- */
33
- getOrCreateMaterial(materialId: string, mesh?: AbstractMesh): Promise<Material>;
34
- protected _createMaterial(materialId: string, mesh?: AbstractMesh): Promise<Material>;
35
- }
1
+ import { AbstractMesh, Material, Viewer } from '../index';
2
+ /**
3
+ * Manager for material related tasks
4
+ */
5
+ export declare class MaterialManager {
6
+ protected viewer: Viewer;
7
+ /**
8
+ * CAUTION: this has to be in sync with the Combeenation backend!
9
+ * @internal
10
+ */
11
+ static readonly CBN_FALLBACK_MATERIAL_NAME = "$fallback";
12
+ protected _createMaterialPromises: {
13
+ [materialId: string]: Promise<Material | null>;
14
+ };
15
+ /** @internal */
16
+ constructor(viewer: Viewer);
17
+ /**
18
+ * Assigns material with certain id to desired mesh.\
19
+ * Creates the material if not already available (see {@link getOrCreateMaterial}).
20
+ */
21
+ setMaterialOnMesh(materialId: string, mesh: AbstractMesh): Promise<void>;
22
+ /**
23
+ * Returns material with certain id if already available in the scene.\
24
+ * If this is not the case material is created from a
25
+ * "[Material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset)"
26
+ * on the Combeenation server.\
27
+ * Waits until textures of material are fully loaded and shader is compiled. In this way "flickering" effects
28
+ * will be avoided, since the material would be incomplete without its loaded textures.
29
+ *
30
+ * @param mesh Required for shader compilation check, can be omitted if this check should not be done.\
31
+ * Use {@link setMaterialOnMesh} instead if the material should be applied on the mesh immediately.
32
+ */
33
+ getOrCreateMaterial(materialId: string, mesh?: AbstractMesh): Promise<Material>;
34
+ protected _createMaterial(materialId: string, mesh?: AbstractMesh): Promise<Material>;
35
+ }
@@ -1,126 +1,126 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MaterialManager = void 0;
13
- const index_1 = require("../index");
14
- const metadata_helper_1 = require("../internal/metadata-helper");
15
- /**
16
- * Manager for material related tasks
17
- */
18
- class MaterialManager {
19
- /** @internal */
20
- constructor(viewer) {
21
- this.viewer = viewer;
22
- this._createMaterialPromises = {};
23
- }
24
- /**
25
- * Assigns material with certain id to desired mesh.\
26
- * Creates the material if not already available (see {@link getOrCreateMaterial}).
27
- */
28
- setMaterialOnMesh(materialId, mesh) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- (0, metadata_helper_1.setInternalMetadataValue)(mesh, 'materialToBeSet', materialId);
31
- const material = yield this.getOrCreateMaterial(materialId, mesh);
32
- // there may have been later "setMaterialOnMesh" calls with faster material creation
33
- // make sure to assign the latest material!
34
- if ((0, metadata_helper_1.getInternalMetadataValue)(mesh, 'materialToBeSet') === materialId) {
35
- mesh.material = material;
36
- (0, metadata_helper_1.clearInternalMetadataValue)(mesh, 'materialToBeSet');
37
- (0, metadata_helper_1.clearInternalMetadataValue)(mesh, 'deferredMaterial');
38
- }
39
- });
40
- }
41
- /**
42
- * Returns material with certain id if already available in the scene.\
43
- * If this is not the case material is created from a
44
- * "[Material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset)"
45
- * on the Combeenation server.\
46
- * Waits until textures of material are fully loaded and shader is compiled. In this way "flickering" effects
47
- * will be avoided, since the material would be incomplete without its loaded textures.
48
- *
49
- * @param mesh Required for shader compilation check, can be omitted if this check should not be done.\
50
- * Use {@link setMaterialOnMesh} instead if the material should be applied on the mesh immediately.
51
- */
52
- getOrCreateMaterial(materialId, mesh) {
53
- var _a;
54
- return __awaiter(this, void 0, void 0, function* () {
55
- let chosenMaterial = (_a = this.viewer.scene.materials.find(mat => mat.id === materialId)) !== null && _a !== void 0 ? _a : null;
56
- if (!chosenMaterial) {
57
- // material not available yet, request it from Combeenation assets
58
- const existingCreationProm = this._createMaterialPromises[materialId];
59
- if (existingCreationProm !== undefined) {
60
- // request is already pending, just wait for the result
61
- chosenMaterial = yield existingCreationProm;
62
- }
63
- else {
64
- this.viewer.eventManager.fireEvent(index_1.ViewerEvent.MaterialCreationStart, materialId);
65
- // request not pending, call the dedicated function
66
- const newCreationProm = this._createMaterial(materialId, mesh);
67
- // store the promise in a global map, so that subsequent requests can reference it
68
- this._createMaterialPromises[materialId] = newCreationProm;
69
- chosenMaterial = yield newCreationProm;
70
- delete this._createMaterialPromises[materialId];
71
- const allMaterialsCreated = !Object.entries(this._createMaterialPromises).length;
72
- // signalize event system that material is created now
73
- // also check if there are other material creation processes still pending, as this is an important information
74
- // e.g. for showing load masks
75
- this.viewer.eventManager.fireEvent(index_1.ViewerEvent.MaterialCreationEnd, materialId, allMaterialsCreated);
76
- }
77
- }
78
- return chosenMaterial;
79
- });
80
- }
81
- _createMaterial(materialId, mesh) {
82
- var _a;
83
- return __awaiter(this, void 0, void 0, function* () {
84
- if (materialId === MaterialManager.CBN_FALLBACK_MATERIAL_NAME) {
85
- const fallbackMaterial = new index_1.StandardMaterial(MaterialManager.CBN_FALLBACK_MATERIAL_NAME, this.viewer.scene);
86
- fallbackMaterial.disableLighting = true;
87
- return fallbackMaterial;
88
- }
89
- const materialDefinition = yield ((_a = window.Cbn) === null || _a === void 0 ? void 0 : _a.Assets.getMaterial(materialId));
90
- // The generic `Material.Parse` actually returns a more specific material like `BABYLON.StandardMaterial`,
91
- // `BABYLON.PBRMaterial` or stuff like `BABYLON.PBRMetallicRoughnessMaterial` etc. based on the given `customType`
92
- // within the material JSON definition
93
- const material = materialDefinition && index_1.Material.Parse(materialDefinition, this.viewer.scene, '');
94
- if (!material) {
95
- throw new index_1.ViewerError({
96
- id: index_1.ViewerErrorIds.MaterialCouldNotBeParsed,
97
- message: `Material with id "${materialId}" could not be parsed`,
98
- });
99
- }
100
- yield this.viewer.parameterManager.applyParameterValuesToMaterial(material);
101
- const matReadyProms = [
102
- new Promise(resolve => index_1.BaseTexture.WhenAllReady(material.getActiveTextures(), resolve)),
103
- ];
104
- if (mesh) {
105
- // this promise should only take some time on the first call of the corresponding shader (eg: PBRMaterial shader)
106
- // on each other call of the same material/shader type there should be not be a waiting time, or at maximum one
107
- // frame
108
- // https://forum.babylonjs.com/t/mesh-flickering-when-setting-material-initially/37312
109
- matReadyProms.push(material.forceCompilationAsync(mesh));
110
- }
111
- // material needs to fulfill 2 criterias before it's ready to use
112
- // - textures need to be "ready" => downloaded
113
- // - dedicated shader needs to be compiled
114
- // if this would not be the case you can see some "flickering" when setting the material
115
- yield Promise.all(matReadyProms);
116
- return material;
117
- });
118
- }
119
- }
120
- exports.MaterialManager = MaterialManager;
121
- /**
122
- * CAUTION: this has to be in sync with the Combeenation backend!
123
- * @internal
124
- */
125
- MaterialManager.CBN_FALLBACK_MATERIAL_NAME = '$fallback';
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MaterialManager = void 0;
13
+ const index_1 = require("../index");
14
+ const metadata_helper_1 = require("../internal/metadata-helper");
15
+ /**
16
+ * Manager for material related tasks
17
+ */
18
+ class MaterialManager {
19
+ /** @internal */
20
+ constructor(viewer) {
21
+ this.viewer = viewer;
22
+ this._createMaterialPromises = {};
23
+ }
24
+ /**
25
+ * Assigns material with certain id to desired mesh.\
26
+ * Creates the material if not already available (see {@link getOrCreateMaterial}).
27
+ */
28
+ setMaterialOnMesh(materialId, mesh) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ (0, metadata_helper_1.setInternalMetadataValue)(mesh, 'materialToBeSet', materialId);
31
+ const material = yield this.getOrCreateMaterial(materialId, mesh);
32
+ // there may have been later "setMaterialOnMesh" calls with faster material creation
33
+ // make sure to assign the latest material!
34
+ if ((0, metadata_helper_1.getInternalMetadataValue)(mesh, 'materialToBeSet') === materialId) {
35
+ mesh.material = material;
36
+ (0, metadata_helper_1.clearInternalMetadataValue)(mesh, 'materialToBeSet');
37
+ (0, metadata_helper_1.clearInternalMetadataValue)(mesh, 'deferredMaterial');
38
+ }
39
+ });
40
+ }
41
+ /**
42
+ * Returns material with certain id if already available in the scene.\
43
+ * If this is not the case material is created from a
44
+ * "[Material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset)"
45
+ * on the Combeenation server.\
46
+ * Waits until textures of material are fully loaded and shader is compiled. In this way "flickering" effects
47
+ * will be avoided, since the material would be incomplete without its loaded textures.
48
+ *
49
+ * @param mesh Required for shader compilation check, can be omitted if this check should not be done.\
50
+ * Use {@link setMaterialOnMesh} instead if the material should be applied on the mesh immediately.
51
+ */
52
+ getOrCreateMaterial(materialId, mesh) {
53
+ var _a;
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ let chosenMaterial = (_a = this.viewer.scene.materials.find(mat => mat.id === materialId)) !== null && _a !== void 0 ? _a : null;
56
+ if (!chosenMaterial) {
57
+ // material not available yet, request it from Combeenation assets
58
+ const existingCreationProm = this._createMaterialPromises[materialId];
59
+ if (existingCreationProm !== undefined) {
60
+ // request is already pending, just wait for the result
61
+ chosenMaterial = yield existingCreationProm;
62
+ }
63
+ else {
64
+ this.viewer.eventManager.fireEvent(index_1.ViewerEvent.MaterialCreationStart, materialId);
65
+ // request not pending, call the dedicated function
66
+ const newCreationProm = this._createMaterial(materialId, mesh);
67
+ // store the promise in a global map, so that subsequent requests can reference it
68
+ this._createMaterialPromises[materialId] = newCreationProm;
69
+ chosenMaterial = yield newCreationProm;
70
+ delete this._createMaterialPromises[materialId];
71
+ const allMaterialsCreated = !Object.entries(this._createMaterialPromises).length;
72
+ // signalize event system that material is created now
73
+ // also check if there are other material creation processes still pending, as this is an important information
74
+ // e.g. for showing load masks
75
+ this.viewer.eventManager.fireEvent(index_1.ViewerEvent.MaterialCreationEnd, materialId, allMaterialsCreated);
76
+ }
77
+ }
78
+ return chosenMaterial;
79
+ });
80
+ }
81
+ _createMaterial(materialId, mesh) {
82
+ var _a;
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ if (materialId === MaterialManager.CBN_FALLBACK_MATERIAL_NAME) {
85
+ const fallbackMaterial = new index_1.StandardMaterial(MaterialManager.CBN_FALLBACK_MATERIAL_NAME, this.viewer.scene);
86
+ fallbackMaterial.disableLighting = true;
87
+ return fallbackMaterial;
88
+ }
89
+ const materialDefinition = yield ((_a = window.Cbn) === null || _a === void 0 ? void 0 : _a.Assets.getMaterial(materialId));
90
+ // The generic `Material.Parse` actually returns a more specific material like `BABYLON.StandardMaterial`,
91
+ // `BABYLON.PBRMaterial` or stuff like `BABYLON.PBRMetallicRoughnessMaterial` etc. based on the given `customType`
92
+ // within the material JSON definition
93
+ const material = materialDefinition && index_1.Material.Parse(materialDefinition, this.viewer.scene, '');
94
+ if (!material) {
95
+ throw new index_1.ViewerError({
96
+ id: index_1.ViewerErrorIds.MaterialCouldNotBeParsed,
97
+ message: `Material with id "${materialId}" could not be parsed`,
98
+ });
99
+ }
100
+ yield this.viewer.parameterManager.applyParameterValuesToMaterial(material);
101
+ const matReadyProms = [
102
+ new Promise(resolve => index_1.BaseTexture.WhenAllReady(material.getActiveTextures(), resolve)),
103
+ ];
104
+ if (mesh) {
105
+ // this promise should only take some time on the first call of the corresponding shader (eg: PBRMaterial shader)
106
+ // on each other call of the same material/shader type there should be not be a waiting time, or at maximum one
107
+ // frame
108
+ // https://forum.babylonjs.com/t/mesh-flickering-when-setting-material-initially/37312
109
+ matReadyProms.push(material.forceCompilationAsync(mesh));
110
+ }
111
+ // material needs to fulfill 2 criterias before it's ready to use
112
+ // - textures need to be "ready" => downloaded
113
+ // - dedicated shader needs to be compiled
114
+ // if this would not be the case you can see some "flickering" when setting the material
115
+ yield Promise.all(matReadyProms);
116
+ return material;
117
+ });
118
+ }
119
+ }
120
+ exports.MaterialManager = MaterialManager;
121
+ /**
122
+ * CAUTION: this has to be in sync with the Combeenation backend!
123
+ * @internal
124
+ */
125
+ MaterialManager.CBN_FALLBACK_MATERIAL_NAME = '$fallback';
126
126
  //# sourceMappingURL=material-manager.js.map