@combeenation/3d-viewer 21.0.0-alpha1 → 21.0.0-alpha2

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.
@@ -94,7 +94,7 @@ function createBuiltInTextureParameter(parameterManager, materialManager, scene)
94
94
  else if (url) {
95
95
  // no texture, or wrong type => create texture from scratch
96
96
  // first we check if some settings were provided in the material definition
97
- const addMatSettings = yield materialManager.getMaterialDefinition(pbrMaterial.id);
97
+ const addMatSettings = materialManager.getMaterialDefinition(pbrMaterial.id);
98
98
  const textureSettings = addMatSettings ? _getTextureObjFromParameterChannel(addMatSettings, channel) : {};
99
99
  // overwrite the name with the url, as this is what the texture parser expects
100
100
  textureSettings.name = url;
@@ -1 +1 @@
1
- {"version":3,"file":"texture-parameter-helper.js","sourceRoot":"","sources":["../../../../src/internal/parameter/texture-parameter-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture-parameter-helper.js","sourceRoot":"","sources":["../../../../src/internal/parameter/texture-parameter-helper.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare class DebugManager {
16
16
  */
17
17
  registerAutofocusStartListener(): void;
18
18
  /**
19
- * Registers a parent DOM element to use as root for the Babylon.js inspector.
19
+ * Registers a parent DOM element to use as root for the Babylon.js inspector.\
20
20
  * When set and no explicit `options` are passed to {@link showInspector}, this element will be used
21
21
  * as `globalRoot`, which avoids interference with the surrounding application layout.
22
22
  */
@@ -54,7 +54,7 @@ class DebugManager {
54
54
  this.viewer.eventManager.addListener(index_1.ViewerEvent.AutofocusStart, boundingSphere => this._drawBoundingSphereForAutofocus(boundingSphere));
55
55
  }
56
56
  /**
57
- * Registers a parent DOM element to use as root for the Babylon.js inspector.
57
+ * Registers a parent DOM element to use as root for the Babylon.js inspector.\
58
58
  * When set and no explicit `options` are passed to {@link showInspector}, this element will be used
59
59
  * as `globalRoot`, which avoids interference with the surrounding application layout.
60
60
  */
@@ -2,6 +2,12 @@ import { AbstractMesh, Material, TagNamingStrategy, Viewer } from '../index';
2
2
  export declare type MaterialCloneOptions = {
3
3
  tagNamingStrategy?: TagNamingStrategy;
4
4
  };
5
+ /**
6
+ * Material definition type, which can be passed to `BABYLON.Material.Parse` to create a runtime material object
7
+ */
8
+ export declare type MaterialDefinition = {
9
+ [key: string]: any;
10
+ };
5
11
  /**
6
12
  * Manager for material related tasks
7
13
  */
@@ -13,7 +19,7 @@ export declare class MaterialManager {
13
19
  */
14
20
  static readonly CBN_FALLBACK_MATERIAL_NAME = "$fallback";
15
21
  protected _materialDefinitions: {
16
- [materialId: string]: object;
22
+ [materialId: string]: MaterialDefinition;
17
23
  };
18
24
  protected _clonedMaterials: {
19
25
  [name: string]: Material;
@@ -21,11 +27,21 @@ export declare class MaterialManager {
21
27
  protected _createMaterialPromises: {
22
28
  [materialId: string]: Promise<Material | null>;
23
29
  };
30
+ protected _onMaterialDefinitionNotFound?: (materialId: string) => MaterialDefinition | undefined;
24
31
  /** @internal */
25
32
  constructor(viewer: Viewer);
33
+ /**
34
+ * Register material definitions, which serves as a lookup for creating materials via {@link getOrCreateMaterial} or
35
+ * {@link setMaterialOnMesh}.
36
+ */
26
37
  registerMaterials(materialDefinitions: {
27
- [materialId: string]: object;
38
+ [materialId: string]: MaterialDefinition;
28
39
  }): void;
40
+ /**
41
+ * Registers a callback function, which will be called when a material definition for a requested material id is not
42
+ * found. Can be used to create fallback material definitions on the fly.
43
+ */
44
+ setOnMaterialDefinitionNotFoundCallback(callback: (materialId: string) => MaterialDefinition | undefined): void;
29
45
  /**
30
46
  * Assigns material with certain id to desired mesh.\
31
47
  * Creates the material if not already available (see {@link getOrCreateMaterial}).
@@ -59,10 +75,10 @@ export declare class MaterialManager {
59
75
  */
60
76
  deleteAllClonedMaterials(): void;
61
77
  /**
62
- * Get material defintion from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
78
+ * Get material definition from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
63
79
  *
64
80
  * @internal
65
81
  */
66
- getMaterialDefinition(materialId: string): Promise<object | undefined>;
82
+ getMaterialDefinition(materialId: string): MaterialDefinition | undefined;
67
83
  protected _createFromMaterialDefinition(materialId: string, mesh?: AbstractMesh): Promise<Material | null>;
68
84
  }
@@ -47,8 +47,25 @@ class MaterialManager {
47
47
  this._clonedMaterials = {};
48
48
  this._createMaterialPromises = {};
49
49
  }
50
+ /**
51
+ * Register material definitions, which serves as a lookup for creating materials via {@link getOrCreateMaterial} or
52
+ * {@link setMaterialOnMesh}.
53
+ */
50
54
  registerMaterials(materialDefinitions) {
51
- this._materialDefinitions = materialDefinitions;
55
+ for (const materialId in materialDefinitions) {
56
+ if (this._materialDefinitions[materialId]) {
57
+ console.warn(`Material "${materialId}" is already registered.`);
58
+ return;
59
+ }
60
+ this._materialDefinitions[materialId] = materialDefinitions[materialId];
61
+ }
62
+ }
63
+ /**
64
+ * Registers a callback function, which will be called when a material definition for a requested material id is not
65
+ * found. Can be used to create fallback material definitions on the fly.
66
+ */
67
+ setOnMaterialDefinitionNotFoundCallback(callback) {
68
+ this._onMaterialDefinitionNotFound = callback;
52
69
  }
53
70
  /**
54
71
  * Assigns material with certain id to desired mesh.\
@@ -153,23 +170,22 @@ class MaterialManager {
153
170
  Object.keys(this._clonedMaterials).forEach(materialId => this.deleteClonedMaterial(materialId));
154
171
  }
155
172
  /**
156
- * Get material defintion from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
173
+ * Get material definition from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
157
174
  *
158
175
  * @internal
159
176
  */
160
177
  getMaterialDefinition(materialId) {
161
- var _a, _b;
162
- return __awaiter(this, void 0, void 0, function* () {
163
- let definition = this._materialDefinitions[materialId];
164
- if (!definition && ((_b = (_a = window.Cbn) === null || _a === void 0 ? void 0 : _a.Assets) === null || _b === void 0 ? void 0 : _b.getMaterial)) {
165
- // fallback to legacy `Cbn.Assets.getMaterial` call to support "old" cfgrs (pre Editor V2)
166
- definition = yield window.Cbn.Assets.getMaterial(materialId);
167
- }
168
- if (!definition) {
169
- console.warn(`Material definition for "${materialId}" couldn't be found. Material might not be registered or Material Asset from Combeenation server does not exist or is not connected to the configurator.`);
170
- }
171
- return definition;
172
- });
178
+ var _a, _b, _c;
179
+ let definition = this._materialDefinitions[materialId];
180
+ if (!definition && ((_b = (_a = window.Cbn) === null || _a === void 0 ? void 0 : _a.Assets) === null || _b === void 0 ? void 0 : _b.getMaterial)) {
181
+ // fallback to legacy `Cbn.Assets.getMaterial` call to support "old" cfgrs (pre Editor V2)
182
+ definition = window.Cbn.Assets.getMaterial(materialId);
183
+ }
184
+ if (!definition) {
185
+ console.warn(`Material definition for "${materialId}" couldn't be found. Material might not be registered or Material Asset from Combeenation server does not exist or is not connected to the configurator.`);
186
+ definition = (_c = this._onMaterialDefinitionNotFound) === null || _c === void 0 ? void 0 : _c.call(this, materialId);
187
+ }
188
+ return definition;
173
189
  }
174
190
  _createFromMaterialDefinition(materialId, mesh) {
175
191
  return __awaiter(this, void 0, void 0, function* () {
@@ -178,7 +194,7 @@ class MaterialManager {
178
194
  fallbackMaterial.disableLighting = true;
179
195
  return fallbackMaterial;
180
196
  }
181
- const materialDefinition = yield this.getMaterialDefinition(materialId);
197
+ const materialDefinition = this.getMaterialDefinition(materialId);
182
198
  if (!materialDefinition) {
183
199
  return null;
184
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"material-manager.js","sourceRoot":"","sources":["../../../src/manager/material-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material-manager.js","sourceRoot":"","sources":["../../../src/manager/material-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
- "version": "21.0.0-alpha1",
3
+ "version": "21.0.0-alpha2",
4
4
  "description": "Combeenation 3D Viewer",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "bugs": {
@@ -5,31 +5,31 @@ type DeepPartial<T> = {
5
5
  [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
6
6
  };
7
7
 
8
+ /**
9
+ * Window extension is only used in "old" cfgrs (pre Editor V2)
10
+ */
8
11
  interface Window {
9
12
  Cbn:
10
13
  | undefined /* window.Cbn is only available when viewer runs inside Combeenation configurator */
11
14
  | {
12
15
  Assets?: {
13
16
  /**
14
- * Retrieve material definition from configurator.
15
- * Implementation depends on the Combeenation environment the viewer is used in
16
- * - Configurator: Access pre-fetched material JSON objects from Cbn client => synchronous
17
- * - Asset Editor: Load content from material asset on demand => asynchronous!
17
+ * Retrieve material definition from configurator
18
18
  *
19
19
  * @return Undefined if no definition for the given material name exists, otherwise an "JSON object" which can
20
20
  * be passed to `BABYLON.Material.Parse` to create a runtime material object.
21
21
  */
22
- getMaterial?(materialId: string): Promise<object | undefined>;
22
+ getMaterial?(materialId: string): object | undefined;
23
23
 
24
24
  /**
25
- * Checks if a definition for a given material name exists in the configurator and issues a warning if not.\
25
+ * Checks if a definition for a given material name exists in the configurator and issues a warning if not
26
26
  */
27
27
  assertMaterialExists?(materialId: string): boolean;
28
28
  };
29
29
  utils?: {
30
30
  Viewer3dHelper?: {
31
31
  /**
32
- * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.
32
+ * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.\
33
33
  * Also adjusts styling of some configurator parent sub elements to fix the inspector layout.
34
34
  */
35
35
  getCfgrParentDomElementForInspector?(): HTMLElement | undefined;
@@ -105,7 +105,7 @@ export function createBuiltInTextureParameter(
105
105
  } else if (url) {
106
106
  // no texture, or wrong type => create texture from scratch
107
107
  // first we check if some settings were provided in the material definition
108
- const addMatSettings = await materialManager.getMaterialDefinition(pbrMaterial.id);
108
+ const addMatSettings = materialManager.getMaterialDefinition(pbrMaterial.id);
109
109
  const textureSettings = addMatSettings ? _getTextureObjFromParameterChannel(addMatSettings, channel) : {};
110
110
 
111
111
  // overwrite the name with the url, as this is what the texture parser expects
@@ -41,7 +41,7 @@ export class DebugManager {
41
41
  }
42
42
 
43
43
  /**
44
- * Registers a parent DOM element to use as root for the Babylon.js inspector.
44
+ * Registers a parent DOM element to use as root for the Babylon.js inspector.\
45
45
  * When set and no explicit `options` are passed to {@link showInspector}, this element will be used
46
46
  * as `globalRoot`, which avoids interference with the surrounding application layout.
47
47
  */
@@ -20,6 +20,13 @@ export type MaterialCloneOptions = {
20
20
  tagNamingStrategy?: TagNamingStrategy;
21
21
  };
22
22
 
23
+ /**
24
+ * Material definition type, which can be passed to `BABYLON.Material.Parse` to create a runtime material object
25
+ */
26
+ export type MaterialDefinition = {
27
+ [key: string]: any;
28
+ };
29
+
23
30
  /**
24
31
  * Manager for material related tasks
25
32
  */
@@ -30,15 +37,37 @@ export class MaterialManager {
30
37
  */
31
38
  public static readonly CBN_FALLBACK_MATERIAL_NAME = '$fallback';
32
39
 
33
- protected _materialDefinitions: { [materialId: string]: object } = {};
40
+ protected _materialDefinitions: { [materialId: string]: MaterialDefinition } = {};
34
41
  protected _clonedMaterials: { [name: string]: Material } = {};
35
42
  protected _createMaterialPromises: { [materialId: string]: Promise<Material | null> } = {};
43
+ protected _onMaterialDefinitionNotFound?: (materialId: string) => MaterialDefinition | undefined;
36
44
 
37
45
  /** @internal */
38
46
  public constructor(protected viewer: Viewer) {}
39
47
 
40
- public registerMaterials(materialDefinitions: { [materialId: string]: object }): void {
41
- this._materialDefinitions = materialDefinitions;
48
+ /**
49
+ * Register material definitions, which serves as a lookup for creating materials via {@link getOrCreateMaterial} or
50
+ * {@link setMaterialOnMesh}.
51
+ */
52
+ public registerMaterials(materialDefinitions: { [materialId: string]: MaterialDefinition }): void {
53
+ for (const materialId in materialDefinitions) {
54
+ if (this._materialDefinitions[materialId]) {
55
+ console.warn(`Material "${materialId}" is already registered.`);
56
+ return;
57
+ }
58
+
59
+ this._materialDefinitions[materialId] = materialDefinitions[materialId];
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Registers a callback function, which will be called when a material definition for a requested material id is not
65
+ * found. Can be used to create fallback material definitions on the fly.
66
+ */
67
+ public setOnMaterialDefinitionNotFoundCallback(
68
+ callback: (materialId: string) => MaterialDefinition | undefined
69
+ ): void {
70
+ this._onMaterialDefinitionNotFound = callback;
42
71
  }
43
72
 
44
73
  /**
@@ -159,21 +188,22 @@ export class MaterialManager {
159
188
  }
160
189
 
161
190
  /**
162
- * Get material defintion from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
191
+ * Get material definition from registered material definitions or from legacy `Cbn.Assets.getMaterial` call
163
192
  *
164
193
  * @internal
165
194
  */
166
- public async getMaterialDefinition(materialId: string): Promise<object | undefined> {
167
- let definition: object | undefined = this._materialDefinitions[materialId];
195
+ public getMaterialDefinition(materialId: string): MaterialDefinition | undefined {
196
+ let definition: MaterialDefinition | undefined = this._materialDefinitions[materialId];
168
197
  if (!definition && window.Cbn?.Assets?.getMaterial) {
169
198
  // fallback to legacy `Cbn.Assets.getMaterial` call to support "old" cfgrs (pre Editor V2)
170
- definition = await window.Cbn.Assets.getMaterial(materialId);
199
+ definition = window.Cbn.Assets.getMaterial(materialId) as MaterialDefinition | undefined;
171
200
  }
172
201
 
173
202
  if (!definition) {
174
203
  console.warn(
175
204
  `Material definition for "${materialId}" couldn't be found. Material might not be registered or Material Asset from Combeenation server does not exist or is not connected to the configurator.`
176
205
  );
206
+ definition = this._onMaterialDefinitionNotFound?.(materialId);
177
207
  }
178
208
 
179
209
  return definition;
@@ -187,7 +217,7 @@ export class MaterialManager {
187
217
  return fallbackMaterial;
188
218
  }
189
219
 
190
- const materialDefinition = await this.getMaterialDefinition(materialId);
220
+ const materialDefinition = this.getMaterialDefinition(materialId);
191
221
  if (!materialDefinition) {
192
222
  return null;
193
223
  }