Fit meshes in window by material.
This commit is contained in:
parent
eb0c93d266
commit
cfcef0da61
@ -49,7 +49,7 @@ ImporterApp.prototype.Init = function ()
|
||||
var myThis = this;
|
||||
var top = document.getElementById ('top');
|
||||
this.importerButtons = new ImporterButtons (top);
|
||||
this.importerButtons.AddLogo ('Online 3D Viewer <span class="version">v 0.6.3</span>', function () { myThis.ShowAboutDialog (); });
|
||||
this.importerButtons.AddLogo ('Online 3D Viewer <span class="version">v 0.6.4</span>', function () { myThis.ShowAboutDialog (); });
|
||||
this.importerButtons.AddButton ('images/openfile.png', 'Open File', function () { myThis.OpenFile (); });
|
||||
this.importerButtons.AddButton ('images/fitinwindow.png', 'Fit In Window', function () { myThis.FitInWindow (); });
|
||||
this.importerButtons.AddToggleButton ('images/fixup.png', 'images/fixupgray.png', 'Enable/Disable Fixed Up Vector', function () { myThis.SetFixUp (); });
|
||||
@ -221,11 +221,15 @@ ImporterApp.prototype.GenerateMenu = function ()
|
||||
title : 'Show/Hide Information',
|
||||
onOpen : function (contentDiv, material) {
|
||||
contentDiv.empty ();
|
||||
var materialbuttons = $('<div>').addClass ('submenubuttons').appendTo (contentDiv);
|
||||
var highlightButton = $('<img>').addClass ('submenubutton').attr ('src', 'images/highlightmesh.png').attr ('title', 'Highlight Meshes With Material').appendTo (materialbuttons);
|
||||
var materialButtons = $('<div>').addClass ('submenubuttons').appendTo (contentDiv);
|
||||
var highlightButton = $('<img>').addClass ('submenubutton').attr ('src', 'images/highlightmesh.png').attr ('title', 'Highlight Meshes By Material').appendTo (materialButtons);
|
||||
highlightButton.click (function () {
|
||||
importerApp.HighlightMeshesByMaterial (materialIndex);
|
||||
});
|
||||
var fitInWindowButton = $('<img>').addClass ('submenubutton').attr ('src', 'images/fitinwindowsmall.png').attr ('title', 'Fit Meshes In Window By Material').appendTo (materialButtons);
|
||||
fitInWindowButton.click (function () {
|
||||
importerApp.FitMeshesByMaterialInWindow (materialIndex);
|
||||
});
|
||||
var table = new InfoTable (contentDiv);
|
||||
table.AddColorRow ('Ambient', material.ambient);
|
||||
table.AddColorRow ('Diffuse', material.diffuse);
|
||||
@ -463,6 +467,15 @@ ImporterApp.prototype.FitMeshInWindow = function (meshIndex)
|
||||
this.viewer.FitMeshInWindow (meshIndex);
|
||||
};
|
||||
|
||||
ImporterApp.prototype.FitMeshesByMaterialInWindow = function (materialIndex)
|
||||
{
|
||||
var meshIndices = this.viewer.GetMeshesByMaterial (materialIndex);
|
||||
if (meshIndices.length === 0) {
|
||||
return;
|
||||
}
|
||||
this.viewer.FitMeshesInWindow (meshIndices);
|
||||
};
|
||||
|
||||
ImporterApp.prototype.SetFixUp = function ()
|
||||
{
|
||||
this.viewer.SetFixUp ();
|
||||
|
||||
@ -146,6 +146,19 @@ ImporterViewer.prototype.FitMeshInWindow = function (index)
|
||||
this.viewer.FitMeshesInWindow (meshes);
|
||||
};
|
||||
|
||||
ImporterViewer.prototype.FitMeshesInWindow = function (meshIndices)
|
||||
{
|
||||
var meshes = [];
|
||||
this.viewer.scene.traverse (function (current) {
|
||||
if (current instanceof THREE.Mesh) {
|
||||
if (meshIndices.indexOf (current.originalJsonMeshIndex) != -1) {
|
||||
meshes.push (current);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.viewer.FitMeshesInWindow (meshes);
|
||||
};
|
||||
|
||||
ImporterViewer.prototype.AdjustClippingPlanes = function ()
|
||||
{
|
||||
if (this.viewer.MeshCount () > 0) {
|
||||
|
||||
6
website/testfiles/multimesh3.mtl
Normal file
6
website/testfiles/multimesh3.mtl
Normal file
@ -0,0 +1,6 @@
|
||||
newmtl Material0
|
||||
Kd 0.784314 0 0
|
||||
newmtl Material1
|
||||
Kd 0 0.784314 0
|
||||
newmtl Material2
|
||||
Kd 0 0 0.784314
|
||||
105
website/testfiles/multimesh3.obj
Normal file
105
website/testfiles/multimesh3.obj
Normal file
@ -0,0 +1,105 @@
|
||||
mtllib multimesh3.mtl
|
||||
g Mesh10
|
||||
v -0.5 -0.5 -0.5
|
||||
v 0.5 -0.5 -0.5
|
||||
v 0.5 -0.5 0.5
|
||||
v -0.5 -0.5 0.5
|
||||
v -0.5 0.5 -0.5
|
||||
v 0.5 0.5 -0.5
|
||||
v 0.5 0.5 0.5
|
||||
v -0.5 0.5 0.5
|
||||
vn 0 -1 0
|
||||
vn 0 -1 0
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 1 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 0 -1
|
||||
vn 0 0 -1
|
||||
vn 0 0 1
|
||||
vn 0 0 1
|
||||
usemtl Material0
|
||||
f 1//1 2//1 3//1
|
||||
f 1//2 3//2 4//2
|
||||
f 2//3 6//3 7//3
|
||||
f 2//4 7//4 3//4
|
||||
f 6//5 5//5 8//5
|
||||
f 6//6 8//6 7//6
|
||||
f 5//7 1//7 4//7
|
||||
f 5//8 4//8 8//8
|
||||
f 1//9 5//9 6//9
|
||||
f 1//10 6//10 2//10
|
||||
f 4//11 3//11 7//11
|
||||
f 4//12 7//12 8//12
|
||||
g Mesh11
|
||||
v 1.5 -0.5 -0.5
|
||||
v 2.5 -0.5 -0.5
|
||||
v 2.5 -0.5 0.5
|
||||
v 1.5 -0.5 0.5
|
||||
v 1.5 0.5 -0.5
|
||||
v 2.5 0.5 -0.5
|
||||
v 2.5 0.5 0.5
|
||||
v 1.5 0.5 0.5
|
||||
vn 0 -1 0
|
||||
vn 0 -1 0
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 1 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 0 -1
|
||||
vn 0 0 -1
|
||||
vn 0 0 1
|
||||
vn 0 0 1
|
||||
usemtl Material1
|
||||
f 9//13 10//13 11//13
|
||||
f 9//14 11//14 12//14
|
||||
f 10//15 14//15 15//15
|
||||
f 10//16 15//16 11//16
|
||||
f 14//17 13//17 16//17
|
||||
f 14//18 16//18 15//18
|
||||
f 13//19 9//19 12//19
|
||||
f 13//20 12//20 16//20
|
||||
f 9//21 13//21 14//21
|
||||
f 9//22 14//22 10//22
|
||||
f 12//23 11//23 15//23
|
||||
f 12//24 15//24 16//24
|
||||
g Mesh12
|
||||
v 3.5 -0.5 -0.5
|
||||
v 4.5 -0.5 -0.5
|
||||
v 4.5 -0.5 0.5
|
||||
v 3.5 -0.5 0.5
|
||||
v 3.5 0.5 -0.5
|
||||
v 4.5 0.5 -0.5
|
||||
v 4.5 0.5 0.5
|
||||
v 3.5 0.5 0.5
|
||||
vn 0 -1 0
|
||||
vn 0 -1 0
|
||||
vn 1 0 0
|
||||
vn 1 0 0
|
||||
vn 0 1 0
|
||||
vn 0 1 0
|
||||
vn -1 0 0
|
||||
vn -1 0 0
|
||||
vn 0 0 -1
|
||||
vn 0 0 -1
|
||||
vn 0 0 1
|
||||
vn 0 0 1
|
||||
usemtl Material0
|
||||
f 17//25 18//25 19//25
|
||||
usemtl Material1
|
||||
f 17//26 19//26 20//26
|
||||
usemtl Material2
|
||||
f 18//27 22//27 23//27
|
||||
f 18//28 23//28 19//28
|
||||
f 22//29 21//29 24//29
|
||||
f 22//30 24//30 23//30
|
||||
f 21//31 17//31 20//31
|
||||
f 21//32 20//32 24//32
|
||||
f 17//33 21//33 22//33
|
||||
f 17//34 22//34 18//34
|
||||
f 20//35 19//35 23//35
|
||||
f 20//36 23//36 24//36
|
||||
Loading…
Reference in New Issue
Block a user