From 4397d7ec027950700a9ca5a58c2ae01d059116a1 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Tue, 4 Nov 2014 16:48:13 +0100 Subject: [PATCH] Write whole model information to menu. --- jsmodeler/jsmodeler.js | 70 +++++++++++++++++----------------- website/include/importerapp.js | 26 +++++++++++++ 2 files changed, 61 insertions(+), 35 deletions(-) diff --git a/jsmodeler/jsmodeler.js b/jsmodeler/jsmodeler.js index a086abd..f025262 100644 --- a/jsmodeler/jsmodeler.js +++ b/jsmodeler/jsmodeler.js @@ -1,11 +1,11 @@ -/* JSModeler 0.33.229 - http://www.github.com/kovacsv/JSModeler */ 'use strict';var JSM={mainVersion:0,subVersion:33,Eps:1E-8,Inf:9999999999,RadDeg:57.29577951308232,DegRad:0.017453292519943,IsZero:function(a){return Math.abs(a)JSM.Eps},IsNegative:function(a){return a<-JSM.Eps},IsLower:function(a,b){return b-a>JSM.Eps},IsGreater:function(a,b){return a-b>JSM.Eps},IsEqual:function(a,b){return Math.abs(b-a)JSM.Eps},IsNegative:function(a){return a<-JSM.Eps},IsLower:function(a,b){return b-a>JSM.Eps},IsGreater:function(a,b){return a-b>JSM.Eps},IsEqual:function(a,b){return Math.abs(b-a)=a&&(this.current=1E3*(this.frames/c),this.start=b,this.frames=0);return parseInt(this.current,10)};JSM.BubbleSort=function(a,b){if(!(2>a.length||void 0===b||null===b)){var c,d;for(c=0;cu)){var D=void 0,y=void 0,A=void 0,J=void 0,O=void 0,M=void 0,H=void 0,F=void 0,I=void 0,K=void 0;if(3==u||l)for(K=0;Ku)){var E=void 0,y=void 0,A=void 0,J=void 0,O=void 0,M=void 0,H=void 0,F=void 0,I=void 0,K=void 0;if(3==u||l)for(K=0;Kf)){var g,n,p,q=null;if(3===f)q=JSM.CalculateBodyPolygonNormal(a,b),g=a.GetVertex(d.GetVertexIndex(0)).position,n=a.GetVertex(d.GetVertexIndex(1)).position, p=a.GetVertex(d.GetVertexIndex(2)).position,e(q,g,n,p);else if(g=!0,void 0!==c&&c&&(g=!1),q=JSM.CalculateBodyPolygonNormal(a,b),g){g=new JSM.Polygon;for(b=0;bd;){c=a.ReadCharacter();if(0===c)break;b+=String.fromCharCode(c);d+=1}return b}function V(a){var b=[],c;for(c=0;3>c;c++)b[c]=a.ReadFloat32();return b}function Q(a,b,c){for(;a.GetPosition()<=b-6;){var d=a,e=c,f=d.ReadUnsignedInteger16(),d=d.ReadUnsignedInteger32();e(f,d)}}if(void 0===b|| -null===b)b={};c=15677;d=45055;e=40960;f=40976;g=40992;h=41008;k=41024;l=41040;m=16;n=17;p=18;q=19;r=41472;t=41728;w=41816;u=41818;s=41812;x=41814;B=41820;C=48;v=49;G=16384;z=16640;L=17920;N=18176;D=16656;y=16704;A=16672;J=16736;O=16688;M=16720;H=45056;F=45058;I=45072;K=45075;P=45088;S=45089;T=45090;W=45104;(function(a){function U(a,b,c){var d=[0,0,0];b=a.GetPosition()+c-6;var e=!1;Q(a,b,function(b,c){b==n?e||(d[0]=a.ReadUnsignedCharacter()/255,d[1]=a.ReadUnsignedCharacter()/255,d[2]=a.ReadUnsignedCharacter()/ -255):b==p?(d[0]=a.ReadUnsignedCharacter()/255,d[1]=a.ReadUnsignedCharacter()/255,d[2]=a.ReadUnsignedCharacter()/255,e=!0):b==m?e||(d[0]=a.ReadFloat32(),d[1]=a.ReadFloat32(),d[2]=a.ReadFloat32()):b==q?(d[0]=a.ReadFloat32(),d[1]=a.ReadFloat32(),d[2]=a.ReadFloat32(),e=!0):a.Skip(c-6)});return d}function X(a,b,c){var d=0;b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==C?d=a.ReadUnsignedInteger16()/100:b==v?d=a.ReadFloat32():a.Skip(c-6)});return d}function Y(a,b,c,d){d.texture=null;d.offset=[0,0];d.scale= -[1,1];d.rotation=0;b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==t?d.texture=R(a):b==w?d.offset[0]=a.ReadFloat32():b==u?d.offset[1]=a.ReadFloat32():b==s?d.scale[0]=a.ReadFloat32():b==x?d.scale[1]=a.ReadFloat32():b==B?d.rotation=a.ReadFloat32():a.Skip(c-6)})}function Z(a,c,d){E("Read material chunk ("+c.toString(16)+", "+d+")",2);var m={},n=a.GetPosition()+d-6;Q(a,n,function(b,n){b==e?(E("Read material name chunk ("+c.toString(16)+", "+d+")",3),m.name=R(a)):b==f?(E("Read material ambient chunk ("+c.toString(16)+ -", "+d+")",3),m.ambient=U(a,b,n)):b==g?(E("Read material diffuse chunk ("+c.toString(16)+", "+d+")",3),m.diffuse=U(a,b,n)):b==h?(E("Read material specular chunk ("+c.toString(16)+", "+d+")",3),m.specular=U(a,b,n)):b==k?(E("Read material shininess chunk ("+c.toString(16)+", "+d+")",3),m.shininess=X(a,b,n)):b==l?(E("Read material transparency chunk ("+c.toString(16)+", "+d+")",3),m.transparency=X(a,b,n)):b==r?(E("Read material texture map chunk ("+c.toString(16)+", "+d+")",3),Y(a,b,n,m)):(E("Skip chunk ("+ -b.toString(16)+", "+n+")",3),a.Skip(n-6))});if(void 0!==b.onMaterial&&null!==b.onMaterial)b.onMaterial(m)}function $(a,c,d){E("Read faces chunk ("+c.toString(16)+", "+d+")",4);c=a.GetPosition()+d-6;var e=a.ReadUnsignedInteger16(),f,g,h,k;for(d=0;df;f++){for(g=0;3>g;g++)e.push(a.ReadFloat32());3>f?e.push(0):e.push(1)}if(void 0!==b.onTransformation&&null!==b.onTransformation)b.onTransformation(e)}else E("Skip chunk ("+c.toString(16)+", "+d+")",4),a.Skip(d-6)})}function ba(a,b,c){E("Read object chunk ("+b.toString(16)+", "+c+")",2);b=a.GetPosition()+ -c-6;var d=R(a);Q(a,b,function(b,c){b==z?aa(a,d,b,c):(b==L?E("Skip light chunk ("+d+", "+b.toString(16)+", "+c+")",3):b==N?E("Skip camera chunk ("+d+", "+b.toString(16)+", "+c+")",3):E("Skip chunk ("+b.toString(16)+", "+c+")",3),a.Skip(c-6))})}function ca(a,b,c){E("Read editor chunk ("+b.toString(16)+", "+c+")",1);b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==d?Z(a,b,c):b==G?ba(a,b,c):(E("Skip chunk ("+b.toString(16)+", "+c+")",2),a.Skip(c-6))})}function da(a,c,d){function e(a,b){var c=[];a.Skip(10); -var d,f,g,h=a.ReadInteger32();for(d=0;dg;g++)a[0+g]*=c,a[4+g]*=d,a[8+g]*=f;return a}function f(a,b){var c=b[0],d=b[1],e=b[2],g;for(g=0;3>g;g++)a[12+g]+=a[0+g]*c+a[4+g]*d+a[8+g]*e;return a}function g(a,b){var c,d;for(c=0;cd;){c=a.ReadCharacter();if(0===c)break;b+=String.fromCharCode(c);d+=1}return b}function X(a){var b=[],c;for(c=0;3>c;c++)b[c]=a.ReadFloat32();return b}function Q(a,b,c){for(;a.GetPosition()<=b-6;){var d=a,e=c,f=d.ReadUnsignedInteger16(),d=d.ReadUnsignedInteger32();e(f,d)}}if(void 0=== +b||null===b)b={};c=15677;d=45055;e=40960;f=40976;g=40992;h=41008;k=41024;l=41025;m=41040;n=16;p=17;q=18;r=19;t=41472;w=41728;u=41816;s=41818;x=41812;B=41814;C=41820;v=48;G=49;z=16384;L=16640;N=17920;E=18176;y=16656;A=16704;J=16672;O=16736;M=16688;H=16720;F=45056;I=45058;K=45072;P=45075;T=45088;S=45089;U=45090;Y=45104;(function(a){function V(a,b,c){var d=[0,0,0];b=a.GetPosition()+c-6;var e=!1;Q(a,b,function(b,c){b==p?e||(d[0]=a.ReadUnsignedCharacter()/255,d[1]=a.ReadUnsignedCharacter()/255,d[2]=a.ReadUnsignedCharacter()/ +255):b==q?(d[0]=a.ReadUnsignedCharacter()/255,d[1]=a.ReadUnsignedCharacter()/255,d[2]=a.ReadUnsignedCharacter()/255,e=!0):b==n?e||(d[0]=a.ReadFloat32(),d[1]=a.ReadFloat32(),d[2]=a.ReadFloat32()):b==r?(d[0]=a.ReadFloat32(),d[1]=a.ReadFloat32(),d[2]=a.ReadFloat32(),e=!0):a.Skip(c-6)});return d}function W(a,b,c){var d=0;b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==v?d=a.ReadUnsignedInteger16()/100:b==G?d=a.ReadFloat32():a.Skip(c-6)});return d}function Z(a,b,c,d){d.texture=null;d.offset=[0,0];d.scale= +[1,1];d.rotation=0;b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==w?d.texture=R(a):b==u?d.offset[0]=a.ReadFloat32():b==s?d.offset[1]=a.ReadFloat32():b==x?d.scale[0]=a.ReadFloat32():b==B?d.scale[1]=a.ReadFloat32():b==C?d.rotation=a.ReadFloat32():a.Skip(c-6)})}function $(a,c,d){D("Read material chunk ("+c.toString(16)+", "+d+")",2);var n={},p=a.GetPosition()+d-6;Q(a,p,function(b,p){b==e?(D("Read material name chunk ("+c.toString(16)+", "+d+")",3),n.name=R(a)):b==f?(D("Read material ambient chunk ("+c.toString(16)+ +", "+d+")",3),n.ambient=V(a,b,p)):b==g?(D("Read material diffuse chunk ("+c.toString(16)+", "+d+")",3),n.diffuse=V(a,b,p)):b==h?(D("Read material specular chunk ("+c.toString(16)+", "+d+")",3),n.specular=V(a,b,p)):b==k?(D("Read material shininess chunk ("+c.toString(16)+", "+d+")",3),n.shininess=W(a,b,p)):b==l?(D("Read material shininess strength chunk ("+c.toString(16)+", "+d+")",3),n.shininessStrength=W(a,b,p)):b==m?(D("Read material transparency chunk ("+c.toString(16)+", "+d+")",3),n.transparency= +W(a,b,p)):b==t?(D("Read material texture map chunk ("+c.toString(16)+", "+d+")",3),Z(a,b,p,n)):(D("Skip chunk ("+b.toString(16)+", "+p+")",3),a.Skip(p-6))});if(void 0!==b.onMaterial&&null!==b.onMaterial)b.onMaterial(n)}function aa(a,c,d){D("Read faces chunk ("+c.toString(16)+", "+d+")",4);c=a.GetPosition()+d-6;var e=a.ReadUnsignedInteger16(),f,g,h,k;for(d=0;df;f++){for(g=0;3>g;g++)e.push(a.ReadFloat32());3>f?e.push(0):e.push(1)}if(void 0!==b.onTransformation&&null!==b.onTransformation)b.onTransformation(e)}else D("Skip chunk ("+c.toString(16)+", "+d+")",4), +a.Skip(d-6)})}function ca(a,b,c){D("Read object chunk ("+b.toString(16)+", "+c+")",2);b=a.GetPosition()+c-6;var d=R(a);Q(a,b,function(b,c){b==L?ba(a,d,b,c):(b==N?D("Skip light chunk ("+d+", "+b.toString(16)+", "+c+")",3):b==E?D("Skip camera chunk ("+d+", "+b.toString(16)+", "+c+")",3):D("Skip chunk ("+b.toString(16)+", "+c+")",3),a.Skip(c-6))})}function da(a,b,c){D("Read editor chunk ("+b.toString(16)+", "+c+")",1);b=a.GetPosition()+c-6;Q(a,b,function(b,c){b==d?$(a,b,c):b==z?ca(a,b,c):(D("Skip chunk ("+ +b.toString(16)+", "+c+")",2),a.Skip(c-6))})}function ea(a,c,d){function e(a,b){var c=[];a.Skip(10);var d,f,g,h=a.ReadInteger32();for(d=0;dg;g++)a[0+g]*=c,a[4+g]*=d,a[8+g]*=f;return a}function f(a,b){var c=b[0],d=b[1],e=b[2],g;for(g=0;3>g;g++)a[12+g]+=a[0+g]*c+a[4+g]*d+a[8+g]*e;return a}function g(a,b){var c,d;for(c=0;cn.length)){var p="";for(a=1;an.length||d(parseFloat(n[1]),parseFloat(n[2]),parseFloat(n[3]));else if("vn"==n[0])4>n.length||e(parseFloat(n[1]),parseFloat(n[2]),parseFloat(n[3]));else if("vt"==n[0])3>n.length||f(parseFloat(n[1]), parseFloat(n[2]));else if("f"==n[0]){if(!(4>n.length)){var p=[],q=[],r=[],t;for(a=1;an.length)&&void 0!==b.onUseMaterial&&null!==b.onUseMaterial)b.onUseMaterial(n[1])}else if("newmtl"==n[0]){if(!(2>n.length)&&void 0!==b.onNewMaterial&&null!==b.onNewMaterial)b.onNewMaterial(n[1])}else if("Ka"== @@ -265,9 +265,9 @@ if(void 0!==b.onFace&&null!==b.onFace)b.onFace(e[0],e[1],e[2],d);return l}return JSM.ConvertStlToJsonData=function(a,b){var c=new JSM.TriangleModel,d=c.AddBody(new JSM.TriangleBody("Default")),e=c.GetBody(d);null!==a?JSM.ReadBinaryStlFile(a,{onFace:function(a,b,c,d){a=e.AddVertex(a[0],a[1],a[2]);b=e.AddVertex(b[0],b[1],b[2]);c=e.AddVertex(c[0],c[1],c[2]);d=JSM.VectorNormalize(new JSM.Vector(d[0],d[1],d[2]));d=e.AddNormal(d.x,d.y,d.z);e.AddTriangle(a,b,c,d,d,d)}}):null!==b&&JSM.ReadAsciiStlFile(b,{onFace:function(a,b,c,d){a=e.AddVertex(a[0],a[1],a[2]);b=e.AddVertex(b[0],b[1],b[2]); c=e.AddVertex(c[0],c[1],c[2]);d=JSM.VectorNormalize(new JSM.Vector(d[0],d[1],d[2]));d=e.AddNormal(d.x,d.y,d.z);e.AddTriangle(a,b,c,d,d,d)}});c.Finalize();return JSM.ConvertTriangleModelToJsonData(c)};JSM.ImportFileList=function(){this.isFile=this.descriptors=this.originalList=null}; JSM.ImportFileList.prototype.InitFromFiles=function(a){this.originalList=a;this.descriptors=[];var b,c;for(b=0;b