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.
Files changed (67) hide show
  1. package/AlignTargetProvider.js +50 -79
  2. package/CommonUtils/Deferred.js +11 -38
  3. package/CommonUtils/Observable.js +29 -48
  4. package/CommonUtils/PropertyObserver.js +10 -17
  5. package/CommonUtils/SyncCurrentFunction.js +33 -42
  6. package/CommonUtils/SyncObservableEvent.js +2 -6
  7. package/CommonUtils/pointerEvent.js +50 -98
  8. package/Constants.js +6 -6
  9. package/DevApp.js +187 -309
  10. package/ExposedModules.js +2 -9
  11. package/FallbackVisualization.js +4 -10
  12. package/PrintingEffects/ColorEmbossingEffect.js +15 -26
  13. package/PrintingEffects/DomingEffect.js +29 -52
  14. package/PrintingEffects/EmbossingEffect.js +17 -29
  15. package/PrintingEffects/EmbroideryEffect.js +251 -362
  16. package/PrintingEffects/EngravingEffect.js +17 -29
  17. package/PrintingEffects/PrintingEffects.js +44 -73
  18. package/PrintingEffects/PrintingEffectsUtils.js +1 -7
  19. package/React/ReactBase.js +15 -47
  20. package/Three/Controls/OrbitControls.js +105 -126
  21. package/Three/Exporters/glTFExporter.js +2 -6
  22. package/Three/Loaders/ColladaLoader.js +202 -550
  23. package/Three/Loaders/MTLLoader.js +33 -64
  24. package/Three/Loaders/OBJLoader.js +48 -80
  25. package/Three/Three2D.js +750 -1014
  26. package/Three/Three2DLayers.js +217 -341
  27. package/Three/Three3D.js +530 -800
  28. package/Three/Three3DScene.js +484 -780
  29. package/Three/ThreeBase.js +145 -230
  30. package/Utils/DesignArea/getDesignAreaCanvasSize.js +3 -11
  31. package/Utils/TextureBuilder/createTextureBuilder.js +133 -193
  32. package/Utils/TextureBuilder/textureBuilderFunctions.js +11 -27
  33. package/Utils/alignToElement.js +13 -24
  34. package/Utils/canvasBlur.js +27 -45
  35. package/Utils/createAlphaMapFromAlphaChannel.js +11 -21
  36. package/Utils/createBakedShadow.js +38 -42
  37. package/Utils/createCache.js +0 -4
  38. package/Utils/createCanvas.js +3 -9
  39. package/Utils/createImageRepository.js +63 -87
  40. package/Utils/disposeMaterial.js +4 -14
  41. package/Utils/getImageSize.js +1 -2
  42. package/Utils/imagePreloader.js +36 -48
  43. package/Utils/initTextureCanvas.js +6 -18
  44. package/Utils/isMobileDevice.js +3 -7
  45. package/Utils/optimizeTextureImage.js +13 -29
  46. package/Utils/rememberCameraViewOffset.js +8 -11
  47. package/Utils/removeObject.js +0 -4
  48. package/Utils/restrictCameraMovement.js +2 -12
  49. package/Utils/setLightShadow.js +3 -5
  50. package/Utils/setOrthographicCameraSize.js +0 -1
  51. package/Utils/updateFitSizeToElement.js +4 -9
  52. package/VisualizationContainer.js +37 -90
  53. package/VisualizationInterface.js +32 -67
  54. package/VisualizationProvider.js +5 -15
  55. package/index.js +2 -9
  56. package/package.json +6 -7
  57. package/scripts/cpPublicLocal.js +7 -2
  58. package/src/CommonUtils/Observable.js +1 -0
  59. package/src/CommonUtils/pointerEvent.js +17 -0
  60. package/src/Constants.js +2 -0
  61. package/src/DevApp.js +1 -2
  62. package/src/Three/Three2D.js +105 -1
  63. package/src/Three/ThreeBase.js +31 -3
  64. package/src/Utils/TextureBuilder/createTextureBuilder.js +12 -3
  65. package/src/VisualizationContainer.js +8 -2
  66. package/src/index.js +2 -3
  67. package/visualizationAdapterCreator.js +6 -23
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.alignToElement = exports.getRectCenter = void 0;
7
-
8
- var getRectCenter = function getRectCenter(_ref) {
6
+ exports.getRectCenter = exports.alignToElement = void 0;
7
+ var getRectCenter = exports.getRectCenter = function getRectCenter(_ref) {
9
8
  var width = _ref.width,
10
- height = _ref.height,
11
- left = _ref.left,
12
- top = _ref.top;
9
+ height = _ref.height,
10
+ left = _ref.left,
11
+ top = _ref.top;
13
12
  var x = left + width / 2;
14
13
  var y = top + height / 2;
15
14
  return {
@@ -17,18 +16,14 @@ var getRectCenter = function getRectCenter(_ref) {
17
16
  y: y
18
17
  };
19
18
  };
19
+
20
20
  /**
21
21
  * Calculates the view offset to align the camera with the given element
22
22
  * @param {ThreeBase} visualization
23
23
  * @param {Element} element
24
24
  */
25
-
26
-
27
- exports.getRectCenter = getRectCenter;
28
-
29
- var alignToElement = function alignToElement(visualization, element) {
25
+ var alignToElement = exports.alignToElement = function alignToElement(visualization, element) {
30
26
  var canvas = visualization.renderer && visualization.renderer.domElement;
31
-
32
27
  if (visualization && visualization.camera) {
33
28
  if (!element) {
34
29
  visualization.camera.clearViewOffset();
@@ -36,23 +31,17 @@ var alignToElement = function alignToElement(visualization, element) {
36
31
  } else if (!canvas) {
37
32
  return;
38
33
  }
39
-
40
34
  var containerRect = canvas.getBoundingClientRect();
41
35
  var width = containerRect.width,
42
- height = containerRect.height;
43
-
36
+ height = containerRect.height;
44
37
  var _getRectCenter = getRectCenter(containerRect),
45
- cx = _getRectCenter.x,
46
- cy = _getRectCenter.y;
47
-
38
+ cx = _getRectCenter.x,
39
+ cy = _getRectCenter.y;
48
40
  var _getRectCenter2 = getRectCenter(element.getBoundingClientRect()),
49
- tx = _getRectCenter2.x,
50
- ty = _getRectCenter2.y;
51
-
41
+ tx = _getRectCenter2.x,
42
+ ty = _getRectCenter2.y;
52
43
  var dx = cx - tx;
53
44
  var dy = cy - ty;
54
45
  visualization.camera.setViewOffset(width, height, dx, dy, width, height);
55
46
  }
56
- };
57
-
58
- exports.alignToElement = alignToElement;
47
+ };
@@ -4,22 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = exports.blur = void 0;
7
-
8
7
  // source: https://github.com/davidenke/context-filter-polyfill/blob/master/src/filters/blur.filter.ts
9
- var blur = function blur(context) {
8
+
9
+ var blur = exports.blur = function blur(context) {
10
10
  var radius = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
11
- var amount = radius; // do not manipulate without proper amount
11
+ var amount = radius;
12
12
 
13
+ // do not manipulate without proper amount
13
14
  if (amount <= 0) {
14
15
  return context;
15
16
  }
16
-
17
17
  var _context$canvas = context.canvas,
18
- height = _context$canvas.height,
19
- width = _context$canvas.width;
18
+ height = _context$canvas.height,
19
+ width = _context$canvas.width;
20
20
  var imageData = context.getImageData(0, 0, width, height);
21
- var data = imageData.data; // http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js
21
+ var data = imageData.data;
22
22
 
23
+ // http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js
23
24
  var wm = width - 1;
24
25
  var hm = height - 1;
25
26
  var rad1 = amount + 1;
@@ -34,19 +35,15 @@ var blur = function blur(context) {
34
35
  var vmin = [];
35
36
  var vmax = [];
36
37
  var iterations = 3; // 1 - 3
37
-
38
38
  var p, p1, p2, pa;
39
-
40
39
  while (iterations-- > 0) {
41
40
  var yw = 0;
42
41
  var yi = 0;
43
-
44
42
  for (var y = 0; y < height; y++) {
45
43
  var rsum = data[yw] * rad1;
46
44
  var gsum = data[yw + 1] * rad1;
47
45
  var bsum = data[yw + 2] * rad1;
48
46
  var asum = data[yw + 3] * rad1;
49
-
50
47
  for (var i = 1; i <= amount; i++) {
51
48
  // tslint:disable-next-line no-bitwise
52
49
  p = yw + ((i > wm ? wm : i) << 2);
@@ -55,20 +52,17 @@ var blur = function blur(context) {
55
52
  bsum += data[p++];
56
53
  asum += data[p];
57
54
  }
58
-
59
55
  for (var x = 0; x < width; x++) {
60
56
  r[yi] = rsum;
61
57
  g[yi] = gsum;
62
58
  b[yi] = bsum;
63
59
  a[yi] = asum;
64
-
65
60
  if (y === 0) {
66
61
  // tslint:disable-next-line no-bitwise
67
- vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2; // tslint:disable-next-line no-bitwise
68
-
62
+ vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2;
63
+ // tslint:disable-next-line no-bitwise
69
64
  vmax[x] = (p = x - amount) > 0 ? p << 2 : 0;
70
65
  }
71
-
72
66
  p1 = yw + vmin[x];
73
67
  p2 = yw + vmax[x];
74
68
  rsum += data[p1++] - data[p2++];
@@ -76,73 +70,61 @@ var blur = function blur(context) {
76
70
  bsum += data[p1++] - data[p2++];
77
71
  asum += data[p1] - data[p2];
78
72
  yi++;
79
- } // tslint:disable-next-line no-bitwise
80
-
81
-
73
+ }
74
+ // tslint:disable-next-line no-bitwise
82
75
  yw += width << 2;
83
76
  }
84
-
85
77
  for (var _x = 0; _x < width; _x++) {
86
78
  var yp = _x;
87
-
88
79
  var _rsum = r[yp] * rad1;
89
-
90
80
  var _gsum = g[yp] * rad1;
91
-
92
81
  var _bsum = b[yp] * rad1;
93
-
94
82
  var _asum = a[yp] * rad1;
95
-
96
83
  for (var _i = 1; _i <= amount; _i++) {
97
84
  yp += _i > hm ? 0 : width;
98
85
  _rsum += r[yp];
99
86
  _gsum += g[yp];
100
87
  _bsum += b[yp];
101
88
  _asum += a[yp];
102
- } // tslint:disable-next-line no-bitwise
103
-
89
+ }
104
90
 
91
+ // tslint:disable-next-line no-bitwise
105
92
  yi = _x << 2;
106
-
107
93
  for (var _y = 0; _y < height; _y++) {
108
94
  // tslint:disable-next-line no-bitwise
109
95
  data[yi + 3] = pa = _asum * mulSum >>> shgSum;
110
-
111
96
  if (pa > 0) {
112
- pa = 255 / pa; // tslint:disable-next-line no-bitwise
113
-
114
- data[yi] = (_rsum * mulSum >>> shgSum) * pa; // tslint:disable-next-line no-bitwise
115
-
116
- data[yi + 1] = (_gsum * mulSum >>> shgSum) * pa; // tslint:disable-next-line no-bitwise
117
-
97
+ pa = 255 / pa;
98
+ // tslint:disable-next-line no-bitwise
99
+ data[yi] = (_rsum * mulSum >>> shgSum) * pa;
100
+ // tslint:disable-next-line no-bitwise
101
+ data[yi + 1] = (_gsum * mulSum >>> shgSum) * pa;
102
+ // tslint:disable-next-line no-bitwise
118
103
  data[yi + 2] = (_bsum * mulSum >>> shgSum) * pa;
119
104
  } else {
120
105
  data[yi] = data[yi + 1] = data[yi + 2] = 0;
121
106
  }
122
-
123
107
  if (_x === 0) {
124
108
  vmin[_y] = ((p = _y + rad1) < hm ? p : hm) * width;
125
109
  vmax[_y] = (p = _y - amount) > 0 ? p * width : 0;
126
110
  }
127
-
128
111
  p1 = _x + vmin[_y];
129
112
  p2 = _x + vmax[_y];
130
113
  _rsum += r[p1] - r[p2];
131
114
  _gsum += g[p1] - g[p2];
132
115
  _bsum += b[p1] - b[p2];
133
- _asum += a[p1] - a[p2]; // tslint:disable-next-line no-bitwise
116
+ _asum += a[p1] - a[p2];
134
117
 
118
+ // tslint:disable-next-line no-bitwise
135
119
  yi += width << 2;
136
120
  }
137
121
  }
138
- } // set back image data to context
139
-
122
+ }
140
123
 
141
- context.putImageData(imageData, 0, 0); // return the context itself
124
+ // set back image data to context
125
+ context.putImageData(imageData, 0, 0);
142
126
 
127
+ // return the context itself
143
128
  return context;
144
129
  };
145
-
146
- exports.blur = blur;
147
- var _default = blur;
148
- exports["default"] = _default;
130
+ var _default = exports["default"] = blur;
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createAlphaMapFromAlphaChannel = void 0;
7
-
8
7
  var _createCanvas = require("./createCanvas");
9
-
10
8
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
-
12
9
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
-
14
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
-
18
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19
-
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
-
22
14
  /**
23
15
  * Algorithm:
24
16
  * 1. copy the source canvas on a working canvas
@@ -27,24 +19,22 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
19
  * @param {HTMLCanvasElement} srcCanvas The canvas that has transparency
28
20
  * @param {HTMLCanvasElement} dstCanvas The target canvas that holds the alpha map
29
21
  */
30
- var createAlphaMapFromAlphaChannel = function createAlphaMapFromAlphaChannel(srcCanvas, dstCanvas) {
22
+ var createAlphaMapFromAlphaChannel = exports.createAlphaMapFromAlphaChannel = function createAlphaMapFromAlphaChannel(srcCanvas, dstCanvas) {
31
23
  var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(srcCanvas, true),
32
- _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 2),
33
- tmpCanvas = _createWorkingCanvas2[0],
34
- tmpCtx = _createWorkingCanvas2[1]; // draw a white rectangle over the source content using the source-in operation
24
+ _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 2),
25
+ tmpCanvas = _createWorkingCanvas2[0],
26
+ tmpCtx = _createWorkingCanvas2[1];
27
+ // draw a white rectangle over the source content using the source-in operation
35
28
  // to make the source image white keeping the alpha values
36
-
37
-
38
29
  tmpCtx.globalCompositeOperation = "source-in";
39
30
  tmpCtx.fillStyle = "white";
40
- tmpCtx.fillRect(0, 0, srcCanvas.width, srcCanvas.height); // copy the content alpha to the target canvas using the lighten operation
41
- // to keep the higher alpha value of the two maps
31
+ tmpCtx.fillRect(0, 0, srcCanvas.width, srcCanvas.height);
42
32
 
33
+ // copy the content alpha to the target canvas using the lighten operation
34
+ // to keep the higher alpha value of the two maps
43
35
  var dstCtx = dstCanvas.getContext("2d");
44
36
  var globalCompositeOperation = dstCtx.globalCompositeOperation;
45
37
  dstCtx.globalCompositeOperation = "lighten";
46
38
  dstCtx.drawImage(tmpCanvas, 0, 0);
47
39
  dstCtx.globalCompositeOperation = globalCompositeOperation;
48
- };
49
-
50
- exports.createAlphaMapFromAlphaChannel = createAlphaMapFromAlphaChannel;
40
+ };
@@ -4,54 +4,49 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = createBakedShadow;
7
-
8
7
  var _three = require("three");
9
-
10
8
  var _setLightShadow = _interopRequireDefault(require("./setLightShadow"));
11
-
12
9
  var _canvasBlur = _interopRequireDefault(require("./canvasBlur"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
-
16
11
  function createBakedShadow(scene, options) {
17
12
  if (!scene) {
18
13
  return;
19
14
  }
20
-
21
15
  var _options$withMaterial = options.withMaterial,
22
- withMaterial = _options$withMaterial === void 0 ? false : _options$withMaterial,
23
- _options$config = options.config,
24
- config = _options$config === void 0 ? {} : _options$config;
16
+ withMaterial = _options$withMaterial === void 0 ? false : _options$withMaterial,
17
+ _options$config = options.config,
18
+ config = _options$config === void 0 ? {} : _options$config;
25
19
  var _config$lightPosition = config.lightPositionOffset,
26
- lightPositionOffset = _config$lightPosition === void 0 ? {
27
- x: 0,
28
- y: 0,
29
- z: 0
30
- } : _config$lightPosition,
31
- _config$shadowMapSize = config.shadowMapSize,
32
- shadowMapSize = _config$shadowMapSize === void 0 ? 512 : _config$shadowMapSize,
33
- _config$groundScaling = config.groundScaling,
34
- groundScaling = _config$groundScaling === void 0 ? 2 : _config$groundScaling; // activate shadows and disable other lights
35
-
20
+ lightPositionOffset = _config$lightPosition === void 0 ? {
21
+ x: 0,
22
+ y: 0,
23
+ z: 0
24
+ } : _config$lightPosition,
25
+ _config$shadowMapSize = config.shadowMapSize,
26
+ shadowMapSize = _config$shadowMapSize === void 0 ? 512 : _config$shadowMapSize,
27
+ _config$groundScaling = config.groundScaling,
28
+ groundScaling = _config$groundScaling === void 0 ? 2 : _config$groundScaling;
29
+
30
+ // activate shadows and disable other lights
36
31
  scene.traverse(function (object) {
37
32
  if (object.isMesh) {
38
33
  object.castShadow = true;
39
-
40
34
  if (object.material) {
41
35
  object.material.shadowSide = _three.DoubleSide;
42
36
  }
43
37
  }
44
-
45
38
  if (object.isLight) {
46
39
  object.visible = false;
47
40
  }
48
- }); // remember the original values and set them to null (we need a white background)
41
+ });
49
42
 
43
+ // remember the original values and set them to null (we need a white background)
50
44
  var environment = scene.environment,
51
- background = scene.background;
45
+ background = scene.background;
52
46
  scene.environment = null;
53
- scene.background = null; // get bounding parameters for positioning and scaling
47
+ scene.background = null;
54
48
 
49
+ // get bounding parameters for positioning and scaling
55
50
  scene.updateWorldMatrix(true, true);
56
51
  var box = new _three.Box3().expandByObject(scene);
57
52
  var sphere = box.getBoundingSphere(new _three.Sphere());
@@ -62,8 +57,9 @@ function createBakedShadow(scene, options) {
62
57
  var shadowGround = new _three.Mesh(shadowGeometry, new _three.ShadowMaterial({
63
58
  color: 0x000000
64
59
  }));
65
- shadowGround.receiveShadow = true; // set the ground positions right below the model bounding box
60
+ shadowGround.receiveShadow = true;
66
61
 
62
+ // set the ground positions right below the model bounding box
67
63
  shadowGround.position.set(sphere.center.x, box.min.y - 0.01, sphere.center.z);
68
64
  shadowGround.scale.set(groundScaling * radius * 2, 1, groundScaling * radius * 2);
69
65
  scene.add(shadowGround);
@@ -77,10 +73,12 @@ function createBakedShadow(scene, options) {
77
73
  far: shadowLight.position.length() * 2,
78
74
  shadowMapSize: shadowMapSize
79
75
  }
80
- }); // calculate the canvas size for the rendered shadow
76
+ });
81
77
 
