@combeenation/3d-viewer 18.1.0 → 18.2.0-beta1
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/internal/cloning-helper.js.map +1 -1
- package/dist/lib-cjs/internal/geometry-helper.d.ts +1 -8
- package/dist/lib-cjs/internal/geometry-helper.js +1 -32
- package/dist/lib-cjs/internal/geometry-helper.js.map +1 -1
- package/dist/lib-cjs/internal/metadata-helper.d.ts +2 -1
- package/dist/lib-cjs/internal/metadata-helper.js.map +1 -1
- package/dist/lib-cjs/internal/node-helper.d.ts +15 -0
- package/dist/lib-cjs/internal/node-helper.js +51 -0
- package/dist/lib-cjs/internal/node-helper.js.map +1 -0
- package/dist/lib-cjs/manager/camera-manager.d.ts +5 -5
- package/dist/lib-cjs/manager/camera-manager.js +5 -7
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
- package/dist/lib-cjs/manager/dimension-line-manager.d.ts +6 -0
- package/dist/lib-cjs/manager/dimension-line-manager.js +8 -0
- package/dist/lib-cjs/manager/dimension-line-manager.js.map +1 -1
- package/dist/lib-cjs/manager/gltf-export-manager.d.ts +11 -11
- package/dist/lib-cjs/manager/gltf-export-manager.js +29 -30
- package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
- package/dist/lib-cjs/manager/html-anchor-manager.d.ts +6 -6
- package/dist/lib-cjs/manager/html-anchor-manager.js +10 -8
- package/dist/lib-cjs/manager/html-anchor-manager.js.map +1 -1
- package/dist/lib-cjs/manager/scene-manager.d.ts +9 -9
- package/dist/lib-cjs/manager/scene-manager.js +32 -29
- package/dist/lib-cjs/manager/scene-manager.js.map +1 -1
- package/dist/lib-cjs/viewer.d.ts +4 -4
- package/dist/lib-cjs/viewer.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/cloning-helper.ts +1 -1
- package/src/internal/geometry-helper.ts +0 -37
- package/src/internal/metadata-helper.ts +6 -1
- package/src/internal/node-helper.ts +73 -0
- package/src/manager/camera-manager.ts +10 -12
- package/src/manager/dimension-line-manager.ts +9 -0
- package/src/manager/gltf-export-manager.ts +31 -31
- package/src/manager/html-anchor-manager.ts +11 -9
- package/src/manager/scene-manager.ts +40 -40
- package/src/viewer.ts +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAckB;AAClB,6DAAkE;AAClE,iEAAmH;AACnH,
|
|
1
|
+
{"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,12 @@ export declare class HtmlAnchorManager {
|
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
53
|
protected _anchorMeshMaterial: StandardMaterial | null;
|
|
54
|
+
/**
|
|
55
|
+
* Check if input node is a html anchor mesh, created by this manager.\
|
|
56
|
+
* This check is done via internal metadata check.
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
static isHtmlAnchorMesh(node: TransformNode): boolean;
|
|
54
60
|
/** @internal */
|
|
55
61
|
constructor(viewer: Viewer);
|
|
56
62
|
/**
|
|
@@ -82,12 +88,6 @@ export declare class HtmlAnchorManager {
|
|
|
82
88
|
* @internal
|
|
83
89
|
*/
|
|
84
90
|
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
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
|
}
|
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.HtmlAnchorManager = void 0;
|
|
16
16
|
const __1 = require("..");
|
|
17
|
+
const metadata_helper_1 = require("../internal/metadata-helper");
|
|
17
18
|
const html2canvas_1 = __importDefault(require("html2canvas"));
|
|
18
19
|
/**
|
|
19
20
|
* Manager for mapping html elements to 3d positions in the scene.\
|
|
@@ -45,6 +46,14 @@ class HtmlAnchorManager {
|
|
|
45
46
|
});
|
|
46
47
|
});
|
|
47
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if input node is a html anchor mesh, created by this manager.\
|
|
51
|
+
* This check is done via internal metadata check.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
static isHtmlAnchorMesh(node) {
|
|
55
|
+
return !!(0, metadata_helper_1.getInternalMetadataValue)(node, 'isHtmlAnchorMesh');
|
|
56
|
+
}
|
|
48
57
|
/**
|
|
49
58
|
* Assign a html element to a certain position in the scene.\
|
|
50
59
|
* The html elements 2d position will be updated on each camera render, so that the element appears like a "normal"
|
|
@@ -85,6 +94,7 @@ class HtmlAnchorManager {
|
|
|
85
94
|
// it's important that the occlusion check mesh is rendered after all "normal" meshes, which should be taken into
|
|
86
95
|
// account for the occlusion check
|
|
87
96
|
anchorMesh.renderingGroupId = 1;
|
|
97
|
+
(0, metadata_helper_1.setInternalMetadataValue)(anchorMesh, 'isHtmlAnchorMesh', true);
|
|
88
98
|
this._htmlAnchors[name] = { parentHtmlElement, anchorMesh, options };
|
|
89
99
|
}
|
|
90
100
|
/**
|
|
@@ -177,14 +187,6 @@ class HtmlAnchorManager {
|
|
|
177
187
|
});
|
|
178
188
|
return anchorKeys;
|
|
179
189
|
}
|
|
180
|
-
/**
|
|
181
|
-
* Check if input mesh is a html anchor mesh, created by this manager.\
|
|
182
|
-
* This check is done via the material, as all html anchor meshes have the generic `_anchorMeshMaterial` set.
|
|
183
|
-
* @internal
|
|
184
|
-
*/
|
|
185
|
-
isHtmlAnchorMesh(mesh) {
|
|
186
|
-
return !!this._anchorMeshMaterial && mesh.material === this._anchorMeshMaterial;
|
|
187
|
-
}
|
|
188
190
|
_updateHtmlAnchor(parentHtmlElement, anchorMesh, camera, width, height, baseScale, useRayHitTestForOcclusionCheck, options) {
|
|
189
191
|
const { hideIfOccluded, scaleWithCameraDistance } = options !== null && options !== void 0 ? options : {};
|
|
190
192
|
const viewMatrix = camera.getViewMatrix();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-anchor-manager.js","sourceRoot":"","sources":["../../../src/manager/html-anchor-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0BAcY;AACZ,8DAAsC;AAmCtC;;;;;;;;GAQG;AACH,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"html-anchor-manager.js","sourceRoot":"","sources":["../../../src/manager/html-anchor-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssetContainer, BoundingInfo, Color4,
|
|
1
|
+
import { AssetContainer, BoundingInfo, Color4, IShadowGenerator, NodeDescription, TransformNode, Vector3, Viewer } from '../index';
|
|
2
2
|
import { BaseAsset } from '../internal/asset-helper';
|
|
3
3
|
/**
|
|
4
4
|
* Settings for creating the default scene
|
|
@@ -42,9 +42,9 @@ export declare type UpdateGroundSettings = {
|
|
|
42
42
|
*/
|
|
43
43
|
factor?: number;
|
|
44
44
|
/**
|
|
45
|
-
* Optional list of
|
|
45
|
+
* Optional list of nodes to be excluded from scene size calculation
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
excludeNodes?: NodeDescription[];
|
|
48
48
|
};
|
|
49
49
|
export declare type UpdateShadowsSettings = {
|
|
50
50
|
/**
|
|
@@ -53,13 +53,13 @@ export declare type UpdateShadowsSettings = {
|
|
|
53
53
|
*/
|
|
54
54
|
shadowGenerators?: IShadowGenerator[];
|
|
55
55
|
/**
|
|
56
|
-
* Optional list of
|
|
56
|
+
* Optional list of nodes which should not be defined as shadow caster
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
excludeCasterNodes?: NodeDescription[];
|
|
59
59
|
/**
|
|
60
|
-
* Optional list of
|
|
60
|
+
* Optional list of nodes which should not be defined as shadow receiver
|
|
61
61
|
*/
|
|
62
|
-
|
|
62
|
+
excludeReceiverNodes?: NodeDescription[];
|
|
63
63
|
};
|
|
64
64
|
/**
|
|
65
65
|
* Additional scene settings, which are not available in a basic `AssetContainer`.
|
|
@@ -120,11 +120,11 @@ export declare class SceneManager {
|
|
|
120
120
|
* Calculates size of the current scene.\
|
|
121
121
|
* Only takes meshes into considerations that:
|
|
122
122
|
* - are visible
|
|
123
|
-
* - are not excluded by "
|
|
123
|
+
* - are not excluded by "excludeNodes" parameter
|
|
124
124
|
* - do not have a material of type "BackgroundMaterial"
|
|
125
125
|
* - do not have an infinite distance (like sky boxes)
|
|
126
126
|
*/
|
|
127
|
-
calculateBoundingInfo(
|
|
127
|
+
calculateBoundingInfo(excludeNodes?: NodeDescription[]): BoundingInfo;
|
|
128
128
|
/**
|
|
129
129
|
* Adjusts position and scaling of a dedicated "ground" meshes according to the bounding sphere of the current scene
|
|
130
130
|
* content.\
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SceneManager = void 0;
|
|
13
13
|
const index_1 = require("../index");
|
|
14
14
|
const asset_helper_1 = require("../internal/asset-helper");
|
|
15
|
-
const
|
|
15
|
+
const node_helper_1 = require("../internal/node-helper");
|
|
16
16
|
const lodash_es_1 = require("lodash-es");
|
|
17
17
|
/**
|
|
18
18
|
* Manager for tasks related to the Babylon.js scene.\
|
|
@@ -174,32 +174,25 @@ class SceneManager {
|
|
|
174
174
|
* Calculates size of the current scene.\
|
|
175
175
|
* Only takes meshes into considerations that:
|
|
176
176
|
* - are visible
|
|
177
|
-
* - are not excluded by "
|
|
177
|
+
* - are not excluded by "excludeNodes" parameter
|
|
178
178
|
* - do not have a material of type "BackgroundMaterial"
|
|
179
179
|
* - do not have an infinite distance (like sky boxes)
|
|
180
180
|
*/
|
|
181
|
-
calculateBoundingInfo(
|
|
181
|
+
calculateBoundingInfo(excludeNodes) {
|
|
182
182
|
// CB-6062: workaround for BoundingBox not respecting render loop
|
|
183
183
|
this.viewer.scene.render();
|
|
184
184
|
const { max, min } = this.viewer.scene.meshes
|
|
185
185
|
.filter(mesh => {
|
|
186
|
-
const isEnabled = mesh.isEnabled();
|
|
187
|
-
// ignore meshes with invalid bounding infos
|
|
188
|
-
const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
|
|
189
|
-
// ignore meshes with infinite distance, typically these are sky boxes
|
|
190
|
-
const hasInfiniteDistance = mesh.infiniteDistance;
|
|
191
|
-
// ignore meshes with "BackgroundMaterial" - usually a ground or skybox
|
|
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);
|
|
195
186
|
// ignore excluded meshes
|
|
196
|
-
const isExcluded =
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
187
|
+
const isExcluded = (0, node_helper_1.nodeMatchesAnyCriteria)(mesh, {
|
|
188
|
+
isInList: excludeNodes,
|
|
189
|
+
isDisabled: true,
|
|
190
|
+
hasInvalidBoundingInfo: true,
|
|
191
|
+
hasInfiniteDistance: true,
|
|
192
|
+
isGeneratedBackgroundMesh: true,
|
|
193
|
+
isHtmlAnchorMesh: true,
|
|
194
|
+
});
|
|
195
|
+
return !isExcluded;
|
|
203
196
|
})
|
|
204
197
|
.reduce((accBBoxMinMax, curMesh, idx) => {
|
|
205
198
|
curMesh.refreshBoundingInfo(true, true);
|
|
@@ -220,7 +213,7 @@ class SceneManager {
|
|
|
220
213
|
*/
|
|
221
214
|
updateGround(settings) {
|
|
222
215
|
var _a, _b;
|
|
223
|
-
const bboxInfo = this.calculateBoundingInfo(settings === null || settings === void 0 ? void 0 : settings.
|
|
216
|
+
const bboxInfo = this.calculateBoundingInfo(settings === null || settings === void 0 ? void 0 : settings.excludeNodes);
|
|
224
217
|
const groundMesh = (_a = settings === null || settings === void 0 ? void 0 : settings.groundMesh) !== null && _a !== void 0 ? _a : this.viewer.scene.getMeshByName(SceneManager._DEFAULT_GROUND_PLANE_NAME);
|
|
225
218
|
if (!groundMesh) {
|
|
226
219
|
console.warn("Can't update ground, as no ground mesh is available");
|
|
@@ -229,7 +222,10 @@ class SceneManager {
|
|
|
229
222
|
// 2: conversion from radius to diameter
|
|
230
223
|
const factor = bboxInfo.boundingSphere.radius * 2 * ((_b = settings === null || settings === void 0 ? void 0 : settings.factor) !== null && _b !== void 0 ? _b : SceneManager._DEFAULT_GROUND_SIZING_FACTOR);
|
|
231
224
|
const position = bboxInfo.boundingSphere.centerWorld;
|
|
232
|
-
|
|
225
|
+
// scale in all dimensions, in this case it doesn't matter in which coordinate space (XY, XZ) the ground has been
|
|
226
|
+
// built
|
|
227
|
+
// also the flat dimension of the plane is independent of the scaling, it will always remain a plane
|
|
228
|
+
groundMesh.scaling = new index_1.Vector3(factor, factor, factor);
|
|
233
229
|
groundMesh.position = new index_1.Vector3(position.x, 0, position.z);
|
|
234
230
|
}
|
|
235
231
|
/**
|
|
@@ -241,15 +237,22 @@ class SceneManager {
|
|
|
241
237
|
const shadowGenerators = (_a = settings === null || settings === void 0 ? void 0 : settings.shadowGenerators) !== null && _a !== void 0 ? _a : this.viewer.scene.lights.map(light => light.getShadowGenerator()).filter(Boolean);
|
|
242
238
|
const shadowCasterMeshes = [];
|
|
243
239
|
this.viewer.scene.meshes.forEach(mesh => {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
240
|
+
mesh.receiveShadows = !(0, node_helper_1.nodeMatchesAnyCriteria)(mesh, {
|
|
241
|
+
isInList: settings === null || settings === void 0 ? void 0 : settings.excludeReceiverNodes,
|
|
242
|
+
isHtmlAnchorMesh: true,
|
|
243
|
+
isDimensionLine: true,
|
|
244
|
+
});
|
|
245
|
+
// exclude "helper meshes" (e.g. skybox, ground, dimension lines, html anchors) here to reduce the size of the
|
|
249
246
|
// poisson filters auto shadow plane calculation, which will result in better shadow resolution
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
247
|
+
const excludeAsShadowCaster = (0, node_helper_1.nodeMatchesAnyCriteria)(mesh, {
|
|
248
|
+
isInList: settings === null || settings === void 0 ? void 0 : settings.excludeCasterNodes,
|
|
249
|
+
hasInvalidBoundingInfo: true,
|
|
250
|
+
hasInfiniteDistance: true,
|
|
251
|
+
isGeneratedBackgroundMesh: true,
|
|
252
|
+
isHtmlAnchorMesh: true,
|
|
253
|
+
isDimensionLine: true,
|
|
254
|
+
});
|
|
255
|
+
if (!excludeAsShadowCaster) {
|
|
253
256
|
shadowCasterMeshes.push(mesh);
|
|
254
257
|
}
|
|
255
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/lib-cjs/viewer.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as Index from './index';
|
|
2
|
-
import { AbstractEngine, CameraManager, DebugManager, DefaultSceneSettings, DimensionLineManager, EngineOptions, EventManager, GltfExportManager, HtmlAnchorManager, MaterialManager, ModelManager,
|
|
2
|
+
import { AbstractEngine, CameraManager, DebugManager, DefaultSceneSettings, DimensionLineManager, EngineOptions, EventManager, GltfExportManager, HtmlAnchorManager, MaterialManager, ModelManager, NodeParameterSubject, ParameterManager, Scene, SceneManager, TagParameterSubject, TextureManager, TransformNode } from './index';
|
|
3
3
|
/**
|
|
4
|
-
* Use this to
|
|
4
|
+
* Use this type to select nodes directly or via node or tag name.\
|
|
5
|
+
* This pattern is used for excluding nodes from autofocus, GLB export, etc.
|
|
5
6
|
*/
|
|
6
|
-
export declare type
|
|
7
|
-
export declare type ExcludedGeometryList = ExcludedGeometry[];
|
|
7
|
+
export declare type NodeDescription = TransformNode | TagParameterSubject | NodeParameterSubject;
|
|
8
8
|
export declare type LimitTextureSizeConfig = {
|
|
9
9
|
size: 512 | 1024;
|
|
10
10
|
devices: 'iPhone' | 'all';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAyC;AACzC,+CAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -272,6 +272,6 @@ function _cloneInstancedMeshData(sourceMesh: AbstractMesh, targetInstancedMesh:
|
|
|
272
272
|
targetInstancedMesh.metadata = sourceMesh.metadata?.clone?.() ?? sourceMesh.metadata;
|
|
273
273
|
}
|
|
274
274
|
|
|
275
|
-
function _findByUniqueId(nodes: TransformNode[], uniqueId: number): TransformNode | undefined {
|
|
275
|
+
function _findByUniqueId(nodes: TransformNode[], uniqueId: number | undefined): TransformNode | undefined {
|
|
276
276
|
return nodes.find(node => node.uniqueId === uniqueId);
|
|
277
277
|
}
|
|
@@ -1,53 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ExcludedGeometry,
|
|
3
|
-
ExcludedGeometryList,
|
|
4
2
|
FloatArray,
|
|
5
3
|
Geometry,
|
|
6
4
|
InstancedMesh,
|
|
7
5
|
Mesh,
|
|
8
6
|
MorphTarget,
|
|
9
7
|
MorphTargetManager,
|
|
10
|
-
ParameterSubject,
|
|
11
|
-
Tags,
|
|
12
8
|
TransformNode,
|
|
13
9
|
Vector3,
|
|
14
10
|
VertexBuffer,
|
|
15
11
|
} from '../index';
|
|
16
12
|
import { cloneInternalMetadata } from './metadata-helper';
|
|
17
13
|
|
|
18
|
-
/**
|
|
19
|
-
* Find out if a node is part of a list of excluded geometry
|
|
20
|
-
* @param node BJS node
|
|
21
|
-
* @param list list of excluded geometry
|
|
22
|
-
* @returns boolean based on whether node (or one of its parents) was found in list
|
|
23
|
-
*/
|
|
24
|
-
export function isNodeExcluded(nodeToCheck: TransformNode, list: ExcludedGeometryList): boolean {
|
|
25
|
-
// CAUTION: node has to be the same instance
|
|
26
|
-
const checkNode = (excludedNode: TransformNode): boolean => excludedNode === nodeToCheck;
|
|
27
|
-
const checkTagManagerSubject = (excludedSubject: ParameterSubject): boolean => {
|
|
28
|
-
const nameMatches = !!excludedSubject.nodeName && excludedSubject.nodeName === nodeToCheck.name;
|
|
29
|
-
const tagMatches = !!excludedSubject.tagName && Tags.MatchesQuery(nodeToCheck, excludedSubject.tagName);
|
|
30
|
-
return nameMatches || tagMatches;
|
|
31
|
-
};
|
|
32
|
-
const check = (geometryToExclude: ExcludedGeometry): boolean => {
|
|
33
|
-
if (geometryToExclude instanceof TransformNode) {
|
|
34
|
-
return checkNode(geometryToExclude);
|
|
35
|
-
}
|
|
36
|
-
if ((geometryToExclude as ParameterSubject).tagName || (geometryToExclude as ParameterSubject).nodeName) {
|
|
37
|
-
return checkTagManagerSubject(geometryToExclude as ParameterSubject);
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
let isExcluded = list.some(geometryToExclude => check(geometryToExclude));
|
|
43
|
-
// consider parent as well
|
|
44
|
-
if (!isExcluded && nodeToCheck.parent instanceof TransformNode) {
|
|
45
|
-
isExcluded = isNodeExcluded(nodeToCheck.parent, list);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return isExcluded;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
14
|
/**
|
|
52
15
|
* Creates a "standard" mesh from an instanced mesh, by cloning the source mesh and applying transformation data
|
|
53
16
|
*/
|
|
@@ -17,6 +17,8 @@ type MetadataValueMap = {
|
|
|
17
17
|
// cloning
|
|
18
18
|
cloneSource: number;
|
|
19
19
|
cloneTarget: number;
|
|
20
|
+
// html anchor manager
|
|
21
|
+
isHtmlAnchorMesh: boolean;
|
|
20
22
|
};
|
|
21
23
|
type MetadataKeys = keyof MetadataValueMap;
|
|
22
24
|
|
|
@@ -45,7 +47,10 @@ export function clearInternalMetadataValue(object: MetadataTarget, key: Metadata
|
|
|
45
47
|
delete object._internalMetadata?.cbn?.[key];
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
export function getInternalMetadataValue<K extends MetadataKeys>(
|
|
50
|
+
export function getInternalMetadataValue<K extends MetadataKeys>(
|
|
51
|
+
object: MetadataTarget,
|
|
52
|
+
key: K
|
|
53
|
+
): MetadataValueMap[K] | undefined {
|
|
49
54
|
return object._internalMetadata?.cbn?.[key];
|
|
50
55
|
}
|
|
51
56
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { AbstractMesh, DimensionLineManager, HtmlAnchorManager, ParameterSubject, Tags, TransformNode } from '..';
|
|
2
|
+
|
|
3
|
+
type NodeCheckCriteria = {
|
|
4
|
+
isInList?: (TransformNode | ParameterSubject)[];
|
|
5
|
+
isDisabled?: boolean;
|
|
6
|
+
hasInvalidBoundingInfo?: boolean;
|
|
7
|
+
hasInfiniteDistance?: boolean;
|
|
8
|
+
isGeneratedBackgroundMesh?: boolean;
|
|
9
|
+
isHtmlAnchorMesh?: boolean;
|
|
10
|
+
isDimensionLine?: boolean;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const _DEFAULT_BACKGROUND_PARENT_NAME = 'BackgroundHelper';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Checks if transform node matches any of the given criterias.
|
|
17
|
+
*/
|
|
18
|
+
export function nodeMatchesAnyCriteria(nodeToCheck: TransformNode, criteria: NodeCheckCriteria): boolean {
|
|
19
|
+
const {
|
|
20
|
+
isInList,
|
|
21
|
+
isDisabled,
|
|
22
|
+
hasInvalidBoundingInfo,
|
|
23
|
+
hasInfiniteDistance,
|
|
24
|
+
isGeneratedBackgroundMesh,
|
|
25
|
+
isHtmlAnchorMesh,
|
|
26
|
+
isDimensionLine,
|
|
27
|
+
} = criteria ?? {};
|
|
28
|
+
|
|
29
|
+
const matchesIsInList = (isInList ?? []).some(geometryToExclude => {
|
|
30
|
+
if (geometryToExclude instanceof TransformNode) {
|
|
31
|
+
// CAUTION: node has to be the same instance
|
|
32
|
+
return geometryToExclude === nodeToCheck;
|
|
33
|
+
}
|
|
34
|
+
if (geometryToExclude.tagName || geometryToExclude.nodeName) {
|
|
35
|
+
const nameMatches = !!geometryToExclude.nodeName && geometryToExclude.nodeName === nodeToCheck.name;
|
|
36
|
+
const tagMatches = !!geometryToExclude.tagName && Tags.MatchesQuery(nodeToCheck, geometryToExclude.tagName);
|
|
37
|
+
return nameMatches || tagMatches;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const isMesh = nodeToCheck instanceof AbstractMesh;
|
|
43
|
+
const matchesIsDisabled = !!isDisabled && !nodeToCheck.isEnabled(false);
|
|
44
|
+
const matchesHasInvalidBoundingInfo =
|
|
45
|
+
!!hasInvalidBoundingInfo && isMesh && nodeToCheck.getBoundingInfo().boundingSphere.radius === 0;
|
|
46
|
+
const matchesHasInfiniteDistance = !!hasInfiniteDistance && nodeToCheck.infiniteDistance;
|
|
47
|
+
// this targets generated ground and skybox meshes from `scene.createDefaultEnvironment`, as they are located
|
|
48
|
+
// underneath `BackgroundHelper`
|
|
49
|
+
const matchesIsGeneratedBackgroundMesh =
|
|
50
|
+
!!isGeneratedBackgroundMesh && nodeToCheck.name === _DEFAULT_BACKGROUND_PARENT_NAME;
|
|
51
|
+
const matchesIsHtmlAnchorMesh = !!isHtmlAnchorMesh && HtmlAnchorManager.isHtmlAnchorMesh(nodeToCheck);
|
|
52
|
+
const matchesIsDimensionLine = !!isDimensionLine && DimensionLineManager.isDimensionLineMesh(nodeToCheck);
|
|
53
|
+
|
|
54
|
+
let matchesAnyCriteria =
|
|
55
|
+
matchesIsInList ||
|
|
56
|
+
matchesIsDisabled ||
|
|
57
|
+
matchesHasInvalidBoundingInfo ||
|
|
58
|
+
matchesHasInfiniteDistance ||
|
|
59
|
+
matchesIsGeneratedBackgroundMesh ||
|
|
60
|
+
matchesIsHtmlAnchorMesh ||
|
|
61
|
+
matchesIsDimensionLine;
|
|
62
|
+
// consider parent as well, BUT ONLY for list and disabled state, as the other criterias have nothing to do with a
|
|
63
|
+
// child-parent relation
|
|
64
|
+
if (!matchesAnyCriteria && nodeToCheck.parent instanceof TransformNode) {
|
|
65
|
+
matchesAnyCriteria = nodeMatchesAnyCriteria(nodeToCheck.parent, {
|
|
66
|
+
isInList,
|
|
67
|
+
isDisabled,
|
|
68
|
+
isGeneratedBackgroundMesh,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return matchesAnyCriteria;
|
|
73
|
+
}
|