@shapediver/viewer.data-engine.material-engine 2.12.8 → 3.0.1

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.
@@ -33,5 +33,13 @@ export declare class MaterialEngine {
33
33
  private assignGeneralDefinition;
34
34
  private assignSpecificDefinition;
35
35
  private getClassAndSpecificId;
36
+ /**
37
+ * Multiply two colors
38
+ *
39
+ * @param color1
40
+ * @param color2
41
+ * @returns
42
+ */
43
+ private multiplyColors;
36
44
  }
37
45
  //# sourceMappingURL=MaterialEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialEngine.d.ts","sourceRoot":"","sources":["../src/MaterialEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EACH,qBAAqB,EACrB,+BAA+B,EAC/B,OAAO,EAKP,oBAAoB,EAIvB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAwB,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAA6B,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEhM,qBAAa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiB;IAMzC,WAAkB,QAAQ,mBAEzB;IAMD;;;;;OAKG;IACI,kBAAkB,CAAC,kBAAkB,EAAE,+BAA+B,GAAG,qBAAqB;IAcrG;;;;;SAKK;IACQ,WAAW,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,SAAS,CAAC;IAoCzE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAU1D,qBAAqB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAavE,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IAuCvH,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IAqDvH,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IA8CjH,cAAc,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqF3E,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIvE,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB;IAoB3E,OAAO,CAAC,uBAAuB;IAqD/B,OAAO,CAAC,wBAAwB;IAqDhC,OAAO,CAAC,qBAAqB;CAmBhC"}
1
+ {"version":3,"file":"MaterialEngine.d.ts","sourceRoot":"","sources":["../src/MaterialEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EACH,qBAAqB,EACrB,+BAA+B,EAC/B,OAAO,EAKP,oBAAoB,EAIvB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAwB,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAA6B,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEhM,qBAAa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiB;IAMzC,WAAkB,QAAQ,mBAEzB;IAMD;;;;;OAKG;IACI,kBAAkB,CAAC,kBAAkB,EAAE,+BAA+B,GAAG,qBAAqB;IAcrG;;;;;SAKK;IACQ,WAAW,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,SAAS,CAAC;IAoCzE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgB1D,qBAAqB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAkBvE,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IAwCvH,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IAqDvH,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,EAAE,UAAU,GAAE,sBAA2B,GAAG,sBAAsB;IA8CjH,cAAc,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqF3E,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIvE,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB;IAoB3E,OAAO,CAAC,uBAAuB;IAqD/B,OAAO,CAAC,wBAAwB;IAqDhC,OAAO,CAAC,qBAAqB;IAkB7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAWzB"}
@@ -96,35 +96,48 @@ class MaterialEngine {
96
96
  }
97
97
  loadMap(url, id) {
98
98
  return __awaiter(this, void 0, void 0, function* () {
99
- let imageData;
99
+ let response;
100
100
  if (!id) {
101
- imageData = (yield this._httpClient.loadTexture(url)).data;
101
+ response = yield this._httpClient.loadTexture(url);
102
102
  }
103
103
  else {
104
- imageData = (yield this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url)).data;
104
+ response = yield this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url);
105
+ }
106
+ if (typeof window !== 'undefined') {
107
+ const image = yield viewer_shared_services_1.Converter.instance.responseToImage(response);
108
+ return new viewer_shared_types_1.MapData(image, { blob: response.data.blob });
109
+ }
110
+ else {
111
+ return new viewer_shared_types_1.MapData(response.data.buffer, { blob: response.data.blob });
105
112
  }
106
- return new viewer_shared_types_1.MapData(imageData.image, { blob: imageData.blob });
107
113
  });
108
114
  }