82
- var canvasSize = shadowMapSize * groundScaling; // create and set the new render target
78
+ // calculate the canvas size for the rendered shadow
79
+ var canvasSize = shadowMapSize * groundScaling;
83
80
 
81
+ // create and set the new render target
84
82
  var renderTarget = new _three.WebGLRenderTarget(canvasSize, canvasSize);
85
83
  var renderer = new _three.WebGLRenderer({
86
84
  alpha: true,
@@ -89,8 +87,9 @@ function createBakedShadow(scene, options) {
89
87
  renderer.outputEncoding = _three.sRGBEncoding;
90
88
  renderer.shadowMap.enabled = true;
91
89
  renderer.shadowMap.type = _three.PCFSoftShadowMap;
92
- renderer.setRenderTarget(renderTarget); // create a camera to capture only the shadowGround plane (with the shadow)
90
+ renderer.setRenderTarget(renderTarget);
93
91
 
92
+ // create a camera to capture only the shadowGround plane (with the shadow)
94
93
  var shadowCamera = shadowLight.shadow.camera.clone();
95
94
  scene.add(shadowCamera);
96
95
  shadowCamera.position.copy(shadowGround.position);
@@ -101,22 +100,22 @@ function createBakedShadow(scene, options) {
101
100
  renderer.render(scene, shadowCamera);
102
101
  var shadowCanvas = copyRenderTargetToCanvas(renderer, renderTarget);
103
102
  var blurredCanvas = applyShadowEffects(shadowCanvas, config);
104
- scene.remove(shadowCamera, shadowGround, shadowLight); // turn off shadows, activate lights
103
+ scene.remove(shadowCamera, shadowGround, shadowLight);
105
104
 
105
+ // turn off shadows, activate lights
106
106
  scene.traverse(function (object) {
107
107
  if (object.isMesh) {
108
108
  object.castShadow = false;
109
109
  }
110
-
111
110
  if (object.isLight) {
112
111
  object.visible = true;
113
112
  }
114
- }); // restore original values
113
+ });
115
114
 
115
+ // restore original values
116
116
  scene.environment = environment;
117
117
  scene.background = background;
118
118
  renderer.dispose();
119
-
120
119
  if (withMaterial) {
121
120
  var texture = new _three.CanvasTexture(blurredCanvas);
122
121
  texture.flipY = false;
@@ -125,13 +124,11 @@ function createBakedShadow(scene, options) {
125
124
  transparent: true
126
125
  });
127
126
  }
128
-
129
127
  return blurredCanvas;
130
128
  }
