diff --git a/assets/icons/tree_mesh.svg b/assets/icons/tree_mesh.svg new file mode 100644 index 0000000..966152d --- /dev/null +++ b/assets/icons/tree_mesh.svg @@ -0,0 +1,2 @@ + + diff --git a/website/o3dv/css/O3DVIcons/O3DVIcons.woff b/website/o3dv/css/O3DVIcons/O3DVIcons.woff index 9a7feb0..551669e 100644 Binary files a/website/o3dv/css/O3DVIcons/O3DVIcons.woff and b/website/o3dv/css/O3DVIcons/O3DVIcons.woff differ diff --git a/website/o3dv/css/icons.css b/website/o3dv/css/icons.css index a5c2d5f..7e482de 100644 --- a/website/o3dv/css/icons.css +++ b/website/o3dv/css/icons.css @@ -1,6 +1,6 @@ @font-face { font-family: "O3DVIcons"; - src: url("O3DVIcons/O3DVIcons.woff?7e92836aa72dd0e49d33f09f3c4728fb") format("woff"); + src: url("O3DVIcons/O3DVIcons.woff?45cf3bb91600f61daa0fca4c07103488") format("woff"); } i[class^="icon-"]:before, i[class*=" icon-"]:before { @@ -107,18 +107,21 @@ i[class^="icon-"]:before, i[class*=" icon-"]:before { .icon-theme:before { content: "\f11f"; } -.icon-tree_view:before { +.icon-tree_mesh:before { content: "\f120"; } -.icon-up_y:before { +.icon-tree_view:before { content: "\f121"; } -.icon-up_z:before { +.icon-up_y:before { content: "\f122"; } -.icon-visible:before { +.icon-up_z:before { content: "\f123"; } -.icon-warning:before { +.icon-visible:before { content: "\f124"; } +.icon-warning:before { + content: "\f125"; +} diff --git a/website/o3dv/css/treeview.css b/website/o3dv/css/treeview.css index d426e66..77a3c54 100644 --- a/website/o3dv/css/treeview.css +++ b/website/o3dv/css/treeview.css @@ -54,6 +54,11 @@ div.ov_tree_view div.ov_tree_view_children margin-left: 28px; } +div.ov_tree_view.tight div.ov_tree_view_children +{ + margin-left: 10px; +} + @media (hover) { diff --git a/website/o3dv/js/navigatoritems.js b/website/o3dv/js/navigatoritems.js index 771fc4d..c8950e0 100644 --- a/website/o3dv/js/navigatoritems.js +++ b/website/o3dv/js/navigatoritems.js @@ -11,9 +11,9 @@ OV.MaterialItem = class extends OV.TreeViewSingleItem OV.MeshItem = class extends OV.TreeViewButtonItem { - constructor (name, meshInstanceId, callbacks) + constructor (name, icon, meshInstanceId, callbacks) { - super (name); + super (name, icon); this.meshInstanceId = meshInstanceId; this.visible = true; diff --git a/website/o3dv/js/navigatorpanels.js b/website/o3dv/js/navigatorpanels.js index 368a0b4..176e37f 100644 --- a/website/o3dv/js/navigatorpanels.js +++ b/website/o3dv/js/navigatorpanels.js @@ -338,6 +338,7 @@ OV.NavigatorMeshesPanel = class extends OV.NavigatorPanel this.showHideButton = null; this.isHierarchical = false; + this.treeView.AddClass ('tight'); this.buttonsDiv = $('
').addClass ('ov_navigator_buttons').insertBefore (this.treeDiv); this.popupDiv = $('
').addClass ('ov_navigator_info_panel').addClass ('ov_thin_scrollbar').appendTo (this.panelDiv); @@ -462,12 +463,13 @@ OV.NavigatorMeshesPanel = class extends OV.NavigatorPanel FillMeshTree (model) { - function AddMeshToNodeTree (navigator, model, node, meshIndex, parentItem) + function AddMeshToNodeTree (navigator, model, node, meshIndex, parentItem, isHierarchical) { let mesh = model.GetMesh (meshIndex); let meshName = OV.GetMeshName (mesh.GetName ()); let meshInstanceId = new OV.MeshInstanceId (node.GetId (), meshIndex); - let meshItem = new OV.MeshItem (meshName, meshInstanceId, { + let meshItemIcon = isHierarchical ? 'tree_mesh' : null; + let meshItem = new OV.MeshItem (meshName, meshItemIcon, meshInstanceId, { onShowHide : (selectedMeshId) => { navigator.callbacks.onMeshShowHide (selectedMeshId); }, @@ -530,7 +532,7 @@ OV.NavigatorMeshesPanel = class extends OV.NavigatorPanel } for (let meshIndex of node.GetMeshIndices ()) { - AddMeshToNodeTree (navigator, model, node, meshIndex, parentItem); + AddMeshToNodeTree (navigator, model, node, meshIndex, parentItem, isHierarchical); } } diff --git a/website/o3dv/js/treeview.js b/website/o3dv/js/treeview.js index 403672e..5a410e8 100644 --- a/website/o3dv/js/treeview.js +++ b/website/o3dv/js/treeview.js @@ -37,12 +37,15 @@ OV.TreeViewButton = class OV.TreeViewItem = class { - constructor (name) + constructor (name, icon) { this.name = name; this.parent = null; this.mainElement = $('
').addClass ('ov_tree_item').attr ('title', this.name); this.nameElement = $('
').addClass ('ov_tree_item_name').html (this.name).appendTo (this.mainElement); + if (OV.IsDefined (icon)) { + OV.CreateSvgIcon (icon, 'ov_tree_item_icon').insertBefore (this.nameElement); + } } OnClick (onClick) @@ -65,9 +68,9 @@ OV.TreeViewItem = class OV.TreeViewSingleItem = class extends OV.TreeViewItem { - constructor (name) + constructor (name, icon) { - super (name); + super (name, icon); this.selected = false; } @@ -95,9 +98,9 @@ OV.TreeViewSingleItem = class extends OV.TreeViewItem OV.TreeViewButtonItem = class extends OV.TreeViewSingleItem { - constructor (name) + constructor (name, icon) { - super (name); + super (name, icon); this.buttonsDiv = $('
').addClass ('ov_tree_item_button_container').insertBefore (this.nameElement); } @@ -114,9 +117,9 @@ OV.TreeViewButtonItem = class extends OV.TreeViewSingleItem OV.TreeViewGroupItem = class extends OV.TreeViewItem { - constructor (name, iconPath) + constructor (name, icon) { - super (name); + super (name, icon); this.children = []; this.isVisible = true; this.isChildrenVisible = false; @@ -126,9 +129,6 @@ OV.TreeViewGroupItem = class extends OV.TreeViewItem this.closeButtonIcon = 'arrow_right'; this.openCloseButton = OV.CreateSvgIcon (this.openButtonIcon, 'ov_tree_item_icon').insertBefore (this.nameElement); - if (OV.IsDefined (iconPath)) { - OV.CreateSvgIcon (iconPath, 'ov_tree_item_icon').insertBefore (this.nameElement); - } } AddChild (child) @@ -196,9 +196,9 @@ OV.TreeViewGroupItem = class extends OV.TreeViewItem OV.TreeViewGroupButtonItem = class extends OV.TreeViewGroupItem { - constructor (name, iconPath) + constructor (name, icon) { - super (name, iconPath); + super (name, icon); this.buttonsDiv = $('
').addClass ('ov_tree_item_button_container').insertBefore (this.nameElement); } @@ -221,6 +221,11 @@ OV.TreeView = class this.children = []; } + AddClass (className) + { + this.mainDiv.addClass (className); + } + AddChild (child) { child.AddDomElements (this.mainDiv);