Rename modeldata to navigatortree.
This commit is contained in:
parent
0afce83a49
commit
13cbca26ee
@ -32,6 +32,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -41,6 +41,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
@ -103,7 +104,7 @@
|
||||
<script type="text/javascript" src="o3dv/js/exportdialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/sharingdialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/cookiedialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/modeldata.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/navigatortree.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/navigator.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/sidebarpanel.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/detailssidebarpanel.js"></script>
|
||||
|
||||
@ -41,6 +41,7 @@
|
||||
<script type="text/javascript" src="../source/model/property.js"></script>
|
||||
<script type="text/javascript" src="../source/model/object.js"></script>
|
||||
<script type="text/javascript" src="../source/model/mesh.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshinstance.js"></script>
|
||||
<script type="text/javascript" src="../source/model/meshbuffer.js"></script>
|
||||
<script type="text/javascript" src="../source/model/node.js"></script>
|
||||
<script type="text/javascript" src="../source/model/model.js"></script>
|
||||
@ -103,7 +104,7 @@
|
||||
<script type="text/javascript" src="o3dv/js/exportdialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/sharingdialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/cookiedialog.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/modeldata.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/navigatortree.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/navigator.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/sidebarpanel.js"></script>
|
||||
<script type="text/javascript" src="o3dv/js/detailssidebarpanel.js"></script>
|
||||
|
||||
@ -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 = [];
|
||||
}
|
||||
};
|
||||
@ -121,7 +121,7 @@ OV.Navigator = class
|
||||
this.infoDiv = $('<div>').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;
|
||||
}
|
||||
};
|
||||
|
||||
98
website/o3dv/js/navigatortree.js
Normal file
98
website/o3dv/js/navigatortree.js
Normal file
@ -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 = [];
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user