redhotmagma-visualization 1.41.0 → 1.42.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/AlignTargetProvider.js +50 -79
- package/CommonUtils/Deferred.js +11 -38
- package/CommonUtils/Observable.js +29 -48
- package/CommonUtils/PropertyObserver.js +10 -17
- package/CommonUtils/SyncCurrentFunction.js +33 -42
- package/CommonUtils/SyncObservableEvent.js +2 -6
- package/CommonUtils/pointerEvent.js +50 -98
- package/Constants.js +6 -6
- package/DevApp.js +187 -309
- package/ExposedModules.js +2 -9
- package/FallbackVisualization.js +4 -10
- package/PrintingEffects/ColorEmbossingEffect.js +15 -26
- package/PrintingEffects/DomingEffect.js +29 -52
- package/PrintingEffects/EmbossingEffect.js +17 -29
- package/PrintingEffects/EmbroideryEffect.js +251 -362
- package/PrintingEffects/EngravingEffect.js +17 -29
- package/PrintingEffects/PrintingEffects.js +44 -73
- package/PrintingEffects/PrintingEffectsUtils.js +1 -7
- package/React/ReactBase.js +15 -47
- package/Three/Controls/OrbitControls.js +105 -126
- package/Three/Exporters/glTFExporter.js +2 -6
- package/Three/Loaders/ColladaLoader.js +202 -550
- package/Three/Loaders/MTLLoader.js +33 -64
- package/Three/Loaders/OBJLoader.js +48 -80
- package/Three/Three2D.js +750 -1014
- package/Three/Three2DLayers.js +217 -341
- package/Three/Three3D.js +530 -800
- package/Three/Three3DScene.js +484 -780
- package/Three/ThreeBase.js +145 -230
- package/Utils/DesignArea/getDesignAreaCanvasSize.js +3 -11
- package/Utils/TextureBuilder/createTextureBuilder.js +133 -193
- package/Utils/TextureBuilder/textureBuilderFunctions.js +11 -27
- package/Utils/alignToElement.js +13 -24
- package/Utils/canvasBlur.js +27 -45
- package/Utils/createAlphaMapFromAlphaChannel.js +11 -21
- package/Utils/createBakedShadow.js +38 -42
- package/Utils/createCache.js +0 -4
- package/Utils/createCanvas.js +3 -9
- package/Utils/createImageRepository.js +63 -87
- package/Utils/disposeMaterial.js +4 -14
- package/Utils/getImageSize.js +1 -2
- package/Utils/imagePreloader.js +36 -48
- package/Utils/initTextureCanvas.js +6 -18
- package/Utils/isMobileDevice.js +3 -7
- package/Utils/optimizeTextureImage.js +13 -29
- package/Utils/rememberCameraViewOffset.js +8 -11
- package/Utils/removeObject.js +0 -4
- package/Utils/restrictCameraMovement.js +2 -12
- package/Utils/setLightShadow.js +3 -5
- package/Utils/setOrthographicCameraSize.js +0 -1
- package/Utils/updateFitSizeToElement.js +4 -9
- package/VisualizationContainer.js +37 -90
- package/VisualizationInterface.js +32 -67
- package/VisualizationProvider.js +5 -15
- package/index.js +2 -9
- package/package.json +6 -7
- package/scripts/cpPublicLocal.js +7 -2
- package/src/CommonUtils/Observable.js +1 -0
- package/src/CommonUtils/pointerEvent.js +17 -0
- package/src/Constants.js +2 -0
- package/src/DevApp.js +1 -2
- package/src/Three/Three2D.js +105 -1
- package/src/Three/ThreeBase.js +31 -3
- package/src/Utils/TextureBuilder/createTextureBuilder.js +12 -3
- package/src/VisualizationContainer.js +8 -2
- package/src/index.js +2 -3
- package/visualizationAdapterCreator.js +6 -23
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(
|
|
4
|
-
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var THREE_imp = _interopRequireWildcard(require("three"));
|
|
11
|
-
|
|
12
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
|
|
14
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
11
|
/* eslint-disable */
|
|
12
|
+
|
|
17
13
|
// original source: three/examples/js/loaders/MTLLoader
|
|
18
|
-
|
|
14
|
+
|
|
15
|
+
var THREE = THREE_imp;
|
|
16
|
+
|
|
17
|
+
// important: update file from here if needed
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
20
|
* Loads a Wavefront .mtl file specifying materials
|
|
@@ -26,11 +25,9 @@ var THREE = THREE_imp; // important: update file from here if needed
|
|
|
26
25
|
THREE.MTLLoader = function (manager) {
|
|
27
26
|
THREE.Loader.call(this, manager);
|
|
28
27
|
};
|
|
29
|
-
|
|
30
28
|
THREE.MTLLoader.prototype = {
|
|
31
29
|
constructor: THREE.MTLLoader,
|
|
32
30
|
crossOrigin: "anonymous",
|
|
33
|
-
|
|
34
31
|
/**
|
|
35
32
|
* Loads and parses a MTL asset from a URL.
|
|
36
33
|
*
|
|
@@ -53,7 +50,6 @@ THREE.MTLLoader.prototype = {
|
|
|
53
50
|
onLoad(scope.parse(text, path));
|
|
54
51
|
}, onProgress, onError);
|
|
55
52
|
},
|
|
56
|
-
|
|
57
53
|
/**
|
|
58
54
|
* Set base path for resolving references.
|
|
59
55
|
* If set this path will be prepended to each loaded and found reference.
|
|
@@ -70,7 +66,6 @@ THREE.MTLLoader.prototype = {
|
|
|
70
66
|
this.path = path;
|
|
71
67
|
return this;
|
|
72
68
|
},
|
|
73
|
-
|
|
74
69
|
/**
|
|
75
70
|
* Set base path for additional resources like textures.
|
|
76
71
|
*
|
|
@@ -99,7 +94,6 @@ THREE.MTLLoader.prototype = {
|
|
|
99
94
|
this.materialOptions = value;
|
|
100
95
|
return this;
|
|
101
96
|
},
|
|
102
|
-
|
|
103
97
|
/**
|
|
104
98
|
* Parses a MTL file.
|
|
105
99
|
*
|
|
@@ -116,24 +110,21 @@ THREE.MTLLoader.prototype = {
|
|
|
116
110
|
var info = {};
|
|
117
111
|
var delimiter_pattern = /\s+/;
|
|
118
112
|
var materialsInfo = {};
|
|
119
|
-
|
|
120
113
|
for (var i = 0; i < lines.length; i++) {
|
|
121
114
|
var line = lines[i];
|
|
122
115
|
line = line.trim();
|
|
123
|
-
|
|
124
116
|
if (line.length === 0 || line.charAt(0) === "#") {
|
|
125
117
|
// Blank line or comment ignore
|
|
126
118
|
continue;
|
|
127
119
|
}
|
|
128
|
-
|
|
129
120
|
var pos = line.indexOf(" ");
|
|
130
121
|
var key = pos >= 0 ? line.substring(0, pos) : line;
|
|
131
122
|
key = key.toLowerCase();
|
|
132
123
|
var value = pos >= 0 ? line.substring(pos + 1) : "";
|
|
133
124
|
value = value.trim();
|
|
134
|
-
|
|
135
125
|
if (key === "newmtl") {
|
|
136
126
|
// New material
|
|
127
|
+
|
|
137
128
|
info = {
|
|
138
129
|
name: value
|
|
139
130
|
};
|
|
@@ -147,7 +138,6 @@ THREE.MTLLoader.prototype = {
|
|
|
147
138
|
}
|
|
148
139
|
}
|
|
149
140
|
}
|
|
150
|
-
|
|
151
141
|
var materialCreator = new THREE.MTLLoader.MaterialCreator(this.resourcePath || path, this.materialOptions);
|
|
152
142
|
materialCreator.setCrossOrigin(this.crossOrigin);
|
|
153
143
|
materialCreator.setManager(this.manager);
|
|
@@ -155,6 +145,7 @@ THREE.MTLLoader.prototype = {
|
|
|
155
145
|
return materialCreator;
|
|
156
146
|
}
|
|
157
147
|
};
|
|
148
|
+
|
|
158
149
|
/**
|
|
159
150
|
* Create a new THREE-MTLLoader.MaterialCreator
|
|
160
151
|
* @param baseUrl - Url relative to which textures are loaded
|
|
@@ -180,7 +171,6 @@ THREE.MTLLoader.MaterialCreator = function (baseUrl, options) {
|
|
|
180
171
|
this.side = this.options && this.options.side ? this.options.side : THREE.FrontSide;
|
|
181
172
|
this.wrap = this.options && this.options.wrap ? this.options.wrap : THREE.RepeatWrapping;
|
|
182
173
|
};
|
|
183
|
-
|
|
184
174
|
THREE.MTLLoader.MaterialCreator.prototype = {
|
|
185
175
|
constructor: THREE.MTLLoader.MaterialCreator,
|
|
186
176
|
crossOrigin: "anonymous",
|
|
@@ -200,46 +190,41 @@ THREE.MTLLoader.MaterialCreator.prototype = {
|
|
|
200
190
|
convert: function convert(materialsInfo) {
|
|
201
191
|
if (!this.options) return materialsInfo;
|
|
202
192
|
var converted = {};
|
|
203
|
-
|
|
204
193
|
for (var mn in materialsInfo) {
|
|
205
194
|
// Convert materials info into normalized form based on options
|
|
195
|
+
|
|
206
196
|
var mat = materialsInfo[mn];
|
|
207
197
|
var covmat = {};
|
|
208
198
|
converted[mn] = covmat;
|
|
209
|
-
|
|
210
199
|
for (var prop in mat) {
|
|
211
200
|
var save = true;
|
|
212
201
|
var value = mat[prop];
|
|
213
202
|
var lprop = prop.toLowerCase();
|
|
214
|
-
|
|
215
203
|
switch (lprop) {
|
|
216
204
|
case "kd":
|
|
217
205
|
case "ka":
|
|
218
206
|
case "ks":
|
|
219
207
|
// Diffuse color (color under white light) using RGB values
|
|
208
|
+
|
|
220
209
|
if (this.options && this.options.normalizeRGB) {
|
|
221
210
|
value = [value[0] / 255, value[1] / 255, value[2] / 255];
|
|
222
211
|
}
|
|
223
|
-
|
|
224
212
|
if (this.options && this.options.ignoreZeroRGBs) {
|
|
225
213
|
if (value[0] === 0 && value[1] === 0 && value[2] === 0) {
|
|
226
214
|
// ignore
|
|
215
|
+
|
|
227
216
|
save = false;
|
|
228
217
|
}
|
|
229
218
|
}
|
|
230
|
-
|
|
231
219
|
break;
|
|
232
|
-
|
|
233
220
|
default:
|
|
234
221
|
break;
|
|
235
222
|
}
|
|
236
|
-
|
|
237
223
|
if (save) {
|
|
238
224
|
covmat[lprop] = value;
|
|
239
225
|
}
|
|
240
226
|
}
|
|
241
227
|
}
|
|
242
|
-
|
|
243
228
|
return converted;
|
|
244
229
|
},
|
|
245
230
|
preload: function preload() {
|
|
@@ -252,38 +237,35 @@ THREE.MTLLoader.MaterialCreator.prototype = {
|
|
|
252
237
|
},
|
|
253
238
|
getAsArray: function getAsArray() {
|
|
254
239
|
var index = 0;
|
|
255
|
-
|
|
256
240
|
for (var mn in this.materialsInfo) {
|
|
257
241
|
this.materialsArray[index] = this.create(mn);
|
|
258
242
|
this.nameLookup[mn] = index;
|
|
259
243
|
index++;
|
|
260
244
|
}
|
|
261
|
-
|
|
262
245
|
return this.materialsArray;
|
|
263
246
|
},
|
|
264
247
|
create: function create(materialName) {
|
|
265
248
|
if (this.materials[materialName] === undefined) {
|
|
266
249
|
this.createMaterial_(materialName);
|
|
267
250
|
}
|
|
268
|
-
|
|
269
251
|
return this.materials[materialName];
|
|
270
252
|
},
|
|
271
253
|
createMaterial_: function createMaterial_(materialName) {
|
|
272
254
|
// Create material
|
|
255
|
+
|
|
273
256
|
var scope = this;
|
|
274
257
|
var mat = this.materialsInfo[materialName];
|
|
275
258
|
var params = {
|
|
276
259
|
name: materialName,
|
|
277
260
|
side: this.side
|
|
278
261
|
};
|
|
279
|
-
|
|
280
262
|
function resolveURL(baseUrl, url) {
|
|
281
|
-
if (typeof url !== "string" || url === "") return "";
|
|
263
|
+
if (typeof url !== "string" || url === "") return "";
|
|
282
264
|
|
|
265
|
+
// Absolute URL
|
|
283
266
|
if (/^https?:\/\//i.test(url)) return url;
|
|
284
267
|
return baseUrl + url;
|
|
285
268
|
}
|
|
286
|
-
|
|
287
269
|
function setMapForType(mapType, value) {
|
|
288
270
|
if (params[mapType]) return; // Keep the first encountered texture
|
|
289
271
|
|
|
@@ -295,106 +277,99 @@ THREE.MTLLoader.MaterialCreator.prototype = {
|
|
|
295
277
|
map.wrapT = scope.wrap;
|
|
296
278
|
params[mapType] = map;
|
|
297
279
|
}
|
|
298
|
-
|
|
299
280
|
for (var prop in mat) {
|
|
300
281
|
var value = mat[prop];
|
|
301
282
|
var n;
|
|
302
283
|
if (value === "") continue;
|
|
303
|
-
|
|
304
284
|
switch (prop.toLowerCase()) {
|
|
305
285
|
// Ns is material specular exponent
|
|
286
|
+
|
|
306
287
|
case "kd":
|
|
307
288
|
// Diffuse color (color under white light) using RGB values
|
|
289
|
+
|
|
308
290
|
params.color = new THREE.Color().fromArray(value);
|
|
309
291
|
break;
|
|
310
|
-
|
|
311
292
|
case "ks":
|
|
312
293
|
// Specular color (color when light is reflected from shiny surface) using RGB values
|
|
313
294
|
params.specular = new THREE.Color().fromArray(value);
|
|
314
295
|
break;
|
|
315
|
-
|
|
316
296
|
case "ke":
|
|
317
297
|
// Emissive using RGB values
|
|
318
298
|
params.emissive = new THREE.Color().fromArray(value);
|
|
319
299
|
break;
|
|
320
|
-
|
|
321
300
|
case "map_kd":
|
|
322
301
|
// Diffuse texture map
|
|
302
|
+
|
|
323
303
|
setMapForType("map", value);
|
|
324
304
|
break;
|
|
325
|
-
|
|
326
305
|
case "map_ks":
|
|
327
306
|
// Specular map
|
|
307
|
+
|
|
328
308
|
setMapForType("specularMap", value);
|
|
329
309
|
break;
|
|
330
|
-
|
|
331
310
|
case "map_ke":
|
|
332
311
|
// Emissive map
|
|
312
|
+
|
|
333
313
|
setMapForType("emissiveMap", value);
|
|
334
314
|
break;
|
|
335
|
-
|
|
336
315
|
case "norm":
|
|
337
316
|
setMapForType("normalMap", value);
|
|
338
317
|
break;
|
|
339
|
-
|
|
340
318
|
case "map_bump":
|
|
341
319
|
case "bump":
|
|
342
320
|
// Bump texture map
|
|
321
|
+
|
|
343
322
|
setMapForType("bumpMap", value);
|
|
344
323
|
break;
|
|
345
|
-
|
|
346
324
|
case "map_d":
|
|
347
325
|
// Alpha map
|
|
326
|
+
|
|
348
327
|
setMapForType("alphaMap", value);
|
|
349
328
|
params.transparent = true;
|
|
350
329
|
break;
|
|
351
|
-
|
|
352
330
|
case "map_pm":
|
|
353
331
|
// Metalness map
|
|
354
|
-
|
|
332
|
+
|
|
333
|
+
setMapForType("metalnessMap", value);
|
|
334
|
+
|
|
335
|
+
// fine-tune the metalness value if needed
|
|
355
336
|
//params.metalness = 0.2;
|
|
356
337
|
|
|
357
338
|
break;
|
|
358
|
-
|
|
359
339
|
case "map_pr":
|
|
360
340
|
// Roughness map
|
|
361
|
-
|
|
341
|
+
|
|
342
|
+
setMapForType("roughnessMap", value);
|
|
343
|
+
|
|
344
|
+
// fine-tune the roughness value if needed
|
|
362
345
|
//params.roughness = 0.1;
|
|
363
346
|
|
|
364
347
|
break;
|
|
365
|
-
|
|
366
348
|
case "ns":
|
|
367
349
|
// The specular exponent (defines the focus of the specular highlight)
|
|
368
350
|
// A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.
|
|
351
|
+
|
|
369
352
|
params.shininess = parseFloat(value);
|
|
370
353
|
break;
|
|
371
|
-
|
|
372
354
|
case "d":
|
|
373
355
|
n = parseFloat(value);
|
|
374
|
-
|
|
375
356
|
if (n < 1) {
|
|
376
357
|
params.opacity = n;
|
|
377
358
|
params.transparent = true;
|
|
378
359
|
}
|
|
379
|
-
|
|
380
360
|
break;
|
|
381
|
-
|
|
382
361
|
case "tr":
|
|
383
362
|
n = parseFloat(value);
|
|
384
363
|
if (this.options && this.options.invertTrProperty) n = 1 - n;
|
|
385
|
-
|
|
386
364
|
if (n > 0) {
|
|
387
365
|
params.opacity = 1 - n;
|
|
388
366
|
params.transparent = true;
|
|
389
367
|
}
|
|
390
|
-
|
|
391
368
|
break;
|
|
392
|
-
|
|
393
369
|
default:
|
|
394
370
|
break;
|
|
395
371
|
}
|
|
396
372
|
}
|
|
397
|
-
|
|
398
373
|
this.materials[materialName] = new THREE.MeshStandardMaterial(params);
|
|
399
374
|
return this.materials[materialName];
|
|
400
375
|
},
|
|
@@ -406,21 +381,17 @@ THREE.MTLLoader.MaterialCreator.prototype = {
|
|
|
406
381
|
var items = value.split(/\s+/);
|
|
407
382
|
var pos;
|
|
408
383
|
pos = items.indexOf("-bm");
|
|
409
|
-
|
|
410
384
|
if (pos >= 0) {
|
|
411
385
|
matParams.bumpScale = parseFloat(items[pos + 1]);
|
|
412
386
|
items.splice(pos, 2);
|
|
413
387
|
}
|
|
414
|
-
|
|
415
388
|
pos = items.indexOf("-s");
|
|
416
|
-
|
|
417
389
|
if (pos >= 0) {
|
|
418
390
|
texParams.scale.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2]));
|
|
419
391
|
items.splice(pos, 4); // we expect 3 parameters here!
|
|
420
392
|
}
|
|
421
393
|
|
|
422
394
|
pos = items.indexOf("-o");
|
|
423
|
-
|
|
424
395
|
if (pos >= 0) {
|
|
425
396
|
texParams.offset.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2]));
|
|
426
397
|
items.splice(pos, 4); // we expect 3 parameters here!
|
|
@@ -433,17 +404,15 @@ THREE.MTLLoader.MaterialCreator.prototype = {
|
|
|
433
404
|
var texture;
|
|
434
405
|
var manager = this.manager !== undefined ? this.manager : THREE.DefaultLoadingManager;
|
|
435
406
|
var loader = manager.getHandler(url);
|
|
436
|
-
|
|
437
407
|
if (loader === null) {
|
|
438
408
|
loader = new THREE.TextureLoader(manager);
|
|
439
409
|
}
|
|
440
|
-
|
|
441
410
|
if (loader.setCrossOrigin) loader.setCrossOrigin(this.crossOrigin);
|
|
442
411
|
texture = loader.load(url, onLoad, onProgress, onError);
|
|
443
412
|
if (mapping !== undefined) texture.mapping = mapping;
|
|
444
413
|
return texture;
|
|
445
414
|
}
|
|
446
|
-
};
|
|
415
|
+
};
|
|
447
416
|
|
|
448
|
-
|
|
449
|
-
exports["default"] =
|
|
417
|
+
// important: don't forget to export it
|
|
418
|
+
var _default = exports["default"] = THREE.MTLLoader;
|