@shapediver/viewer.data-engine.material-engine 2.10.1-rc.0 → 2.12.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.
- package/dist/MaterialEngine.d.ts.map +1 -1
- package/dist/MaterialEngine.js +42 -38
- package/dist/MaterialEngine.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/materialDatabase.js +4 -1
- package/dist/materialDatabase.js.map +1 -1
- package/package.json +6 -6
- package/src/MaterialEngine.ts +66 -67
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialEngine.d.ts","sourceRoot":"","sources":["../src/MaterialEngine.ts"],"names":[],"mappings":"
|
|
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,OAAO,EAEP,oBAAoB,EAGvB,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;;;;;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"}
|
package/dist/MaterialEngine.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,17 +8,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MaterialEngine = void 0;
|
|
13
|
+
/* eslint-disable no-prototype-builtins */
|
|
14
|
+
const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
|
|
15
|
+
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
16
|
+
const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
|
|
17
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
18
|
+
const materialDatabase_1 = require("./materialDatabase");
|
|
19
|
+
class MaterialEngine {
|
|
16
20
|
constructor() {
|
|
17
21
|
// #region Properties (4)
|
|
18
|
-
this._converter = Converter.instance;
|
|
19
|
-
this._httpClient = HttpClient.instance;
|
|
20
|
-
this._logger = Logger.instance;
|
|
22
|
+
this._converter = viewer_shared_services_1.Converter.instance;
|
|
23
|
+
this._httpClient = viewer_shared_services_1.HttpClient.instance;
|
|
24
|
+
this._logger = viewer_shared_services_1.Logger.instance;
|
|
21
25
|
// #endregion Private Methods (3)
|
|
22
26
|
}
|
|
23
27
|
// #endregion Properties (4)
|
|
@@ -35,10 +39,10 @@ export class MaterialEngine {
|
|
|
35
39
|
*/
|
|
36
40
|
loadContent(content) {
|
|
37
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const node = new TreeNode(content.name || 'material');
|
|
42
|
+
const node = new viewer_shared_node_tree_1.TreeNode(content.name || 'material');
|
|
39
43
|
if (!content)
|
|
40
|
-
throw new ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: Invalid content was provided to material engine.');
|
|
41
|
-
let material = new MaterialStandardData();
|
|
44
|
+
throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: Invalid content was provided to material engine.');
|
|
45
|
+
let material = new viewer_shared_types_1.MaterialStandardData();
|
|
42
46
|
if (content.data) {
|
|
43
47
|
const data = content.data;
|
|
44
48
|
let presetData;
|
|
@@ -59,13 +63,13 @@ export class MaterialEngine {
|
|
|
59
63
|
material = yield this.loadMaterialV3(this.loadMaterialDefinitionV3(data, presetData));
|
|
60
64
|
}
|
|
61
65
|
else {
|
|
62
|
-
throw new ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: Material data version not supported.');
|
|
66
|
+
throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: Material data version not supported.');
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
else {
|
|
68
|
-
throw new ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: No material data was provided to material engine.');
|
|
72
|
+
throw new viewer_shared_services_1.ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: No material data was provided to material engine.');
|
|
69
73
|
}
|
|
70
74
|
node.data.push(material);
|
|
71
75
|
return node;
|
|
@@ -73,26 +77,26 @@ export class MaterialEngine {
|
|
|
73
77
|
}
|
|
74
78
|
loadMap(url, id) {
|
|
75
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
let
|
|
80
|
+
let imageData;
|
|
77
81
|
if (!id) {
|
|
78
|
-
|
|
82
|
+
imageData = (yield this._httpClient.loadTexture(url)).data;
|
|
79
83
|
}
|
|
80
84
|
else {
|
|
81
|
-
|
|
85
|
+
imageData = (yield this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url)).data;
|
|
82
86
|
}
|
|
83
|
-
return new MapData(image);
|
|
87
|
+
return new viewer_shared_types_1.MapData(imageData.image, { blob: imageData.blob });
|
|
84
88
|
});
|
|
85
89
|
}
|
|
86
90
|
loadMapWithProperties(texture) {
|
|
87
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
|
|
89
|
-
const wrapS = texture.wrapS === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapS === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
|
|
90
|
-
const wrapT = texture.wrapT === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapT === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
|
|
91
|
-
const center = texture.center ? vec2.fromValues(texture.center[0], texture.center[1]) : vec2.fromValues(0, 0);
|
|
92
|
-
const color = texture.color ? vec4.fromValues(texture.color[0] / 255, texture.color[1] / 255, texture.color[2] / 255, texture.color[3] / 255) : vec4.fromValues(1, 1, 1, 1);
|
|
93
|
-
const offset = texture.offset ? vec2.fromValues(texture.offset[0], texture.offset[1]) : vec2.fromValues(0, 0);
|
|
94
|
-
const repeat = texture.repeat ? vec2.fromValues(texture.repeat[0], texture.repeat[1]) : vec2.fromValues(1, 1);
|
|
95
|
-
return new MapData(image, wrapS, wrapT, TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, texture.rotation || 0);
|
|
92
|
+
const imageData = (yield this._httpClient.loadTexture(texture.href)).data;
|
|
93
|
+
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;
|
|
94
|
+
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;
|
|
95
|
+
const center = texture.center ? gl_matrix_1.vec2.fromValues(texture.center[0], texture.center[1]) : gl_matrix_1.vec2.fromValues(0, 0);
|
|
96
|
+
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);
|
|
97
|
+
const offset = texture.offset ? gl_matrix_1.vec2.fromValues(texture.offset[0], texture.offset[1]) : gl_matrix_1.vec2.fromValues(0, 0);
|
|
98
|
+
const repeat = texture.repeat ? gl_matrix_1.vec2.fromValues(texture.repeat[0], texture.repeat[1]) : gl_matrix_1.vec2.fromValues(1, 1);
|
|
99
|
+
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 });
|
|
96
100
|
});
|
|
97
101
|
}
|
|
98
102
|
loadMaterialDefinitionV1(data, presetData = {}) {
|
|
@@ -196,12 +200,12 @@ export class MaterialEngine {
|
|
|
196
200
|
}
|
|
197
201
|
loadMaterialV3(data) {
|
|
198
202
|
return __awaiter(this, void 0, void 0, function* () {
|
|
199
|
-
const material = new MaterialStandardData();
|
|
203
|
+
const material = new viewer_shared_types_1.MaterialStandardData();
|
|
200
204
|
const promises = [];
|
|
201
205
|
// ambient is ignored
|
|
202
206
|
if (data.color)
|
|
203
207
|
material.color = data.color;
|
|
204
|
-
material.side = data.side === 'front' ? MATERIAL_SIDE.FRONT : data.side === 'back' ? MATERIAL_SIDE.BACK : MATERIAL_SIDE.DOUBLE;
|
|
208
|
+
material.side = data.side === 'front' ? viewer_shared_types_1.MATERIAL_SIDE.FRONT : data.side === 'back' ? viewer_shared_types_1.MATERIAL_SIDE.BACK : viewer_shared_types_1.MATERIAL_SIDE.DOUBLE;
|
|
205
209
|
if (data.metalness || data.metalness === 0)
|
|
206
210
|
material.metalness = data.metalness;
|
|
207
211
|
if (data.roughness || data.roughness === 0)
|
|
@@ -267,24 +271,23 @@ export class MaterialEngine {
|
|
|
267
271
|
loadPresetMaterialDefinition(preset) {
|
|
268
272
|
const definition = {};
|
|
269
273
|
const idStrings = this.getClassAndSpecificId(preset);
|
|
270
|
-
if (materialDatabase[idStrings.class] && materialDatabase[idStrings.class][idStrings.specific]) {
|
|
271
|
-
this.assignSpecificDefinition(idStrings, materialDatabase[idStrings.class][idStrings.specific], definition);
|
|
272
|
-
this.assignGeneralDefinition(idStrings, materialDatabase[idStrings.class].properties, materialDatabase[idStrings.class][idStrings.specific], definition);
|
|
274
|
+
if (materialDatabase_1.materialDatabase[idStrings.class] && materialDatabase_1.materialDatabase[idStrings.class][idStrings.specific]) {
|
|
275
|
+
this.assignSpecificDefinition(idStrings, materialDatabase_1.materialDatabase[idStrings.class][idStrings.specific], definition);
|
|
276
|
+
this.assignGeneralDefinition(idStrings, materialDatabase_1.materialDatabase[idStrings.class].properties, materialDatabase_1.materialDatabase[idStrings.class][idStrings.specific], definition);
|
|
273
277
|
}
|
|
274
|
-
else if (materialDatabase[idStrings.class] && materialDatabase[idStrings.class]['00']) {
|
|
275
|
-
this.assignSpecificDefinition({ class: idStrings.class, specific: '00' }, materialDatabase[idStrings.class]['00'], definition);
|
|
276
|
-
this.assignGeneralDefinition({ class: idStrings.class, specific: '00' }, materialDatabase[idStrings.class].properties, materialDatabase[idStrings.class]['00'], definition);
|
|
278
|
+
else if (materialDatabase_1.materialDatabase[idStrings.class] && materialDatabase_1.materialDatabase[idStrings.class]['00']) {
|
|
279
|
+
this.assignSpecificDefinition({ class: idStrings.class, specific: '00' }, materialDatabase_1.materialDatabase[idStrings.class]['00'], definition);
|
|
280
|
+
this.assignGeneralDefinition({ class: idStrings.class, specific: '00' }, materialDatabase_1.materialDatabase[idStrings.class].properties, materialDatabase_1.materialDatabase[idStrings.class]['00'], definition);
|
|
277
281
|
}
|
|
278
282
|
else {
|
|
279
|
-
this.assignSpecificDefinition({ class: '00', specific: '00' }, materialDatabase['00']['00'], definition);
|
|
280
|
-
this.assignGeneralDefinition({ class: '00', specific: '00' }, materialDatabase['00'].properties, materialDatabase['00']['00'], definition);
|
|
283
|
+
this.assignSpecificDefinition({ class: '00', specific: '00' }, materialDatabase_1.materialDatabase['00']['00'], definition);
|
|
284
|
+
this.assignGeneralDefinition({ class: '00', specific: '00' }, materialDatabase_1.materialDatabase['00'].properties, materialDatabase_1.materialDatabase['00']['00'], definition);
|
|
281
285
|
}
|
|
282
286
|
return definition;
|
|
283
287
|
}
|
|
284
288
|
// #endregion Public Methods (9)
|
|
285
289
|
// #region Private Methods (3)
|
|
286
290
|
assignGeneralDefinition(id, generalDefinition, specificDefinition, definition) {
|
|
287
|
-
const promises = [];
|
|
288
291
|
if (generalDefinition.transparencytexture && !specificDefinition.transparencytexture)
|
|
289
292
|
definition.transparencytexture = {
|
|
290
293
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.transparencytexture
|
|
@@ -372,7 +375,7 @@ export class MaterialEngine {
|
|
|
372
375
|
if (id < 10)
|
|
373
376
|
id *= 100;
|
|
374
377
|
const cast = (id) => {
|
|
375
|
-
|
|
378
|
+
const idString = String(id);
|
|
376
379
|
return idString.padStart(2, '0').slice(0, 2);
|
|
377
380
|
};
|
|
378
381
|
return {
|
|
@@ -381,4 +384,5 @@ export class MaterialEngine {
|
|
|
381
384
|
};
|
|
382
385
|
}
|
|
383
386
|
}
|
|
387
|
+
exports.MaterialEngine = MaterialEngine;
|
|
384
388
|
//# 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/dist/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaterialEngine = void 0;
|
|
4
|
+
const MaterialEngine_1 = require("./MaterialEngine");
|
|
5
|
+
Object.defineProperty(exports, "MaterialEngine", { enumerable: true, get: function () { return MaterialEngine_1.MaterialEngine; } });
|
|
3
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAG/C,+FAHO,+BAAc,OAGP"}
|
package/dist/materialDatabase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialDatabase.js","sourceRoot":"","sources":["../src/materialDatabase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"materialDatabase.js","sourceRoot":"","sources":["../src/materialDatabase.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.
|
|
3
|
+
"version": "2.12.0",
|
|
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.6.0",
|
|
43
|
-
"@shapediver/viewer.data-engine.shared-types": "2.
|
|
44
|
-
"@shapediver/viewer.shared.node-tree": "2.
|
|
45
|
-
"@shapediver/viewer.shared.services": "2.
|
|
46
|
-
"@shapediver/viewer.shared.types": "2.
|
|
43
|
+
"@shapediver/viewer.data-engine.shared-types": "2.12.0",
|
|
44
|
+
"@shapediver/viewer.shared.node-tree": "2.12.0",
|
|
45
|
+
"@shapediver/viewer.shared.services": "2.12.0",
|
|
46
|
+
"@shapediver/viewer.shared.types": "2.12.0",
|
|
47
47
|
"axios": "^1.2.6",
|
|
48
48
|
"gl-matrix": "3.3.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "4453bb1d704facd5722ffd81518e54b5453d991f"
|
|
51
51
|
}
|
package/src/MaterialEngine.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
/* eslint-disable no-prototype-builtins */
|
|
2
|
+
import { ITreeNode, TreeNode } from '@shapediver/viewer.shared.node-tree';
|
|
3
|
+
import { Converter, HttpClient, Logger, ShapeDiverViewerDataProcessingError } from '@shapediver/viewer.shared.services';
|
|
3
4
|
import {
|
|
4
5
|
MapData,
|
|
5
6
|
MATERIAL_SIDE,
|
|
6
7
|
MaterialStandardData,
|
|
7
8
|
TEXTURE_FILTERING,
|
|
8
9
|
TEXTURE_WRAPPING,
|
|
9
|
-
} from '@shapediver/viewer.shared.types'
|
|
10
|
-
import { vec2,
|
|
10
|
+
} from '@shapediver/viewer.shared.types';
|
|
11
|
+
import { vec2, vec4 } from 'gl-matrix';
|
|
11
12
|
|
|
12
|
-
import { materialDatabase } from './materialDatabase'
|
|
13
|
-
import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sdk-v2'
|
|
14
|
-
import { IMaterialContentData, IMaterialContentDataV1, IMaterialContentDataV2, IMaterialContentDataV3, IPresetMaterialDefinition, ITexture } from '@shapediver/viewer.data-engine.shared-types'
|
|
13
|
+
import { materialDatabase } from './materialDatabase';
|
|
14
|
+
import { ShapeDiverResponseOutputContent } from '@shapediver/sdk.geometry-api-sdk-v2';
|
|
15
|
+
import { IMaterialContentData, IMaterialContentDataV1, IMaterialContentDataV2, IMaterialContentDataV3, IPresetMaterialDefinition, ITexture } from '@shapediver/viewer.data-engine.shared-types';
|
|
15
16
|
|
|
16
17
|
export class MaterialEngine {
|
|
17
18
|
// #region Properties (4)
|
|
@@ -42,7 +43,7 @@ export class MaterialEngine {
|
|
|
42
43
|
*/
|
|
43
44
|
public async loadContent(content: ShapeDiverResponseOutputContent): Promise<ITreeNode> {
|
|
44
45
|
const node = new TreeNode(content.name || 'material');
|
|
45
|
-
if (!content)
|
|
46
|
+
if (!content)
|
|
46
47
|
throw new ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: Invalid content was provided to material engine.');
|
|
47
48
|
|
|
48
49
|
let material = new MaterialStandardData();
|
|
@@ -71,24 +72,24 @@ export class MaterialEngine {
|
|
|
71
72
|
} else {
|
|
72
73
|
throw new ShapeDiverViewerDataProcessingError('MaterialEngine.loadContent: No material data was provided to material engine.');
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
+
|
|
75
76
|
node.data.push(material);
|
|
76
77
|
return node;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
public async loadMap(url: string, id?: string): Promise<MapData | null> {
|
|
80
|
-
let
|
|
81
|
+
let imageData;
|
|
81
82
|
if (!id) {
|
|
82
|
-
|
|
83
|
+
imageData = (await this._httpClient.loadTexture(url)).data;
|
|
83
84
|
} else {
|
|
84
|
-
|
|
85
|
+
imageData = (await this._httpClient.loadTexture('https://viewer.shapediver.com/v2/materials/1024/' + id + '/' + url)).data;
|
|
85
86
|
}
|
|
86
|
-
return new MapData(image);
|
|
87
|
+
return new MapData(imageData.image, { blob: imageData.blob });
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
public async loadMapWithProperties(texture: ITexture): Promise<MapData | null> {
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
const imageData = (await this._httpClient.loadTexture(texture.href!)).data;
|
|
92
|
+
|
|
92
93
|
const wrapS = texture.wrapS === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapS === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
|
|
93
94
|
const wrapT = texture.wrapT === 1 ? TEXTURE_WRAPPING.CLAMP_TO_EDGE : texture.wrapT === 2 ? TEXTURE_WRAPPING.MIRRORED_REPEAT : TEXTURE_WRAPPING.REPEAT;
|
|
94
95
|
const center = texture.center ? vec2.fromValues(texture.center[0], texture.center[1]) : vec2.fromValues(0, 0);
|
|
@@ -96,7 +97,7 @@ export class MaterialEngine {
|
|
|
96
97
|
const offset = texture.offset ? vec2.fromValues(texture.offset[0], texture.offset[1]) : vec2.fromValues(0, 0);
|
|
97
98
|
const repeat = texture.repeat ? vec2.fromValues(texture.repeat[0], texture.repeat[1]) : vec2.fromValues(1, 1);
|
|
98
99
|
|
|
99
|
-
return new MapData(image, wrapS, wrapT, TEXTURE_FILTERING.LINEAR_MIPMAP_LINEAR, TEXTURE_FILTERING.LINEAR, center, color, offset, repeat, texture.rotation || 0);
|
|
100
|
+
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 });
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
public loadMaterialDefinitionV1(data: IMaterialContentDataV1, presetData: IMaterialContentDataV3 = {}): IMaterialContentDataV3 {
|
|
@@ -123,18 +124,18 @@ export class MaterialEngine {
|
|
|
123
124
|
if (data.bitmaptexture)
|
|
124
125
|
presetData.bitmaptexture = {
|
|
125
126
|
href: data.bitmaptexture
|
|
126
|
-
}
|
|
127
|
+
};
|
|
127
128
|
|
|
128
129
|
if (data.bumptexture)
|
|
129
130
|
presetData.bumptexture = {
|
|
130
131
|
href: data.bumptexture
|
|
131
|
-
}
|
|
132
|
+
};
|
|
132
133
|
|
|
133
134
|
if (data.transparencytexture)
|
|
134
135
|
presetData.transparencytexture = {
|
|
135
136
|
href: data.transparencytexture
|
|
136
|
-
}
|
|
137
|
-
|
|
137
|
+
};
|
|
138
|
+
|
|
138
139
|
return presetData;
|
|
139
140
|
}
|
|
140
141
|
|
|
@@ -161,33 +162,33 @@ export class MaterialEngine {
|
|
|
161
162
|
if (data.bitmaptexture)
|
|
162
163
|
presetData.bitmaptexture = {
|
|
163
164
|
href: data.bitmaptexture
|
|
164
|
-
}
|
|
165
|
+
};
|
|
165
166
|
|
|
166
167
|
if (data.metalnesstexture)
|
|
167
168
|
presetData.metalnesstexture = {
|
|
168
169
|
href: data.metalnesstexture
|
|
169
|
-
}
|
|
170
|
+
};
|
|
170
171
|
|
|
171
172
|
if (data.roughnesstexture)
|
|
172
173
|
presetData.roughnesstexture = {
|
|
173
174
|
href: data.roughnesstexture
|
|
174
|
-
}
|
|
175
|
+
};
|
|
175
176
|
|
|
176
177
|
if (data.bumptexture)
|
|
177
178
|
presetData.bumptexture = {
|
|
178
179
|
href: data.bumptexture
|
|
179
|
-
}
|
|
180
|
+
};
|
|
180
181
|
|
|
181
182
|
if (data.normaltexture)
|
|
182
183
|
presetData.normaltexture = {
|
|
183
184
|
href: data.normaltexture
|
|
184
|
-
}
|
|
185
|
+
};
|
|
185
186
|
|
|
186
187
|
if (data.transparencytexture)
|
|
187
188
|
presetData.transparencytexture = {
|
|
188
189
|
href: data.transparencytexture
|
|
189
|
-
}
|
|
190
|
-
|
|
190
|
+
};
|
|
191
|
+
|
|
191
192
|
return presetData;
|
|
192
193
|
}
|
|
193
194
|
|
|
@@ -268,7 +269,7 @@ export class MaterialEngine {
|
|
|
268
269
|
if (map) material.map = map;
|
|
269
270
|
return map;
|
|
270
271
|
})
|
|
271
|
-
)
|
|
272
|
+
);
|
|
272
273
|
}
|
|
273
274
|
|
|
274
275
|
if (data.metalnesstexture) {
|
|
@@ -277,7 +278,7 @@ export class MaterialEngine {
|
|
|
277
278
|
if (map) material.metalnessMap = map;
|
|
278
279
|
return map;
|
|
279
280
|
})
|
|
280
|
-
)
|
|
281
|
+
);
|
|
281
282
|
}
|
|
282
283
|
|
|
283
284
|
if (data.roughnesstexture) {
|
|
@@ -286,7 +287,7 @@ export class MaterialEngine {
|
|
|
286
287
|
if (map) material.roughnessMap = map;
|
|
287
288
|
return map;
|
|
288
289
|
})
|
|
289
|
-
)
|
|
290
|
+
);
|
|
290
291
|
}
|
|
291
292
|
|
|
292
293
|
if (data.bumptexture) {
|
|
@@ -295,7 +296,7 @@ export class MaterialEngine {
|
|
|
295
296
|
if (map) material.bumpMap = map;
|
|
296
297
|
return map;
|
|
297
298
|
})
|
|
298
|
-
)
|
|
299
|
+
);
|
|
299
300
|
}
|
|
300
301
|
|
|
301
302
|
if (data.normaltexture) {
|
|
@@ -304,7 +305,7 @@ export class MaterialEngine {
|
|
|
304
305
|
if (map) material.normalMap = map;
|
|
305
306
|
return map;
|
|
306
307
|
})
|
|
307
|
-
)
|
|
308
|
+
);
|
|
308
309
|
}
|
|
309
310
|
|
|
310
311
|
if (data.transparencytexture) {
|
|
@@ -313,7 +314,7 @@ export class MaterialEngine {
|
|
|
313
314
|
if (map) material.alphaMap = map;
|
|
314
315
|
return map;
|
|
315
316
|
})
|
|
316
|
-
)
|
|
317
|
+
);
|
|
317
318
|
}
|
|
318
319
|
|
|
319
320
|
// line material https://shapediver.atlassian.net/browse/SS-2272
|
|
@@ -347,57 +348,55 @@ export class MaterialEngine {
|
|
|
347
348
|
// #region Private Methods (3)
|
|
348
349
|
|
|
349
350
|
private assignGeneralDefinition(id: { class: string, specific: string }, generalDefinition: IPresetMaterialDefinition, specificDefinition: IPresetMaterialDefinition, definition: IMaterialContentDataV3) {
|
|
350
|
-
const promises: Promise<MapData | null>[] = [];
|
|
351
|
-
|
|
352
351
|
if (generalDefinition.transparencytexture && !specificDefinition.transparencytexture)
|
|
353
352
|
definition.transparencytexture = {
|
|
354
353
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.transparencytexture
|
|
355
|
-
}
|
|
354
|
+
};
|
|
356
355
|
|
|
357
356
|
if (generalDefinition.hasOwnProperty('alphaThreshold') && !specificDefinition.hasOwnProperty('alphaThreshold'))
|
|
358
357
|
definition.alphaThreshold = generalDefinition.alphaThreshold;
|
|
359
358
|
|
|
360
|
-
if (generalDefinition.bumptexture && !specificDefinition.bumptexture)
|
|
359
|
+
if (generalDefinition.bumptexture && !specificDefinition.bumptexture)
|
|
361
360
|
definition.bumptexture = {
|
|
362
361
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.bumptexture
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
if (generalDefinition.hasOwnProperty('bumpAmplitude') && !specificDefinition.hasOwnProperty('bumpAmplitude'))
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
if (generalDefinition.hasOwnProperty('bumpAmplitude') && !specificDefinition.hasOwnProperty('bumpAmplitude'))
|
|
366
365
|
definition.bumpAmplitude = generalDefinition.bumpAmplitude!;
|
|
367
366
|
|
|
368
|
-
if (generalDefinition.color && !specificDefinition.color)
|
|
367
|
+
if (generalDefinition.color && !specificDefinition.color)
|
|
369
368
|
definition.color = generalDefinition.color;
|
|
370
369
|
|
|
371
370
|
if (generalDefinition.bitmaptexture && !specificDefinition.bitmaptexture)
|
|
372
371
|
definition.bitmaptexture = {
|
|
373
372
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.bitmaptexture
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
if (generalDefinition.hasOwnProperty('metalness') && !specificDefinition.hasOwnProperty('metalness'))
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
if (generalDefinition.hasOwnProperty('metalness') && !specificDefinition.hasOwnProperty('metalness'))
|
|
377
376
|
definition.metalness = generalDefinition.metalness!;
|
|
378
|
-
|
|
377
|
+
|
|
379
378
|
if (generalDefinition.metalnesstexture && !specificDefinition.metalnesstexture)
|
|
380
379
|
definition.metalnesstexture = {
|
|
381
380
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.metalnesstexture
|
|
382
|
-
}
|
|
383
|
-
|
|
381
|
+
};
|
|
382
|
+
|
|
384
383
|
if (generalDefinition.normaltexture && !specificDefinition.normaltexture)
|
|
385
384
|
definition.normaltexture = {
|
|
386
385
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.normaltexture
|
|
387
|
-
}
|
|
386
|
+
};
|
|
388
387
|
|
|
389
|
-
if (generalDefinition.hasOwnProperty('transparency') && !specificDefinition.hasOwnProperty('transparency'))
|
|
388
|
+
if (generalDefinition.hasOwnProperty('transparency') && !specificDefinition.hasOwnProperty('transparency'))
|
|
390
389
|
definition.transparency = generalDefinition.transparency;
|
|
391
|
-
|
|
392
|
-
if (generalDefinition.hasOwnProperty('roughness') && !specificDefinition.hasOwnProperty('roughness'))
|
|
390
|
+
|
|
391
|
+
if (generalDefinition.hasOwnProperty('roughness') && !specificDefinition.hasOwnProperty('roughness'))
|
|
393
392
|
definition.roughness = generalDefinition.roughness!;
|
|
394
393
|
|
|
395
|
-
if (generalDefinition.roughnesstexture && !specificDefinition.roughnesstexture)
|
|
394
|
+
if (generalDefinition.roughnesstexture && !specificDefinition.roughnesstexture)
|
|
396
395
|
definition.roughnesstexture = {
|
|
397
396
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + generalDefinition.roughnesstexture
|
|
398
|
-
}
|
|
397
|
+
};
|
|
399
398
|
|
|
400
|
-
if (generalDefinition.side && !specificDefinition.side)
|
|
399
|
+
if (generalDefinition.side && !specificDefinition.side)
|
|
401
400
|
definition.side = generalDefinition.side;
|
|
402
401
|
}
|
|
403
402
|
|
|
@@ -405,7 +404,7 @@ export class MaterialEngine {
|
|
|
405
404
|
if (specificDefinition.transparencytexture)
|
|
406
405
|
definition.transparencytexture = {
|
|
407
406
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.transparencytexture
|
|
408
|
-
}
|
|
407
|
+
};
|
|
409
408
|
|
|
410
409
|
if (specificDefinition.hasOwnProperty('alphaThreshold'))
|
|
411
410
|
definition.alphaThreshold = specificDefinition.alphaThreshold!;
|
|
@@ -413,18 +412,18 @@ export class MaterialEngine {
|
|
|
413
412
|
if (specificDefinition.bumptexture)
|
|
414
413
|
definition.bumptexture = {
|
|
415
414
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.bumptexture
|
|
416
|
-
}
|
|
415
|
+
};
|
|
417
416
|
|
|
418
|
-
if (specificDefinition.hasOwnProperty('bumpAmplitude'))
|
|
417
|
+
if (specificDefinition.hasOwnProperty('bumpAmplitude'))
|
|
419
418
|
definition.bumpAmplitude = specificDefinition.bumpAmplitude!;
|
|
420
419
|
|
|
421
|
-
if (specificDefinition.color)
|
|
420
|
+
if (specificDefinition.color)
|
|
422
421
|
definition.color = specificDefinition.color;
|
|
423
422
|
|
|
424
423
|
if (specificDefinition.bitmaptexture)
|
|
425
424
|
definition.bitmaptexture = {
|
|
426
425
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.bitmaptexture
|
|
427
|
-
}
|
|
426
|
+
};
|
|
428
427
|
|
|
429
428
|
if (specificDefinition.hasOwnProperty('metalness'))
|
|
430
429
|
definition.metalness = specificDefinition.metalness!;
|
|
@@ -432,25 +431,25 @@ export class MaterialEngine {
|
|
|
432
431
|
if (specificDefinition.metalnesstexture)
|
|
433
432
|
definition.metalnesstexture = {
|
|
434
433
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.metalnesstexture
|
|
435
|
-
}
|
|
436
|
-
|
|
434
|
+
};
|
|
435
|
+
|
|
437
436
|
if (specificDefinition.normaltexture)
|
|
438
437
|
definition.normaltexture = {
|
|
439
438
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.normaltexture
|
|
440
|
-
}
|
|
439
|
+
};
|
|
441
440
|
|
|
442
|
-
if (specificDefinition.hasOwnProperty('transparency'))
|
|
441
|
+
if (specificDefinition.hasOwnProperty('transparency'))
|
|
443
442
|
definition.transparency = specificDefinition.transparency!;
|
|
444
443
|
|
|
445
|
-
if (specificDefinition.hasOwnProperty('roughness'))
|
|
444
|
+
if (specificDefinition.hasOwnProperty('roughness'))
|
|
446
445
|
definition.roughness = specificDefinition.roughness!;
|
|
447
446
|
|
|
448
447
|
if (specificDefinition.roughnesstexture)
|
|
449
448
|
definition.roughnesstexture = {
|
|
450
449
|
href: 'https://viewer.shapediver.com/v2/materials/1024/' + id.class + '/' + id.specific + '/' + specificDefinition.roughnesstexture
|
|
451
|
-
}
|
|
450
|
+
};
|
|
452
451
|
|
|
453
|
-
if (specificDefinition.side)
|
|
452
|
+
if (specificDefinition.side)
|
|
454
453
|
definition.side = specificDefinition.side;
|
|
455
454
|
}
|
|
456
455
|
|
|
@@ -462,7 +461,7 @@ export class MaterialEngine {
|
|
|
462
461
|
if (id < 10) id *= 100;
|
|
463
462
|
|
|
464
463
|
const cast = (id: number): string => {
|
|
465
|
-
|
|
464
|
+
const idString = String(id);
|
|
466
465
|
return idString.padStart(2, '0').slice(0, 2);
|
|
467
466
|
};
|
|
468
467
|
|