redhotmagma-visualization 1.44.9 → 1.45.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 (37) hide show
  1. package/Constants.js +1 -0
  2. package/DevApp.js +14 -0
  3. package/Three/Three2D.js +25 -4
  4. package/Three/Three3D.js +121 -83
  5. package/Three/Three3DScene.js +132 -58
  6. package/Utils/createBakedShadow.js +1 -2
  7. package/Utils/initTextureCanvas.js +3 -1
  8. package/Utils/optimizeTextureImage.js +1 -1
  9. package/Utils/rememberCameraViewOffset.js +12 -7
  10. package/Utils/restrictCameraMovement.js +2 -2
  11. package/package.json +3 -3
  12. package/public/libs/draco/README.md +2 -2
  13. package/public/libs/draco/draco_decoder.js +17 -35
  14. package/public/libs/draco/draco_decoder.wasm +0 -0
  15. package/public/libs/draco/draco_wasm_wrapper.js +117 -104
  16. package/public/libs/draco/gltf/draco_decoder.js +16 -31
  17. package/public/libs/draco/gltf/draco_decoder.wasm +0 -0
  18. package/public/libs/draco/gltf/draco_wasm_wrapper.js +116 -104
  19. package/src/Constants.js +1 -0
  20. package/src/DevApp.js +12 -0
  21. package/src/Three/Three2D.js +4 -3
  22. package/src/Three/Three3D.js +15 -8
  23. package/src/Three/Three3DScene.js +85 -29
  24. package/src/Three/__tests__/Three3D.test.js +0 -33
  25. package/src/Utils/createBakedShadow.js +2 -4
  26. package/src/Utils/initTextureCanvas.js +2 -1
  27. package/src/Utils/optimizeTextureImage.js +1 -1
  28. package/src/Utils/rememberCameraViewOffset.js +5 -3
  29. package/src/Utils/restrictCameraMovement.js +1 -1
  30. package/Three/Controls/OrbitControls.js +0 -724
  31. package/Three/Loaders/ColladaLoader.js +0 -2568
  32. package/Three/Loaders/MTLLoader.js +0 -418
  33. package/Three/Loaders/OBJLoader.js +0 -516
  34. package/src/Three/Controls/OrbitControls.js +0 -934
  35. package/src/Three/Loaders/ColladaLoader.js +0 -3245
  36. package/src/Three/Loaders/MTLLoader.js +0 -512
  37. package/src/Three/Loaders/OBJLoader.js +0 -640
