@combeenation/3d-viewer 18.0.0 → 18.1.0-beta2

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.
@@ -0,0 +1,14 @@
1
+ import { ScreenshotSize } from '../manager/camera-manager';
2
+ /**
3
+ * Creates a new canvas element from a screenshot image string.\
4
+ * Optionally adds a secondary canvas element, which is coming from the HTML anchor screenshot in our case.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare function createScreenshotCanvas(imageStr3d: string, screenshotSize: ScreenshotSize, screenshotHtmlCanvas?: HTMLCanvasElement): Promise<HTMLCanvasElement>;
9
+ /**
10
+ * Returns a new canvas element, which has all bounding transparent pixels removed.
11
+ *
12
+ * @internal
13
+ */
14
+ export declare function trimCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
@@ -0,0 +1,100 @@
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.trimCanvas = exports.createScreenshotCanvas = void 0;
13
+ /**
14
+ * Creates a new canvas element from a screenshot image string.\
15
+ * Optionally adds a secondary canvas element, which is coming from the HTML anchor screenshot in our case.
16
+ *
17
+ * @internal
18
+ */
19
+ function createScreenshotCanvas(imageStr3d, screenshotSize, screenshotHtmlCanvas) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ // convert the main screenshot into an image, so that it can be drawn onto a canvas as well
22
+ const screenshot3dImg = new Image();
23
+ screenshot3dImg.src = imageStr3d;
24
+ yield new Promise(resolve => {
25
+ screenshot3dImg.onload = resolve;
26
+ });
27
+ const screenshotCombinedCanvas = document.createElement('canvas');
28
+ screenshotCombinedCanvas.width = screenshotSize.imageWidth;
29
+ screenshotCombinedCanvas.height = screenshotSize.imageHeight;
30
+ // draw main and html screenshot on a new canvas and get the base64 string from it
31
+ const context = screenshotCombinedCanvas.getContext('2d');
32
+ context.drawImage(screenshot3dImg, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
33
+ if (screenshotHtmlCanvas) {
34
+ context.drawImage(screenshotHtmlCanvas, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
35
+ }
36
+ return screenshotCombinedCanvas;
37
+ });
38
+ }
39
+ exports.createScreenshotCanvas = createScreenshotCanvas;
40
+ /**
41
+ * Returns a new canvas element, which has all bounding transparent pixels removed.
42
+ *
43
+ * @internal
44
+ */
45
+ function trimCanvas(canvas) {
46
+ const ctx = canvas.getContext('2d');
47
+ const copy = document.createElement('canvas').getContext('2d');
48
+ if (!ctx || !copy) {
49
+ console.warn(`Couldn't trim canvas as canvas context is not available`);
50
+ return canvas;
51
+ }
52
+ // `pixels` holds a one-dimensional array with RGBA data
53
+ // [r1, g1, b1, a1, r2, g2, ...]
54
+ const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
55
+ const l = pixels.data.length;
56
+ if (!l) {
57
+ console.warn(`Couldn't trim canvas as no image data is available`);
58
+ return canvas;
59
+ }
60
+ const boundingBox = {
61
+ top: -1,
62
+ left: -1,
63
+ right: -1,
64
+ bottom: -1,
65
+ };
66
+ let i, x, y;
67
+ for (i = 0; i < l; i += 4) {
68
+ // if the "a" value is > 0 it means that the pixel is NOT transparent and therefore should be part of the final
69
+ // image
70
+ if (pixels.data[i + 3] !== 0) {
71
+ x = (i / 4) % canvas.width;
72
+ y = ~~(i / 4 / canvas.width);
73
+ // enlarge bounding box if required
74
+ if (boundingBox.left < 0 || x < boundingBox.left) {
75
+ boundingBox.left = x;
76
+ }
77
+ if (boundingBox.right < 0 || x > boundingBox.right) {
78
+ boundingBox.right = x;
79
+ }
80
+ // top starts from y=0
81
+ if (boundingBox.top < 0 || y < boundingBox.top) {
82
+ boundingBox.top = y;
83
+ }
84
+ if (boundingBox.bottom < 0 || y > boundingBox.bottom) {
85
+ boundingBox.bottom = y;
86
+ }
87
+ }
88
+ }
89
+ // calculate the height and width of the content
90
+ const trimHeight = boundingBox.bottom - boundingBox.top;
91
+ const trimWidth = boundingBox.right - boundingBox.left;
92
+ const trimmed = ctx.getImageData(boundingBox.left, boundingBox.top, trimWidth, trimHeight);
93
+ // apply trimmed data to canvas
94
+ copy.canvas.width = trimWidth;
95
+ copy.canvas.height = trimHeight;
96
+ copy.putImageData(trimmed, 0, 0);
97
+ return copy.canvas;
98
+ }
99
+ exports.trimCanvas = trimCanvas;
100
+ //# sourceMappingURL=screenshot-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot-helper.js","sourceRoot":"","sources":["../../../src/internal/screenshot-helper.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,11 @@ export declare type ScreenshotSettings = {
52
52
  * Excludes ALL html anchor groups if set to `true`.
