@combeenation/3d-viewer 17.1.0 → 18.0.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.
Files changed (58) hide show
  1. package/dist/lib-cjs/buildinfo.json +1 -1
  2. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  3. package/dist/lib-cjs/index.d.ts +8 -0
  4. package/dist/lib-cjs/index.js +8 -0
  5. package/dist/lib-cjs/index.js.map +1 -1
  6. package/dist/lib-cjs/internal/asset-helper.d.ts +32 -0
  7. package/dist/lib-cjs/internal/asset-helper.js +105 -0
  8. package/dist/lib-cjs/internal/asset-helper.js.map +1 -0
  9. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +18 -0
  10. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +22 -3
  11. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -1
  12. package/dist/lib-cjs/internal/cloning-helper.js +1 -1
  13. package/dist/lib-cjs/internal/cloning-helper.js.map +1 -1
  14. package/dist/lib-cjs/internal/texture-parameter-helper.js +26 -7
  15. package/dist/lib-cjs/internal/texture-parameter-helper.js.map +1 -1
  16. package/dist/lib-cjs/manager/camera-manager.d.ts +23 -2
  17. package/dist/lib-cjs/manager/camera-manager.js +91 -24
  18. package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
  19. package/dist/lib-cjs/manager/debug-manager.d.ts +1 -1
  20. package/dist/lib-cjs/manager/debug-manager.js +3 -3
  21. package/dist/lib-cjs/manager/debug-manager.js.map +1 -1
  22. package/dist/lib-cjs/manager/dimension-line-manager.d.ts +126 -0
  23. package/dist/lib-cjs/manager/dimension-line-manager.js +138 -0
  24. package/dist/lib-cjs/manager/dimension-line-manager.js.map +1 -0
  25. package/dist/lib-cjs/manager/html-anchor-manager.d.ts +93 -0
  26. package/dist/lib-cjs/manager/html-anchor-manager.js +228 -0
  27. package/dist/lib-cjs/manager/html-anchor-manager.js.map +1 -0
  28. package/dist/lib-cjs/manager/model-manager.d.ts +11 -34
  29. package/dist/lib-cjs/manager/model-manager.js +47 -107
  30. package/dist/lib-cjs/manager/model-manager.js.map +1 -1
  31. package/dist/lib-cjs/manager/parameter-manager.d.ts +17 -12
  32. package/dist/lib-cjs/manager/parameter-manager.js +78 -69
  33. package/dist/lib-cjs/manager/parameter-manager.js.map +1 -1
  34. package/dist/lib-cjs/manager/scene-manager.d.ts +111 -5
  35. package/dist/lib-cjs/manager/scene-manager.js +276 -10
  36. package/dist/lib-cjs/manager/scene-manager.js.map +1 -1
  37. package/dist/lib-cjs/viewer-error.d.ts +1 -0
  38. package/dist/lib-cjs/viewer-error.js +1 -0
  39. package/dist/lib-cjs/viewer-error.js.map +1 -1
  40. package/dist/lib-cjs/viewer.d.ts +9 -14
  41. package/dist/lib-cjs/viewer.js +16 -38
  42. package/dist/lib-cjs/viewer.js.map +1 -1
  43. package/package.json +22 -12
  44. package/src/index.ts +8 -0
  45. package/src/internal/asset-helper.ts +115 -0
  46. package/src/internal/cbn-custom-babylon-loader-plugin.ts +30 -3
  47. package/src/internal/cloning-helper.ts +1 -1
  48. package/src/internal/texture-parameter-helper.ts +25 -8
  49. package/src/manager/camera-manager.ts +153 -39
  50. package/src/manager/debug-manager.ts +3 -3
  51. package/src/manager/dimension-line-manager.ts +255 -0
  52. package/src/manager/html-anchor-manager.ts +332 -0
  53. package/src/manager/model-manager.ts +55 -138
  54. package/src/manager/parameter-manager.ts +94 -75
  55. package/src/manager/scene-manager.ts +375 -10
  56. package/src/viewer-error.ts +1 -0
  57. package/src/viewer.ts +30 -56
  58. package/src/dev.ts +0 -47