109
115
  loadMapWithProperties(texture) {
110
116
  return __awaiter(this, void 0, void 0, function* () {
111
- const imageData = (yield this._httpClient.loadTexture(texture.href)).data;
117
+ const response = yield this._httpClient.loadTexture(texture.href);
112
118
  const wrapS = texture.wrapS === 1 ? viewer_shared_types_1.TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapS === 2 ? viewer_shared_types_1.TEXTURE_WRAPPING.MIRRORED_REPEAT : viewer_shared_types_1.TEXTURE_WRAPPING.REPEAT;
113
119
  const wrapT = texture.wrapT === 1 ? viewer_shared_types_1.TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapT === 2 ? viewer_shared_types_1.TEXTURE_WRAPPING.MIRRORED_REPEAT : viewer_shared_types_1.TEXTURE_WRAPPING.REPEAT;
114
120
  const center = texture.center ? gl_matrix_1.vec2.fromValues(texture.center[0], texture.center[1]) : gl_matrix_1.vec2.fromValues(0, 0);
115
121
  const color = texture.color ? gl_matrix_1.vec4.fromValues(texture.color[0] / 255, texture.color[1] / 255, texture.color[2] / 255, texture.color[3] / 255) : gl_matrix_1.vec4.fromValues(1, 1, 1, 1);
116
122
  const offset = texture.offset ? gl_matrix_1.vec2.fromValues(texture.offset[0], texture.offset[1]) : gl_matrix_1.vec2.fromValues(0, 0);
117
123
  const repeat = texture.repeat ? gl_matrix_1.vec2.fromValues(texture.repeat[0], texture.repeat[1]) : gl_matrix_1.vec2.fromValues(1, 1);
118
- return new viewer_shared_types_1.MapData(imageData.image, { blob: imageData.blob, wrapS, wrapT, minFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
124
+ if (typeof window !== 'undefined') {
125
+ const image = yield viewer_shared_services_1.Converter.instance.responseToImage(response);
126
+ return new viewer_shared_types_1.MapData(image, { blob: response.data.blob, wrapS, wrapT, minFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
127
+ }
128
+ else {
129
+ return new viewer_shared_types_1.MapData(response.data.buffer, { blob: response.data.blob, wrapS, wrapT, minFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: viewer_shared_types_1.TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
130
+ }
119
131
  });
120
132
  }
121
133
  loadMaterialDefinitionV1(data, presetData = {}) {
122
134
  // ambient is ignored
123
135
  if (data.color) {
124
- presetData.color = data.color;
136
+ presetData.color = this.multiplyColors(data.color, presetData.color);
125
137
  }
126
138
  else if (data.diffuse) {
127
- presetData.color = data.diffuse;
139
+ // multiply color with diffuse
140
+ presetData.color = this.multiplyColors(data.diffuse, presetData.color);
128
141
  }
129
142
  // emission is ignored
130
143
  // specular is ignored
@@ -151,7 +164,7 @@ class MaterialEngine {
151
164
  loadMaterialDefinitionV2(data, presetData = {}) {
152
165
  // ambient is ignored
153
166
  if (data.color)
154
- presetData.color = data.color;
167
+ presetData.color = this.multiplyColors(data.color, presetData.color);
155
168
  presetData.side = data.side;
156
169
  if (data.metalness || data.metalness === 0)
157
170
  presetData.metalness = data.metalness;
@@ -190,7 +203,7 @@ class MaterialEngine {
190
203
  loadMaterialDefinitionV3(data, presetData = {}) {
191
204
  // ambient is ignored
192
205
  if (data.color)
193
- presetData.color = data.color;
206
+ presetData.color = this.multiplyColors(data.color, presetData.color);
194
207
  presetData.side = data.side;
195
208
  if (data.metalness || data.metalness === 0)
196
209
  presetData.metalness = data.metalness;
@@ -402,6 +415,23 @@ class MaterialEngine {
402
415
  specific: cast(id - (Math.floor(id / 100) * 100))
403
416
  };
404
417
  }
418
+ /**
419
+ * Multiply two colors
420
+ *
421
+ * @param color1
422
+ * @param color2
423
+ * @returns
424
+ */
425
+ multiplyColors(color1, color2) {
426
+ if (!color2)
427
+ return color1;
428
+ return [
429
+ Math.min(255, (color1[0] * color2[0]) / 255),
430
+ Math.min(255, (color1[1] * color2[1]) / 255),
431
+ Math.min(255, (color1[2] * color2[2]) / 255),
432
+ Math.min(255, ((color1[3] !== undefined ? color1[3] : 255) * (color2[3] !== undefined ? color2[3] : 255)) / 255)
433
+ ];
434
+ }
405
435
  }
406
436
  exports.MaterialEngine = MaterialEngine;
407
437
  //# sourceMappingURL=MaterialEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialEngine.js","sourceRoot":"","sources":["../src/MaterialEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialEngine.js","sourceRoot":"","sources":["../src/MaterialEngine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.data-engine.material-engine",
3
- "version": "2.12.8",
3
+ "version": "3.0.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -40,12 +40,12 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@shapediver/sdk.geometry-api-sdk-v2": "1.8.2",
43
- "@shapediver/viewer.data-engine.shared-types": "2.12.8",
44
- "@shapediver/viewer.shared.node-tree": "2.12.8",
45
- "@shapediver/viewer.shared.services": "2.12.8",
46
- "@shapediver/viewer.shared.types": "2.12.8",
43
+ "@shapediver/viewer.data-engine.shared-types": "3.0.1",
44
+ "@shapediver/viewer.shared.node-tree": "3.0.1",
45
+ "@shapediver/viewer.shared.services": "3.0.1",
46
+ "@shapediver/viewer.shared.types": "3.0.1",
47
47
  "axios": "^1.2.6",
48
48
  "gl-matrix": "3.3.0"
49
49
  },
50
- "gitHead": "615c459595cdea9ceeca8a307d469c617ce36684"
50
+ "gitHead": "cae477cab82d2cddddec9cbea6fec7bc2392552b"
51
51
  }
@@ -104,17 +104,23 @@ export class MaterialEngine {
104
104
  }
105
105
 
106
106
  public async loadMap(url: string, id?: string): Promise<MapData | null> {
107
- let imageData;
107
+ let response;
108
108
  if (!id) {
109
- imageData = (await this._httpClient.loadTexture(url)).data;
109
+ response = await this._httpClient.loadTexture(url);
110
110
  } else {
111
- imageData = (await this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url)).data;
111
+ response = await this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url);
112
+ }
113
+
114
+ if(typeof window !== 'undefined') {
115
+ const image = await Converter.instance.responseToImage(response);
116
+ return new MapData(image, { blob: response.data.blob });
117
+ } else {
118
+ return new MapData(response.data.buffer, { blob: response.data.blob });
112
119
  }
113
- return new MapData(imageData.image, { blob: imageData.blob });
114
120
  }
115
121
 
116
122
  public async loadMapWithProperties(texture: ITexture): Promise<MapData | null> {
117
- const imageData = (await this._httpClient.loadTexture(texture.href!)).data;
123
+ const response = await this._httpClient.loadTexture(texture.href!);
118
124
 
119
125
  const wrapS = texture.wrapS === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapS === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
120
126
  const wrapT = texture.wrapT === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapT === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
@@ -123,16 +129,22 @@ export class MaterialEngine {
123
129
  const offset = texture.offset ? vec2.fromValues(texture.offset[0], texture.offset[1]) : vec2.fromValues(0, 0);
124
130
  const repeat = texture.repeat ? vec2.fromValues(texture.repeat[0], texture.repeat[1]) : vec2.fromValues(1, 1);
125
131
 
126
- return new MapData(imageData.image, { blob: imageData.blob, wrapS, wrapT, minFilter: TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
132
+ if(typeof window !== 'undefined') {
133
+ const image = await Converter.instance.responseToImage(response);
134
+ return new MapData(image, { blob: response.data.blob, wrapS, wrapT, minFilter: TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
135
+ } else {
136
+ return new MapData(response.data.buffer, { blob: response.data.blob, wrapS, wrapT, minFilter: TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, magFilter: TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, rotation: texture.rotation || 0 });
137
+ }
127
138
  }
128
139
 
129
140
  public loadMaterialDefinitionV1(data: IMaterialContentDataV1, presetData: IMaterialContentDataV3 = {}): IMaterialContentDataV3 {
130
141
  // ambient is ignored
131
142
 
132
143
  if (data.color) {
133
- presetData.color = data.color;
144
+ presetData.color = this.multiplyColors(data.color, presetData.color);
134
145
  } else if (data.diffuse) {
135
- presetData.color = data.diffuse;
146
+ // multiply color with diffuse
147
+ presetData.color = this.multiplyColors(data.diffuse, presetData.color);
136
148
  }
137
149
 
138
150
  // emission is ignored
@@ -169,7 +181,7 @@ export class MaterialEngine {
169
181
  // ambient is ignored
170
182
 
171
183
  if (data.color)
172
- presetData.color = data.color;
184
+ presetData.color = this.multiplyColors(data.color, presetData.color);
173
185
 
174
186
  presetData.side = data.side;
175
187
 
@@ -222,7 +234,7 @@ export class MaterialEngine {
222
234
  // ambient is ignored
223
235
 
224
236
  if (data.color)
225
- presetData.color = data.color;
237
+ presetData.color = this.multiplyColors(data.color, presetData.color);
226
238
 
227
239
  presetData.side = data.side;
228
240
 
@@ -497,5 +509,22 @@ export class MaterialEngine {
497
509
  };
498
510
  }
499
511
 
512
+ /**
513
+ * Multiply two colors
514
+ *
515
+ * @param color1
516
+ * @param color2
517
+ * @returns
518
+ */
519
+ private multiplyColors(color1: number[], color2?: number[]): number[] {
520
+ if (!color2) return color1;
521
+ return [
522
+ Math.min(255, (color1[0] * color2[0]) / 255),
523
+ Math.min(255, (color1[1] * color2[1]) / 255),
524
+ Math.min(255, (color1[2] * color2[2]) / 255),
525
+ Math.min(255, ((color1[3] !== undefined ? color1[3] : 255) * (color2[3] !== undefined ? color2[3] : 255)) / 255)
526
+ ];
527
+ }
528
+
500
529
  // #endregion Private Methods (3)
501
530
  }