53
53
  */
54
54
  excludeHtmlAnchorGroups?: string[] | true;
55
+ /**
56
+ * Removes all bounding transparent pixels, so that final image size exactly fits the scene content.\
57
+ * As a result the final image size might be smaller than the values defined on the `width` and `height` input.
58
+ */
59
+ cropTransparentArea?: boolean;
55
60
  /**
56
61
  * "MIME type" of the returned screenshot image, defaults to `image/png`
57
62
  *
@@ -63,7 +68,10 @@ export declare type ScreenshotSettings = {
63
68
  mimeType?: string;
64
69
  /** If file name is given, the screenshot image will be downloaded and the base64 string will NOT be returned! */
65
70
  fileName?: string;
66
- /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
71
+ /**
72
+ * Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information.\
73
+ * Defaults to `8` for improved screenshot quality.
74
+ */
67
75
  samples?: number;
68
76
  /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
69
77
  antialiasing?: boolean;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CameraManager = void 0;
13
13
  const index_1 = require("../index");
14
14
  const geometry_helper_1 = require("../internal/geometry-helper");
15
+ const screenshot_helper_1 = require("../internal/screenshot-helper");
15
16
  /**
16
17
  * Manager for camera related tasks
17
18
  */
@@ -128,7 +129,7 @@ class CameraManager {
128
129
  createScreenshot(settings) {
129
130
  var _a, _b, _c;
130
131
  return __awaiter(this, void 0, void 0, function* () {
131
- const { width, height, alpha, beta, radius, target, autofocusScene, exclude, excludeHtmlAnchorGroups, fileName, samples, antialiasing, renderSprites, enableStencilBuffer, useLayerMask, quality, } = settings !== null && settings !== void 0 ? settings : {};
132
+ const { width, height, alpha, beta, radius, target, autofocusScene, exclude, excludeHtmlAnchorGroups, cropTransparentArea, fileName, samples, antialiasing, renderSprites, enableStencilBuffer, useLayerMask, quality, } = settings !== null && settings !== void 0 ? settings : {};
132
133
  const screenshotCam = (_a = this.viewer.scene.activeCamera) === null || _a === void 0 ? void 0 : _a.clone(CameraManager._SCREENSHOT_CAMERA_NAME);
133
134
  const boundingInfo = autofocusScene ? this.viewer.sceneManager.calculateBoundingInfo(exclude) : undefined;
134
135
  if (alpha !== undefined) {
@@ -157,7 +158,9 @@ class CameraManager {
157
158
  // calculate screenshot size manually as it is used for html anchor screenshot as well
158
159
  const screenshotSize = this._getScreenshotSize(width, height);
159
160
  const mimeType = (_c = settings === null || settings === void 0 ? void 0 : settings.mimeType) !== null && _c !== void 0 ? _c : 'image/png';
160
- const imageStr3d = yield index_1.ScreenshotTools.CreateScreenshotUsingRenderTargetAsync(this.viewer.engine, screenshotCam, { width: screenshotSize.imageWidth, height: screenshotSize.imageHeight }, mimeType, samples, antialiasing, undefined, renderSprites, enableStencilBuffer, useLayerMask, quality, texture => {
161
+ const imageStr3d = yield index_1.ScreenshotTools.CreateScreenshotUsingRenderTargetAsync(this.viewer.engine, screenshotCam, { width: screenshotSize.imageWidth, height: screenshotSize.imageHeight }, mimeType,
162
+ // default to "8", since Babylon.js default "1" is really ugly
163
+ samples !== null && samples !== void 0 ? samples : 8, antialiasing, undefined, renderSprites, enableStencilBuffer, useLayerMask, quality, texture => {
161
164
  // NOTE: this doesn't work ATM, see https://github.com/BabylonJS/Babylon.js/pull/16081#issuecomment-2652861176
162
165
  // we'll have to wait for a fix or solve the visibility in a different way (e.g. camera layer mask)
163
166
  texture.renderList = this.viewer.scene.meshes.filter(mesh => !(settings === null || settings === void 0 ? void 0 : settings.exclude) || !(0, geometry_helper_1.isNodeExcluded)(mesh, settings.exclude));
@@ -166,25 +169,22 @@ class CameraManager {
166
169
  const htmlAnchorKeys = excludeHtmlAnchorGroups === true
167
170
  ? []
168
171
  : this.viewer.htmlAnchorManager.getHtmlAnchorKeys(undefined, excludeHtmlAnchorGroups, true);
169
- if (htmlAnchorKeys.length) {
172
+ if (htmlAnchorKeys.length || cropTransparentArea) {
170
173
  // html anchors are not included in the main screenshot, as the html elements are located outside of the canvas
171
174
  // the idea is to create a dedicated canvas for these elements and merge the result with the main screenshot into
172
175
  // a combined canvas
173
- const screenshotHtmlCanvas = yield this.viewer.htmlAnchorManager.createScreenshotCanvas(screenshotSize, screenshotCam, htmlAnchorKeys);
174
- // convert the main screenshot into an image, so that it can be drawn onto a canvas as well
175
- const screenshot3dImg = new Image();
176
- screenshot3dImg.src = imageStr3d;
177
- yield new Promise(resolve => {
178
- screenshot3dImg.onload = resolve;
179
- });
180
- const screenshotCombinedCanvas = document.createElement('canvas');
181
- screenshotCombinedCanvas.width = screenshotSize.imageWidth;
182
- screenshotCombinedCanvas.height = screenshotSize.imageHeight;
183
- // draw main and html screenshot on a new canvas and get the base64 string from it
184
- const context = screenshotCombinedCanvas.getContext('2d');
185
- context.drawImage(screenshot3dImg, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
186
- context.drawImage(screenshotHtmlCanvas, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
187
- imageStr = screenshotCombinedCanvas.toDataURL(mimeType);
176
+ const screenshotHtmlCanvas = htmlAnchorKeys.length
177
+ ? yield this.viewer.htmlAnchorManager.createScreenshotCanvas(screenshotSize, screenshotCam, htmlAnchorKeys)
178
+ : undefined;
179
+ const screenshotCombinedCanvas = yield (0, screenshot_helper_1.createScreenshotCanvas)(imageStr3d, screenshotSize, screenshotHtmlCanvas);
180
+ if (cropTransparentArea) {
181
+ const screenshotTrimmedCanvas = (0, screenshot_helper_1.trimCanvas)(screenshotCombinedCanvas);
182
+ imageStr = screenshotTrimmedCanvas.toDataURL(mimeType);
183
+ screenshotTrimmedCanvas.remove();
184
+ }
185
+ else {
186
+ imageStr = screenshotCombinedCanvas.toDataURL(mimeType);
187
+ }
188
188
  screenshotCombinedCanvas.remove();
189
189
  }
190
190
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAYkB;AAClB,iEAA6D;AAkG7D;;GAEG;AACH,MAAa,aAAa;IAsBxB,gBAAgB;IAChB,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C;;OAEG;IACU,qBAAqB,CAAC,QAA4B;;;YAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAEpD,IAAI,CAAC,CAAC,YAAY,YAAY,uBAAe,CAAC,EAAE;gBAC9C,MAAM,IAAI,mBAAW,CAAC;oBACpB,EAAE,EAAE,sBAAc,CAAC,iBAAiB;oBACpC,OAAO,EAAE,wEAAwE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,EAAE,GAAG;iBACjH,CAAC,CAAC;aACJ;YAED,uFAAuF;YACvF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC;YACvF,wDAAwD;YACxD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAW,CAAC,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YAE5F,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;YAClD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;YAElD,oGAAoG;YACpG,YAAY,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAEvC,sBAAsB;YACtB,uEAAuE;YACvE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClF,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,MAAK,KAAK,EAAE;gBAC5C,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,oBAAoB,CAAC,cAAc,GAAG,MAAM,CAAC;aAC1F;YACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,wBAAwB,MAAK,KAAK,EAAE;gBAChD,YAAY,CAAC,kBAAkB,GAAG,aAAa,CAAC,oBAAoB,CAAC,kBAAkB,GAAG,MAAM,CAAC;aAClG;YACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,MAAK,KAAK,EAAE;gBAC5C,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,oBAAoB,CAAC,cAAc,GAAG,MAAM,CAAC;aAC1F;YAED,MAAM,YAAY,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,mCAAI,aAAa,CAAC,gCAAgC,CAAC;YAC9F,MAAM,KAAK,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,aAAa,CAAC,uBAAuB,CAAC,KAAK,CAAC;YAC7E,MAAM,IAAI,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAE1E,MAAM,iBAAiB,GAAmB;gBACxC,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,QAAQ,GAAG,YAAY;gBAC/B,MAAM,EAAE,MAAM;aACf,CAAC;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC;;KACxE;IAED;;;;OAIG;IACU,kBAAkB,CAC7B,QAAwB,EACxB,UAAU,GAAG,aAAa,CAAC,qBAAqB;;;YAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAEpD,IAAI,CAAC,CAAC,YAAY,YAAY,uBAAe,CAAC,EAAE;gBAC9C,MAAM,IAAI,mBAAW,CAAC;oBACpB,EAAE,EAAE,sBAAc,CAAC,iBAAiB;oBACpC,OAAO,EAAE,qEAAqE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,EAAE,GAAG;iBAC9G,CAAC,CAAC;aACJ;YAED,IAAI,UAAU,KAAK,CAAC,EAAE;gBACpB,qCAAqC;gBACrC,YAAY,CAAC,KAAK,GAAG,MAAA,QAAQ,CAAC,KAAK,mCAAI,YAAY,CAAC,KAAK,CAAC;gBAC1D,YAAY,CAAC,IAAI,GAAG,MAAA,QAAQ,CAAC,IAAI,mCAAI,YAAY,CAAC,IAAI,CAAC;gBACvD,YAAY,CAAC,MAAM,GAAG,MAAA,QAAQ,CAAC,MAAM,mCAAI,YAAY,CAAC,MAAM,CAAC;gBAC7D,YAAY,CAAC,MAAM,GAAG,MAAA,QAAQ,CAAC,MAAM,mCAAI,YAAY,CAAC,MAAM,CAAC;aAC9D;YAED,MAAM,YAAY,GAAG,GAAG,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,sBAAc,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAElG,8FAA8F;YAC9F,4FAA4F;YAC5F,mCAAmC;YACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;gBACjC,aAAa,CAAC,0BAA0B,CACtC,QAAQ,EACR,YAAY,CAAC,MAAM,EACnB,QAAQ,CAAC,MAAM,EACf,YAAY,EACZ,iBAAS,CAAC,qBAAqB,EAC/B,cAAc,EACd,YAAY,CACb,CAAC;aACH;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;gBAChC,0GAA0G;gBAC1G,gBAAgB;gBAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC;gBAE5D,aAAa,CAAC,0BAA0B,CACtC,OAAO,EACP,YAAY,CAAC,KAAK,EAClB,WAAW,EACX,YAAY,EACZ,iBAAS,CAAC,mBAAmB,EAC7B,cAAc,EACd,YAAY,CACb,CAAC;aACH;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC/B,aAAa,CAAC,0BAA0B,CACtC,MAAM,EACN,YAAY,CAAC,IAAI,EACjB,QAAQ,CAAC,IAAI,EACb,YAAY,EACZ,iBAAS,CAAC,mBAAmB,EAC7B,cAAc,EACd,YAAY,CACb,CAAC;aACH;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;gBACjC,aAAa,CAAC,0BAA0B,CACtC,QAAQ,EACR,YAAY,CAAC,MAAM,EACnB,QAAQ,CAAC,MAAM,EACf,YAAY,EACZ,iBAAS,CAAC,mBAAmB,EAC7B,cAAc,EACd,YAAY,CACb,CAAC;aACH;YAED,wGAAwG;YACxG,MAAM,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC;YAErC,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBACjC,cAAc,CAAC,6BAA6B,CAAC,OAAO,CAAC,GAAG,EAAE;oBACxD,cAAc,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;;KACJ;IAED;;;OAGG;IACU,gBAAgB,CAAC,QAA6B;;;YACzD,MAAM,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,cAAc,EACd,OAAO,EACP,uBAAuB,EACvB,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,OAAO,GACR,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC;YAEnB,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,0CAAE,KAAK,CACzD,aAAa,CAAC,uBAAuB,CACnB,CAAC;YACrB,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1G,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;aAC/B;iBAAM,IAAI,YAAY,EAAE;gBACvB,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC/F,MAAM,YAAY,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,mCAAI,CAAC,CAAC;gBACjD,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;aAChD;YACD,6GAA6G;YAC7G,2EAA2E;YAC3E,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;aAC7D;iBAAM,IAAI,YAAY,EAAE;gBACvB,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;aACzF;YAED,sFAAsF;YACtF,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,mCAAI,WAAW,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,uBAAe,CAAC,sCAAsC,CAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,aAAa,EACb,EAAE,KAAK,EAAE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,EACxE,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,OAAO,CAAC,EAAE;gBACR,8GAA8G;gBAC9G,mGAAmG;gBACnG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAClD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,IAAI,CAAC,IAAA,gCAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CACtE,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,MAAM,cAAc,GAClB,uBAAuB,KAAK,IAAI;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAChG,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,+GAA+G;gBAC/G,iHAAiH;gBACjH,oBAAoB;gBACpB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,CACrF,cAAc,EACd,aAAa,EACb,cAAc,CACf,CAAC;gBAEF,2FAA2F;gBAC3F,MAAM,eAAe,GAAG,IAAI,KAAK,EAAE,CAAC;gBACpC,eAAe,CAAC,GAAG,GAAG,UAAU,CAAC;gBACjC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC;gBACnC,CAAC,CAAC,CAAC;gBAEH,MAAM,wBAAwB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClE,wBAAwB,CAAC,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC3D,wBAAwB,CAAC,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC;gBAE7D,kFAAkF;gBAClF,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;gBAC3D,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;gBAChG,OAAO,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;gBACrG,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAExD,wBAAwB,CAAC,MAAM,EAAE,CAAC;aACnC;iBAAM;gBACL,QAAQ,GAAG,UAAU,CAAC;aACvB;YAED,aAAa,CAAC,OAAO,EAAE,CAAC;YAExB,IAAI,QAAQ,EAAE;gBACZ,kHAAkH;gBAClH,cAAc;gBACd,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAEhC,OAAO,EAAE,CAAC;aACX;iBAAM;gBACL,OAAO,QAAQ,CAAC;aACjB;;KACF;IAES,MAAM,CAAC,0BAA0B,CACzC,cAAsB,EACtB,IAAsB,EACtB,EAAoB,EACpB,YAAoB,EACpB,QAAgB,EAChB,cAA8B,EAC9B,YAA6B;QAE7B,MAAM,cAAc,GAAG,IAAI,iBAAS,CAClC,cAAc,EACd,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,iBAAS,CAAC,0BAA0B,CACrC,CAAC;QACF,cAAc,CAAC,OAAO,CAAC;YACrB;gBACE,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI;aACZ;YACD;gBACE,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;QACH,cAAc,CAAC,oBAAoB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAES,4BAA4B,CAAC,cAA8B,EAAE,MAAuB;QAC5F,kGAAkG;QAClG,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;QAElD,MAAM,4BAA4B,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;QAChH,MAAM,0BAA0B,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,CAAC;QAEpF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,kBAAkB,CAAC,KAAc,EAAE,MAAe;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAO,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAEjD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,UAAU,GAAG,KAAK,CAAC;YACnB,WAAW,GAAG,MAAM,CAAC;SACtB;aAAM,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAC3B,UAAU,GAAG,KAAK,CAAC;YACnB,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC;SACnC;aAAM,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;YAC3B,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;YAClC,WAAW,GAAG,MAAM,CAAC;SACtB;aAAM;YACL,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;SAC7B;QAED,4EAA4E;QAC5E,6GAA6G;QAC7G,6BAA6B;QAC7B,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QACxE,MAAM,YAAY,GAAG,WAAW,CAAC;QAEjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAChE,CAAC;;AAtXH,sCAuXC;AAtXwB,mCAAqB,GAAG,kBAAkB,CAAC;AAElE,gBAAgB;AACO,qCAAuB,GAAmB;IAC/D,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG;IAC3B,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG;IAC1B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC7B,CAAC;AAEwB,kCAAoB,GAAG;IAC/C,IAAI,EAAE,GAAG;IACT,cAAc,EAAE,GAAG;IACnB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,GAAG;CACpB,CAAC;AAEwB,8CAAgC,GAAG,CAAC,CAAC;AACrC,mCAAqB,GAAG,GAAG,CAAC;AAC5B,qCAAuB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,6 @@ export declare class HtmlAnchorManager {
88
88
  * @internal
89
89
  */
90
90
  isHtmlAnchorMesh(mesh: AbstractMesh): boolean;
91
- protected _updateHtmlAnchor(parentHtmlElement: HTMLDivElement, anchorMesh: AbstractMesh, camera: Camera, width: number, height: number, baseScale: number, options?: HtmlAnchorOptions): void;
91
+ protected _updateHtmlAnchor(parentHtmlElement: HTMLDivElement, anchorMesh: AbstractMesh, camera: Camera, width: number, height: number, baseScale: number, useRayHitTestForOcclusionCheck: boolean, options?: HtmlAnchorOptions): void;
92
92
  protected _getOrCreateAnchorMeshMaterial(): StandardMaterial;
93
93
  }
@@ -37,7 +37,11 @@ class HtmlAnchorManager {
37
37
  // html element positions need to be updated after each camera render call
38
38
  viewer.scene.onAfterRenderCameraObservable.add(() => {
39
39
  Object.values(this._htmlAnchors).forEach(({ parentHtmlElement, anchorMesh, options }) => {
40
- this._updateHtmlAnchor(parentHtmlElement, anchorMesh, viewer.scene.activeCamera, canvas.width, canvas.height, 1, options);
40
+ this._updateHtmlAnchor(parentHtmlElement, anchorMesh, viewer.scene.activeCamera,
41
+ // it's import to use `clientWidth` and `clientHeight` as it makes a difference on mobile devices that have
42
+ // hardware scaling activated
43
+ // => `width`/`height` return the upscaled values, but the basis html element for the anchors remains unscaled
44
+ canvas.clientWidth, canvas.clientHeight, 1, false, options);
41
45
  });
42
46
  });
43
47
  }
@@ -47,10 +51,7 @@ class HtmlAnchorManager {
47
51
  * mesh within the scene.
48
52
  */
49
53
  addHtmlAnchor(name, htmlElement, position, options) {
50
- var _a;
51
- const canvasParentHtmlElement = (_a = this.viewer.canvas) === null || _a === void 0 ? void 0 : _a.parentElement;
52
- if (!canvasParentHtmlElement) {
53
- console.warn(`No parent for desired html anchor available`);
54
+ if (!this.viewer.canvas) {
54
55
  return;
55
56
  }
56
57
  if (this._htmlAnchors[name]) {
@@ -68,7 +69,10 @@ class HtmlAnchorManager {
68
69
  if (!enablePointerEvents) {
69
70
  parentHtmlElement.style.pointerEvents = 'none';
70
71
  }
71
- canvasParentHtmlElement.appendChild(parentHtmlElement);
72
+ // it's important to insert the html anchor elements right after the viewer canvas
73
+ // otherwise the elements could be in front of other sibling nodes, like the viewer control loading mask
74
+ // => see CB-10496
75
+ this.viewer.canvas.insertAdjacentElement('afterend', parentHtmlElement);
72
76
  // NOTE: creates a sphere with fixed size, which could be problematic in scene with "strange" dimensions
73
77
  // add a property for the sphere size if required
74
78
  const anchorMesh = __1.MeshBuilder.CreateSphere(`${HtmlAnchorManager._HTML_ANCHOR_KEY}_${name}`, { diameter: 0.01 });
@@ -136,8 +140,11 @@ class HtmlAnchorManager {
136
140
  const clonedHtmlNode = parentHtmlElement.cloneNode(true);
137
141
  htmlContainer.append(clonedHtmlNode);
138
142
  // reposition that cloned html element, so that it fits to the desired camera position
139
- const baseScale = size.canvasHeight / this.viewer.canvas.height;
140
- this._updateHtmlAnchor(clonedHtmlNode, anchorMesh, camera, size.canvasWidth, size.canvasHeight, baseScale, options);
143
+ // `clientHeight`: makes difference on mobile devices that have hardware scaling activated
144
+ // => `height` returns the upscaled value, but the basis html element for the anchors remains
145
+ // unscaled
146
+ const baseScale = size.canvasHeight / this.viewer.canvas.clientHeight;
147
+ this._updateHtmlAnchor(clonedHtmlNode, anchorMesh, camera, size.canvasWidth, size.canvasHeight, baseScale, true, options);
141
148
  });
142
149
  const screenshotHtmlCanvas = yield (0, html2canvas_1.default)(htmlContainer, {
143
150
  width: size.imageWidth,
@@ -178,7 +185,7 @@ class HtmlAnchorManager {
178
185
  isHtmlAnchorMesh(mesh) {
179
186
  return mesh.material === this._anchorMeshMaterial;
180
187
  }
181
- _updateHtmlAnchor(parentHtmlElement, anchorMesh, camera, width, height, baseScale, options) {
188
+ _updateHtmlAnchor(parentHtmlElement, anchorMesh, camera, width, height, baseScale, useRayHitTestForOcclusionCheck, options) {
182
189
  const { hideIfOccluded, scaleWithCameraDistance } = options !== null && options !== void 0 ? options : {};
183
190
  const viewMatrix = camera.getViewMatrix();
184
191
  const projectionMatrix = camera.getProjectionMatrix();
@@ -210,7 +217,26 @@ class HtmlAnchorManager {
210
217
  vertexScreenCoords.x + elementXOffset < width &&
211
218
  vertexScreenCoords.y - elementYOffset > 0 &&
212
219
  vertexScreenCoords.y + elementYOffset < height;
213
- const isOccluded = hideIfOccluded && anchorMesh.isOccluded;
220
+ let isOccluded = false;
221
+ if (hideIfOccluded) {
222
+ if (useRayHitTestForOcclusionCheck) {
223
+ // ray test has to be used for synchronous occlusion checks
224
+ // this is the case for screenshots, where the screenshot camera might be on a different position than the scene
225
+ // camera
226
+ // default occlusion query is too slow and there is no way to know when the occlusion check is finished, so we
227
+ // fall back to this alternative technology
228
+ // however, this tech has higher performance impact, so we don't use it for the cyclic occlusion check
229
+ const meshCenter = anchorMesh.getBoundingInfo().boundingBox.centerWorld;
230
+ const camDirection = meshCenter.subtract(camera.position);
231
+ const ray = new __1.Ray(camera.position, camDirection);
232
+ const hit = this.viewer.scene.pickWithRay(ray, mesh => !__1.Tags.MatchesQuery(mesh, __1.DimensionLineManager.DIMENSION_LINE_KEY), false);
233
+ isOccluded = (hit === null || hit === void 0 ? void 0 : hit.pickedMesh) !== anchorMesh;
234
+ }
235
+ else {
236
+ // use default occlusion check from GPU
237
+ isOccluded = anchorMesh.isOccluded;
238
+ }
239
+ }
214
240
  parentHtmlElement.style.opacity = isInViewport && !isOccluded ? '1' : '0';
215
241
  }
216
242
  _getOrCreateAnchorMeshMaterial() {
@@ -1 +1 @@
1
- {"version":3,"file":"html-anchor-manager.js","sourceRoot":"","sources":["../../../src/manager/html-anchor-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-anchor-manager.js","sourceRoot":"","sources":["../../../src/manager/html-anchor-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
- "version": "18.0.0",
3
+ "version": "18.1.0-beta2",
4
4
  "description": "Combeenation 3D Viewer",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "bugs": {
@@ -49,10 +49,10 @@
49
49
  },
50
50
  "prettier": "@combeenation/prettier-config",
51
51
  "dependencies": {
52
- "@babylonjs/core": "7.47.3",
53
- "@babylonjs/gui": "7.47.3",
54
- "@babylonjs/loaders": "7.47.3",
55
- "@babylonjs/serializers": "7.47.3",
52
+ "@babylonjs/core": "7.50.0",
53
+ "@babylonjs/gui": "7.50.0",
54
+ "@babylonjs/loaders": "7.50.0",
55
+ "@babylonjs/serializers": "7.50.0",
56
56
  "eventemitter3": "4.0.7",
57
57
  "html2canvas": "1.4.1",
58
58
  "is-svg": "^5.0.0",
@@ -85,14 +85,14 @@
85
85
  "webpack-merge": "5.8.0"
86
86
  },
87
87
  "optionalDependencies": {
88
- "@babylonjs/gui-editor": "7.47.3",
89
- "@babylonjs/inspector": "7.47.3",
90
- "@babylonjs/materials": "7.47.3",
91
- "@babylonjs/node-editor": "7.47.3",
92
- "@babylonjs/node-geometry-editor": "7.47.3"
88
+ "@babylonjs/gui-editor": "7.50.0",
89
+ "@babylonjs/inspector": "7.50.0",
90
+ "@babylonjs/materials": "7.50.0",
91
+ "@babylonjs/node-editor": "7.50.0",
92
+ "@babylonjs/node-geometry-editor": "7.50.0"
93
93
  },
94
94
  "dependenciesComments": {
95
- "@babylonjs": "Latest version 7.47.3 added lower camera target y limit, as requested from us (https://github.com/BabylonJS/Babylon.js/pull/16125)"
95
+ "@babylonjs": "Latest version 7.50.0 fixed mesh filter list for RTT screenshot, see (https://github.com/BabylonJS/Babylon.js/pull/16081#issuecomment-2658595455)"
96
96
  },
97
97
  "optionalDependenciesComments": {
98
98
  "@babylonjs": "Defining the inspector package (and it's dependencies) as optional is required to omit these packages in the production build of the CBN react-app (see CB-9269)"
@@ -0,0 +1,102 @@
1
+ import { ScreenshotSize } from '../manager/camera-manager';
2
+
3
+ /**
4
+ * Creates a new canvas element from a screenshot image string.\
5
+ * Optionally adds a secondary canvas element, which is coming from the HTML anchor screenshot in our case.
6
+ *
7
+ * @internal
8
+ */
9
+ export async function createScreenshotCanvas(
10
+ imageStr3d: string,
11
+ screenshotSize: ScreenshotSize,
12
+ screenshotHtmlCanvas?: HTMLCanvasElement
13
+ ): Promise<HTMLCanvasElement> {
14
+ // convert the main screenshot into an image, so that it can be drawn onto a canvas as well
15
+ const screenshot3dImg = new Image();
16
+ screenshot3dImg.src = imageStr3d;
17
+ await new Promise(resolve => {
18
+ screenshot3dImg.onload = resolve;
19
+ });
20
+
21
+ const screenshotCombinedCanvas = document.createElement('canvas');
22
+ screenshotCombinedCanvas.width = screenshotSize.imageWidth;
23
+ screenshotCombinedCanvas.height = screenshotSize.imageHeight;
24
+
25
+ // draw main and html screenshot on a new canvas and get the base64 string from it
26
+ const context = screenshotCombinedCanvas.getContext('2d')!;
27
+ context.drawImage(screenshot3dImg, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
28
+
29
+ if (screenshotHtmlCanvas) {
30
+ context.drawImage(screenshotHtmlCanvas, 0, 0, screenshotSize.imageWidth, screenshotSize.imageHeight);
31
+ }
32
+
33
+ return screenshotCombinedCanvas;
34
+ }
35
+
36
+ /**
37
+ * Returns a new canvas element, which has all bounding transparent pixels removed.
38
+ *
39
+ * @internal
40
+ */
41
+ export function trimCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement {
42
+ const ctx = canvas.getContext('2d');
43
+ const copy = document.createElement('canvas').getContext('2d');
44
+ if (!ctx || !copy) {
45
+ console.warn(`Couldn't trim canvas as canvas context is not available`);
46
+ return canvas;
47
+ }
48
+
49
+ // `pixels` holds a one-dimensional array with RGBA data
50
+ // [r1, g1, b1, a1, r2, g2, ...]
51
+ const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
52
+ const l = pixels.data.length;
53
+
54
+ if (!l) {
55
+ console.warn(`Couldn't trim canvas as no image data is available`);
56
+ return canvas;
57
+ }
58
+
59
+ const boundingBox: { top: number; left: number; right: number; bottom: number } = {
60
+ top: -1,
61
+ left: -1,
62
+ right: -1,
63
+ bottom: -1,
64
+ };
65
+
66
+ let i, x, y;
67
+ for (i = 0; i < l; i += 4) {
68
+ // if the "a" value is > 0 it means that the pixel is NOT transparent and therefore should be part of the final
69
+ // image
70
+ if (pixels.data[i + 3] !== 0) {
71
+ x = (i / 4) % canvas.width;
72
+ y = ~~(i / 4 / canvas.width);
73
+
74
+ // enlarge bounding box if required
75
+ if (boundingBox.left < 0 || x < boundingBox.left) {
76
+ boundingBox.left = x;
77
+ }
78
+ if (boundingBox.right < 0 || x > boundingBox.right) {
79
+ boundingBox.right = x;
80
+ }
81
+ // top starts from y=0
82
+ if (boundingBox.top < 0 || y < boundingBox.top) {
83
+ boundingBox.top = y;
84
+ }
85
+ if (boundingBox.bottom < 0 || y > boundingBox.bottom) {
86
+ boundingBox.bottom = y;
87
+ }
88
+ }
89
+ }
90
+
91
+ // calculate the height and width of the content
92
+ const trimHeight = boundingBox.bottom - boundingBox.top;
93
+ const trimWidth = boundingBox.right - boundingBox.left;
94
+ const trimmed = ctx.getImageData(boundingBox.left, boundingBox.top, trimWidth, trimHeight);
95
+
96
+ // apply trimmed data to canvas
97
+ copy.canvas.width = trimWidth;
98
+ copy.canvas.height = trimHeight;
99
+ copy.putImageData(trimmed, 0, 0);
100
+
101
+ return copy.canvas;
102
+ }