@@ -34,7 +34,7 @@ class CameraManager {
34
34
  });
35
35
  }
36
36
  // get bounding box of all visible meshes, this is the base for the autofocus algorithm
37
- const boundingInfo = this.viewer.calculateBoundingInfo(settings === null || settings === void 0 ? void 0 : settings.exclude);
37
+ const boundingInfo = this.viewer.sceneManager.calculateBoundingInfo(settings === null || settings === void 0 ? void 0 : settings.exclude);
38
38
  // optionally show bounding sphere for debugging purpose
39
39
  this.viewer.eventManager.fireEvent(index_1.ViewerEvent.AutofocusStart, boundingInfo.boundingSphere);
40
40
  const distance = this._getAutofocusZoomingDistance(boundingInfo.boundingSphere, activeCamera);
@@ -126,18 +126,19 @@ class CameraManager {
126
126
  * The result is a string containing a base64 encoded image.
127
127
  */
128
128
  createScreenshot(settings) {
129
- var _a, _b;
129
+ var _a, _b, _c;
130
130
  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 : {};
131
132
  const screenshotCam = (_a = this.viewer.scene.activeCamera) === null || _a === void 0 ? void 0 : _a.clone(CameraManager._SCREENSHOT_CAMERA_NAME);
132
- const boundingInfo = (settings === null || settings === void 0 ? void 0 : settings.autofocusScene) ? this.viewer.calculateBoundingInfo(settings.exclude) : undefined;
133
- if ((settings === null || settings === void 0 ? void 0 : settings.alpha) !== undefined) {
134
- screenshotCam.alpha = settings.alpha;
133
+ const boundingInfo = autofocusScene ? this.viewer.sceneManager.calculateBoundingInfo(exclude) : undefined;
134
+ if (alpha !== undefined) {
135
+ screenshotCam.alpha = alpha;
135
136
  }
136
- if ((settings === null || settings === void 0 ? void 0 : settings.beta) !== undefined) {
137
- screenshotCam.beta = settings.beta;
137
+ if (beta !== undefined) {
138
+ screenshotCam.beta = beta;
138
139
  }
139
- if ((settings === null || settings === void 0 ? void 0 : settings.radius) !== undefined) {
140
- screenshotCam.radius = settings.radius;
140
+ if (radius !== undefined) {
141
+ screenshotCam.radius = radius;
141
142
  }
142
143
  else if (boundingInfo) {
143
144
  // zoom out to have full scene in view if requested by `autofocusScene` flag
@@ -147,25 +148,63 @@ class CameraManager {
147
148
  }
148
149
  // `cloneAlphaBetaRadius` has to be set to true, otherwise these values get adapted by setting the new target
149
150
  // this would also be the case when setting `screenshotCam.target` directly
150
- if ((settings === null || settings === void 0 ? void 0 : settings.target) !== undefined) {
151
- screenshotCam.setTarget(settings.target, undefined, undefined, true);
151
+ if (target !== undefined) {
152
+ screenshotCam.setTarget(target, undefined, undefined, true);
152
153
  }
153
154
  else if (boundingInfo) {
154
155
  screenshotCam.setTarget(boundingInfo.boundingSphere.center, undefined, undefined, true);
155
156
  }
156
- // don't expose internal props of `IScreenshotSize` in the API (yet), as it gets rather confusing and it shouldn't
157
- // be necessary in the first place
158
- // also let Babylon.js do all the fallback handling for missing properties
159
- const size = { width: settings === null || settings === void 0 ? void 0 : settings.width, height: settings === null || settings === void 0 ? void 0 : settings.height };
160
- // for some reason the `customizeTexture` property is not exposed in the async version of this function, therefore
161
- // we create the promise here manually
162
- const imageStr = yield new Promise(resolve => {
163
- index_1.ScreenshotTools.CreateScreenshotUsingRenderTarget(this.viewer.engine, screenshotCam, size, (data) => resolve(data), settings === null || settings === void 0 ? void 0 : settings.mimeType, settings === null || settings === void 0 ? void 0 : settings.samples, settings === null || settings === void 0 ? void 0 : settings.antialiasing, settings === null || settings === void 0 ? void 0 : settings.fileName, settings === null || settings === void 0 ? void 0 : settings.renderSprites, settings === null || settings === void 0 ? void 0 : settings.enableStencilBuffer, settings === null || settings === void 0 ? void 0 : settings.useLayerMask, settings === null || settings === void 0 ? void 0 : settings.quality, texture => {
164
- 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));
165
- });
157
+ // calculate screenshot size manually as it is used for html anchor screenshot as well
158
+ const screenshotSize = this._getScreenshotSize(width, height);
159
+ 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
+ // NOTE: this doesn't work ATM, see https://github.com/BabylonJS/Babylon.js/pull/16081#issuecomment-2652861176
162
+ // we'll have to wait for a fix or solve the visibility in a different way (e.g. camera layer mask)
163
+ 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
164
  });
165
+ let imageStr = '';
166
+ const htmlAnchorKeys = excludeHtmlAnchorGroups === true
167
+ ? []
168
+ : this.viewer.htmlAnchorManager.getHtmlAnchorKeys(undefined, excludeHtmlAnchorGroups, true);
169
+ if (htmlAnchorKeys.length) {
170
+ // html anchors are not included in the main screenshot, as the html elements are located outside of the canvas
171
+ // the idea is to create a dedicated canvas for these elements and merge the result with the main screenshot into
172
+ // 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);
188
+ screenshotCombinedCanvas.remove();
189
+ }
190
+ else {
191
+ imageStr = imageStr3d;
192
+ }
167
193
  screenshotCam.dispose();
168
- return imageStr;
194
+ if (fileName) {
195
+ // rebuild Babylon.js default behaviour: if a file name is given, download the screenshot instead of returning the
196
+ // data string
197
+ const link = document.createElement('a');
198
+ link.href = imageStr;
199
+ link.download = fileName;
200
+ document.body.appendChild(link);
201
+ link.click();
202
+ document.body.removeChild(link);
203
+ return '';
204
+ }
205
+ else {
206
+ return imageStr;
207
+ }
169
208
  });
170
209
  }
171
210
  static _addCameraAnimationToGroup(targetProperty, from, to, framesPerSec, dataType, animationGroup, activeCamera) {
@@ -194,9 +233,37 @@ class CameraManager {
194
233
  const distance = Math.max(distanceForHorizontalFrustum, distanceForVerticalFrustum);
195
234
  return distance;
196
235
  }
236
+ _getScreenshotSize(width, height) {
237
+ const canvas = this.viewer.canvas;
238
+ const aspectRatio = canvas.width / canvas.height;
239
+ let imageWidth = 0;
240
+ let imageHeight = 0;
241
+ if (width && height) {
242
+ imageWidth = width;
243
+ imageHeight = height;
244
+ }
245
+ else if (width && !height) {
246
+ imageWidth = width;
247
+ imageHeight = width / aspectRatio;
248
+ }
249
+ else if (!width && height) {
250
+ imageWidth = height * aspectRatio;
251
+ imageHeight = height;
252
+ }
253
+ else {
254
+ imageWidth = canvas.width;
255
+ imageHeight = canvas.height;
256
+ }
257
+ // canvas size only differs from image size if both width and height are set
258
+ // in this case the aspect ratio differs from the canvas aspect ratio and some parts of the canvas have to be
259
+ // cropped for the screenshot
260
+ const canvasWidth = width && height ? height * aspectRatio : imageWidth;
261
+ const canvasHeight = imageHeight;
262
+ return { imageWidth, imageHeight, canvasWidth, canvasHeight };
263
+ }
197
264
  }
198
265
  exports.CameraManager = CameraManager;
199
- CameraManager.CAMERA_ANIMATION_NAME = '__cameraAnimation__';
266
+ CameraManager.CAMERA_ANIMATION_NAME = '$cameraAnimation';
200
267
  /** @internal */
201
268
  CameraManager.DEFAULT_CAMERA_POSITION = {
202
269
  alpha: (45 * Math.PI) / 180,
@@ -212,5 +279,5 @@ CameraManager._AUTOFOCUS_CONSTANTS = {
212
279
  };
213
280
  CameraManager._DEFAULT_AUTOFOCUS_RADIUS_FACTOR = 1;
214
281
  CameraManager._DEFAULT_CAM_SPEED_MS = 250;
215
- CameraManager._SCREENSHOT_CAMERA_NAME = '__screenshotCamera__';
282
+ CameraManager._SCREENSHOT_CAMERA_NAME = '$screenshotCamera';
216
283
  //# sourceMappingURL=camera-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export declare class DebugManager {
31
31
  hideCoordinateSystem(): void;
32
32
  /**
33
33
  * Draws a wireframe bounding sphere on the next call of {@link CameraManager.autofocusActiveCamera}.\
34
- * This is usefull for checking which parts of the scene get centered.
34
+ * This is useful for checking which parts of the scene get centered.
35
35
  */
36
36
  showBoundingSphereForAutofocus(): void;
37
37
  hideBoundingSphereForAutofocus(): void;
@@ -104,7 +104,7 @@ The inspector can only be used in development builds.`);
104
104
  showCoordinateSystem(node, size) {
105
105
  // calculate the default size of not provided
106
106
  if (!size) {
107
- const sceneBoundingInfo = this.viewer.calculateBoundingInfo();
107
+ const sceneBoundingInfo = this.viewer.sceneManager.calculateBoundingInfo();
108
108
  const radius = sceneBoundingInfo.boundingSphere.radius;
109
109
  // takes a third of the radius from scene boundingsphere
110
110
  size = radius * (1 / 3);
@@ -149,7 +149,7 @@ The inspector can only be used in development builds.`);
149
149
  }
150
150
  /**
151
151
  * Draws a wireframe bounding sphere on the next call of {@link CameraManager.autofocusActiveCamera}.\
152
- * This is usefull for checking which parts of the scene get centered.
152
+ * This is useful for checking which parts of the scene get centered.
153
153
  */
154
154
  showBoundingSphereForAutofocus() {
155
155
  this._showBoundingSphereForAutofocus = true;
@@ -231,5 +231,5 @@ The inspector can only be used in development builds.`);
231
231
  }
232
232
  }
233
233
  exports.DebugManager = DebugManager;
234
- DebugManager._BOUNDING_SPHERE_KEY = '__bounding_sphere__';
234
+ DebugManager._BOUNDING_SPHERE_KEY = '$boundingSphere';
235
235
  //# sourceMappingURL=debug-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug-manager.js","sourceRoot":"","sources":["../../../src/manager/debug-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-manager.js","sourceRoot":"","sources":["../../../src/manager/debug-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { Color3, LinesMesh, TransformNode, Vector3, Viewer } from '../index';
2
+ /**
3
+ * General options that are used for each dimension line
4
+ */
5
+ export declare type DefaultDimensionLineOptions = {
6
+ /**
7
+ * Default: `Color3.Black()`
8
+ */
9
+ lineColor: Color3;
10
+ /**
11
+ * Default: 50mm
12
+ */
13
+ closingLineHeight: number;
14
+ /**
15
+ * Height of dimension label
16
+ *
17
+ * Default: 24px
18
+ */
19
+ labelHeight: number;
20
+ /**
21
+ * Corner radius of dimension label
22
+ *
23
+ * Default: 1/2 of `labelHeight`, to create a half circle
24
+ */
25
+ borderRadius?: number;
26
+ /**
27
+ * Text padding in x direction
28
+ *
29
+ * Default: 1/2 of `labelHeight`
30
+ */
31
+ textPadding?: number;
32
+ /**
33
+ * Default: Arial
34
+ */
35
+ fontFamily: string;
36
+ /**
37
+ * Text color of dimension label
38
+ *
39
+ * Default: black
40
+ */
41
+ textColor: string;
42
+ /**
43
+ * Color of border
44
+ *
45
+ * Default: black
46
+ */
47
+ borderColor: string;
48
+ /**
49
+ * Background color of dimension label
50
+ *
51
+ * Default: white
52
+ */
53
+ backgroundColor: string;
54
+ /**
55
+ * `true`: html elements can be occluded by other meshes
56
+ * `false`: html elements will always be shown in front of the scene
57
+ *
58
+ * Default: `false`
59
+ */
60
+ hideIfOccluded?: boolean;
61
+ /**
62
+ * `true`: html element size is relative to camera distance, just like a "normal" 3d object
63
+ * `false`: html element size remains constant
64
+ *
65
+ * Default: `false`
66
+ */
67
+ scaleWithCameraDistance?: boolean;
68
+ };
69
+ /**
70
+ * Specific options for each dimension line
71
+ */
72
+ export declare type DimensionLineOptions = Partial<DefaultDimensionLineOptions> & {
73
+ /**
74
+ * Optional parent node of dimension line group, can be used for easier calculation of start and end point
75
+ *
76
+ * Default: no parent node set
77
+ */
78
+ parentNode?: TransformNode;
79
+ /**
80
+ * Optional direction of the closing lines on start and end.\
81
+ * Use built-in vector functions like `Vector3.Left()` or `Vector3.Forward()` for simple directions of use a custom
82
+ * normal vector like `Vector3(1, 0.5 ,0)`.
83
+ *
84
+ * Default: x or y direction is taken, depending on the normal vector between start and end point
85
+ */
86
+ closingLineDirection?: Vector3;
87
+ /**
88
+ * Optional label text
89
+ *
90
+ * Default: dimension line size is calculated from `startPoint` and `endPoint` and suffixed with "mm" (e.g. "1200 mm")
91
+ */
92
+ labelText?: string;
93
+ };
94
+ /**
95
+ * Manager for dimension lines, which can be used to display certain dimensions like object sizes in the scene
96
+ */
97
+ export declare class DimensionLineManager {
98
+ protected viewer: Viewer;
99
+ static readonly DIMENSION_LINE_KEY = "$dimLine";
100
+ protected _defaultLineOptions: DefaultDimensionLineOptions;
101
+ protected _dimensionLineObjs: {
102
+ [name: string]: {
103
+ linesMesh: LinesMesh;
104
+ htmlLabelName: string;
105
+ };
106
+ };
107
+ /** @internal */
108
+ constructor(viewer: Viewer);
109
+ /**
110
+ * Define dimension line options that are used for each line by default.\
111
+ * Options can be overwritten by each line individually.
112
+ */
113
+ setDefaultDimensionLineOptions(defaultLineOptions: Partial<DefaultDimensionLineOptions>): void;
114
+ /**
115
+ * Create dimension line between two points
116
+ */
117
+ addDimensionLine(name: string, startPoint: Vector3, endPoint: Vector3, options?: DimensionLineOptions): void;
118
+ /**
119
+ * Remove dimension line and disposes all associated ressources
120
+ */
121
+ removeDimensionLine(name: string): void;
122
+ /**
123
+ * Remove all dimension lines that have been created with the `DimensionLineManager`
124
+ */
125
+ removeAllDimensionLines(): void;
126
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.DimensionLineManager = void 0;
15
+ const index_1 = require("../index");
16
+ const lodash_es_1 = require("lodash-es");
17
+ /**
18
+ * Manager for dimension lines, which can be used to display certain dimensions like object sizes in the scene
19
+ */
20
+ class DimensionLineManager {
21
+ /** @internal */
22
+ constructor(viewer) {
23
+ this.viewer = viewer;
24
+ this._defaultLineOptions = {
25
+ lineColor: index_1.Color3.Black(),
26
+ closingLineHeight: 50,
27
+ labelHeight: 24,
28
+ fontFamily: 'Arial',
29
+ textColor: 'black',
30
+ borderColor: 'black',
31
+ backgroundColor: 'white',
32
+ hideIfOccluded: false,
33
+ scaleWithCameraDistance: false,
34
+ };
35
+ // map with all dimension lines that are currently visible in the scene
36
+ // holds data of all disposable objects for a clean up
37
+ this._dimensionLineObjs = {};
38
+ }
39
+ /**
40
+ * Define dimension line options that are used for each line by default.\
41
+ * Options can be overwritten by each line individually.
42
+ */
43
+ setDefaultDimensionLineOptions(defaultLineOptions) {
44
+ (0, lodash_es_1.merge)(this._defaultLineOptions, defaultLineOptions);
45
+ }
46
+ /**
47
+ * Create dimension line between two points
48
+ */
49
+ addDimensionLine(name, startPoint, endPoint, options) {
50
+ if (this._dimensionLineObjs[name]) {
51
+ console.warn(`Dimension line "${name}" already exists`);
52
+ return;
53
+ }
54
+ const _a = options !== null && options !== void 0 ? options : {}, { parentNode, closingLineDirection: closingLineDirectionIn, labelText: labelTextIn } = _a, inputDefaultOptions = __rest(_a, ["parentNode", "closingLineDirection", "labelText"]);
55
+ const resDefaultOptions = Object.assign({}, this._defaultLineOptions);
56
+ (0, lodash_es_1.merge)(resDefaultOptions, inputDefaultOptions);
57
+ const { lineColor, closingLineHeight, labelHeight, textPadding, borderRadius, fontFamily, textColor, borderColor, backgroundColor, hideIfOccluded, scaleWithCameraDistance, } = resDefaultOptions;
58
+ let closingLineDirection = closingLineDirectionIn;
59
+ if (!closingLineDirection) {
60
+ // evaluate closing line direction if not given
61
+ const normal = endPoint.subtract(startPoint);
62
+ const yIsMainDirection = Math.abs(normal.y) > Math.abs(normal.x) && Math.abs(normal.y) > Math.abs(normal.z);
63
+ closingLineDirection = yIsMainDirection ? index_1.Vector3.Right() : index_1.Vector3.Up();
64
+ }
65
+ // calculate and create main and closing lines
66
+ const lineCenter = index_1.Vector3.Center(startPoint, endPoint);
67
+ const relStartPt = startPoint.subtract(lineCenter);
68
+ const relEndPt = endPoint.subtract(lineCenter);
69
+ const closingLineOffsetVector = closingLineDirection.normalizeToNew().scale(closingLineHeight / 2 / 1000);
70
+ const closingLineStartPts = [relStartPt.add(closingLineOffsetVector), relStartPt.subtract(closingLineOffsetVector)];
71
+ const closingLineEndPts = [relEndPt.add(closingLineOffsetVector), relEndPt.subtract(closingLineOffsetVector)];
72
+ const linesMesh = index_1.MeshBuilder.CreateLineSystem(`${DimensionLineManager.DIMENSION_LINE_KEY}_${name}`, {
73
+ lines: [[relStartPt, relEndPt], closingLineStartPts, closingLineEndPts],
74
+ });
75
+ linesMesh.position = lineCenter;
76
+ linesMesh.color = lineColor;
77
+ // rendering group id 1 reserved for html anchor meshes, which are required for occlusion checking
78
+ linesMesh.renderingGroupId = hideIfOccluded ? 0 : 2;
79
+ // tag can be used to exclude dimension lines from autofocus or gltf export
80
+ index_1.Tags.AddTagsTo(linesMesh, DimensionLineManager.DIMENSION_LINE_KEY);
81
+ if (parentNode) {
82
+ linesMesh.parent = parentNode;
83
+ }
84
+ let labelText = labelTextIn;
85
+ if (labelText === undefined) {
86
+ // create default text if not explicitely overwritten by the function
87
+ const length = index_1.Vector3.Distance(startPoint, endPoint);
88
+ const lengthRounded = Math.round(length * 1000 * 100) / 100;
89
+ labelText = `${lengthRounded} mm`;
90
+ }
91
+ // create default html element
92
+ const span = document.createElement('span');
93
+ span.textContent = labelText;
94
+ span.style.display = 'block';
95
+ span.style.height = `${labelHeight}px`;
96
+ span.style.lineHeight = `${labelHeight}px`;
97
+ span.style.fontFamily = fontFamily;
98
+ span.style.fontSize = `${(labelHeight * 2) / 3}px`;
99
+ span.style.border = `1px solid ${borderColor}`;
100
+ span.style.paddingLeft = `${textPadding !== null && textPadding !== void 0 ? textPadding : labelHeight / 2}px`;
101
+ span.style.paddingRight = `${textPadding !== null && textPadding !== void 0 ? textPadding : labelHeight / 2}px`;
102
+ span.style.borderRadius = `${borderRadius !== null && borderRadius !== void 0 ? borderRadius : labelHeight / 2}px`;
103
+ span.style.color = textColor;
104
+ span.style.background = backgroundColor;
105
+ const htmlLabelName = `${DimensionLineManager.DIMENSION_LINE_KEY}_${name}`;
106
+ this.viewer.htmlAnchorManager.addHtmlAnchor(name, span, index_1.Vector3.Zero(), {
107
+ parentNode: linesMesh,
108
+ group: DimensionLineManager.DIMENSION_LINE_KEY,
109
+ hideIfOccluded,
110
+ scaleWithCameraDistance,
111
+ });
112
+ this._dimensionLineObjs[name] = { linesMesh, htmlLabelName };
113
+ }
114
+ /**
115
+ * Remove dimension line and disposes all associated ressources
116
+ */
117
+ removeDimensionLine(name) {
118
+ const dimensionLine = this._dimensionLineObjs[name];
119
+ if (!dimensionLine) {
120
+ console.warn(`Dimension line "${name}" does not exist`);
121
+ return;
122
+ }
123
+ this.viewer.htmlAnchorManager.removeHtmlAnchor(name);
124
+ dimensionLine.linesMesh.dispose(false, true);
125
+ delete this._dimensionLineObjs[name];
126
+ }
127
+ /**
128
+ * Remove all dimension lines that have been created with the `DimensionLineManager`
129
+ */
130
+ removeAllDimensionLines() {
131
+ Object.keys(this._dimensionLineObjs).forEach(dimLineName => {
132
+ this.removeDimensionLine(dimLineName);
133
+ });
134
+ }
135
+ }
136
+ exports.DimensionLineManager = DimensionLineManager;
137
+ DimensionLineManager.DIMENSION_LINE_KEY = '$dimLine';
138
+ //# sourceMappingURL=dimension-line-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimension-line-manager.js","sourceRoot":"","sources":["../../../src/manager/dimension-line-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { AbstractMesh, ArcRotateCamera, Camera, ScreenshotSize, StandardMaterial, TransformNode, Vector3, Viewer } from '..';
2
+ export declare type HtmlAnchorOptions = {
3
+ /**
4
+ * Associated anchor mesh will be created underneath this parent node.\
5
+ * Can be used to make anchor position calculation easier in nested scene structures.
6
+ */
7
+ parentNode?: TransformNode;
8
+ /**
9
+ * Can be used to filter affected html anchors in {@link HtmlAnchorManager.removeAllHtmlAnchors}
10
+ */
11
+ group?: string;
12
+ /**
13
+ * `true`: html elements can be occluded by other meshes
14
+ * `false`: html elements will always be shown in front of the scene
15
+ *
16
+ * Default: `false`
17
+ */
18
+ hideIfOccluded?: boolean;
19
+ /**
20
+ * `true`: html element size is relative to camera distance, just like a "normal" 3d object
21
+ * `false`: html element size remains constant
22
+ *
23
+ * Default: `false`
24
+ */
25
+ scaleWithCameraDistance?: boolean;
26
+ /**
27
+ * Activates/deactivates `pointer-events` CSS class of anchor element.\
28
+ * Set this to `true` if the html element should be interactive (e.g. button)
29
+ *
30
+ * Default: `false`
31
+ */
32
+ enablePointerEvents?: boolean;
33
+ };
34
+ /**
35
+ * Manager for mapping html elements to 3d positions in the scene.\
36
+ * Common use cases are:
37
+ * - **Hotspot buttons**: Interactively add/remove elements in the scene or just show some info on hovering
38
+ * - **Input fields**: Interactively change the size of an element
39
+ * - **Info label**: Just shows some information on a certain position within the scene
40
+ *
41
+ * Html anchors are also used as dimension lables in the {@link DimensionLineManager}
42
+ */
43
+ export declare class HtmlAnchorManager {
44
+ protected viewer: Viewer;
45
+ protected static readonly _HTML_ANCHOR_KEY = "$htmlAnchor";
46
+ protected _htmlAnchors: {
47
+ [name: string]: {
48
+ parentHtmlElement: HTMLDivElement;
49
+ anchorMesh: AbstractMesh;
50
+ options?: HtmlAnchorOptions;
51
+ };
52
+ };
53
+ protected _anchorMeshMaterial: StandardMaterial | null;
54
+ /** @internal */
55
+ constructor(viewer: Viewer);
56
+ /**
57
+ * Assign a html element to a certain position in the scene.\
58
+ * The html elements 2d position will be updated on each camera render, so that the element appears like a "normal"
59
+ * mesh within the scene.
60
+ */
61
+ addHtmlAnchor(name: string, htmlElement: HTMLElement, position: Vector3, options?: HtmlAnchorOptions): void;
62
+ /**
63
+ * Remove html anchor element and disposes all associated ressources
64
+ */
65
+ removeHtmlAnchor(name: string): void;
66
+ /**
67
+ * Removes html anchor elements, as defined by the `groups` input
68
+ *
69
+ * @param groups if set, only html anchors which are part of these groups will be removed\
70
+ * if left `undefined`, ALL html anchors will be removed
71
+ */
72
+ removeAllHtmlAnchors(groups?: string[]): void;
73
+ /**
74
+ * Creates a screenshot of defined html anchors and returns the associated canvas.\
75
+ * This function is used @internal from the main screenshot function.
76
+ */
77
+ createScreenshotCanvas(size: ScreenshotSize, camera: ArcRotateCamera, htmlAnchorKeys: string[]): Promise<HTMLCanvasElement>;
78
+ /**
79
+ * Receive html anchor keys that pass the `includeGroups` and `excludeGroups` filter
80
+ * @param allowSystemGroups defines if html anchors created by the viewer should be considered (e.g. dimension line
81
+ * labels)
82
+ * @internal
83
+ */
84
+ getHtmlAnchorKeys(includeGroups?: string[], excludeGroups?: string[], allowSystemGroups?: boolean): string[];
85
+ /**
86
+ * Check if input mesh is a html anchor mesh, created by this manager.\
87
+ * This check is done via the material, as all html anchor meshes have the generic `_anchorMeshMaterial` set.
88
+ * @internal
89
+ */
90
+ isHtmlAnchorMesh(mesh: AbstractMesh): boolean;
91
+ protected _updateHtmlAnchor(parentHtmlElement: HTMLDivElement, anchorMesh: AbstractMesh, camera: Camera, width: number, height: number, baseScale: number, options?: HtmlAnchorOptions): void;
92
+ protected _getOrCreateAnchorMeshMaterial(): StandardMaterial;
93
+ }