@@ -1,418 +0,0 @@
1
- "use strict";
2
-
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); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var THREE_imp = _interopRequireWildcard(require("three"));
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); }
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; }
11
- /* eslint-disable */
12
-
13
- // original source: three/examples/js/loaders/MTLLoader
14
-
15
- var THREE = THREE_imp;
16
-
17
- // important: update file from here if needed
18
-
19
- /**
20
- * Loads a Wavefront .mtl file specifying materials
21
- *
22
- * @author angelxuanchang
23
- */
24
-
25
- THREE.MTLLoader = function (manager) {
26
- THREE.Loader.call(this, manager);
27
- };
28
- THREE.MTLLoader.prototype = {
29
- constructor: THREE.MTLLoader,
30
- crossOrigin: "anonymous",
31
- /**
32
- * Loads and parses a MTL asset from a URL.
33
- *
34
- * @param {String} url - URL to the MTL file.
35
- * @param {Function} [onLoad] - Callback invoked with the loaded object.
36
- * @param {Function} [onProgress] - Callback for download progress.
37
- * @param {Function} [onError] - Callback for download errors.
38
- *
39
- * @see setPath setResourcePath
40
- *
41
- * @note In order for relative texture references to resolve correctly
42
- * you must call setResourcePath() explicitly prior to load.
43
- */
44
- load: function load(url, onLoad, onProgress, onError) {
45
- var scope = this;
46
- var path = this.path === undefined ? THREE.LoaderUtils.extractUrlBase(url) : this.path;
47
- var loader = new THREE.FileLoader(this.manager);
48
- loader.setPath(this.path);
49
- loader.load(url, function (text) {
50
- onLoad(scope.parse(text, path));
51
- }, onProgress, onError);
52
- },
53
- /**
54
- * Set base path for resolving references.
55
- * If set this path will be prepended to each loaded and found reference.
56
- *
57
- * @see setResourcePath
58
- * @param {String} path
59
- * @return {THREE.MTLLoader}
60
- *
61
- * @example
62
- * mtlLoader.setPath( 'assets/obj/' );
63
- * mtlLoader.load( 'my.mtl', ... );
64
- */
65
- setPath: function setPath(path) {
66
- this.path = path;
67
- return this;
68
- },
69
- /**
70
- * Set base path for additional resources like textures.
71
- *
72
- * @see setPath
73
- * @param {String} path
74
- * @return {THREE.MTLLoader}
75
- *
76
- * @example
77
- * mtlLoader.setPath( 'assets/obj/' );
78
- * mtlLoader.setResourcePath( 'assets/textures/' );
79
- * mtlLoader.load( 'my.mtl', ... );
80
- */
81
- setResourcePath: function setResourcePath(path) {
82
- this.resourcePath = path;
83
- return this;
84
- },
85
- setTexturePath: function setTexturePath(path) {
86
- console.warn("THREE.MTLLoader: .setTexturePath() has been renamed to .setResourcePath().");
87
- return this.setResourcePath(path);
88
- },
89
- setCrossOrigin: function setCrossOrigin(value) {
90
- this.crossOrigin = value;
91
- return this;
92
- },
93
- setMaterialOptions: function setMaterialOptions(value) {
94
- this.materialOptions = value;
95
- return this;
96
- },
97
- /**
98
- * Parses a MTL file.
99
- *
100
- * @param {String} text - Content of MTL file
101
- * @return {THREE.MTLLoader.MaterialCreator}
102
- *
103
- * @see setPath setResourcePath
104
- *
105
- * @note In order for relative texture references to resolve correctly
106
- * you must call setResourcePath() explicitly prior to parse.
107
- */
108
- parse: function parse(text, path) {
109
- var lines = text.split("\n");
110
- var info = {};
111
- var delimiter_pattern = /\s+/;
112
- var materialsInfo = {};
113
- for (var i = 0; i < lines.length; i++) {
114
- var line = lines[i];
115
- line = line.trim();
116
- if (line.length === 0 || line.charAt(0) === "#") {
117
- // Blank line or comment ignore
118
- continue;
119
- }
120
- var pos = line.indexOf(" ");
121
- var key = pos >= 0 ? line.substring(0, pos) : line;
122
- key = key.toLowerCase();
123
- var value = pos >= 0 ? line.substring(pos + 1) : "";
124
- value = value.trim();
125
- if (key === "newmtl") {
126
- // New material
127
-
128
- info = {
129
- name: value
130
- };
131
- materialsInfo[value] = info;
132
- } else {
133
- if (key === "ka" || key === "kd" || key === "ks" || key === "ke") {
134
- var ss = value.split(delimiter_pattern, 3);
135
- info[key] = [parseFloat(ss[0]), parseFloat(ss[1]), parseFloat(ss[2])];
136
- } else {
137
- info[key] = value;
138
- }
139
- }
140
- }
141
- var materialCreator = new THREE.MTLLoader.MaterialCreator(this.resourcePath || path, this.materialOptions);
142
- materialCreator.setCrossOrigin(this.crossOrigin);
143
- materialCreator.setManager(this.manager);
144
- materialCreator.setMaterials(materialsInfo);
145
- return materialCreator;
146
- }
147
- };
148
-
149
- /**
150
- * Create a new THREE-MTLLoader.MaterialCreator
151
- * @param baseUrl - Url relative to which textures are loaded
152
- * @param options - Set of options on how to construct the materials
153
- * side: Which side to apply the material
154
- * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide
155
- * wrap: What type of wrapping to apply for textures
156
- * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping
157
- * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255
158
- * Default: false, assumed to be already normalized
159
- * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's
160
- * Default: false
161
- * @constructor
162
- */
163
-
164
- THREE.MTLLoader.MaterialCreator = function (baseUrl, options) {
165
- this.baseUrl = baseUrl || "";
166
- this.options = options;
167
- this.materialsInfo = {};
168
- this.materials = {};
169
- this.materialsArray = [];
170
- this.nameLookup = {};
171
- this.side = this.options && this.options.side ? this.options.side : THREE.FrontSide;
172
- this.wrap = this.options && this.options.wrap ? this.options.wrap : THREE.RepeatWrapping;
173
- };
174
- THREE.MTLLoader.MaterialCreator.prototype = {
175
- constructor: THREE.MTLLoader.MaterialCreator,
176
- crossOrigin: "anonymous",
177
- setCrossOrigin: function setCrossOrigin(value) {
178
- this.crossOrigin = value;
179
- return this;
180
- },
181
- setManager: function setManager(value) {
182
- this.manager = value;
183
- },
184
- setMaterials: function setMaterials(materialsInfo) {
185
- this.materialsInfo = this.convert(materialsInfo);
186
- this.materials = {};
187
- this.materialsArray = [];
188
- this.nameLookup = {};
189
- },
190
- convert: function convert(materialsInfo) {
191
- if (!this.options) return materialsInfo;
192
- var converted = {};
193
- for (var mn in materialsInfo) {
194
- // Convert materials info into normalized form based on options
195
-
196
- var mat = materialsInfo[mn];
197
- var covmat = {};
198
- converted[mn] = covmat;
199
- for (var prop in mat) {
200
- var save = true;
201
- var value = mat[prop];
202
- var lprop = prop.toLowerCase();
203
- switch (lprop) {
204
- case "kd":
205
- case "ka":
206
- case "ks":
207
- // Diffuse color (color under white light) using RGB values
208
-
209
- if (this.options && this.options.normalizeRGB) {
210
- value = [value[0] / 255, value[1] / 255, value[2] / 255];
211
- }
212
- if (this.options && this.options.ignoreZeroRGBs) {
213
- if (value[0] === 0 && value[1] === 0 && value[2] === 0) {
214
- // ignore
215
-
216
- save = false;
217
- }
218
- }
219
- break;
220
- default:
221
- break;
222
- }
223
- if (save) {
224
- covmat[lprop] = value;
225
- }
226
- }
227
- }
228
- return converted;
229
- },
230
- preload: function preload() {
231
- for (var mn in this.materialsInfo) {
232
- this.create(mn);
233
- }
234
- },
235
- getIndex: function getIndex(materialName) {
236
- return this.nameLookup[materialName];
237
- },
238
- getAsArray: function getAsArray() {
239
- var index = 0;
240
- for (var mn in this.materialsInfo) {
241
- this.materialsArray[index] = this.create(mn);
242
- this.nameLookup[mn] = index;
243
- index++;
244
- }
245
- return this.materialsArray;
246
- },
247
- create: function create(materialName) {
248
- if (this.materials[materialName] === undefined) {
249
- this.createMaterial_(materialName);
250
- }
251
- return this.materials[materialName];
252
- },
253
- createMaterial_: function createMaterial_(materialName) {
254
- // Create material
255
-
256
- var scope = this;
257
- var mat = this.materialsInfo[materialName];
258
- var params = {
259
- name: materialName,
260
- side: this.side
261
- };
262
- function resolveURL(baseUrl, url) {
263
- if (typeof url !== "string" || url === "") return "";
264
-
265
- // Absolute URL
266
- if (/^https?:\/\//i.test(url)) return url;
267
- return baseUrl + url;
268
- }
269
- function setMapForType(mapType, value) {
270
- if (params[mapType]) return; // Keep the first encountered texture
271
-
272
- var texParams = scope.getTextureParams(value, params);
273
- var map = scope.loadTexture(resolveURL(scope.baseUrl, texParams.url));
274
- map.repeat.copy(texParams.scale);
275
- map.offset.copy(texParams.offset);
276
- map.wrapS = scope.wrap;
277
- map.wrapT = scope.wrap;
278
- params[mapType] = map;
279
- }
280
- for (var prop in mat) {
281
- var value = mat[prop];
282
- var n;
283
- if (value === "") continue;
284
- switch (prop.toLowerCase()) {
285
- // Ns is material specular exponent
286
-
287
- case "kd":
288
- // Diffuse color (color under white light) using RGB values
289
-
290
- params.color = new THREE.Color().fromArray(value);
291
- break;
292
- case "ks":
293
- // Specular color (color when light is reflected from shiny surface) using RGB values
294
- params.specular = new THREE.Color().fromArray(value);
295
- break;
296
- case "ke":
297
- // Emissive using RGB values
298
- params.emissive = new THREE.Color().fromArray(value);
299
- break;
300
- case "map_kd":
301
- // Diffuse texture map
302
-
303
- setMapForType("map", value);
304
- break;
305
- case "map_ks":
306
- // Specular map
307
-
308
- setMapForType("specularMap", value);
309
- break;
310
- case "map_ke":
311
- // Emissive map
312
-
313
- setMapForType("emissiveMap", value);
314
- break;
315
- case "norm":
316
- setMapForType("normalMap", value);
317
- break;
318
- case "map_bump":
319
- case "bump":
320
- // Bump texture map
321
-
322
- setMapForType("bumpMap", value);
323
- break;
324
- case "map_d":
325
- // Alpha map
326
-
327
- setMapForType("alphaMap", value);
328
- params.transparent = true;
329
- break;
330
- case "map_pm":
331
- // Metalness map
332
-
333
- setMapForType("metalnessMap", value);
334
-
335
- // fine-tune the metalness value if needed
336
- //params.metalness = 0.2;
337
-
338
- break;
339
- case "map_pr":
340
- // Roughness map
341
-
342
- setMapForType("roughnessMap", value);
343
-
344
- // fine-tune the roughness value if needed
345
- //params.roughness = 0.1;
346
-
347
- break;
348
- case "ns":
349
- // The specular exponent (defines the focus of the specular highlight)
350
- // A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.
351
-
352
- params.shininess = parseFloat(value);
353
- break;
354
- case "d":
355
- n = parseFloat(value);
356
- if (n < 1) {
357
- params.opacity = n;
358
- params.transparent = true;
359
- }
360
- break;
361
- case "tr":
362
- n = parseFloat(value);
363
- if (this.options && this.options.invertTrProperty) n = 1 - n;
364
- if (n > 0) {
365
- params.opacity = 1 - n;
366
- params.transparent = true;
367
- }
368
- break;
369
- default:
370
- break;
371
- }
372
- }
373
- this.materials[materialName] = new THREE.MeshStandardMaterial(params);
374
- return this.materials[materialName];
375
- },
376
- getTextureParams: function getTextureParams(value, matParams) {
377
- var texParams = {
378
- scale: new THREE.Vector2(1, 1),
379
- offset: new THREE.Vector2(0, 0)
380
- };
381
- var items = value.split(/\s+/);
382
- var pos;
383
- pos = items.indexOf("-bm");
384
- if (pos >= 0) {
385
- matParams.bumpScale = parseFloat(items[pos + 1]);
386
- items.splice(pos, 2);
387
- }
388
- pos = items.indexOf("-s");
389
- if (pos >= 0) {
390
- texParams.scale.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2]));
391
- items.splice(pos, 4); // we expect 3 parameters here!
392
- }
393
-
394
- pos = items.indexOf("-o");
395
- if (pos >= 0) {
396
- texParams.offset.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2]));
397
- items.splice(pos, 4); // we expect 3 parameters here!
398
- }
399
-
400
- texParams.url = items.join(" ").trim();
401
- return texParams;
402
- },
403
- loadTexture: function loadTexture(url, mapping, onLoad, onProgress, onError) {
404
- var texture;
405
- var manager = this.manager !== undefined ? this.manager : THREE.DefaultLoadingManager;
406
- var loader = manager.getHandler(url);
407
- if (loader === null) {
408
- loader = new THREE.TextureLoader(manager);
409
- }
410
- if (loader.setCrossOrigin) loader.setCrossOrigin(this.crossOrigin);
411
- texture = loader.load(url, onLoad, onProgress, onError);
412
- if (mapping !== undefined) texture.mapping = mapping;
413
- return texture;
414
- }
415
- };
416
-
417
- // important: don't forget to export it
418
- var _default = exports["default"] = THREE.MTLLoader;