@xeokit/xeokit-sdk 2.4.0-alpha-9 → 2.4.0-alpha-11
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
CHANGED
|
@@ -119089,6 +119089,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119089
119089
|
this._muteTreeEvents = false;
|
|
119090
119090
|
this._rootNodes = [];
|
|
119091
119091
|
this._objectNodes = {}; // Object ID -> Node
|
|
119092
|
+
this._nodeNodes = {}; // Node ID -> Node
|
|
119092
119093
|
this._rootName = cfg.rootName;
|
|
119093
119094
|
this._sortNodes = cfg.sortNodes;
|
|
119094
119095
|
this._pruneEmptyNodes = cfg.pruneEmptyNodes;
|
|
@@ -119159,7 +119160,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119159
119160
|
return;
|
|
119160
119161
|
}
|
|
119161
119162
|
node.xrayed = xrayed;
|
|
119162
|
-
const listItemElementId =
|
|
119163
|
+
const listItemElementId = node.nodeId;
|
|
119163
119164
|
const listItemElement = document.getElementById(listItemElementId);
|
|
119164
119165
|
if (listItemElement !== null) {
|
|
119165
119166
|
if (xrayed) {
|
|
@@ -119193,8 +119194,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119193
119194
|
const checkbox = event.target;
|
|
119194
119195
|
const visible = checkbox.checked;
|
|
119195
119196
|
const nodeId = checkbox.id;
|
|
119196
|
-
const
|
|
119197
|
-
const checkedNode = this._objectNodes[checkedObjectId];
|
|
119197
|
+
const checkedNode = this._nodeNodes[nodeId];
|
|
119198
119198
|
const objects = this._viewer.scene.objects;
|
|
119199
119199
|
let numUpdated = 0;
|
|
119200
119200
|
this._withNodeTree(checkedNode, (node) => {
|
|
@@ -119395,7 +119395,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119395
119395
|
this._expandSwitchElement(switchElement);
|
|
119396
119396
|
}
|
|
119397
119397
|
}
|
|
119398
|
-
const listItemElementId =
|
|
119398
|
+
const listItemElementId = nodeId;
|
|
119399
119399
|
const listItemElement = document.getElementById(listItemElementId);
|
|
119400
119400
|
listItemElement.scrollIntoView({block: "center"});
|
|
119401
119401
|
listItemElement.classList.add("highlighted-node");
|
|
@@ -119507,6 +119507,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119507
119507
|
|
|
119508
119508
|
this._rootNodes = [];
|
|
119509
119509
|
this._objectNodes = {};
|
|
119510
|
+
this._nodeNodes = {};
|
|
119510
119511
|
this._validate();
|
|
119511
119512
|
if (this.valid || (this._hierarchy !== "storeys")) {
|
|
119512
119513
|
this._createEnabledNodes();
|
|
@@ -119662,7 +119663,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119662
119663
|
const objectId = metaObject.id;
|
|
119663
119664
|
if (metaObjectType === "IfcBuilding") {
|
|
119664
119665
|
buildingNode = {
|
|
119665
|
-
nodeId: `${this._id}
|
|
119666
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119666
119667
|
objectId: objectId,
|
|
119667
119668
|
title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
119668
119669
|
type: metaObjectType,
|
|
@@ -119675,13 +119676,14 @@ class TreeViewPlugin extends Plugin {
|
|
|
119675
119676
|
};
|
|
119676
119677
|
this._rootNodes.push(buildingNode);
|
|
119677
119678
|
this._objectNodes[buildingNode.objectId] = buildingNode;
|
|
119679
|
+
this._nodeNodes[buildingNode.nodeId] = buildingNode;
|
|
119678
119680
|
} else if (metaObjectType === "IfcBuildingStorey") {
|
|
119679
119681
|
if (!buildingNode) {
|
|
119680
119682
|
this.error("Failed to build storeys hierarchy for model '" + this.metaModel.id + "' - model does not have an IfcBuilding object, or is not an IFC model");
|
|
119681
119683
|
return;
|
|
119682
119684
|
}
|
|
119683
119685
|
storeyNode = {
|
|
119684
|
-
nodeId: `${this._id}
|
|
119686
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119685
119687
|
objectId: objectId,
|
|
119686
119688
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119687
119689
|
type: metaObjectType,
|
|
@@ -119694,6 +119696,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119694
119696
|
};
|
|
119695
119697
|
buildingNode.children.push(storeyNode);
|
|
119696
119698
|
this._objectNodes[storeyNode.objectId] = storeyNode;
|
|
119699
|
+
this._nodeNodes[storeyNode.nodeId] = storeyNode;
|
|
119697
119700
|
typeNodes = {};
|
|
119698
119701
|
} else {
|
|
119699
119702
|
if (storeyNode) {
|
|
@@ -119717,10 +119720,11 @@ class TreeViewPlugin extends Plugin {
|
|
|
119717
119720
|
};
|
|
119718
119721
|
storeyNode.children.push(typeNode);
|
|
119719
119722
|
this._objectNodes[typeNode.objectId] = typeNode;
|
|
119723
|
+
this._nodeNodes[typeNode.nodeId] = typeNode;
|
|
119720
119724
|
typeNodes[metaObjectType] = typeNode;
|
|
119721
119725
|
}
|
|
119722
119726
|
const node = {
|
|
119723
|
-
nodeId: `${this._id}
|
|
119727
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119724
119728
|
objectId: objectId,
|
|
119725
119729
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119726
119730
|
type: metaObjectType,
|
|
@@ -119733,6 +119737,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119733
119737
|
};
|
|
119734
119738
|
typeNode.children.push(node);
|
|
119735
119739
|
this._objectNodes[node.objectId] = node;
|
|
119740
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119736
119741
|
}
|
|
119737
119742
|
}
|
|
119738
119743
|
}
|
|
@@ -119761,7 +119766,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119761
119766
|
const objectId = metaObject.id;
|
|
119762
119767
|
if (!metaObject.parent) {
|
|
119763
119768
|
rootNode = {
|
|
119764
|
-
nodeId: `${this._id}
|
|
119769
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119765
119770
|
objectId: objectId,
|
|
119766
119771
|
title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
119767
119772
|
type: metaObjectType,
|
|
@@ -119774,6 +119779,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119774
119779
|
};
|
|
119775
119780
|
this._rootNodes.push(rootNode);
|
|
119776
119781
|
this._objectNodes[rootNode.objectId] = rootNode;
|
|
119782
|
+
this._nodeNodes[rootNode.nodeId] = rootNode;
|
|
119777
119783
|
typeNodes = {};
|
|
119778
119784
|
} else {
|
|
119779
119785
|
if (rootNode) {
|
|
@@ -119796,10 +119802,11 @@ class TreeViewPlugin extends Plugin {
|
|
|
119796
119802
|
};
|
|
119797
119803
|
rootNode.children.push(typeNode);
|
|
119798
119804
|
this._objectNodes[typeNode.objectId] = typeNode;
|
|
119805
|
+
this._nodeNodes[typeNode.nodeId] = typeNode;
|
|
119799
119806
|
typeNodes[metaObjectType] = typeNode;
|
|
119800
119807
|
}
|
|
119801
119808
|
const node = {
|
|
119802
|
-
nodeId: `${this._id}
|
|
119809
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119803
119810
|
objectId: objectId,
|
|
119804
119811
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119805
119812
|
type: metaObjectType,
|
|
@@ -119812,6 +119819,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119812
119819
|
};
|
|
119813
119820
|
typeNode.children.push(node);
|
|
119814
119821
|
this._objectNodes[node.objectId] = node;
|
|
119822
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119815
119823
|
}
|
|
119816
119824
|
}
|
|
119817
119825
|
}
|
|
@@ -119839,7 +119847,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119839
119847
|
const children = metaObject.children;
|
|
119840
119848
|
const objectId = metaObject.id;
|
|
119841
119849
|
const node = {
|
|
119842
|
-
nodeId: `${this._id}
|
|
119850
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119843
119851
|
objectId: objectId,
|
|
119844
119852
|
title: (!parent) ? (this._rootName || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119845
119853
|
type: metaObjectType,
|
|
@@ -119856,7 +119864,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119856
119864
|
this._rootNodes.push(node);
|
|
119857
119865
|
}
|
|
119858
119866
|
this._objectNodes[node.objectId] = node;
|
|
119859
|
-
|
|
119867
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119860
119868
|
if (children) {
|
|
119861
119869
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
119862
119870
|
const childMetaObject = children[i];
|
|
@@ -120004,7 +120012,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
120004
120012
|
if (node.xrayed) {
|
|
120005
120013
|
nodeElement.classList.add('xrayed-node');
|
|
120006
120014
|
}
|
|
120007
|
-
nodeElement.id =
|
|
120015
|
+
nodeElement.id = `${nodeId}`;
|
|
120008
120016
|
if (node.children.length > 0) {
|
|
120009
120017
|
const switchElementId = "switch-" + nodeId;
|
|
120010
120018
|
const switchElement = document.createElement('a');
|
|
@@ -120016,7 +120024,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
120016
120024
|
nodeElement.appendChild(switchElement);
|
|
120017
120025
|
}
|
|
120018
120026
|
const checkbox = document.createElement('input');
|
|
120019
|
-
checkbox.id = nodeId
|
|
120027
|
+
checkbox.id = `${nodeId}`;
|
|
120020
120028
|
checkbox.type = "checkbox";
|
|
120021
120029
|
checkbox.checked = node.checked;
|
|
120022
120030
|
checkbox.style["pointer-events"] = "all";
|
|
@@ -120052,9 +120060,8 @@ class TreeViewPlugin extends Plugin {
|
|
|
120052
120060
|
if (expanded) {
|
|
120053
120061
|
return;
|
|
120054
120062
|
}
|
|
120055
|
-
const nodeId = parentElement.id
|
|
120056
|
-
const
|
|
120057
|
-
const switchNode = this._objectNodes[objectId];
|
|
120063
|
+
const nodeId = parentElement.id;
|
|
120064
|
+
const switchNode = this._nodeNodes[nodeId];
|
|
120058
120065
|
const childNodes = switchNode.children;
|
|
120059
120066
|
const nodeElements = childNodes.map((node) => {
|
|
120060
120067
|
return this._createNodeElement(node);
|
package/dist/xeokit-sdk.es.js
CHANGED
|
@@ -119085,6 +119085,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119085
119085
|
this._muteTreeEvents = false;
|
|
119086
119086
|
this._rootNodes = [];
|
|
119087
119087
|
this._objectNodes = {}; // Object ID -> Node
|
|
119088
|
+
this._nodeNodes = {}; // Node ID -> Node
|
|
119088
119089
|
this._rootName = cfg.rootName;
|
|
119089
119090
|
this._sortNodes = cfg.sortNodes;
|
|
119090
119091
|
this._pruneEmptyNodes = cfg.pruneEmptyNodes;
|
|
@@ -119155,7 +119156,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119155
119156
|
return;
|
|
119156
119157
|
}
|
|
119157
119158
|
node.xrayed = xrayed;
|
|
119158
|
-
const listItemElementId =
|
|
119159
|
+
const listItemElementId = node.nodeId;
|
|
119159
119160
|
const listItemElement = document.getElementById(listItemElementId);
|
|
119160
119161
|
if (listItemElement !== null) {
|
|
119161
119162
|
if (xrayed) {
|
|
@@ -119189,8 +119190,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119189
119190
|
const checkbox = event.target;
|
|
119190
119191
|
const visible = checkbox.checked;
|
|
119191
119192
|
const nodeId = checkbox.id;
|
|
119192
|
-
const
|
|
119193
|
-
const checkedNode = this._objectNodes[checkedObjectId];
|
|
119193
|
+
const checkedNode = this._nodeNodes[nodeId];
|
|
119194
119194
|
const objects = this._viewer.scene.objects;
|
|
119195
119195
|
let numUpdated = 0;
|
|
119196
119196
|
this._withNodeTree(checkedNode, (node) => {
|
|
@@ -119391,7 +119391,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119391
119391
|
this._expandSwitchElement(switchElement);
|
|
119392
119392
|
}
|
|
119393
119393
|
}
|
|
119394
|
-
const listItemElementId =
|
|
119394
|
+
const listItemElementId = nodeId;
|
|
119395
119395
|
const listItemElement = document.getElementById(listItemElementId);
|
|
119396
119396
|
listItemElement.scrollIntoView({block: "center"});
|
|
119397
119397
|
listItemElement.classList.add("highlighted-node");
|
|
@@ -119503,6 +119503,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119503
119503
|
|
|
119504
119504
|
this._rootNodes = [];
|
|
119505
119505
|
this._objectNodes = {};
|
|
119506
|
+
this._nodeNodes = {};
|
|
119506
119507
|
this._validate();
|
|
119507
119508
|
if (this.valid || (this._hierarchy !== "storeys")) {
|
|
119508
119509
|
this._createEnabledNodes();
|
|
@@ -119658,7 +119659,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119658
119659
|
const objectId = metaObject.id;
|
|
119659
119660
|
if (metaObjectType === "IfcBuilding") {
|
|
119660
119661
|
buildingNode = {
|
|
119661
|
-
nodeId: `${this._id}
|
|
119662
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119662
119663
|
objectId: objectId,
|
|
119663
119664
|
title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
119664
119665
|
type: metaObjectType,
|
|
@@ -119671,13 +119672,14 @@ class TreeViewPlugin extends Plugin {
|
|
|
119671
119672
|
};
|
|
119672
119673
|
this._rootNodes.push(buildingNode);
|
|
119673
119674
|
this._objectNodes[buildingNode.objectId] = buildingNode;
|
|
119675
|
+
this._nodeNodes[buildingNode.nodeId] = buildingNode;
|
|
119674
119676
|
} else if (metaObjectType === "IfcBuildingStorey") {
|
|
119675
119677
|
if (!buildingNode) {
|
|
119676
119678
|
this.error("Failed to build storeys hierarchy for model '" + this.metaModel.id + "' - model does not have an IfcBuilding object, or is not an IFC model");
|
|
119677
119679
|
return;
|
|
119678
119680
|
}
|
|
119679
119681
|
storeyNode = {
|
|
119680
|
-
nodeId: `${this._id}
|
|
119682
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119681
119683
|
objectId: objectId,
|
|
119682
119684
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119683
119685
|
type: metaObjectType,
|
|
@@ -119690,6 +119692,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119690
119692
|
};
|
|
119691
119693
|
buildingNode.children.push(storeyNode);
|
|
119692
119694
|
this._objectNodes[storeyNode.objectId] = storeyNode;
|
|
119695
|
+
this._nodeNodes[storeyNode.nodeId] = storeyNode;
|
|
119693
119696
|
typeNodes = {};
|
|
119694
119697
|
} else {
|
|
119695
119698
|
if (storeyNode) {
|
|
@@ -119713,10 +119716,11 @@ class TreeViewPlugin extends Plugin {
|
|
|
119713
119716
|
};
|
|
119714
119717
|
storeyNode.children.push(typeNode);
|
|
119715
119718
|
this._objectNodes[typeNode.objectId] = typeNode;
|
|
119719
|
+
this._nodeNodes[typeNode.nodeId] = typeNode;
|
|
119716
119720
|
typeNodes[metaObjectType] = typeNode;
|
|
119717
119721
|
}
|
|
119718
119722
|
const node = {
|
|
119719
|
-
nodeId: `${this._id}
|
|
119723
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119720
119724
|
objectId: objectId,
|
|
119721
119725
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119722
119726
|
type: metaObjectType,
|
|
@@ -119729,6 +119733,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119729
119733
|
};
|
|
119730
119734
|
typeNode.children.push(node);
|
|
119731
119735
|
this._objectNodes[node.objectId] = node;
|
|
119736
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119732
119737
|
}
|
|
119733
119738
|
}
|
|
119734
119739
|
}
|
|
@@ -119757,7 +119762,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119757
119762
|
const objectId = metaObject.id;
|
|
119758
119763
|
if (!metaObject.parent) {
|
|
119759
119764
|
rootNode = {
|
|
119760
|
-
nodeId: `${this._id}
|
|
119765
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119761
119766
|
objectId: objectId,
|
|
119762
119767
|
title: this._rootName || ((metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType),
|
|
119763
119768
|
type: metaObjectType,
|
|
@@ -119770,6 +119775,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119770
119775
|
};
|
|
119771
119776
|
this._rootNodes.push(rootNode);
|
|
119772
119777
|
this._objectNodes[rootNode.objectId] = rootNode;
|
|
119778
|
+
this._nodeNodes[rootNode.nodeId] = rootNode;
|
|
119773
119779
|
typeNodes = {};
|
|
119774
119780
|
} else {
|
|
119775
119781
|
if (rootNode) {
|
|
@@ -119792,10 +119798,11 @@ class TreeViewPlugin extends Plugin {
|
|
|
119792
119798
|
};
|
|
119793
119799
|
rootNode.children.push(typeNode);
|
|
119794
119800
|
this._objectNodes[typeNode.objectId] = typeNode;
|
|
119801
|
+
this._nodeNodes[typeNode.nodeId] = typeNode;
|
|
119795
119802
|
typeNodes[metaObjectType] = typeNode;
|
|
119796
119803
|
}
|
|
119797
119804
|
const node = {
|
|
119798
|
-
nodeId: `${this._id}
|
|
119805
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119799
119806
|
objectId: objectId,
|
|
119800
119807
|
title: (metaObjectName && metaObjectName !== "" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119801
119808
|
type: metaObjectType,
|
|
@@ -119808,6 +119815,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119808
119815
|
};
|
|
119809
119816
|
typeNode.children.push(node);
|
|
119810
119817
|
this._objectNodes[node.objectId] = node;
|
|
119818
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119811
119819
|
}
|
|
119812
119820
|
}
|
|
119813
119821
|
}
|
|
@@ -119835,7 +119843,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119835
119843
|
const children = metaObject.children;
|
|
119836
119844
|
const objectId = metaObject.id;
|
|
119837
119845
|
const node = {
|
|
119838
|
-
nodeId: `${this._id}
|
|
119846
|
+
nodeId: `${this._id}-${objectId}`,
|
|
119839
119847
|
objectId: objectId,
|
|
119840
119848
|
title: (!parent) ? (this._rootName || metaObjectName) : (metaObjectName && metaObjectName !== "" && metaObjectName !== "Undefined" && metaObjectName !== "Default") ? metaObjectName : metaObjectType,
|
|
119841
119849
|
type: metaObjectType,
|
|
@@ -119852,7 +119860,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
119852
119860
|
this._rootNodes.push(node);
|
|
119853
119861
|
}
|
|
119854
119862
|
this._objectNodes[node.objectId] = node;
|
|
119855
|
-
|
|
119863
|
+
this._nodeNodes[node.nodeId] = node;
|
|
119856
119864
|
if (children) {
|
|
119857
119865
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
119858
119866
|
const childMetaObject = children[i];
|
|
@@ -120000,7 +120008,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
120000
120008
|
if (node.xrayed) {
|
|
120001
120009
|
nodeElement.classList.add('xrayed-node');
|
|
120002
120010
|
}
|
|
120003
|
-
nodeElement.id =
|
|
120011
|
+
nodeElement.id = `${nodeId}`;
|
|
120004
120012
|
if (node.children.length > 0) {
|
|
120005
120013
|
const switchElementId = "switch-" + nodeId;
|
|
120006
120014
|
const switchElement = document.createElement('a');
|
|
@@ -120012,7 +120020,7 @@ class TreeViewPlugin extends Plugin {
|
|
|
120012
120020
|
nodeElement.appendChild(switchElement);
|
|
120013
120021
|
}
|
|
120014
120022
|
const checkbox = document.createElement('input');
|
|
120015
|
-
checkbox.id = nodeId
|
|
120023
|
+
checkbox.id = `${nodeId}`;
|
|
120016
120024
|
checkbox.type = "checkbox";
|
|
120017
120025
|
checkbox.checked = node.checked;
|
|
120018
120026
|
checkbox.style["pointer-events"] = "all";
|
|
@@ -120048,9 +120056,8 @@ class TreeViewPlugin extends Plugin {
|
|
|
120048
120056
|
if (expanded) {
|
|
120049
120057
|
return;
|
|
120050
120058
|
}
|
|
120051
|
-
const nodeId = parentElement.id
|
|
120052
|
-
const
|
|
120053
|
-
const switchNode = this._objectNodes[objectId];
|
|
120059
|
+
const nodeId = parentElement.id;
|
|
120060
|
+
const switchNode = this._nodeNodes[nodeId];
|
|
120054
120061
|
const childNodes = switchNode.children;
|
|
120055
120062
|
const nodeElements = childNodes.map((node) => {
|
|
120056
120063
|
return this._createNodeElement(node);
|
package/dist/xeokit-sdk.es5.js
CHANGED
|
@@ -26265,9 +26265,10 @@ imagePos[0]=Math.floor(storeyMap.width-(worldPos[0]-xmin)*ratioX);imagePos[1]=Ma
|
|
|
26265
26265
|
* True if errors were found generating this TreeView.
|
|
26266
26266
|
* @type {boolean}
|
|
26267
26267
|
*/_this132.valid=true;if(!cfg.containerElement){_this132.error("Config expected: containerElement");return _possibleConstructorReturn(_this132);}for(var _i575=0;;_i575++){if(!treeViews[_i575]){treeViews[_i575]=_assertThisInitialized(_this132);_this132._index=_i575;_this132._id="tree-".concat(_i575,"-");break;}}_this132._containerElement=cfg.containerElement;_this132._metaModels={};_this132._autoAddModels=cfg.autoAddModels!==false;_this132._autoExpandDepth=cfg.autoExpandDepth||0;_this132._sortNodes=cfg.sortNodes!==false;_this132._pruneEmptyNodes=cfg.pruneEmptyNodes!==false;_this132._viewer=viewer;_this132._rootElement=null;_this132._muteSceneEvents=false;_this132._muteTreeEvents=false;_this132._rootNodes=[];_this132._objectNodes={};// Object ID -> Node
|
|
26268
|
+
_this132._nodeNodes={};// Node ID -> Node
|
|
26268
26269
|
_this132._rootName=cfg.rootName;_this132._sortNodes=cfg.sortNodes;_this132._pruneEmptyNodes=cfg.pruneEmptyNodes;_this132._showListItemElementId=null;_this132._containerElement.oncontextmenu=function(e){e.preventDefault();};_this132._onObjectVisibility=_this132._viewer.scene.on("objectVisibility",function(entity){if(_this132._muteSceneEvents){return;}var objectId=entity.id;var node=_this132._objectNodes[objectId];if(!node){return;// Not in this tree
|
|
26269
26270
|
}var visible=entity.visible;var updated=visible!==node.checked;if(!updated){return;}_this132._muteTreeEvents=true;node.checked=visible;if(visible){node.numVisibleEntities++;}else{node.numVisibleEntities--;}var checkbox=document.getElementById(node.nodeId);if(checkbox){checkbox.checked=visible;}var parent=node.parent;while(parent){parent.checked=visible;if(visible){parent.numVisibleEntities++;}else{parent.numVisibleEntities--;}var parentCheckbox=document.getElementById(parent.nodeId);if(parentCheckbox){var newChecked=parent.numVisibleEntities>0;if(newChecked!==parentCheckbox.checked){parentCheckbox.checked=newChecked;}}parent=parent.parent;}_this132._muteTreeEvents=false;});_this132._onObjectXrayed=_this132._viewer.scene.on('objectXRayed',function(entity){if(_this132._muteSceneEvents){return;}var objectId=entity.id;var node=_this132._objectNodes[objectId];if(!node){return;// Not in this tree
|
|
26270
|
-
}_this132._muteTreeEvents=true;var xrayed=entity.xrayed;var updated=xrayed!==node.xrayed;if(!updated){return;}node.xrayed=xrayed;var listItemElementId=
|
|
26271
|
+
}_this132._muteTreeEvents=true;var xrayed=entity.xrayed;var updated=xrayed!==node.xrayed;if(!updated){return;}node.xrayed=xrayed;var listItemElementId=node.nodeId;var listItemElement=document.getElementById(listItemElementId);if(listItemElement!==null){if(xrayed){listItemElement.classList.add('xrayed-node');}else{listItemElement.classList.remove('xrayed-node');}}_this132._muteTreeEvents=false;});_this132._switchExpandHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this132._expandSwitchElement(switchElement);};_this132._switchCollapseHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this132._collapseSwitchElement(switchElement);};_this132._checkboxChangeHandler=function(event){if(_this132._muteTreeEvents){return;}_this132._muteSceneEvents=true;var checkbox=event.target;var visible=checkbox.checked;var nodeId=checkbox.id;var checkedNode=_this132._nodeNodes[nodeId];var objects=_this132._viewer.scene.objects;var numUpdated=0;_this132._withNodeTree(checkedNode,function(node){var objectId=node.objectId;var checkBoxId=node.nodeId;var entity=objects[objectId];var isLeaf=node.children.length===0;node.numVisibleEntities=visible?node.numEntities:0;if(isLeaf&&visible!==node.checked){numUpdated++;}node.checked=visible;var checkbox2=document.getElementById(checkBoxId);if(checkbox2){checkbox2.checked=visible;}if(entity){entity.visible=visible;}});var parent=checkedNode.parent;while(parent){parent.checked=visible;var checkbox2=document.getElementById(parent.nodeId);// Parent checkboxes are always in DOM
|
|
26271
26272
|
if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntities-=numUpdated;}var newChecked=parent.numVisibleEntities>0;if(newChecked!==checkbox2.checked){checkbox2.checked=newChecked;}parent=parent.parent;}_this132._muteSceneEvents=false;};_this132._hierarchy=cfg.hierarchy||"containment";_this132._autoExpandDepth=cfg.autoExpandDepth||0;if(_this132._autoAddModels){var modelIds=Object.keys(_this132.viewer.metaScene.metaModels);for(var _i576=0,len=modelIds.length;_i576<len;_i576++){var modelId=modelIds[_i576];_this132.addModel(modelId);}_this132.viewer.scene.on("modelLoaded",function(modelId){if(_this132.viewer.metaScene.metaModels[modelId]){_this132.addModel(modelId);}});}_this132.hierarchy=cfg.hierarchy;return _this132;}/**
|
|
26272
26273
|
* Sets how the nodes are organized within this tree view.
|
|
26273
26274
|
*
|
|
@@ -26322,7 +26323,7 @@ if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntitie
|
|
|
26322
26323
|
*
|
|
26323
26324
|
* @param {String} objectId ID of the {@link Entity}.
|
|
26324
26325
|
*/},{key:"showNode",value:function showNode(objectId){if(this._showListItemElementId){this.unShowNode();}var node=this._objectNodes[objectId];if(!node){return;// Node may not exist for the given object if (this._pruneEmptyNodes == true)
|
|
26325
|
-
}var nodeId=node.nodeId;var switchElementId="switch-"+nodeId;var switchElement=document.getElementById(switchElementId);if(switchElement){this._expandSwitchElement(switchElement);switchElement.scrollIntoView();return;}var path=[];path.unshift(node);var parent=node.parent;while(parent){path.unshift(parent);parent=parent.parent;}for(var _i577=0,len=path.length;_i577<len;_i577++){var _node15=path[_i577];var _nodeId=_node15.nodeId;var _switchElementId="switch-"+_nodeId;var _switchElement=document.getElementById(_switchElementId);if(_switchElement){this._expandSwitchElement(_switchElement);}}var listItemElementId=
|
|
26326
|
+
}var nodeId=node.nodeId;var switchElementId="switch-"+nodeId;var switchElement=document.getElementById(switchElementId);if(switchElement){this._expandSwitchElement(switchElement);switchElement.scrollIntoView();return;}var path=[];path.unshift(node);var parent=node.parent;while(parent){path.unshift(parent);parent=parent.parent;}for(var _i577=0,len=path.length;_i577<len;_i577++){var _node15=path[_i577];var _nodeId=_node15.nodeId;var _switchElementId="switch-"+_nodeId;var _switchElement=document.getElementById(_switchElementId);if(_switchElement){this._expandSwitchElement(_switchElement);}}var listItemElementId=nodeId;var listItemElement=document.getElementById(listItemElementId);listItemElement.scrollIntoView({block:"center"});listItemElement.classList.add("highlighted-node");this._showListItemElementId=listItemElementId;}/**
|
|
26326
26327
|
* De-highlights the node previously shown with {@link TreeViewPlugin#showNode}.
|
|
26327
26328
|
*
|
|
26328
26329
|
* Does nothing if no node is currently shown.
|
|
@@ -26344,7 +26345,7 @@ if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntitie
|
|
|
26344
26345
|
* @param {Function} callback Callback called at each {@link TreeViewNode}, with the TreeViewNode given as the argument.
|
|
26345
26346
|
*/},{key:"withNodeTree",value:function withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i580=0,len=children.length;_i580<len;_i580++){this.withNodeTree(children[_i580],callback);}}/**
|
|
26346
26347
|
* Destroys this TreeViewPlugin.
|
|
26347
|
-
*/},{key:"destroy",value:function destroy(){if(!this._containerElement){return;}this._metaModels={};if(this._rootElement&&!this._destroyed){this._rootElement.parentNode.removeChild(this._rootElement);this._viewer.scene.off(this._onObjectVisibility);this._destroyed=true;}delete treeViews[this._index];_get(_getPrototypeOf(TreeViewPlugin.prototype),"destroy",this).call(this);}},{key:"_createNodes",value:function _createNodes(){if(this._rootElement){this._rootElement.parentNode.removeChild(this._rootElement);this._rootElement=null;}this._rootNodes=[];this._objectNodes={};this._validate();if(this.valid||this._hierarchy!=="storeys"){this._createEnabledNodes();}else{this._createDisabledNodes();}}},{key:"_validate",value:function _validate(){this.errors=[];switch(this._hierarchy){case"storeys":this.valid=this._validateMetaModelForStoreysHierarchy();break;case"types":this.valid=this._rootNodes.length>0;break;case"containment":default:this.valid=this._rootNodes.length>0;break;}return this.valid;}},{key:"_validateMetaModelForStoreysHierarchy",value:function _validateMetaModelForStoreysHierarchy(){var level=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var ctx=arguments.length>1?arguments[1]:undefined;var buildingNode=arguments.length>2?arguments[2]:undefined;// ctx = ctx || {
|
|
26348
|
+
*/},{key:"destroy",value:function destroy(){if(!this._containerElement){return;}this._metaModels={};if(this._rootElement&&!this._destroyed){this._rootElement.parentNode.removeChild(this._rootElement);this._viewer.scene.off(this._onObjectVisibility);this._destroyed=true;}delete treeViews[this._index];_get(_getPrototypeOf(TreeViewPlugin.prototype),"destroy",this).call(this);}},{key:"_createNodes",value:function _createNodes(){if(this._rootElement){this._rootElement.parentNode.removeChild(this._rootElement);this._rootElement=null;}this._rootNodes=[];this._objectNodes={};this._nodeNodes={};this._validate();if(this.valid||this._hierarchy!=="storeys"){this._createEnabledNodes();}else{this._createDisabledNodes();}}},{key:"_validate",value:function _validate(){this.errors=[];switch(this._hierarchy){case"storeys":this.valid=this._validateMetaModelForStoreysHierarchy();break;case"types":this.valid=this._rootNodes.length>0;break;case"containment":default:this.valid=this._rootNodes.length>0;break;}return this.valid;}},{key:"_validateMetaModelForStoreysHierarchy",value:function _validateMetaModelForStoreysHierarchy(){var level=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var ctx=arguments.length>1?arguments[1]:undefined;var buildingNode=arguments.length>2?arguments[2]:undefined;// ctx = ctx || {
|
|
26348
26349
|
// foundIFCBuildingStoreys: false
|
|
26349
26350
|
// };
|
|
26350
26351
|
// const metaObjectType = metaObject.type;
|
|
@@ -26371,13 +26372,13 @@ if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntitie
|
|
|
26371
26372
|
// // errors.push("Can't build storeys hierarchy: no IfcBuildingStoreys found");
|
|
26372
26373
|
// }
|
|
26373
26374
|
// }
|
|
26374
|
-
return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var ul=document.createElement('ul');this._rootElement=ul;this._containerElement.appendChild(ul);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i581=0,len=rootMetaObjects.length;_i581<len;_i581++){var rootMetaObject=rootMetaObjects[_i581];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var li=document.createElement('li');ul.appendChild(li);var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i582=0,len=rootMetaObjects.length;_i582<len;_i582++){this._findEmptyNodes2(rootMetaObjects[_i582]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i583=0,len=children.length;_i583<len;_i583++){var childMetaObject=children[_i583];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-
|
|
26375
|
+
return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var ul=document.createElement('ul');this._rootElement=ul;this._containerElement.appendChild(ul);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i581=0,len=rootMetaObjects.length;_i581<len;_i581++){var rootMetaObject=rootMetaObjects[_i581];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var li=document.createElement('li');ul.appendChild(li);var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var _i582=0,len=rootMetaObjects.length;_i582<len;_i582++){this._findEmptyNodes2(rootMetaObjects[_i582]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i583=0,len=children.length;_i583<len;_i583++){var childMetaObject=children[_i583];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(buildingNode);this._objectNodes[buildingNode.objectId]=buildingNode;this._nodeNodes[buildingNode.nodeId]=buildingNode;}else if(metaObjectType==="IfcBuildingStorey"){if(!buildingNode){this.error("Failed to build storeys hierarchy for model '"+this.metaModel.id+"' - model does not have an IfcBuilding object, or is not an IFC model");return;}storeyNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:buildingNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};buildingNode.children.push(storeyNode);this._objectNodes[storeyNode.objectId]=storeyNode;this._nodeNodes[storeyNode.nodeId]=storeyNode;typeNodes={};}else{if(storeyNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){typeNodes=typeNodes||{};var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(storeyNode.objectId,"-").concat(metaObjectType),objectId:"".concat(storeyNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:storeyNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};storeyNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node16={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node16);this._objectNodes[_node16.objectId]=_node16;this._nodeNodes[_node16.nodeId]=_node16;}}}if(children){for(var _i584=0,len=children.length;_i584<len;_i584++){var childMetaObject=children[_i584];this._createStoreysNodes2(childMetaObject,buildingNode,storeyNode,typeNodes);}}}},{key:"_createTypesNodes",value:function _createTypesNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createTypesNodes2(rootMetaObjects[id],null,null);}}},{key:"_createTypesNodes2",value:function _createTypesNodes2(metaObject,rootNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(!metaObject.parent){rootNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:this._rootName||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(rootNode);this._objectNodes[rootNode.objectId]=rootNode;this._nodeNodes[rootNode.nodeId]=rootNode;typeNodes={};}else{if(rootNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(rootNode.objectId,"-").concat(metaObjectType),objectId:"".concat(rootNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:rootNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};rootNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var _node17={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(_node17);this._objectNodes[_node17.objectId]=_node17;this._nodeNodes[_node17.nodeId]=_node17;}}}if(children){for(var _i585=0,len=children.length;_i585<len;_i585++){var childMetaObject=children[_i585];this._createTypesNodes2(childMetaObject,rootNode,typeNodes);}}}},{key:"_createContainmentNodes",value:function _createContainmentNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createContainmentNodes2(rootMetaObjects[id],null);}}},{key:"_createContainmentNodes2",value:function _createContainmentNodes2(metaObject,parent){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name||metaObjectType;var children=metaObject.children;var objectId=metaObject.id;var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:!parent?this._rootName||metaObjectName:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:parent,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(parent){parent.children.push(node);}else{this._rootNodes.push(node);}this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;if(children){for(var _i586=0,len=children.length;_i586<len;_i586++){var childMetaObject=children[_i586];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i587=0,len=this._rootNodes.length;_i587<len;_i587++){var rootNode=this._rootNodes[_i587];this._sortChildren(rootNode);}}},{key:"_sortChildren",value:function _sortChildren(node){var children=node.children;if(!children||children.length===0){return;}if(this._hierarchy==="storeys"&&node.type==="IfcBuilding"){// Assumes that children of an IfcBuilding will always be IfcBuildingStoreys
|
|
26375
26376
|
children.sort(this._getSpatialSortFunc());}else{children.sort(this._alphaSortFunc);}for(var _i588=0,len=children.length;_i588<len;_i588++){var _node18=children[_i588];this._sortChildren(_node18);}}},{key:"_getSpatialSortFunc",value:function _getSpatialSortFunc(){// Creates cached sort func with Viewer in scope
|
|
26376
26377
|
var viewer=this.viewer;var scene=viewer.scene;var camera=scene.camera;var metaScene=viewer.metaScene;return this._spatialSortFunc||(this._spatialSortFunc=function(node1,node2){if(!node1.aabb||!node2.aabb){// Sorting on lowest point of the AABB is likely more more robust when objects could overlap storeys
|
|
26377
26378
|
if(!node1.aabb){node1.aabb=scene.getAABB(metaScene.getObjectIDsInSubtree(node1.objectId));}if(!node2.aabb){node2.aabb=scene.getAABB(metaScene.getObjectIDsInSubtree(node2.objectId));}}var idx=0;if(camera.xUp){idx=0;}else if(camera.yUp){idx=1;}else{idx=2;}if(node1.aabb[idx]>node2.aabb[idx]){return-1;}if(node1.aabb[idx]<node2.aabb[idx]){return 1;}return 0;});}},{key:"_alphaSortFunc",value:function _alphaSortFunc(node1,node2){var title1=node1.title.toUpperCase();// FIXME: Should be case sensitive?
|
|
26378
26379
|
var title2=node2.title.toUpperCase();if(title1<title2){return-1;}if(title1>title2){return 1;}return 0;}},{key:"_synchNodesToEntities",value:function _synchNodesToEntities(){var objectIds=Object.keys(this.viewer.metaScene.metaObjects);var metaObjects=this._viewer.metaScene.metaObjects;var objects=this._viewer.scene.objects;for(var _i589=0,len=objectIds.length;_i589<len;_i589++){var objectId=objectIds[_i589];var metaObject=metaObjects[objectId];if(metaObject){var _node19=this._objectNodes[objectId];if(_node19){var entity=objects[objectId];if(entity){var visible=entity.visible;_node19.numEntities=1;_node19.xrayed=entity.xrayed;if(visible){_node19.numVisibleEntities=1;_node19.checked=true;}else{_node19.numVisibleEntities=0;_node19.checked=false;}var parent=_node19.parent;// Synch parents
|
|
26379
26380
|
while(parent){parent.numEntities++;if(visible){parent.numVisibleEntities++;parent.checked=true;}parent=parent.parent;}}}}}}},{key:"_withNodeTree",value:function _withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i590=0,len=children.length;_i590<len;_i590++){this._withNodeTree(children[_i590],callback);}}},{key:"_createTrees",value:function _createTrees(){var _this135=this;if(this._rootNodes.length===0){return;}var rootNodeElements=this._rootNodes.map(function(rootNode){return _this135._createNodeElement(rootNode);});var ul=document.createElement('ul');rootNodeElements.forEach(function(nodeElement){ul.appendChild(nodeElement);});this._containerElement.appendChild(ul);this._rootElement=ul;}},{key:"_createNodeElement",value:function _createNodeElement(node){var _this136=this;var nodeElement=document.createElement('li');//const nodeId = this._objectToNodeID(node.objectId);
|
|
26380
|
-
var nodeId=node.nodeId;if(node.xrayed){nodeElement.classList.add('xrayed-node');}nodeElement.id=
|
|
26381
|
+
var nodeId=node.nodeId;if(node.xrayed){nodeElement.classList.add('xrayed-node');}nodeElement.id="".concat(nodeId);if(node.children.length>0){var switchElementId="switch-"+nodeId;var switchElement=document.createElement('a');switchElement.href='#';switchElement.id=switchElementId;switchElement.textContent='+';switchElement.classList.add('plus');switchElement.addEventListener('click',this._switchExpandHandler);nodeElement.appendChild(switchElement);}var checkbox=document.createElement('input');checkbox.id="".concat(nodeId);checkbox.type="checkbox";checkbox.checked=node.checked;checkbox.style["pointer-events"]="all";checkbox.addEventListener("change",this._checkboxChangeHandler);nodeElement.appendChild(checkbox);var span=document.createElement('span');span.textContent=node.title;nodeElement.appendChild(span);span.oncontextmenu=function(e){_this136.fire("contextmenu",{event:e,viewer:_this136._viewer,treeViewPlugin:_this136,treeViewNode:node});e.preventDefault();};span.onclick=function(e){_this136.fire("nodeTitleClicked",{event:e,viewer:_this136._viewer,treeViewPlugin:_this136,treeViewNode:node});e.preventDefault();};return nodeElement;}},{key:"_expandSwitchElement",value:function _expandSwitchElement(switchElement){var _this137=this;var parentElement=switchElement.parentElement;var expanded=parentElement.getElementsByTagName('li')[0];if(expanded){return;}var nodeId=parentElement.id;var switchNode=this._nodeNodes[nodeId];var childNodes=switchNode.children;var nodeElements=childNodes.map(function(node){return _this137._createNodeElement(node);});var ul=document.createElement('ul');nodeElements.forEach(function(nodeElement){ul.appendChild(nodeElement);});parentElement.appendChild(ul);switchElement.classList.remove('plus');switchElement.classList.add('minus');switchElement.textContent='-';switchElement.removeEventListener('click',this._switchExpandHandler);switchElement.addEventListener('click',this._switchCollapseHandler);}},{key:"_collapseNode",value:function _collapseNode(objectId){var nodeId=objectId;var switchElementId="switch-"+nodeId;var switchElement=document.getElementById(switchElementId);this._collapseSwitchElement(switchElement);}},{key:"_collapseSwitchElement",value:function _collapseSwitchElement(switchElement){if(!switchElement){return;}var parent=switchElement.parentElement;if(!parent){return;}var ul=parent.querySelector('ul');if(!ul){return;}parent.removeChild(ul);switchElement.classList.remove('minus');switchElement.classList.add('plus');switchElement.textContent='+';switchElement.removeEventListener('click',this._switchCollapseHandler);switchElement.addEventListener('click',this._switchExpandHandler);}}]);return TreeViewPlugin;}(Plugin);/**
|
|
26381
26382
|
* For each Entity in its Scene, efficiently combines updates from multiple culling systems into a single "culled" state.
|
|
26382
26383
|
*
|
|
26383
26384
|
* Two culling systems are supported:
|