@shapediver/viewer.data-engine.geometry-engine 1.13.8 → 1.14.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 (35) hide show
  1. package/dist/gltfv1/GLTFLoader.js +1 -1
  2. package/dist/gltfv1/GLTFLoader.js.map +1 -1
  3. package/dist/gltfv2/GLTFLoader.d.ts +30 -20
  4. package/dist/gltfv2/GLTFLoader.d.ts.map +1 -1
  5. package/dist/gltfv2/GLTFLoader.js +300 -443
  6. package/dist/gltfv2/GLTFLoader.js.map +1 -1
  7. package/dist/gltfv2/draco/draco_decoder.d.ts +6 -0
  8. package/dist/gltfv2/draco/draco_decoder.d.ts.map +1 -0
  9. package/dist/gltfv2/draco/draco_decoder.js +54436 -0
  10. package/dist/gltfv2/draco/draco_decoder.js.map +1 -0
  11. package/dist/gltfv2/loaders/AccessorLoader.d.ts +14 -0
  12. package/dist/gltfv2/loaders/AccessorLoader.d.ts.map +1 -0
  13. package/dist/gltfv2/loaders/AccessorLoader.js +111 -0
  14. package/dist/gltfv2/loaders/AccessorLoader.js.map +1 -0
  15. package/dist/gltfv2/loaders/BufferLoader.d.ts +12 -0
  16. package/dist/gltfv2/loaders/BufferLoader.d.ts.map +1 -0
  17. package/dist/gltfv2/loaders/BufferLoader.js +82 -0
  18. package/dist/gltfv2/loaders/BufferLoader.js.map +1 -0
  19. package/dist/gltfv2/loaders/BufferViewLoader.d.ts +11 -0
  20. package/dist/gltfv2/loaders/BufferViewLoader.d.ts.map +1 -0
  21. package/dist/gltfv2/loaders/BufferViewLoader.js +43 -0
  22. package/dist/gltfv2/loaders/BufferViewLoader.js.map +1 -0
  23. package/dist/gltfv2/loaders/GeometryLoader.d.ts +19 -0
  24. package/dist/gltfv2/loaders/GeometryLoader.d.ts.map +1 -0
  25. package/dist/gltfv2/loaders/GeometryLoader.js +172 -0
  26. package/dist/gltfv2/loaders/GeometryLoader.js.map +1 -0
  27. package/dist/gltfv2/loaders/MaterialLoader.d.ts +15 -0
  28. package/dist/gltfv2/loaders/MaterialLoader.d.ts.map +1 -0
  29. package/dist/gltfv2/loaders/MaterialLoader.js +286 -0
  30. package/dist/gltfv2/loaders/MaterialLoader.js.map +1 -0
  31. package/dist/gltfv2/loaders/TextureLoader.d.ts +15 -0
  32. package/dist/gltfv2/loaders/TextureLoader.d.ts.map +1 -0
  33. package/dist/gltfv2/loaders/TextureLoader.js +88 -0
  34. package/dist/gltfv2/loaders/TextureLoader.js.map +1 -0
  35. package/package.json +16 -9
