@combeenation/3d-viewer 18.0.0-beta1 → 18.0.0-beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib-cjs/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +6 -0
- package/dist/lib-cjs/index.js +6 -0
- package/dist/lib-cjs/index.js.map +1 -1
- package/dist/lib-cjs/internal/cloning-helper.js +1 -1
- package/dist/lib-cjs/internal/cloning-helper.js.map +1 -1
- package/dist/lib-cjs/manager/camera-manager.d.ts +23 -2
- package/dist/lib-cjs/manager/camera-manager.js +90 -25
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
- package/dist/lib-cjs/manager/debug-manager.d.ts +1 -1
- package/dist/lib-cjs/manager/debug-manager.js +2 -2
- package/dist/lib-cjs/manager/debug-manager.js.map +1 -1
- package/dist/lib-cjs/manager/dimension-line-manager.d.ts +87 -0
- package/dist/lib-cjs/manager/dimension-line-manager.js +126 -0
- package/dist/lib-cjs/manager/dimension-line-manager.js.map +1 -0
- package/dist/lib-cjs/manager/html-anchor-manager.d.ts +93 -0
- package/dist/lib-cjs/manager/html-anchor-manager.js +228 -0
- package/dist/lib-cjs/manager/html-anchor-manager.js.map +1 -0
- package/dist/lib-cjs/manager/model-manager.d.ts +0 -1
- package/dist/lib-cjs/manager/model-manager.js +0 -1
- package/dist/lib-cjs/manager/model-manager.js.map +1 -1
- package/dist/lib-cjs/manager/parameter-manager.d.ts +1 -1
- package/dist/lib-cjs/manager/scene-manager.js +10 -3
- package/dist/lib-cjs/manager/scene-manager.js.map +1 -1
- package/dist/lib-cjs/viewer.d.ts +6 -2
- package/dist/lib-cjs/viewer.js +13 -1
- package/dist/lib-cjs/viewer.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +6 -0
- package/src/internal/cloning-helper.ts +1 -1
- package/src/manager/camera-manager.ts +152 -40
- package/src/manager/debug-manager.ts +2 -2
- package/src/manager/dimension-line-manager.ts +210 -0
- package/src/manager/html-anchor-manager.ts +332 -0
- package/src/manager/model-manager.ts +0 -1
- package/src/manager/parameter-manager.ts +1 -1
- package/src/manager/scene-manager.ts +12 -3
- package/src/viewer.ts +17 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DimensionLineManager = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
const lodash_es_1 = require("lodash-es");
|
|
6
|
+
/**
|
|
7
|
+
* Manager for dimension lines, which can be used to display certain dimensions like object sizes in the scene
|
|
8
|
+
*/
|
|
9
|
+
class DimensionLineManager {
|
|
10
|
+
/** @internal */
|
|
11
|
+
constructor(viewer) {
|
|
12
|
+
this.viewer = viewer;
|
|
13
|
+
this._defaultLineOptions = {
|
|
14
|
+
lineColor: index_1.Color3.Black(),
|
|
15
|
+
closingLineHeight: 0.05,
|
|
16
|
+
hideIfOccluded: false,
|
|
17
|
+
scaleWithCameraDistance: false,
|
|
18
|
+
labelTextCb: (lengthM) => {
|
|
19
|
+
const lengthRounded = Math.round(lengthM * 1000 * 100) / 100;
|
|
20
|
+
return `${lengthRounded} mm`;
|
|
21
|
+
},
|
|
22
|
+
labelCssClass: '',
|
|
23
|
+
};
|
|
24
|
+
// map with all dimension lines that are currently visible in the scene
|
|
25
|
+
// holds data of all disposable objects for a clean up
|
|
26
|
+
this._dimensionLineObjs = {};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Define dimension line options that are used for each line by default.\
|
|
30
|
+
* Options can be overwritten by each line individually.
|
|
31
|
+
*/
|
|
32
|
+
setDefaultDimensionLineOptions(defaultLineOptions) {
|
|
33
|
+
(0, lodash_es_1.merge)(this._defaultLineOptions, defaultLineOptions);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create dimension line between two points
|
|
37
|
+
*/
|
|
38
|
+
addDimensionLine(name, startPoint, endPoint, options) {
|
|
39
|
+
if (this._dimensionLineObjs[name]) {
|
|
40
|
+
console.warn(`Dimension line "${name}" already exists`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const resDefaultOptions = Object.assign({}, this._defaultLineOptions);
|
|
44
|
+
(0, lodash_es_1.merge)(resDefaultOptions, options);
|
|
45
|
+
const { lineColor, closingLineHeight, closingLineDirection: closingLineDirectionIn, parentNode, hideIfOccluded, scaleWithCameraDistance, labelTextCb, labelCssClass, } = resDefaultOptions;
|
|
46
|
+
let closingLineDirection = closingLineDirectionIn;
|
|
47
|
+
if (!closingLineDirection) {
|
|
48
|
+
// evaluate closing line direction if not given
|
|
49
|
+
const normal = endPoint.subtract(startPoint);
|
|
50
|
+
const yIsMainDirection = Math.abs(normal.y) > Math.abs(normal.x) && Math.abs(normal.y) > Math.abs(normal.z);
|
|
51
|
+
closingLineDirection = yIsMainDirection ? index_1.Vector3.Right() : index_1.Vector3.Up();
|
|
52
|
+
}
|
|
53
|
+
// calculate and create main and closing lines
|
|
54
|
+
const lineCenter = index_1.Vector3.Center(startPoint, endPoint);
|
|
55
|
+
const relStartPt = startPoint.subtract(lineCenter);
|
|
56
|
+
const relEndPt = endPoint.subtract(lineCenter);
|
|
57
|
+
const closingLineOffsetVector = closingLineDirection.normalizeToNew().scale(closingLineHeight / 2);
|
|
58
|
+
const closingLineStartPts = [relStartPt.add(closingLineOffsetVector), relStartPt.subtract(closingLineOffsetVector)];
|
|
59
|
+
const closingLineEndPts = [relEndPt.add(closingLineOffsetVector), relEndPt.subtract(closingLineOffsetVector)];
|
|
60
|
+
const linesMesh = index_1.MeshBuilder.CreateLineSystem(`${DimensionLineManager.DIMENSION_LINE_KEY}_${name}`, {
|
|
61
|
+
lines: [[relStartPt, relEndPt], closingLineStartPts, closingLineEndPts],
|
|
62
|
+
});
|
|
63
|
+
linesMesh.position = lineCenter;
|
|
64
|
+
linesMesh.color = lineColor;
|
|
65
|
+
// rendering group id 1 reserved for html anchor meshes, which are required for occlusion checking
|
|
66
|
+
linesMesh.renderingGroupId = hideIfOccluded ? 0 : 2;
|
|
67
|
+
// tag can be used to exclude dimension lines from autofocus or gltf export
|
|
68
|
+
index_1.Tags.AddTagsTo(linesMesh, DimensionLineManager.DIMENSION_LINE_KEY);
|
|
69
|
+
if (parentNode) {
|
|
70
|
+
linesMesh.parent = parentNode;
|
|
71
|
+
}
|
|
72
|
+
const lengthM = index_1.Vector3.Distance(startPoint, endPoint);
|
|
73
|
+
const labelText = labelTextCb(lengthM);
|
|
74
|
+
// create default html element
|
|
75
|
+
const span = document.createElement('span');
|
|
76
|
+
span.textContent = labelText;
|
|
77
|
+
if (labelCssClass) {
|
|
78
|
+
span.classList.add(labelCssClass);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const labelHeight = 24;
|
|
82
|
+
span.style.display = 'block';
|
|
83
|
+
span.style.height = `${labelHeight}px`;
|
|
84
|
+
span.style.lineHeight = `${labelHeight}px`;
|
|
85
|
+
span.style.fontSize = `${(labelHeight * 2) / 3}px`;
|
|
86
|
+
span.style.fontFamily = 'Arial';
|
|
87
|
+
span.style.border = `1px solid black`;
|
|
88
|
+
span.style.paddingLeft = `${labelHeight / 2}px`;
|
|
89
|
+
span.style.paddingRight = `${labelHeight / 2}px`;
|
|
90
|
+
span.style.borderRadius = `${labelHeight / 2}px`;
|
|
91
|
+
span.style.background = 'white';
|
|
92
|
+
}
|
|
93
|
+
const htmlLabelName = `${DimensionLineManager.DIMENSION_LINE_KEY}_${name}`;
|
|
94
|
+
this.viewer.htmlAnchorManager.addHtmlAnchor(name, span, index_1.Vector3.Zero(), {
|
|
95
|
+
parentNode: linesMesh,
|
|
96
|
+
group: DimensionLineManager.DIMENSION_LINE_KEY,
|
|
97
|
+
hideIfOccluded,
|
|
98
|
+
scaleWithCameraDistance,
|
|
99
|
+
});
|
|
100
|
+
this._dimensionLineObjs[name] = { linesMesh, htmlLabelName };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Remove dimension line and disposes all associated ressources
|
|
104
|
+
*/
|
|
105
|
+
removeDimensionLine(name) {
|
|
106
|
+
const dimensionLine = this._dimensionLineObjs[name];
|
|
107
|
+
if (!dimensionLine) {
|
|
108
|
+
console.warn(`Dimension line "${name}" does not exist`);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.viewer.htmlAnchorManager.removeHtmlAnchor(name);
|
|
112
|
+
dimensionLine.linesMesh.dispose(false, true);
|
|
113
|
+
delete this._dimensionLineObjs[name];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Remove all dimension lines that have been created with the `DimensionLineManager`
|
|
117
|
+
*/
|
|
118
|
+
removeAllDimensionLines() {
|
|
119
|
+
Object.keys(this._dimensionLineObjs).forEach(dimLineName => {
|
|
120
|
+
this.removeDimensionLine(dimLineName);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.DimensionLineManager = DimensionLineManager;
|
|
125
|
+
DimensionLineManager.DIMENSION_LINE_KEY = '$dimLine';
|
|
126
|
+
//# 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
|
+
}
|
|
@@ -0,0 +1,228 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.HtmlAnchorManager = void 0;
|
|
16
|
+
const __1 = require("..");
|
|
17
|
+
const html2canvas_1 = __importDefault(require("html2canvas"));
|
|
18
|
+
/**
|
|
19
|
+
* Manager for mapping html elements to 3d positions in the scene.\
|
|
20
|
+
* Common use cases are:
|
|
21
|
+
* - **Hotspot buttons**: Interactively add/remove elements in the scene or just show some info on hovering
|
|
22
|
+
* - **Input fields**: Interactively change the size of an element
|
|
23
|
+
* - **Info label**: Just shows some information on a certain position within the scene
|
|
24
|
+
*
|
|
25
|
+
* Html anchors are also used as dimension lables in the {@link DimensionLineManager}
|
|
26
|
+
*/
|
|
27
|
+
class HtmlAnchorManager {
|
|
28
|
+
/** @internal */
|
|
29
|
+
constructor(viewer) {
|
|
30
|
+
this.viewer = viewer;
|
|
31
|
+
this._htmlAnchors = {};
|
|
32
|
+
this._anchorMeshMaterial = null;
|
|
33
|
+
const canvas = viewer.canvas;
|
|
34
|
+
if (!canvas) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// html element positions need to be updated after each camera render call
|
|
38
|
+
viewer.scene.onAfterRenderCameraObservable.add(() => {
|
|
39
|
+
Object.values(this._htmlAnchors).forEach(({ parentHtmlElement, anchorMesh, options }) => {
|
|
40
|
+
this._updateHtmlAnchor(parentHtmlElement, anchorMesh, viewer.scene.activeCamera, canvas.width, canvas.height, 1, options);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Assign a html element to a certain position in the scene.\
|
|
46
|
+
* The html elements 2d position will be updated on each camera render, so that the element appears like a "normal"
|
|
47
|
+
* mesh within the scene.
|
|
48
|
+
*/
|
|
49
|
+
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
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (this._htmlAnchors[name]) {
|
|
57
|
+
console.warn(`Html anchor "${name}" already exists`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const { parentNode, enablePointerEvents } = options !== null && options !== void 0 ? options : {};
|
|
61
|
+
// create a parent for the input html element, which will receive the updated style and transform data
|
|
62
|
+
// in this way the original input element remains untouched
|
|
63
|
+
const parentHtmlElement = document.createElement('div');
|
|
64
|
+
parentHtmlElement.dataset.anchorName = name;
|
|
65
|
+
parentHtmlElement.style.position = 'absolute';
|
|
66
|
+
parentHtmlElement.style.margin = '0';
|
|
67
|
+
parentHtmlElement.appendChild(htmlElement);
|
|
68
|
+
if (!enablePointerEvents) {
|
|
69
|
+
parentHtmlElement.style.pointerEvents = 'none';
|
|
70
|
+
}
|
|
71
|
+
canvasParentHtmlElement.appendChild(parentHtmlElement);
|
|
72
|
+
// NOTE: creates a sphere with fixed size, which could be problematic in scene with "strange" dimensions
|
|
73
|
+
// add a property for the sphere size if required
|
|
74
|
+
const anchorMesh = __1.MeshBuilder.CreateSphere(`${HtmlAnchorManager._HTML_ANCHOR_KEY}_${name}`, { diameter: 0.01 });
|
|
75
|
+
anchorMesh.position = position;
|
|
76
|
+
anchorMesh.parent = parentNode !== null && parentNode !== void 0 ? parentNode : null;
|
|
77
|
+
// anchor mesh will be invisible, we only need it for positioning and occlusion check
|
|
78
|
+
anchorMesh.material = this._getOrCreateAnchorMeshMaterial();
|
|
79
|
+
anchorMesh.occlusionType = __1.AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC;
|
|
80
|
+
anchorMesh.occlusionQueryAlgorithmType = __1.AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE;
|
|
81
|
+
// it's important that the occlusion check mesh is rendered after all "normal" meshes, which should be taken into
|
|
82
|
+
// account for the occlusion check
|
|
83
|
+
anchorMesh.renderingGroupId = 1;
|
|
84
|
+
this._htmlAnchors[name] = { parentHtmlElement, anchorMesh, options };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Remove html anchor element and disposes all associated ressources
|
|
88
|
+
*/
|
|
89
|
+
removeHtmlAnchor(name) {
|
|
90
|
+
const htmlAnchor = this._htmlAnchors[name];
|
|
91
|
+
if (!htmlAnchor) {
|
|
92
|
+
console.warn(`Html anchor "${name}" does not exist`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
htmlAnchor.parentHtmlElement.remove();
|
|
96
|
+
htmlAnchor.anchorMesh.dispose();
|
|
97
|
+
delete this._htmlAnchors[name];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Removes html anchor elements, as defined by the `groups` input
|
|
101
|
+
*
|
|
102
|
+
* @param groups if set, only html anchors which are part of these groups will be removed\
|
|
103
|
+
* if left `undefined`, ALL html anchors will be removed
|
|
104
|
+
*/
|
|
105
|
+
removeAllHtmlAnchors(groups) {
|
|
106
|
+
const anchorKeysToRemove = this.getHtmlAnchorKeys(groups, undefined,
|
|
107
|
+
// system groups should not be remove, as there is a dedicated workflow
|
|
108
|
+
// (e.g. `DimensionLineManager.removeDimensionLine`) to do this
|
|
109
|
+
false);
|
|
110
|
+
anchorKeysToRemove.forEach(name => this.removeHtmlAnchor(name));
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Creates a screenshot of defined html anchors and returns the associated canvas.\
|
|
114
|
+
* This function is used @internal from the main screenshot function.
|
|
115
|
+
*/
|
|
116
|
+
createScreenshotCanvas(size, camera, htmlAnchorKeys) {
|
|
117
|
+
var _a;
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
const canvasParentHtmlElement = (_a = this.viewer.canvas) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
120
|
+
if (!canvasParentHtmlElement) {
|
|
121
|
+
console.warn(`No parent for html anchors available`);
|
|
122
|
+
return new HTMLCanvasElement();
|
|
123
|
+
}
|
|
124
|
+
const htmlContainer = document.createElement('div');
|
|
125
|
+
htmlContainer.style.width = `${size.canvasWidth}px`;
|
|
126
|
+
htmlContainer.style.height = `${size.canvasHeight}px`;
|
|
127
|
+
// the `html2canvas` library requires the html to be present in the DOM
|
|
128
|
+
// that's why we create it top level and move it out of the viewport
|
|
129
|
+
// @reviewer: maybe there is a smoother method of doing that?
|
|
130
|
+
document.body.append(htmlContainer);
|
|
131
|
+
htmlContainer.style.position = 'absolute';
|
|
132
|
+
htmlContainer.style.top = `${-size.canvasHeight}px`;
|
|
133
|
+
htmlAnchorKeys.forEach(key => {
|
|
134
|
+
const { parentHtmlElement, anchorMesh, options } = this._htmlAnchors[key];
|
|
135
|
+
// create clones of html anchors, so that the position of the original elements remains untouched
|
|
136
|
+
const clonedHtmlNode = parentHtmlElement.cloneNode(true);
|
|
137
|
+
htmlContainer.append(clonedHtmlNode);
|
|
138
|
+
// 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);
|
|
141
|
+
});
|
|
142
|
+
const screenshotHtmlCanvas = yield (0, html2canvas_1.default)(htmlContainer, {
|
|
143
|
+
width: size.imageWidth,
|
|
144
|
+
height: size.imageHeight,
|
|
145
|
+
// apply difference of canvas and image size as offsets
|
|
146
|
+
x: (size.canvasWidth - size.imageWidth) / 2,
|
|
147
|
+
y: (size.canvasHeight - size.imageHeight) / 2,
|
|
148
|
+
logging: false,
|
|
149
|
+
backgroundColor: null,
|
|
150
|
+
});
|
|
151
|
+
htmlContainer.remove();
|
|
152
|
+
return screenshotHtmlCanvas;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Receive html anchor keys that pass the `includeGroups` and `excludeGroups` filter
|
|
157
|
+
* @param allowSystemGroups defines if html anchors created by the viewer should be considered (e.g. dimension line
|
|
158
|
+
* labels)
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
getHtmlAnchorKeys(includeGroups, excludeGroups, allowSystemGroups) {
|
|
162
|
+
const anchorKeys = Object.keys(this._htmlAnchors).filter(name => {
|
|
163
|
+
var _a;
|
|
164
|
+
const group = (_a = this._htmlAnchors[name].options) === null || _a === void 0 ? void 0 : _a.group;
|
|
165
|
+
const passIncludeGroupFilter = includeGroups === undefined || (group !== undefined && includeGroups.includes(group));
|
|
166
|
+
const passExcludeGroupFilter = excludeGroups === undefined || group === undefined || !excludeGroups.includes(group);
|
|
167
|
+
// ATM only dimension labels are system html anchors
|
|
168
|
+
const passSystemGroupFilter = allowSystemGroups || group !== __1.DimensionLineManager.DIMENSION_LINE_KEY;
|
|
169
|
+
return passIncludeGroupFilter && passExcludeGroupFilter && passSystemGroupFilter;
|
|
170
|
+
});
|
|
171
|
+
return anchorKeys;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Check if input mesh is a html anchor mesh, created by this manager.\
|
|
175
|
+
* This check is done via the material, as all html anchor meshes have the generic `_anchorMeshMaterial` set.
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
isHtmlAnchorMesh(mesh) {
|
|
179
|
+
return mesh.material === this._anchorMeshMaterial;
|
|
180
|
+
}
|
|
181
|
+
_updateHtmlAnchor(parentHtmlElement, anchorMesh, camera, width, height, baseScale, options) {
|
|
182
|
+
const { hideIfOccluded, scaleWithCameraDistance } = options !== null && options !== void 0 ? options : {};
|
|
183
|
+
const viewMatrix = camera.getViewMatrix();
|
|
184
|
+
const projectionMatrix = camera.getProjectionMatrix();
|
|
185
|
+
const transformMatrix = viewMatrix.multiply(projectionMatrix);
|
|
186
|
+
// convert into 2d space
|
|
187
|
+
const vertexScreenCoords = __1.Vector3.Project(__1.Vector3.Zero(), anchorMesh.getWorldMatrix(), transformMatrix, new __1.Viewport(0, 0, width, height));
|
|
188
|
+
// base scale is used if width and height don't equal the viewer canvas, which is the case for screenshots
|
|
189
|
+
let scale = baseScale;
|
|
190
|
+
if (scaleWithCameraDistance) {
|
|
191
|
+
const meshWorldPos = anchorMesh.getAbsolutePosition();
|
|
192
|
+
// calculate camera world position manually, as there is no help function like for meshes
|
|
193
|
+
const camWorldMatrix = camera.computeWorldMatrix();
|
|
194
|
+
const camWorldPos = camWorldMatrix.getTranslation();
|
|
195
|
+
const distance = __1.Vector3.Distance(meshWorldPos, camWorldPos);
|
|
196
|
+
const frustumSlopeY = Math.tan(camera.fov / 2);
|
|
197
|
+
// if the distance from camera to mesh gets larger, the html elements scaling will be decreased
|
|
198
|
+
// we also consider the cameras FOV, so scale 1 means, that the resulting vertical frustum of the camera
|
|
199
|
+
// distance equals 1
|
|
200
|
+
// ...this is probably too small in some scenarios, so we might have to add a general scale setting here
|
|
201
|
+
scale *= 1 / (distance * frustumSlopeY);
|
|
202
|
+
}
|
|
203
|
+
const elementXOffset = (parentHtmlElement.offsetWidth * scale) / 2;
|
|
204
|
+
const elementYOffset = (parentHtmlElement.offsetHeight * scale) / 2;
|
|
205
|
+
// finally move and scale the HTML element
|
|
206
|
+
parentHtmlElement.style.transform = `translate3d(calc(${vertexScreenCoords.x}px - 50%), calc(${vertexScreenCoords.y}px - 50%), 0px) scale(${scale})`;
|
|
207
|
+
// check for occlusion if desired
|
|
208
|
+
// we use the opacity setting, which could also be animated nicely if we want
|
|
209
|
+
const isInViewport = vertexScreenCoords.x - elementXOffset > 0 &&
|
|
210
|
+
vertexScreenCoords.x + elementXOffset < width &&
|
|
211
|
+
vertexScreenCoords.y - elementYOffset > 0 &&
|
|
212
|
+
vertexScreenCoords.y + elementYOffset < height;
|
|
213
|
+
const isOccluded = hideIfOccluded && anchorMesh.isOccluded;
|
|
214
|
+
parentHtmlElement.style.opacity = isInViewport && !isOccluded ? '1' : '0';
|
|
215
|
+
}
|
|
216
|
+
_getOrCreateAnchorMeshMaterial() {
|
|
217
|
+
if (this._anchorMeshMaterial) {
|
|
218
|
+
return this._anchorMeshMaterial;
|
|
219
|
+
}
|
|
220
|
+
this._anchorMeshMaterial = new __1.StandardMaterial('$matAnchorMesh');
|
|
221
|
+
this._anchorMeshMaterial.alpha = 0;
|
|
222
|
+
this.viewer.scene.removeMaterial(this._anchorMeshMaterial);
|
|
223
|
+
return this._anchorMeshMaterial;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.HtmlAnchorManager = HtmlAnchorManager;
|
|
227
|
+
HtmlAnchorManager._HTML_ANCHOR_KEY = '$htmlAnchor';
|
|
228
|
+
//# sourceMappingURL=html-anchor-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-anchor-manager.js","sourceRoot":"","sources":["../../../src/manager/html-anchor-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -391,7 +391,6 @@ class ModelManager {
|
|
|
391
391
|
exports.ModelManager = ModelManager;
|
|
392
392
|
/**
|
|
393
393
|
* CAUTION: this has to be in sync with the Combeenation backend!
|
|
394
|
-
* @internal
|
|
395
394
|
*/
|
|
396
395
|
ModelManager.CBN_FALLBACK_MODEL_ASSET_NAME = '$fallback';
|
|
397
396
|
//# sourceMappingURL=model-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-manager.js","sourceRoot":"","sources":["../../../src/manager/model-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCASkB;AAClB,2DAAsF;AACtF,+DAAsE;AACtE,yCAAoC;AA4CpC;;;;GAIG;AACH,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"model-manager.js","sourceRoot":"","sources":["../../../src/manager/model-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export declare type ParameterValues = (ParameterSubject & {
|
|
|
73
73
|
export declare type ParameterObserver = (payload: ParameterObserverPayload) => Promise<void>;
|
|
74
74
|
/**
|
|
75
75
|
* Payload of parameter observer.\
|
|
76
|
-
* Contains current data of parameter entry, which can be
|
|
76
|
+
* Contains current data of parameter entry, which can be useful for implementing the dedicated observer
|
|
77
77
|
*/
|
|
78
78
|
export declare type ParameterObserverPayload = {
|
|
79
79
|
subject: ParameterSubject;
|
|
@@ -190,9 +190,16 @@ class SceneManager {
|
|
|
190
190
|
const hasInfiniteDistance = mesh.infiniteDistance;
|
|
191
191
|
// ignore meshes with "BackgroundMaterial" - usually a ground or skybox
|
|
192
192
|
const hasBackgroundMaterial = mesh.material instanceof index_1.BackgroundMaterial;
|
|
193
|
+
// ignore dummy meshes for html anchor occlusion check
|
|
194
|
+
const isHtmlAnchorMesh = this.viewer.htmlAnchorManager.isHtmlAnchorMesh(mesh);
|
|
193
195
|
// ignore excluded meshes
|
|
194
196
|
const isExcluded = excludeGeometry ? (0, geometry_helper_1.isNodeExcluded)(mesh, excludeGeometry) : false;
|
|
195
|
-
return isEnabled &&
|
|
197
|
+
return (isEnabled &&
|
|
198
|
+
hasValidBBoxInfo &&
|
|
199
|
+
!hasInfiniteDistance &&
|
|
200
|
+
!hasBackgroundMaterial &&
|
|
201
|
+
!isHtmlAnchorMesh &&
|
|
202
|
+
!isExcluded);
|
|
196
203
|
})
|
|
197
204
|
.reduce((accBBoxMinMax, curMesh, idx) => {
|
|
198
205
|
curMesh.refreshBoundingInfo(true, true);
|
|
@@ -276,7 +283,7 @@ class SceneManager {
|
|
|
276
283
|
this._defaultSceneAsset.settings.clearColor = this._defaultSceneSettings.backgroundColor;
|
|
277
284
|
// camera
|
|
278
285
|
if (cameraSettings.create) {
|
|
279
|
-
const camera = new index_1.ArcRotateCamera(`${SceneManager._DEFAULT_SCENE_ASSET_NAME}
|
|
286
|
+
const camera = new index_1.ArcRotateCamera(`${SceneManager._DEFAULT_SCENE_ASSET_NAME}_camera`, cameraSettings.initialPosition.alpha, cameraSettings.initialPosition.beta, cameraSettings.initialPosition.radius, cameraSettings.initialPosition.target, this.viewer.scene);
|
|
280
287
|
camera.minZ = cameraSettings.settings.minZ;
|
|
281
288
|
camera.lowerRadiusLimit = cameraSettings.settings.lowerRadiusLimit;
|
|
282
289
|
camera.wheelPrecision = cameraSettings.settings.wheelPrecision;
|
|
@@ -318,7 +325,7 @@ class SceneManager {
|
|
|
318
325
|
}
|
|
319
326
|
}
|
|
320
327
|
exports.SceneManager = SceneManager;
|
|
321
|
-
SceneManager._DEFAULT_SCENE_ASSET_NAME = '$
|
|
328
|
+
SceneManager._DEFAULT_SCENE_ASSET_NAME = '$defaultScene';
|
|
322
329
|
SceneManager._DEFAULT_GROUND_PLANE_NAME = 'BackgroundPlane';
|
|
323
330
|
SceneManager._DEFAULT_GROUND_SIZING_FACTOR = 5;
|
|
324
331
|
//# sourceMappingURL=scene-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":"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"}
|