@combeenation/3d-viewer 18.1.0-beta2 → 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/internal/screenshot-helper.js +1 -1
- package/dist/lib-cjs/internal/screenshot-helper.js.map +1 -1
- 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/internal/screenshot-helper.ts +1 -1
- 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
|
@@ -13,8 +13,8 @@ exports.GltfExportManager = void 0;
|
|
|
13
13
|
const index_1 = require("../index");
|
|
14
14
|
const device_helper_1 = require("../internal/device-helper");
|
|
15
15
|
const geometry_helper_1 = require("../internal/geometry-helper");
|
|
16
|
-
const geometry_helper_2 = require("../internal/geometry-helper");
|
|
17
16
|
const metadata_helper_1 = require("../internal/metadata-helper");
|
|
17
|
+
const node_helper_1 = require("../internal/node-helper");
|
|
18
18
|
/**
|
|
19
19
|
* Manager for gltf export and augmented reality features
|
|
20
20
|
*/
|
|
@@ -31,16 +31,16 @@ class GltfExportManager {
|
|
|
31
31
|
* stay `true` in order to make the AR export work.
|
|
32
32
|
* We could theoretically allow it if AR optimization is not desired, but this may confuse the user.
|
|
33
33
|
*/
|
|
34
|
-
static _gltfExportOptions(optimizeForAR,
|
|
34
|
+
static _gltfExportOptions(optimizeForAR, excludeNodes) {
|
|
35
35
|
return {
|
|
36
36
|
shouldExportNode: function (node) {
|
|
37
37
|
if (optimizeForAR) {
|
|
38
38
|
// we explicitely marked nodes, that should be exported in AR mode
|
|
39
|
-
return (0, metadata_helper_1.getInternalMetadataValue)(node, 'exportNode');
|
|
39
|
+
return !!(0, metadata_helper_1.getInternalMetadataValue)(node, 'exportNode');
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
// use the default export node check (enabled state, exclusion list, etc...)
|
|
43
|
-
return GltfExportManager._shouldExportNode(node,
|
|
43
|
+
return GltfExportManager._shouldExportNode(node, excludeNodes);
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
shouldExportAnimation: (animation) => !optimizeForAR,
|
|
@@ -49,18 +49,17 @@ class GltfExportManager {
|
|
|
49
49
|
/**
|
|
50
50
|
* Checks if a node should be available in the export
|
|
51
51
|
*/
|
|
52
|
-
static _shouldExportNode(node,
|
|
52
|
+
static _shouldExportNode(node, excludeNodes) {
|
|
53
53
|
if (!(node instanceof index_1.TransformNode)) {
|
|
54
54
|
return false;
|
|
55
55
|
}
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return true;
|
|
56
|
+
// maybe add some other criterias like "hasInfiniteDistance" and "isGeneratedBackgroundMesh" here as well
|
|
57
|
+
const isExcluded = (0, node_helper_1.nodeMatchesAnyCriteria)(node, {
|
|
58
|
+
isInList: excludeNodes,
|
|
59
|
+
isDisabled: true,
|
|
60
|
+
isHtmlAnchorMesh: true,
|
|
61
|
+
});
|
|
62
|
+
return !isExcluded;
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* Creates a clone of the material which should be used for the export.
|
|
@@ -100,12 +99,12 @@ class GltfExportManager {
|
|
|
100
99
|
* @param filename Optional name of the exported .GLB file.
|
|
101
100
|
* @param optimizeForAR Adjusts the exported GLB so that known issues get automatically fixed, this
|
|
102
101
|
* is mostly targeting Apples .usdz format.
|
|
103
|
-
* @param
|
|
102
|
+
* @param excludeNodes Optional list of nodes to be excluded from the export.
|
|
104
103
|
*/
|
|
105
|
-
exportGlb(filename = 'glb-export.glb', optimizeForAR = false,
|
|
104
|
+
exportGlb(filename = 'glb-export.glb', optimizeForAR = false, excludeNodes) {
|
|
106
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
yield this._exportPreProcess(optimizeForAR,
|
|
108
|
-
const glbData = yield index_1.GLTF2Export.GLBAsync(this.viewer.scene, 'dummy', GltfExportManager._gltfExportOptions(optimizeForAR,
|
|
106
|
+
yield this._exportPreProcess(optimizeForAR, excludeNodes);
|
|
107
|
+
const glbData = yield index_1.GLTF2Export.GLBAsync(this.viewer.scene, 'dummy', GltfExportManager._gltfExportOptions(optimizeForAR, excludeNodes));
|
|
109
108
|
yield this._exportPostProcess(optimizeForAR);
|
|
110
109
|
const resBlob = glbData.glTFFiles['dummy.glb'];
|
|
111
110
|
// check if result is valid, according to the typings this could also be a string
|
|
@@ -126,12 +125,12 @@ class GltfExportManager {
|
|
|
126
125
|
* @param filename Name of the main (text-based) .GLTF file referring to separate texture files.
|
|
127
126
|
* @param optimizeForAR Adjusts the exported GLB so that known issues get automatically fixed, this
|
|
128
127
|
* is mostly targeting Apples .usdz format.
|
|
129
|
-
* @param
|
|
128
|
+
* @param excludeNodes Optional list of nodes to be excluded from the export.
|
|
130
129
|
*/
|
|
131
|
-
exportGltfToFile(filename, optimizeForAR = false,
|
|
130
|
+
exportGltfToFile(filename, optimizeForAR = false, excludeNodes) {
|
|
132
131
|
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
-
yield this._exportPreProcess(optimizeForAR,
|
|
134
|
-
const gltf = yield index_1.GLTF2Export.GLTFAsync(this.viewer.scene, filename, GltfExportManager._gltfExportOptions(optimizeForAR,
|
|
132
|
+
yield this._exportPreProcess(optimizeForAR, excludeNodes);
|
|
133
|
+
const gltf = yield index_1.GLTF2Export.GLTFAsync(this.viewer.scene, filename, GltfExportManager._gltfExportOptions(optimizeForAR, excludeNodes));
|
|
135
134
|
gltf.downloadFiles();
|
|
136
135
|
this._exportPostProcess(optimizeForAR);
|
|
137
136
|
});
|
|
@@ -141,12 +140,12 @@ class GltfExportManager {
|
|
|
141
140
|
* @param filename Name of the main (text-based) .GLTF file referring to seperate texture files.
|
|
142
141
|
* @param optimizeForAR Adjusts the exported GLB so that known issues get automatically fixed, this
|
|
143
142
|
* is mostly targeting Apples .usdz format.
|
|
144
|
-
* @param
|
|
143
|
+
* @param excludeNodes Optional list of nodes to be excluded from the export.
|
|
145
144
|
*/
|
|
146
|
-
exportGlbToFile(filename, optimizeForAR = false,
|
|
145
|
+
exportGlbToFile(filename, optimizeForAR = false, excludeNodes) {
|
|
147
146
|
return __awaiter(this, void 0, void 0, function* () {
|
|
148
|
-
yield this._exportPreProcess(optimizeForAR,
|
|
149
|
-
const glb = yield index_1.GLTF2Export.GLBAsync(this.viewer.scene, filename, GltfExportManager._gltfExportOptions(optimizeForAR,
|
|
147
|
+
yield this._exportPreProcess(optimizeForAR, excludeNodes);
|
|
148
|
+
const glb = yield index_1.GLTF2Export.GLBAsync(this.viewer.scene, filename, GltfExportManager._gltfExportOptions(optimizeForAR, excludeNodes));
|
|
150
149
|
glb.downloadFiles();
|
|
151
150
|
yield this._exportPostProcess(optimizeForAR);
|
|
152
151
|
});
|
|
@@ -155,7 +154,7 @@ class GltfExportManager {
|
|
|
155
154
|
* Prepares scene for GLB export.
|
|
156
155
|
* This is very important for AR exports, since we have to do a lot of conversions to satisfy Apples .usdz format.
|
|
157
156
|
*/
|
|
158
|
-
_exportPreProcess(optimizeForAR,
|
|
157
|
+
_exportPreProcess(optimizeForAR, excludeNodes) {
|
|
159
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
159
|
if (!optimizeForAR) {
|
|
161
160
|
// actually nothing to do if AR optimization is not required
|
|
@@ -185,7 +184,7 @@ class GltfExportManager {
|
|
|
185
184
|
// export
|
|
186
185
|
this.viewer.scene.rootNodes
|
|
187
186
|
// .filter(rootNode => rootNode.name !== GltfExportManager._EXPORT_ROOT_NAME)
|
|
188
|
-
.forEach(rootNode => this._prepareNodeForExport(rootNode, null,
|
|
187
|
+
.forEach(rootNode => this._prepareNodeForExport(rootNode, null, excludeNodes));
|
|
189
188
|
// bake transformation of all meshes, so that no negative scalings are left
|
|
190
189
|
// it's important that this is done AFTER instanced meshes have been converted (_prepareNodeForExport)
|
|
191
190
|
this._getNodesMarkedForExport(true).forEach(mesh => (0, geometry_helper_1.bakeGeometryOfMesh)(mesh));
|
|
@@ -224,8 +223,8 @@ class GltfExportManager {
|
|
|
224
223
|
* Creates a clone of the node which should be used for the export.
|
|
225
224
|
* Also switches to the cloned material if required.
|
|
226
225
|
*/
|
|
227
|
-
_prepareNodeForExport(node, clonedParent,
|
|
228
|
-
if (!GltfExportManager._shouldExportNode(node,
|
|
226
|
+
_prepareNodeForExport(node, clonedParent, excludeNodes) {
|
|
227
|
+
if (!GltfExportManager._shouldExportNode(node, excludeNodes)) {
|
|
229
228
|
return;
|
|
230
229
|
}
|
|
231
230
|
// from here on we only have TransformNodes
|
|
@@ -248,7 +247,7 @@ class GltfExportManager {
|
|
|
248
247
|
(0, metadata_helper_1.setInternalMetadataValue)(clonedNode, 'deleteAfterExport', true);
|
|
249
248
|
// handle children
|
|
250
249
|
const childs = transformNode.getChildTransformNodes(true);
|
|
251
|
-
childs.forEach(child => this._prepareNodeForExport(child, clonedNode,
|
|
250
|
+
childs.forEach(child => this._prepareNodeForExport(child, clonedNode, excludeNodes));
|
|
252
251
|
}
|
|
253
252
|
/**
|
|
254
253
|
* Help function for receiving all nodes that are marked for the export
|
|
@@ -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 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
|
*/
|