@@ -0,0 +1,286 @@
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.MaterialLoader = void 0;
13
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
14
+ const tsyringe_1 = require("tsyringe");
15
+ const gl_matrix_1 = require("gl-matrix");
16
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
17
+ const viewer_data_engine_material_engine_1 = require("@shapediver/viewer.data-engine.material-engine");
18
+ const GLTFLoader_1 = require("../GLTFLoader");
19
+ class MaterialLoader {
20
+ // #endregion Properties (4)
21
+ // #region Constructors (1)
22
+ constructor(_content, _textureLoader) {
23
+ this._content = _content;
24
+ this._textureLoader = _textureLoader;
25
+ // #region Properties (4)
26
+ this._converter = tsyringe_1.container.resolve(viewer_shared_services_1.Converter);
27
+ this._materialEngine = tsyringe_1.container.resolve(viewer_data_engine_material_engine_1.MaterialEngine);
28
+ this._loaded = {};
29
+ }
30
+ // #endregion Constructors (1)
31
+ // #region Public Methods (2)
32
+ getMaterial(materialId) {
33
+ if (!this._content.materials)
34
+ throw new Error('MaterialLoader.getMaterial: Materials not available.');
35
+ if (!this._content.materials[materialId])
36
+ throw new Error('MaterialLoader.getMaterial: Material not available.');
37
+ if (!this._loaded[materialId])
38
+ throw new Error('MaterialLoader.getMaterial: Material not loaded.');
39
+ return this._loaded[materialId];
40
+ }
41
+ load() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (!this._content.materials)
44
+ return;
45
+ let promises = [];
46
+ for (let i = 0; i < this._content.materials.length; i++) {
47
+ const materialId = i;
48
+ const material = this._content.materials[materialId];
49
+ const materialExtensions = material.extensions || {};
50
+ const materialDataProperties = {};
51
+ if (material.name !== undefined)
52
+ materialDataProperties.name = material.name;
53
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.SHAPEDIVER_MATERIALS_PRESET]) {
54
+ const materialPreset = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.SHAPEDIVER_MATERIALS_PRESET];
55
+ const materialData = new viewer_shared_types_1.MaterialStandardData(materialDataProperties);
56
+ promises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
57
+ yield this._materialEngine.loadPresetMaterial(materialPreset.materialpreset, materialData);
58
+ materialData.color = this._converter.toColor(materialPreset.color);
59
+ this._loaded[materialId] = materialData;
60
+ resolve();
61
+ })));
62
+ continue;
63
+ }
64
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_PBRSPECULARGLOSSINESS]) {
65
+ const pbrSpecularGlossiness = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_PBRSPECULARGLOSSINESS];
66
+ const specularGlossinessMaterialDataProperties = materialDataProperties;
67
+ specularGlossinessMaterialDataProperties.color = '#ffffff';
68
+ specularGlossinessMaterialDataProperties.opacity = 1.0;
69
+ if (pbrSpecularGlossiness.diffuseFactor !== undefined) {
70
+ specularGlossinessMaterialDataProperties.color = this._converter.toColor([pbrSpecularGlossiness.diffuseFactor[0] * 255, pbrSpecularGlossiness.diffuseFactor[1] * 255, pbrSpecularGlossiness.diffuseFactor[2] * 255]);
71
+ specularGlossinessMaterialDataProperties.opacity = pbrSpecularGlossiness.diffuseFactor[3];
72
+ }
73
+ if (pbrSpecularGlossiness.diffuseTexture !== undefined) {
74
+ const diffuseTextureOptions = pbrSpecularGlossiness.diffuseTexture.extensions && pbrSpecularGlossiness.diffuseTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? pbrSpecularGlossiness.diffuseTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
75
+ specularGlossinessMaterialDataProperties.map = this.loadMap(pbrSpecularGlossiness.diffuseTexture.index, diffuseTextureOptions);
76
+ }
77
+ specularGlossinessMaterialDataProperties.emissiveness = '#000000';
78
+ specularGlossinessMaterialDataProperties.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0;
79
+ specularGlossinessMaterialDataProperties.specular = '#ffffff';
80
+ if (pbrSpecularGlossiness.specularFactor !== undefined) {
81
+ specularGlossinessMaterialDataProperties.specular = this._converter.toColor([pbrSpecularGlossiness.specularFactor[0] * 255, pbrSpecularGlossiness.specularFactor[1] * 255, pbrSpecularGlossiness.specularFactor[2] * 255]);
82
+ }
83
+ if (pbrSpecularGlossiness.specularGlossinessTexture !== undefined) {
84
+ const specularGlossinessTextureOptions = pbrSpecularGlossiness.specularGlossinessTexture.extensions && pbrSpecularGlossiness.specularGlossinessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? pbrSpecularGlossiness.specularGlossinessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
85
+ specularGlossinessMaterialDataProperties.specularGlossinessMap = this.loadMap(pbrSpecularGlossiness.specularGlossinessTexture.index, specularGlossinessTextureOptions);
86
+ }
87
+ }
88
+ else if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_UNLIT]) {
89
+ const unlitMaterialDataProperties = materialDataProperties;
90
+ unlitMaterialDataProperties.color = '#ffffff';
91
+ unlitMaterialDataProperties.opacity = 1.0;
92
+ if (material.pbrMetallicRoughness !== undefined) {
93
+ if (material.pbrMetallicRoughness.baseColorFactor !== undefined) {
94
+ unlitMaterialDataProperties.color = this._converter.toColor([material.pbrMetallicRoughness.baseColorFactor[0] * 255, material.pbrMetallicRoughness.baseColorFactor[1] * 255, material.pbrMetallicRoughness.baseColorFactor[2] * 255]);
95
+ unlitMaterialDataProperties.opacity = material.pbrMetallicRoughness.baseColorFactor[3];
96
+ }
97
+ if (material.pbrMetallicRoughness.baseColorTexture !== undefined) {
98
+ const baseColorTextureOptions = material.pbrMetallicRoughness.baseColorTexture.extensions && material.pbrMetallicRoughness.baseColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.pbrMetallicRoughness.baseColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
99
+ unlitMaterialDataProperties.map = this.loadMap(material.pbrMetallicRoughness.baseColorTexture.index, baseColorTextureOptions);
100
+ }
101
+ }
102
+ }
103
+ else {
104
+ const standardMaterialDataProperties = materialDataProperties;
105
+ if (material.pbrMetallicRoughness !== undefined) {
106
+ standardMaterialDataProperties.color = '#ffffff';
107
+ if (material.pbrMetallicRoughness.baseColorFactor !== undefined) {
108
+ standardMaterialDataProperties.color = this._converter.toColor([material.pbrMetallicRoughness.baseColorFactor[0] * 255, material.pbrMetallicRoughness.baseColorFactor[1] * 255, material.pbrMetallicRoughness.baseColorFactor[2] * 255]);
109
+ standardMaterialDataProperties.opacity = material.pbrMetallicRoughness.baseColorFactor[3];
110
+ }
111
+ if (material.pbrMetallicRoughness.baseColorTexture !== undefined) {
112
+ const baseColorTextureOptions = material.pbrMetallicRoughness.baseColorTexture.extensions && material.pbrMetallicRoughness.baseColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.pbrMetallicRoughness.baseColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
113
+ standardMaterialDataProperties.map = this.loadMap(material.pbrMetallicRoughness.baseColorTexture.index, baseColorTextureOptions);
114
+ }
115
+ if (material.pbrMetallicRoughness.metallicFactor !== undefined) {
116
+ standardMaterialDataProperties.metalness = material.pbrMetallicRoughness.metallicFactor;
117
+ }
118
+ if (material.pbrMetallicRoughness.roughnessFactor !== undefined) {
119
+ standardMaterialDataProperties.roughness = material.pbrMetallicRoughness.roughnessFactor;
120
+ }
121
+ if (material.pbrMetallicRoughness.metallicRoughnessTexture !== undefined) {
122
+ const metallicRoughnessTextureOptions = material.pbrMetallicRoughness.metallicRoughnessTexture.extensions && material.pbrMetallicRoughness.metallicRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.pbrMetallicRoughness.metallicRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
123
+ standardMaterialDataProperties.metalnessRoughnessMap = this.loadMap(material.pbrMetallicRoughness.metallicRoughnessTexture.index, metallicRoughnessTextureOptions);
124
+ }
125
+ }
126
+ }
127
+ /**
128
+ * Loading of the general properties
129
+ */
130
+ if (material.normalTexture !== undefined) {
131
+ const normalTextureOptions = material.normalTexture.extensions && material.normalTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.normalTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
132
+ materialDataProperties.normalMap = this.loadMap(material.normalTexture.index, normalTextureOptions);
133
+ materialDataProperties.normalScale = 1;
134
+ if (material.normalTexture.scale !== undefined) {
135
+ materialDataProperties.normalScale = material.normalTexture.scale;
136
+ }
137
+ }
138
+ if (material.occlusionTexture !== undefined) {
139
+ const occlusionTextureOptions = material.occlusionTexture.extensions && material.occlusionTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.occlusionTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
140
+ materialDataProperties.aoMap = this.loadMap(material.occlusionTexture.index, occlusionTextureOptions);
141
+ if (material.occlusionTexture.strength !== undefined) {
142
+ materialDataProperties.aoMapIntensity = material.occlusionTexture.strength;
143
+ }
144
+ }
145
+ if (material.emissiveTexture !== undefined) {
146
+ const emissiveTextureOptions = material.emissiveTexture.extensions && material.emissiveTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? material.emissiveTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
147
+ materialDataProperties.emissiveMap = this.loadMap(material.emissiveTexture.index, emissiveTextureOptions);
148
+ }
149
+ if (material.emissiveFactor !== undefined) {
150
+ materialDataProperties.emissiveness = this._converter.toColor([material.emissiveFactor[0] * 255, material.emissiveFactor[1] * 255, material.emissiveFactor[2] * 255]);
151
+ }
152
+ if (material.alphaMode !== undefined) {
153
+ materialDataProperties.alphaMode = material.alphaMode.toLowerCase() === viewer_shared_types_1.MATERIAL_ALPHA.MASK ? viewer_shared_types_1.MATERIAL_ALPHA.MASK : material.alphaMode.toLowerCase() === viewer_shared_types_1.MATERIAL_ALPHA.BLEND ? viewer_shared_types_1.MATERIAL_ALPHA.BLEND : viewer_shared_types_1.MATERIAL_ALPHA.OPAQUE;
154
+ if (materialDataProperties.alphaMode === viewer_shared_types_1.MATERIAL_ALPHA.MASK) {
155
+ materialDataProperties.alphaCutoff = material.alphaCutoff !== undefined ? material.alphaCutoff : 0.5;
156
+ }
157
+ }
158
+ if (material.alphaCutoff !== undefined) {
159
+ materialDataProperties.alphaCutoff = material.alphaCutoff;
160
+ }
161
+ if (material.doubleSided !== undefined) {
162
+ materialDataProperties.side = material.doubleSided ? viewer_shared_types_1.MATERIAL_SIDE.DOUBLE : viewer_shared_types_1.MATERIAL_SIDE.FRONT;
163
+ }
164
+ /**
165
+ * Early exit for specular glossiness and unlit materials
166
+ */
167
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_PBRSPECULARGLOSSINESS]) {
168
+ const specularGlossinessMaterialDataProperties = materialDataProperties;
169
+ this._loaded[materialId] = new viewer_shared_types_1.MaterialSpecularGlossinessData(specularGlossinessMaterialDataProperties);
170
+ continue;
171
+ }
172
+ else if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_UNLIT]) {
173
+ const unlitMaterialDataProperties = materialDataProperties;
174
+ this._loaded[materialId] = new viewer_shared_types_1.MaterialUnlitData(unlitMaterialDataProperties);
175
+ continue;
176
+ }
177
+ const standardMaterialDataProperties = materialDataProperties;
178
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_CLEARCOAT]) {
179
+ const clearcoatExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_CLEARCOAT];
180
+ if (clearcoatExtension.clearcoatFactor !== undefined) {
181
+ standardMaterialDataProperties.clearcoat = clearcoatExtension.clearcoatFactor;
182
+ }
183
+ if (clearcoatExtension.clearcoatTexture !== undefined) {
184
+ const clearcoatTextureOptions = clearcoatExtension.clearcoatTexture.extensions && clearcoatExtension.clearcoatTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? clearcoatExtension.clearcoatTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
185
+ standardMaterialDataProperties.clearcoatMap = this.loadMap(clearcoatExtension.clearcoatTexture.index, clearcoatTextureOptions);
186
+ }
187
+ if (clearcoatExtension.clearcoatRoughnessFactor !== undefined) {
188
+ standardMaterialDataProperties.clearcoatRoughness = clearcoatExtension.clearcoatRoughnessFactor;
189
+ }
190
+ if (clearcoatExtension.clearcoatRoughnessTexture !== undefined) {
191
+ const clearcoatRoughnessTextureOptions = clearcoatExtension.clearcoatRoughnessTexture.extensions && clearcoatExtension.clearcoatRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? clearcoatExtension.clearcoatRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
192
+ standardMaterialDataProperties.clearcoatRoughnessMap = this.loadMap(clearcoatExtension.clearcoatRoughnessTexture.index, clearcoatRoughnessTextureOptions);
193
+ }
194
+ if (clearcoatExtension.clearcoatNormalTexture !== undefined) {
195
+ const clearcoatNormalTextureOptions = clearcoatExtension.clearcoatNormalTexture.extensions && clearcoatExtension.clearcoatNormalTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? clearcoatExtension.clearcoatNormalTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
196
+ standardMaterialDataProperties.clearcoatNormalMap = this.loadMap(clearcoatExtension.clearcoatNormalTexture.index, clearcoatNormalTextureOptions);
197
+ }
198
+ }
199
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_IOR]) {
200
+ const iorExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_IOR];
201
+ if (iorExtension.ior !== undefined) {
202
+ standardMaterialDataProperties.ior = iorExtension.ior;
203
+ }
204
+ }
205
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_TRANSMISSION]) {
206
+ const transmissionExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_TRANSMISSION];
207
+ if (transmissionExtension.transmissionFactor !== undefined) {
208
+ standardMaterialDataProperties.transmission = transmissionExtension.transmissionFactor;
209
+ }
210
+ if (transmissionExtension.transmissionTexture !== undefined) {
211
+ const transmissionTextureOptions = transmissionExtension.transmissionTexture.extensions && transmissionExtension.transmissionTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? transmissionExtension.transmissionTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
212
+ standardMaterialDataProperties.transmissionMap = this.loadMap(transmissionExtension.transmissionTexture.index, transmissionTextureOptions);
213
+ }
214
+ }
215
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_VOLUME]) {
216
+ const volumeExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_VOLUME];
217
+ if (volumeExtension.thicknessFactor !== undefined) {
218
+ standardMaterialDataProperties.thickness = volumeExtension.thicknessFactor;
219
+ }
220
+ if (volumeExtension.thicknessTexture !== undefined) {
221
+ const thicknessTextureOptions = volumeExtension.thicknessTexture.extensions && volumeExtension.thicknessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? volumeExtension.thicknessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
222
+ standardMaterialDataProperties.thicknessMap = this.loadMap(volumeExtension.thicknessTexture.index, thicknessTextureOptions);
223
+ }
224
+ if (volumeExtension.attenuationDistance !== undefined) {
225
+ standardMaterialDataProperties.attenuationDistance = volumeExtension.attenuationDistance;
226
+ }
227
+ if (volumeExtension.attenuationColor !== undefined) {
228
+ standardMaterialDataProperties.attenuationColor = this._converter.toColor([volumeExtension.attenuationColor[0] * 255, volumeExtension.attenuationColor[1] * 255, volumeExtension.attenuationColor[2] * 255]);
229
+ }
230
+ }
231
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_SHEEN]) {
232
+ const sheenExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_SHEEN];
233
+ standardMaterialDataProperties.sheen = 1.0;
234
+ if (sheenExtension.sheenColorFactor !== undefined) {
235
+ standardMaterialDataProperties.sheenColor = this._converter.toColor([sheenExtension.sheenColorFactor[0] * 255, sheenExtension.sheenColorFactor[1] * 255, sheenExtension.sheenColorFactor[2] * 255]);
236
+ }
237
+ if (sheenExtension.sheenRoughnessFactor !== undefined) {
238
+ standardMaterialDataProperties.sheenRoughness = sheenExtension.sheenRoughnessFactor;
239
+ }
240
+ if (sheenExtension.sheenColorTexture !== undefined) {
241
+ const sheenColorTextureOptions = sheenExtension.sheenColorTexture.extensions && sheenExtension.sheenColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? sheenExtension.sheenColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
242
+ standardMaterialDataProperties.sheenColorMap = this.loadMap(sheenExtension.sheenColorTexture.index, sheenColorTextureOptions);
243
+ }
244
+ if (sheenExtension.sheenRoughnessTexture !== undefined) {
245
+ const sheenRoughnessTextureOptions = sheenExtension.sheenRoughnessTexture.extensions && sheenExtension.sheenRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? sheenExtension.sheenRoughnessTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
246
+ standardMaterialDataProperties.sheenRoughnessMap = this.loadMap(sheenExtension.sheenRoughnessTexture.index, sheenRoughnessTextureOptions);
247
+ }
248
+ }
249
+ if (materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_SPECULAR]) {
250
+ const specularExtension = materialExtensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_MATERIALS_SPECULAR];
251
+ if (specularExtension.specularFactor !== undefined) {
252
+ standardMaterialDataProperties.specularIntensity = specularExtension.specularFactor;
253
+ }
254
+ if (specularExtension.specularColorFactor !== undefined) {
255
+ standardMaterialDataProperties.specularColor = this._converter.toColor([specularExtension.specularColorFactor[0] * 255, specularExtension.specularColorFactor[1] * 255, specularExtension.specularColorFactor[2] * 255]);
256
+ }
257
+ if (specularExtension.specularColorTexture !== undefined) {
258
+ const specularColorTextureOptions = specularExtension.specularColorTexture.extensions && specularExtension.specularColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? specularExtension.specularColorTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
259
+ standardMaterialDataProperties.specularColorMap = this.loadMap(specularExtension.specularColorTexture.index, specularColorTextureOptions);
260
+ }
261
+ if (specularExtension.specularTexture !== undefined) {
262
+ const specularTextureOptions = specularExtension.specularTexture.extensions && specularExtension.specularTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] ? specularExtension.specularTexture.extensions[GLTFLoader_1.GLTF_EXTENSIONS.KHR_TEXTURE_TRANSFORM] : undefined;
263
+ standardMaterialDataProperties.specularIntensityMap = this.loadMap(specularExtension.specularTexture.index, specularTextureOptions);
264
+ }
265
+ }
266
+ this._loaded[materialId] = new viewer_shared_types_1.MaterialStandardData(standardMaterialDataProperties);
267
+ }
268
+ yield Promise.all(promises);
269
+ });
270
+ }
271
+ // #endregion Public Methods (2)
272
+ // #region Private Methods (1)
273
+ loadMap(textureId, properties) {
274
+ if (!this._content.textures)
275
+ throw new Error('Textures not available.');
276
+ const texture = this._content.textures[textureId];
277
+ if (!this._content.images)
278
+ throw new Error('Images not available.');
279
+ const sampler = this._content.samplers && texture.sampler && this._content.samplers[texture.sampler] ? this._content.samplers[texture.sampler] : {};
280
+ const htmlImage = this._textureLoader.getTexture(textureId);
281
+ return new viewer_shared_types_1.MapData(htmlImage, sampler.wrapS, sampler.wrapT, sampler.minFilter, sampler.magFilter, undefined, undefined, properties && properties.offset ? gl_matrix_1.vec2.fromValues(properties.offset[0], properties.offset[1]) : undefined, properties && properties.scale ? gl_matrix_1.vec2.fromValues(properties.scale[0], properties.scale[1]) : undefined, properties && properties.rotation !== undefined ? properties.rotation : 0, false);
282
+ ;
283
+ }
284
+ }
285
+ exports.MaterialLoader = MaterialLoader;
286
+ //# sourceMappingURL=MaterialLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialLoader.js","sourceRoot":"","sources":["../../../src/gltfv2/loaders/MaterialLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { IGLTF_v2 } from '@shapediver/viewer.data-engine.shared-types';
2
+ import { BufferViewLoader } from './BufferViewLoader';
3
+ export declare class TextureLoader {
4
+ private readonly _content;
5
+ private readonly _bufferViewLoader;
6
+ private _baseUri?;
7
+ private readonly _converter;
8
+ private readonly _httpClient;
9
+ private _loadData;
10
+ private _loaded;
11
+ constructor(_content: IGLTF_v2, _bufferViewLoader: BufferViewLoader, _baseUri?: string | undefined);
12
+ getTexture(textureId: number): HTMLImageElement;
13
+ load(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=TextureLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureLoader.d.ts","sourceRoot":"","sources":["../../../src/gltfv2/loaders/TextureLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AAMtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,aAAa;IAeV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAY,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAAoB,OAAO,CAAC,QAAQ,CAAC;IAZxH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IAErF,OAAO,CAAC,SAAS,CAAkG;IACnH,OAAO,CAAC,OAAO,CAER;gBAMsB,QAAQ,EAAE,QAAQ,EAAmB,iBAAiB,EAAE,gBAAgB,EAAU,QAAQ,CAAC,oBAAQ;IAMzH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAOzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAsDrC"}
@@ -0,0 +1,88 @@
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.TextureLoader = void 0;
13
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
14
+ const tsyringe_1 = require("tsyringe");
15
+ class TextureLoader {
16
+ // #endregion Properties (4)
17
+ // #region Constructors (1)
18
+ constructor(_content, _bufferViewLoader, _baseUri) {
19
+ this._content = _content;
20
+ this._bufferViewLoader = _bufferViewLoader;
21
+ this._baseUri = _baseUri;
22
+ // #region Properties (4)
23
+ this._converter = tsyringe_1.container.resolve(viewer_shared_services_1.Converter);
24
+ this._httpClient = tsyringe_1.container.resolve(viewer_shared_services_1.HttpClient);
25
+ this._loadData = this._httpClient.loadData.bind(this._httpClient);
26
+ this._loaded = {};
27
+ }
28
+ // #endregion Constructors (1)
29
+ // #region Public Methods (2)
30
+ getTexture(textureId) {
31
+ if (!this._content.textures)
32
+ throw new Error('TextureLoader.getTexture: Textures not available.');
33
+ if (!this._content.textures[textureId])
34
+ throw new Error('TextureLoader.getTexture: Texture not available.');
35
+ if (!this._loaded[textureId])
36
+ throw new Error('TextureLoader.getTexture: Texture not loaded.');
37
+ return this._loaded[textureId];
38
+ }
39
+ load() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ if (!this._content.textures)
42
+ return;
43
+ let promises = [];
44
+ for (let i = 0; i < this._content.textures.length; i++) {
45
+ const textureId = i;
46
+ const texture = this._content.textures[textureId];
47
+ if (!this._content.images)
48
+ throw new Error('TextureLoader.load: Images not available.');
49
+ const image = this._content.images[texture.source];
50
+ const DATA_URI_REGEX = /^data:(.*?)(;base64)?,(.*)$/;
51
+ const HTTPS_URI_REGEX = /^https:\/\//;
52
+ if (image.bufferView !== undefined) {
53
+ const bufferView = this._bufferViewLoader.getBufferView(image.bufferView);
54
+ const dataView = new DataView(bufferView);
55
+ const array = [];
56
+ for (let i = 0; i < dataView.byteLength; i += 1)
57
+ array[i] = dataView.getUint8(i);
58
+ const blob = new Blob([new Uint8Array(array)], { type: image.mimeType });
59
+ const dataUri = window.URL.createObjectURL(blob);
60
+ promises.push(new Promise(resolve => {
61
+ this._loadData(dataUri)
62
+ .then(response => {
63
+ this._converter.responseToImage(response).then(img => {
64
+ this._loaded[textureId] = img;
65
+ resolve();
66
+ });
67
+ });
68
+ }));
69
+ }
70
+ else {
71
+ const url = DATA_URI_REGEX.test(image.uri) || HTTPS_URI_REGEX.test(image.uri) ? image.uri : `${this._baseUri}/${image.uri}`;
72
+ promises.push(new Promise(resolve => {
73
+ this._loadData(url)
74
+ .then(response => {
75
+ this._converter.responseToImage(response).then(img => {
76
+ this._loaded[textureId] = img;
77
+ resolve();
78
+ });
79
+ });
80
+ }));
81
+ }
82
+ }
83
+ yield Promise.all(promises);
84
+ });
85
+ }
86
+ }
87
+ exports.TextureLoader = TextureLoader;
88
+ //# sourceMappingURL=TextureLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureLoader.js","sourceRoot":"","sources":["../../../src/gltfv2/loaders/TextureLoader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.data-engine.geometry-engine",
3
- "version": "1.13.8",
3
+ "version": "1.14.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -36,16 +36,23 @@
36
36
  "testEnvironment": "node"