131
-
132
129
  function copyRenderTargetToCanvas(renderer, renderTarget, dstCanvas) {
133
130
  var width = renderTarget.width,
134
- height = renderTarget.height;
131
+ height = renderTarget.height;
135
132
  var pixelBuffer = new Uint8ClampedArray(4 * width * height);
136
133
  renderer.readRenderTargetPixels(renderTarget, 0, 0, width, height, pixelBuffer);
137
134
  var imageData = new ImageData(pixelBuffer, width, height);
@@ -142,16 +139,15 @@ function copyRenderTargetToCanvas(renderer, renderTarget, dstCanvas) {
142
139
  ctx.putImageData(imageData, 0, 0);
143
140
  return canvas;
144
141
  }
145
-
146
142
  function applyShadowEffects(canvas, config) {
147
143
  var _config$shadowTexture = config.shadowTextureScaling,
148
- shadowTextureScaling = _config$shadowTexture === void 0 ? 0.96 : _config$shadowTexture,
149
- _config$blurRadius = config.blurRadius,
150
- blurRadius = _config$blurRadius === void 0 ? 6 : _config$blurRadius,
151
- _config$shadowOpacity = config.shadowOpacity,
152
- shadowOpacity = _config$shadowOpacity === void 0 ? 0.8 : _config$shadowOpacity;
144
+ shadowTextureScaling = _config$shadowTexture === void 0 ? 0.96 : _config$shadowTexture,
145
+ _config$blurRadius = config.blurRadius,
146
+ blurRadius = _config$blurRadius === void 0 ? 6 : _config$blurRadius,
147
+ _config$shadowOpacity = config.shadowOpacity,
148
+ shadowOpacity = _config$shadowOpacity === void 0 ? 0.8 : _config$shadowOpacity;
153
149
  var width = canvas.width,
154
- height = canvas.height;
150
+ height = canvas.height;
155
151
  var blurCanvas = document.createElement("canvas");
156
152
  blurCanvas.width = width;
157
153
  blurCanvas.height = height;
@@ -4,23 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createCache = createCache;
7
-
8
7
  function createCache(maxSize) {
9
8
  var storage = new Map();
10
9
  var sizeLimit = maxSize - 1;
11
-
12
10
  function removeLeastRecentlyUsedEntries() {
13
11
  if (storage.size > sizeLimit) {
14
12
  var orderedList = Array.from(storage).sort(function (a, b) {
15
13
  return b[1].time - a[1].time;
16
14
  });
17
-
18
15
  for (var i = orderedList.length - 1; i >= sizeLimit; i--) {
19
16
  storage["delete"](orderedList[i][0]);
20
17
  }
21
18
  }
22
19
  }
23
-
24
20
  return {
25
21
  get: function get(key) {
26
22
  if (storage.has(key)) {
@@ -4,26 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createWorkingCanvas = void 0;
7
-
8
- var createWorkingCanvas = function createWorkingCanvas(sourceObject) {
7
+ var createWorkingCanvas = exports.createWorkingCanvas = function createWorkingCanvas(sourceObject) {
9
8
  var copy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
10
9
  var width = sourceObject.width,
11
- height = sourceObject.height;
10
+ height = sourceObject.height;
12
11
  var canvas = Object.assign(document.createElement("canvas"), {
13
12
  width: width,
14
13
  height: height
15
14
  });
16
15
  var ctx = canvas.getContext("2d");
17
-
18
16
  if (!ctx) {
19
17
  throw new Error("Could not get 2d context for working canvas!");
20
18
  }
21
-
22
19
  if (copy) {
23
20
  ctx.drawImage(sourceObject, 0, 0);
24
21
  }
25
-
26
22
  return [canvas, ctx];
27
- };
28
-
29
- exports.createWorkingCanvas = createWorkingCanvas;
23
+ };