From 13cbca26ee48e345292c72436de1d3694e52d593 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Sun, 24 Oct 2021 18:04:20 +0200 Subject: [PATCH] Rename modeldata to navigatortree. --- sandbox/embed_selfhost_errors.html | 1 + sandbox/embed_selfhost_externallibs.html | 1 + sandbox/embed_selfhost_fullscreen.html | 1 + sandbox/embed_selfhost_manual.html | 1 + sandbox/embed_selfhost_multiple.html | 1 + sandbox/embed_selfhost_single.html | 1 + sandbox/embed_selfhost_single_scroll.html | 1 + tools/config.json | 2 +- website/embed.html | 3 +- website/index.html | 3 +- website/o3dv/js/modeldata.js | 121 ---------------------- website/o3dv/js/navigator.js | 54 +++++----- website/o3dv/js/navigatortree.js | 98 ++++++++++++++++++ 13 files changed, 136 insertions(+), 152 deletions(-) delete mode 100644 website/o3dv/js/modeldata.js create mode 100644 website/o3dv/js/navigatortree.js diff --git a/sandbox/embed_selfhost_errors.html b/sandbox/embed_selfhost_errors.html index d1614ea..c9ee5b4 100644 --- a/sandbox/embed_selfhost_errors.html +++ b/sandbox/embed_selfhost_errors.html @@ -32,6 +32,7 @@ + diff --git a/sandbox/embed_selfhost_externallibs.html b/sandbox/embed_selfhost_externallibs.html index e7c3a17..a776e1d 100644 --- a/sandbox/embed_selfhost_externallibs.html +++ b/sandbox/embed_selfhost_externallibs.html @@ -32,6 +32,7 @@ + diff --git a/sandbox/embed_selfhost_fullscreen.html b/sandbox/embed_selfhost_fullscreen.html index 6683967..e6e14f6 100644 --- a/sandbox/embed_selfhost_fullscreen.html +++ b/sandbox/embed_selfhost_fullscreen.html @@ -31,6 +31,7 @@ + diff --git a/sandbox/embed_selfhost_manual.html b/sandbox/embed_selfhost_manual.html index 8c0f98e..20fa9e1 100644 --- a/sandbox/embed_selfhost_manual.html +++ b/sandbox/embed_selfhost_manual.html @@ -32,6 +32,7 @@ + diff --git a/sandbox/embed_selfhost_multiple.html b/sandbox/embed_selfhost_multiple.html index 8f9ca55..f880b86 100644 --- a/sandbox/embed_selfhost_multiple.html +++ b/sandbox/embed_selfhost_multiple.html @@ -32,6 +32,7 @@ + diff --git a/sandbox/embed_selfhost_single.html b/sandbox/embed_selfhost_single.html index ce60632..9afc8e9 100644 --- a/sandbox/embed_selfhost_single.html +++ b/sandbox/embed_selfhost_single.html @@ -31,6 +31,7 @@ + diff --git a/sandbox/embed_selfhost_single_scroll.html b/sandbox/embed_selfhost_single_scroll.html index fe5ad7b..41d07f4 100644 --- a/sandbox/embed_selfhost_single_scroll.html +++ b/sandbox/embed_selfhost_single_scroll.html @@ -31,6 +31,7 @@ + diff --git a/tools/config.json b/tools/config.json index 6c4fcc8..d920150 100644 --- a/tools/config.json +++ b/tools/config.json @@ -82,7 +82,7 @@ "website/o3dv/js/exportdialog.js", "website/o3dv/js/sharingdialog.js", "website/o3dv/js/cookiedialog.js", - "website/o3dv/js/modeldata.js", + "website/o3dv/js/navigatortree.js", "website/o3dv/js/navigator.js", "website/o3dv/js/sidebarpanel.js", "website/o3dv/js/detailssidebarpanel.js", diff --git a/website/embed.html b/website/embed.html index 8607cde..065e109 100644 --- a/website/embed.html +++ b/website/embed.html @@ -41,6 +41,7 @@ + @@ -103,7 +104,7 @@ - + diff --git a/website/index.html b/website/index.html index 361fc80..6053ad4 100644 --- a/website/index.html +++ b/website/index.html @@ -41,6 +41,7 @@ + @@ -103,7 +104,7 @@ - + diff --git a/website/o3dv/js/modeldata.js b/website/o3dv/js/modeldata.js deleted file mode 100644 index 77b0378..0000000 --- a/website/o3dv/js/modeldata.js +++ /dev/null @@ -1,121 +0,0 @@ -OV.MaterialData = class -{ - constructor (originalIndex) - { - this.originalIndex = originalIndex; - this.menuItem = null; - } - - SetSelected (selected) - { - this.menuItem.SetSelected (selected); - } - - CreateMenuItem (name, callbacks) - { - this.menuItem = new OV.TreeViewButtonItem (name); - this.menuItem.OnNameClick (() => { - callbacks.onSelected (this.originalIndex); - }); - return this.menuItem; - } -}; - -OV.MeshData = class -{ - constructor (originalIndex) - { - this.originalIndex = originalIndex; - this.visible = true; - this.menuItem = null; - this.showHideButton = null; - } - - IsVisible () - { - return this.visible; - } - - SetVisible (visible) - { - this.visible = visible; - if (this.visible) { - this.showHideButton.SetImage ('visible'); - } else { - this.showHideButton.SetImage ('hidden'); - } - } - - SetSelected (selected) - { - this.menuItem.SetSelected (selected); - } - - CreateMenuItem (name, callbacks) - { - this.menuItem = new OV.TreeViewButtonItem (name); - - let fitToWindowButton = new OV.TreeViewButton ('fit'); - fitToWindowButton.OnClick (() => { - callbacks.onFitToWindow (this.originalIndex); - }); - this.menuItem.AddButton (fitToWindowButton); - - this.showHideButton = new OV.TreeViewButton ('visible'); - this.showHideButton.OnClick ((ev) => { - callbacks.onShowHide (this.originalIndex); - }); - this.menuItem.AddButton (this.showHideButton); - - this.menuItem.OnNameClick (() => { - callbacks.onSelected (this.originalIndex); - }); - - return this.menuItem; - } -}; - -OV.ModelData = class -{ - constructor () - { - this.meshDataArr = []; - this.materialDataArr = []; - } - - MaterialCount () - { - return this.materialDataArr.length; - } - - GetMaterialData (index) - { - return this.materialDataArr[index]; - } - - AddMaterialData (materialData) - { - this.materialDataArr.push (materialData); - } - - MeshCount () - { - return this.meshDataArr.length; - } - - GetMeshData (index) - { - return this.meshDataArr[index]; - } - - AddMeshData (meshData) - { - this.meshDataArr.push (meshData); - } - - Clear () - { - this.meshDataArr = []; - this.materialDataArr = []; - } -}; diff --git a/website/o3dv/js/navigator.js b/website/o3dv/js/navigator.js index db89d54..b0853d4 100644 --- a/website/o3dv/js/navigator.js +++ b/website/o3dv/js/navigator.js @@ -121,7 +121,7 @@ OV.Navigator = class this.infoDiv = $('
').addClass ('ov_navigator_info_panel').addClass ('ov_thin_scrollbar').appendTo (parentDiv); this.treeView = new OV.TreeView (this.treeDiv); this.infoPanel = new OV.NavigatorInfoPanel (this.infoDiv); - this.modelData = new OV.ModelData (); + this.navigatorTree = new OV.NavigatorTree (); this.selection = null; this.tempSelectedMeshIndex = null; } @@ -176,13 +176,12 @@ OV.Navigator = class for (let i = 0; i < model.MaterialCount (); i++) { let material = model.GetMaterial (i); let materialName = OV.GetMaterialName (material.name); - let materialData = new OV.MaterialData (i); - let materialItem = materialData.CreateMenuItem (materialName, { + let materialItem = new OV.MaterialItem (materialName, i, { onSelected : (materialIndex) => { this.SetSelection (new OV.Selection (OV.SelectionType.Material, materialIndex)); } }); - this.modelData.AddMaterialData (materialData); + this.navigatorTree.AddMaterialItem (materialItem); materialsItem.AddChild (materialItem); } @@ -191,9 +190,8 @@ OV.Navigator = class meshesItem.ShowChildren (true, null); for (let i = 0; i < model.MeshCount (); i++) { let mesh = model.GetMesh (i); - let meshData = new OV.MeshData (i); let meshName = OV.GetMeshName (mesh.GetName ()); - let meshItem = meshData.CreateMenuItem (meshName, { + let meshItem = new OV.MeshItem (meshName, i, { onShowHide : (meshIndex) => { this.ToggleMeshVisibility (meshIndex); }, @@ -207,7 +205,7 @@ OV.Navigator = class this.SetSelection (new OV.Selection (OV.SelectionType.Mesh, meshIndex)); } }); - this.modelData.AddMeshData (meshData); + this.navigatorTree.AddMeshItem (meshItem); meshesItem.AddChild (meshItem); } @@ -217,20 +215,20 @@ OV.Navigator = class MeshCount () { - return this.modelData.MeshCount (); + return this.navigatorTree.MeshCount (); } IsMeshVisible (meshIndex) { - let meshData = this.modelData.GetMeshData (meshIndex); - return meshData.IsVisible (); + let meshItem = this.navigatorTree.GetMeshItem (meshIndex); + return meshItem.IsVisible (); } HasHiddenMesh () { - for (let i = 0; i < this.modelData.MeshCount (); i++) { - let meshData = this.modelData.GetMeshData (i); - if (!meshData.IsVisible ()) { + for (let i = 0; i < this.navigatorTree.MeshCount (); i++) { + let meshItem = this.navigatorTree.GetMeshItem (i); + if (!meshItem.IsVisible ()) { return true; } } @@ -239,25 +237,25 @@ OV.Navigator = class ShowAllMeshes () { - for (let i = 0; i < this.modelData.MeshCount (); i++) { - let meshData = this.modelData.GetMeshData (i); - meshData.SetVisible (true); + for (let i = 0; i < this.navigatorTree.MeshCount (); i++) { + let meshItem = this.navigatorTree.GetMeshItem (i); + meshItem.SetVisible (true); } this.callbacks.updateMeshesVisibility (); } ToggleMeshVisibility (meshIndex) { - let meshData = this.modelData.GetMeshData (meshIndex); - meshData.SetVisible (!meshData.IsVisible ()); + let meshItem = this.navigatorTree.GetMeshItem (meshIndex); + meshItem.SetVisible (!meshItem.IsVisible ()); this.callbacks.updateMeshesVisibility (); } IsMeshIsolated (meshIndex) { - for (let i = 0; i < this.modelData.MeshCount (); i++) { - let meshData = this.modelData.GetMeshData (i); - if (i !== meshIndex && meshData.IsVisible ()) { + for (let i = 0; i < this.navigatorTree.MeshCount (); i++) { + let meshItem = this.navigatorTree.GetMeshItem (i); + if (i !== meshIndex && meshItem.IsVisible ()) { return false; } } @@ -267,12 +265,12 @@ OV.Navigator = class IsolateMesh (meshIndex) { let isIsolated = this.IsMeshIsolated (meshIndex); - for (let i = 0; i < this.modelData.MeshCount (); i++) { - let meshData = this.modelData.GetMeshData (i); + for (let i = 0; i < this.navigatorTree.MeshCount (); i++) { + let meshItem = this.navigatorTree.GetMeshItem (i); if (i === meshIndex || isIsolated) { - meshData.SetVisible (true); + meshItem.SetVisible (true); } else { - meshData.SetVisible (false); + meshItem.SetVisible (false); } } this.callbacks.updateMeshesVisibility (); @@ -300,9 +298,9 @@ OV.Navigator = class function SetEntitySelection (obj, selection, select) { if (selection.type === OV.SelectionType.Material) { - obj.modelData.GetMaterialData (selection.index).SetSelected (select); + obj.navigatorTree.GetMaterialItem (selection.index).SetSelected (select); } else if (selection.type === OV.SelectionType.Mesh) { - obj.modelData.GetMeshData (selection.index).SetSelected (select); + obj.navigatorTree.GetMeshItem (selection.index).SetSelected (select); } } @@ -377,7 +375,7 @@ OV.Navigator = class this.titleDiv.empty (); this.treeView.Clear (); this.infoPanel.Clear (); - this.modelData.Clear (); + this.navigatorTree.Clear (); this.selection = null; } }; diff --git a/website/o3dv/js/navigatortree.js b/website/o3dv/js/navigatortree.js new file mode 100644 index 0000000..1182e81 --- /dev/null +++ b/website/o3dv/js/navigatortree.js @@ -0,0 +1,98 @@ +OV.MaterialItem = class extends OV.TreeViewButtonItem +{ + constructor (name, originalIndex, callbacks) + { + super (name); + this.originalIndex = originalIndex; + this.OnNameClick (() => { + callbacks.onSelected (this.originalIndex); + }); + } +}; + +OV.MeshItem = class extends OV.TreeViewButtonItem +{ + constructor (name, originalIndex, callbacks) + { + super (name); + + this.originalIndex = originalIndex; + this.visible = true; + + this.fitToWindowButton = new OV.TreeViewButton ('fit'); + this.fitToWindowButton.OnClick (() => { + callbacks.onFitToWindow (this.originalIndex); + }); + this.AddButton (this.fitToWindowButton); + + this.showHideButton = new OV.TreeViewButton ('visible'); + this.showHideButton.OnClick ((ev) => { + callbacks.onShowHide (this.originalIndex); + }); + this.AddButton (this.showHideButton); + + this.OnNameClick (() => { + callbacks.onSelected (this.originalIndex); + }); + } + + IsVisible () + { + return this.visible; + } + + SetVisible (visible) + { + this.visible = visible; + if (this.visible) { + this.showHideButton.SetImage ('visible'); + } else { + this.showHideButton.SetImage ('hidden'); + } + } +}; + +OV.NavigatorTree = class +{ + constructor () + { + this.meshItems = []; + this.materialItems = []; + } + + MaterialCount () + { + return this.materialItems.length; + } + + GetMaterialItem (index) + { + return this.materialItems[index]; + } + + AddMaterialItem (materialItem) + { + this.materialItems.push (materialItem); + } + + MeshCount () + { + return this.meshItems.length; + } + + GetMeshItem (index) + { + return this.meshItems[index]; + } + + AddMeshItem (meshItem) + { + this.meshItems.push (meshItem); + } + + Clear () + { + this.meshItems = []; + this.materialItems = []; + } +};