37
37
  },
38
38
  "dependencies": {
39
- "@shapediver/sdk.geometry-api-sdk-v2": "^1.0.17",
40
- "@shapediver/viewer.data-engine.material-engine": "1.13.8",
41
- "@shapediver/viewer.data-engine.shared-types": "1.13.8",
42
- "@shapediver/viewer.shared.build-data": "1.13.8",
43
- "@shapediver/viewer.shared.node-tree": "1.13.8",
44
- "@shapediver/viewer.shared.services": "1.13.8",
45
- "@shapediver/viewer.shared.types": "1.13.8",
39
+ "@shapediver/sdk.geometry-api-sdk-v2": "^1.0.19",
40
+ "@shapediver/viewer.data-engine.material-engine": "1.14.0",
41
+ "@shapediver/viewer.data-engine.shared-types": "1.14.0",
42
+ "@shapediver/viewer.rendering-engine.camera-engine": "1.14.0",
43
+ "@shapediver/viewer.rendering-engine.light-engine": "1.14.0",
44
+ "@shapediver/viewer.shared.build-data": "1.14.0",
45
+ "@shapediver/viewer.shared.node-tree": "1.14.0",
46
+ "@shapediver/viewer.shared.services": "1.14.0",
47
+ "@shapediver/viewer.shared.types": "1.14.0",
46
48
  "axios": "^0.21.1",
47
49
  "gl-matrix": "3.3.0",
48
50
  "tsyringe": "^4.5.0"
49
51
  },
50
- "gitHead": "88ceb3fac0981816fb2e86d701615f80cfcc1dec"
52
+ "browser": {
53
+ "fs": false,
54
+ "path": false,
55
+ "os": false
56
+ },
57
+ "gitHead": "48bfee801d2e545d41eee1d25f874e7d12b54d7c"
51
58
  }