@xeokit/xeokit-sdk 2.6.60 → 2.6.61
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/xeokit-sdk.cjs.js +33 -9
- package/dist/xeokit-sdk.es.js +33 -9
- package/dist/xeokit-sdk.es5.js +6 -5
- package/dist/xeokit-sdk.min.cjs.js +1 -1
- package/dist/xeokit-sdk.min.es.js +2 -2
- package/dist/xeokit-sdk.min.es5.js +2 -2
- package/package.json +1 -1
- package/src/plugins/FastNavPlugin/FastNavPlugin.js +4 -3
- package/src/plugins/TreeViewPlugin/TreeViewPlugin.js +29 -6
package/package.json
CHANGED
|
@@ -119,7 +119,7 @@ class FastNavPlugin extends Plugin {
|
|
|
119
119
|
this._hideEdges = cfg.hideEdges !== false;
|
|
120
120
|
this._hideTransparentObjects = !!cfg.hideTransparentObjects;
|
|
121
121
|
this._scaleCanvasResolution = !!cfg.scaleCanvasResolution;
|
|
122
|
-
this._defaultScaleCanvasResolutionFactor = cfg.defaultScaleCanvasResolutionFactor
|
|
122
|
+
this._defaultScaleCanvasResolutionFactor = cfg.defaultScaleCanvasResolutionFactor;
|
|
123
123
|
this._scaleCanvasResolutionFactor = cfg.scaleCanvasResolutionFactor || 0.6;
|
|
124
124
|
this._delayBeforeRestore = (cfg.delayBeforeRestore !== false);
|
|
125
125
|
this._delayBeforeRestoreSeconds = cfg.delayBeforeRestoreSeconds || 0.5;
|
|
@@ -135,6 +135,7 @@ class FastNavPlugin extends Plugin {
|
|
|
135
135
|
viewer.scene._renderer.setSAOEnabled(!this._hideSAO);
|
|
136
136
|
viewer.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects);
|
|
137
137
|
viewer.scene._renderer.setEdgesEnabled(!this._hideEdges);
|
|
138
|
+
this._originalCanvasResolutionScale = viewer.scene.canvas.resolutionScale;
|
|
138
139
|
if (this._scaleCanvasResolution) {
|
|
139
140
|
viewer.scene.canvas.resolutionScale = this._scaleCanvasResolutionFactor;
|
|
140
141
|
} else {
|
|
@@ -145,7 +146,7 @@ class FastNavPlugin extends Plugin {
|
|
|
145
146
|
};
|
|
146
147
|
|
|
147
148
|
const switchToHighQuality = () => {
|
|
148
|
-
viewer.scene.canvas.resolutionScale = this._defaultScaleCanvasResolutionFactor;
|
|
149
|
+
viewer.scene.canvas.resolutionScale = this._defaultScaleCanvasResolutionFactor || this._originalCanvasResolutionScale || 1.0;
|
|
149
150
|
viewer.scene._renderer.setEdgesEnabled(true);
|
|
150
151
|
viewer.scene._renderer.setColorTextureEnabled(true);
|
|
151
152
|
viewer.scene._renderer.setPBREnabled(true);
|
|
@@ -350,7 +351,7 @@ class FastNavPlugin extends Plugin {
|
|
|
350
351
|
* @param {Number} defaultScaleCanvasResolutionFactor Factor by scale canvas resolution when we stop interacting with the viewer.
|
|
351
352
|
*/
|
|
352
353
|
set defaultScaleCanvasResolutionFactor(defaultScaleCanvasResolutionFactor) {
|
|
353
|
-
this._defaultScaleCanvasResolutionFactor = defaultScaleCanvasResolutionFactor
|
|
354
|
+
this._defaultScaleCanvasResolutionFactor = defaultScaleCanvasResolutionFactor;
|
|
354
355
|
}
|
|
355
356
|
|
|
356
357
|
/**
|
|
@@ -362,6 +362,7 @@ export class TreeViewPlugin extends Plugin {
|
|
|
362
362
|
* @param {Boolean} [cfg.pruneEmptyNodes=true] When true, will not contain nodes that don't have content in the {@link Scene}. These are nodes whose {@link MetaObject}s don't have {@link Entity}s.
|
|
363
363
|
* @param {RenderService} [cfg.renderService] Optional {@link RenderService} to use. Defaults to the {@link TreeViewPlugin}'s default {@link RenderService}.
|
|
364
364
|
* @param {Boolean} [cfg.showIndeterminate=false] When true, will show indeterminate state for checkboxes when some but not all child nodes are checked
|
|
365
|
+
* @param {Boolean} [cfg.showProjectNode=false] When true, will show top level project node when hierarchy is set to "storeys"
|
|
365
366
|
*/
|
|
366
367
|
constructor(viewer, cfg = {}) {
|
|
367
368
|
|
|
@@ -414,6 +415,7 @@ export class TreeViewPlugin extends Plugin {
|
|
|
414
415
|
this._showListItemElementId = null;
|
|
415
416
|
this._renderService = cfg.renderService || new RenderService();
|
|
416
417
|
this._showIndeterminate = cfg.showIndeterminate ?? false;
|
|
418
|
+
this._showProjectNode = cfg.showProjectNode ?? false;
|
|
417
419
|
|
|
418
420
|
if (!this._renderService) {
|
|
419
421
|
throw new Error('TreeViewPlugin: no render service set');
|
|
@@ -968,11 +970,11 @@ export class TreeViewPlugin extends Plugin {
|
|
|
968
970
|
_createStoreysNodes() {
|
|
969
971
|
const rootMetaObjects = this._viewer.metaScene.rootMetaObjects;
|
|
970
972
|
for (let id in rootMetaObjects) {
|
|
971
|
-
this._createStoreysNodes2(rootMetaObjects[id], null, null, null);
|
|
973
|
+
this._createStoreysNodes2(rootMetaObjects[id], null, null, null, null);
|
|
972
974
|
}
|
|
973
975
|
}
|
|
974
976
|
|
|
975
|
-
_createStoreysNodes2(metaObject, buildingNode, storeyNode, typeNodes) {
|
|
977
|
+
_createStoreysNodes2(metaObject, projectNode, buildingNode, storeyNode, typeNodes) {
|
|
976
978
|
if (this._pruneEmptyNodes && (metaObject._countEntities === 0)) {
|
|
977
979
|
return;
|
|
978
980
|
}
|
|
@@ -980,20 +982,41 @@ export class TreeViewPlugin extends Plugin {
|
|
|
980
982
|
const metaObjectName = metaObject.name;
|
|
981
983
|
const children = metaObject.children;
|
|
982
984
|
const objectId = metaObject.id;
|
|
983
|
-
|
|
985
|
+
|
|
986
|
+
if (this._showProjectNode && metaObjectType === 'IfcProject') {
|
|
987
|
+
projectNode = {
|
|
988
|
+
nodeId: `${this._id}-${objectId}`,
|
|
989
|
+
objectId,
|
|
990
|
+
title: (metaObject.metaModels.length === 0) ? metaObjectName : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
991
|
+
type: metaObjectType,
|
|
992
|
+
parent: null,
|
|
993
|
+
numEntities: 0,
|
|
994
|
+
numVisibleEntities: 0,
|
|
995
|
+
checked: false,
|
|
996
|
+
xrayed: false,
|
|
997
|
+
children: [],
|
|
998
|
+
};
|
|
999
|
+
this._rootNodes.push(projectNode);
|
|
1000
|
+
this._objectNodes[projectNode.objectId] = projectNode;
|
|
1001
|
+
this._nodeNodes[projectNode.nodeId] = projectNode;
|
|
1002
|
+
} else if (metaObjectType === "IfcBuilding") {
|
|
984
1003
|
buildingNode = {
|
|
985
1004
|
nodeId: `${this._id}-${objectId}`,
|
|
986
1005
|
objectId: objectId,
|
|
987
1006
|
title: (metaObject.metaModels.length === 0) ? metaObjectName : this._rootNames[metaObject.metaModels[0].id] || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
988
1007
|
type: metaObjectType,
|
|
989
|
-
parent:
|
|
1008
|
+
parent: projectNode,
|
|
990
1009
|
numEntities: 0,
|
|
991
1010
|
numVisibleEntities: 0,
|
|
992
1011
|
checked: false,
|
|
993
1012
|
xrayed: false,
|
|
994
1013
|
children: []
|
|
995
1014
|
};
|
|
996
|
-
|
|
1015
|
+
if (projectNode) {
|
|
1016
|
+
projectNode.children.push(buildingNode);
|
|
1017
|
+
} else {
|
|
1018
|
+
this._rootNodes.push(buildingNode);
|
|
1019
|
+
}
|
|
997
1020
|
this._objectNodes[buildingNode.objectId] = buildingNode;
|
|
998
1021
|
this._nodeNodes[buildingNode.nodeId] = buildingNode;
|
|
999
1022
|
} else if (metaObjectType === "IfcBuildingStorey") {
|
|
@@ -1063,7 +1086,7 @@ export class TreeViewPlugin extends Plugin {
|
|
|
1063
1086
|
if (children) {
|
|
1064
1087
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
1065
1088
|
const childMetaObject = children[i];
|
|
1066
|
-
this._createStoreysNodes2(childMetaObject, buildingNode, storeyNode, typeNodes);
|
|
1089
|
+
this._createStoreysNodes2(childMetaObject, projectNode, buildingNode, storeyNode, typeNodes);
|
|
1067
1090
|
}
|
|
1068
1091
|
}
|
|
1069
1092
|
}
|