diff --git a/website/o3dv/js/navigator.js b/website/o3dv/js/navigator.js index 970cf3e..c3d19c0 100644 --- a/website/o3dv/js/navigator.js +++ b/website/o3dv/js/navigator.js @@ -231,23 +231,28 @@ OV.Navigator = class parentItem.AddChild (meshItem); } + function CreateNodeItem (navigator, name, icon, node) + { + const nodeName = OV.GetNodeName (name); + const nodeId = node.GetId (); + let nodeItem = new OV.NodeItem (nodeName, icon, nodeId, { + onShowHide : (selectedNodeId) => { + navigator.ToggleNodeVisibility (selectedNodeId); + }, + onFitToWindow : (selectedNodeId) => { + navigator.FitNodeToWindow (selectedNodeId); + } + }); + navigator.navigatorItems.AddNodeItem (nodeId, nodeItem); + return nodeItem; + } + function AddModelNodeToTree (navigator, model, node, parentItem) { for (let childNode of node.GetChildNodes ()) { if (OV.FeatureSet.NavigatorTree) { - const nodeName = OV.GetNodeName (childNode.GetName ()); - const nodeId = childNode.GetId (); - let nodeItem = new OV.NodeItem (nodeName, nodeId, { - onShowHide : (selectedNodeId) => { - navigator.ToggleNodeVisibility (selectedNodeId); - }, - onFitToWindow : (selectedNodeId) => { - navigator.FitNodeToWindow (selectedNodeId); - } - }); - navigator.navigatorItems.AddNodeItem (nodeId, nodeItem); + let nodeItem = CreateNodeItem (navigator, node.GetName (), null, childNode); parentItem.AddChild (nodeItem); - nodeItem.ShowChildren (true, null); AddModelNodeToTree (navigator, model, childNode, nodeItem); } else { AddModelNodeToTree (navigator, model, childNode, parentItem); @@ -259,11 +264,11 @@ OV.Navigator = class } } - let meshesItem = new OV.TreeViewGroupItem ('Meshes', 'meshes'); + let rootNode = model.GetRootNode (); + let meshesItem = CreateNodeItem (this, 'Meshes', 'meshes', rootNode); this.treeView.AddItem (meshesItem); meshesItem.ShowChildren (true, null); - let rootNode = model.GetRootNode (); AddModelNodeToTree (this, model, rootNode, meshesItem); } diff --git a/website/o3dv/js/navigatoritems.js b/website/o3dv/js/navigatoritems.js index 02d85d8..b038deb 100644 --- a/website/o3dv/js/navigatoritems.js +++ b/website/o3dv/js/navigatoritems.js @@ -61,9 +61,9 @@ OV.MeshItem = class extends OV.TreeViewButtonItem OV.NodeItem = class extends OV.TreeViewGroupButtonItem { - constructor (name, nodeId, callbacks) + constructor (name, icon, nodeId, callbacks) { - super (name, null); + super (name, icon); this.fitToWindowButton = new OV.TreeViewButton ('fit'); this.fitToWindowButton.OnClick (() => {