(function(Va,Kb,Lb,C,Mb,H,U,K,M,O,u,Nb,I,Ob,T,G,Z,A,wa,V,X,Pb,ta,ja,ma,Y,na,oa,ka,Qb,Rb,Sb,Wa,Tb,Ub,Vb,Wb,Xa,Ya,Xb,Yb,Zb,$b,ac,bc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,e,m){H("JS");K(["JS.CmdExt"],"JS.IsoExt","java.lang.Boolean $.Float $.Short java.util.Hashtable JU.AU $.BS $.Lst $.M4 $.P3 $.PT $.Quat $.SB $.V3 J.api.Interface J.atomdata.RadiusData J.c.VDW JS.SV $.ScriptEval $.T JU.BSUtil $.BoxInfo $.C $.Escape $.Logger $.Parser $.TempArray".split(" "),function(){c$=wa(JS,"IsoExt",JS.CmdExt);I(c$,function(){X(this,
JS.IsoExt,[])});m(c$,"init",function(a){this.e=a;this.vwr=this.e.vwr;return this},"~O");m(c$,"dispatch",function(a,b,c){this.chk=this.e.chk;this.slen=this.e.slen;this.st=c;switch(a){case 23:this.cgo();break;case 25:this.contact();break;case 17:this.dipole();break;case 22:this.draw();break;case 24:case 30:case 29:this.isosurface(a);break;case 26:this.lcaoCartoon();break;case 27:case 28:this.mo(b,a)}return null},"~N,~B,~A");e(c$,"dipole",function(){var a=this.e,b=null,c=null,d=!1,f=!1,h=!1;a.sm.loadShape(17);
if(!(1073742001==this.tokAt(1)&&this.listIsosurface(17)))if(this.setShapeProperty(17,"init",null),1==this.slen)this.setShapeProperty(17,"thisID",null);else{for(var g=1;g<this.slen;++g){c=b=null;switch(this.getToken(g).tok){case 1048579:b="all";break;case 1048589:b="on";break;case 1048588:b="off";break;case 12291:b="delete";break;case 2:case 3:b="value";c=Float.$valueOf(this.floatParameter(g));break;case 10:10==this.tokAt(g+1)?this.setShapeProperty(17,"startSet",this.atomExpressionAt(g++)):b="atomBitset";
case 1048577:null==b&&(b=d||f?"endSet":"startSet");c=this.atomExpressionAt(g);g=a.iToken;0==this.tokAt(g+1)&&"startSet"===b&&(b="atomBitset");d=!0;break;case 1048586:case 8:c=this.getPoint3f(g,!0);g=a.iToken;b=d||f?"endCoord":"startCoord";f=!0;break;case 1678770178:b="bonds";break;case 4102:b="calculate";if(10==this.tokAt(g+1)||1048577==this.tokAt(g+1))c=this.atomExpressionAt(++g),g=a.iToken;break;case 1074790550:this.setShapeId(17,++g,h);g=a.iToken;break;case 135267329:b="cross";c=Boolean.TRUE;break;
case 1073742040:b="cross";c=Boolean.FALSE;break;case 1073742066:this.isFloatParameter(g+1)?(c=this.floatParameter(++g),2==a.theTok?(b="offsetPercent",c=Integer.$valueOf(u(c))):(b="offset",c=Float.$valueOf(c))):(b="offsetPt",c=this.centerParameter(++g),g=a.iToken);break;case 1073742068:b="offsetSide";c=Float.$valueOf(this.floatParameter(++g));break;case 1073742188:b="value";c=Float.$valueOf(this.floatParameter(++g));break;case 1073742196:b="width";c=Float.$valueOf(this.floatParameter(++g));break;default:if(269484209==
a.theTok||JS.T.tokAttr(a.theTok,1073741824)){this.setShapeId(17,g,h);g=a.iToken;break}this.invArg()}h=12291!=a.theTok&&4102!=a.theTok;null!=b&&this.setShapeProperty(17,b,c)}(f||d)&&this.setShapeProperty(17,"set",null)}});e(c$,"draw",function(){var a=this.e;a.sm.loadShape(22);switch(this.tokAt(1)){case 1073742001:if(this.listIsosurface(22))return!1;break;case 1073742102:var b=2,c=1073742138==this.tokAt(b)?"":a.optParameterAsString(b);c.equals("chemicalShift")&&(c="cs");var d=1,f=0;0<c.length&&this.isFloatParameter(++b)&&
(f=this.intParameter(b++));1073742138==this.tokAt(b)&&(d=this.floatParameter(++b));this.chk||a.runScript(this.vwr.ms.getPointGroupAsString(this.vwr.bsA(),!0,c,f,d));return!1;case 137363467:case 135270418:case 1052714:return this.plot(this.st),!1}for(var h=!1,g=!1,j=!1,e=!1,k=!1,p=0,v=3.4028235E38,q=[-2147483648],s=0,w="",m=0,d=null,c=this.initIsosurface(22),pa=(b=null!=c)&&null==this.getShapeProperty(22,"ID"),la=null,A=0,f=a.iToken;f<this.slen;++f){var z=null,B=null;switch(this.getToken(f).tok){case 1614417948:case 1679429641:if(this.chk)break;
h=this.vwr.getPlaneIntersection(a.theTok,null,s/100,0);s=0;z="polygon";B=h;h=!0;break;case 4106:la=G(4,0);A=4;h=a.floatParameterSet(++f,4,4);f=a.iToken;for(b=0;4>b;b++)la[b]=u(h[b]);h=!0;break;case 1678770178:case 1141899265:if(null==la||A>(1095761924==a.theTok?2:3))A=0,la=[-1,-1,-1,-1];la[A++]=this.atomExpressionAt(++f).nextSetBit(0);f=a.iToken;la[A++]=1678770178==a.theTok?this.atomExpressionAt(++f).nextSetBit(0):-1;f=a.iToken;h=!0;break;case 554176565:switch(this.getToken(++f).tok){case 1048582:z=
"slab";B=a.objectNameParameter(++f);f=a.iToken;h=!0;break;default:this.invArg()}break;case 135267842:switch(this.getToken(++f).tok){case 1614417948:case 1679429641:p=a.theTok;e=!0;continue;case 1048582:z="intersect";B=a.objectNameParameter(++f);f=a.iToken;h=e=!0;break;default:this.invArg()}break;case 1073742106:var z="polygon",h=!0,B=new JU.Lst,D=0,C=0,F=null,P=null;if(a.isArrayParameter(++f))F=a.getPointArray(f,-1,!1),D=F.length;else{D=Math.max(0,this.intParameter(f));F=Array(D);for(b=0;b<D;b++)F[b]=
this.centerParameter(++a.iToken)}switch(this.getToken(++a.iToken).tok){case 11:case 12:f=JS.SV.newT(a.theToken);f.toArray();P=f.getList();C=P.size();break;case 7:P=a.theToken.getList();C=P.size();break;default:C=Math.max(0,this.intParameter(a.iToken))}f=JU.AU.newInt2(C);for(b=0;b<C;b++){var L=null==P?a.floatParameterSet(++a.iToken,3,4):JS.SV.flistValue(P.get(b),0);(3>L.length||4<L.length)&&this.invArg();f[b]=[u(L[0]),u(L[1]),u(L[2]),3==L.length?7:u(L[3])]}0<D?(B.addLast(F),B.addLast(f)):B=null;f=
a.iToken;break;case 1297090050:g=null;j=0;e=null;switch(this.tokAt(++f)){case 4:g=this.stringParameter(f);break;case 12:g=JS.SV.sValue(this.getToken(f));break;default:a.isCenterParameter(f)||(j=this.intParameter(f++));a.isCenterParameter(f)&&(d=this.centerParameter(f));a.isCenterParameter(a.iToken+1)&&(e=this.centerParameter(++a.iToken));if(this.chk)return!1;f=a.iToken}k=null;null==d&&f+1<this.slen&&(d=this.centerParameter(++f),k=10==this.tokAt(f)||1048577==this.tokAt(f)?this.atomExpressionAt(f):
null);a.checkLast(a.iToken);this.chk||(d=this.vwr.ms.getSymTemp(!1).getSymmetryInfoAtom(this.vwr.ms,k,g,j,d,e,c,135176),this.showString(d.substring(0,d.indexOf("\n")+1)),a.runScript(0<d.length?d:'draw ID "sym_'+c+'*" delete'));return!1;case 4115:k=!0;continue;case 1048586:case 9:case 8:if(9==a.theTok||!a.isPoint3f(f)){B=this.getPoint4f(f);if(k)return a.checkLast(a.iToken),this.chk||a.runScript(JU.Escape.drawQuat(JU.Quat.newP4(B),null==c?"frame":c," "+w,null==d?new JU.P3:d,s/100)),!1;z="planedef"}else B=
d=this.getPoint3f(f,!0),z="coord";f=a.iToken;h=!0;break;case 135267841:case 135266319:if(!h&&!e&&0==p&&135267841!=a.theTok){z="plane";break}b=135266319==a.theTok?a.planeParameter(f):a.hklParameter(++f);f=a.iToken;if(0!=p){if(this.chk)break;h=this.vwr.getPlaneIntersection(p,b,s/100,0);s=0;z="polygon";B=h}else B=b,z="planedef";h=!0;break;case 1073742E3:z="lineData";B=a.floatParameterSet(++f,0,2147483647);f=a.iToken;h=!0;break;case 10:case 1048577:z="atomSet";B=this.atomExpressionAt(f);k&&(d=this.centerParameter(f));
f=a.iToken;h=!0;break;case 7:z="modelBasedPoints";B=JS.SV.strListValue(a.theToken);h=!0;break;case 1073742195:case 269484080:break;case 269484096:B=a.xypParameter(f);if(null!=B){f=a.iToken;z="coord";h=!0;break}j&&this.invArg();j=!0;break;case 269484097:j||this.invArg();j=!1;break;case 1141899269:z="reverse";break;case 4:B=this.stringParameter(f);z="title";break;case 135198:z="vector";break;case 1141899267:B=Float.$valueOf(this.floatParameter(++f));z="length";break;case 3:B=Float.$valueOf(this.floatParameter(f));
z="length";break;case 1095761935:z="modelIndex";B=Integer.$valueOf(this.intParameter(++f));break;case 2:j?(z="modelIndex",B=Integer.$valueOf(this.intParameter(f))):s=this.intParameter(f);break;case 1073742138:++f>=this.slen&&this.error(34);switch(this.getToken(f).tok){case 2:s=this.intParameter(f);continue;case 3:s=Math.round(100*this.floatParameter(f));continue}this.error(34);break;case 1074790550:c=this.setShapeId(22,++f,b);pa=null==this.getShapeProperty(22,"ID");f=a.iToken;break;case 1073742027:z=
"fixed";B=Boolean.FALSE;break;case 1060869:z="fixed";B=Boolean.TRUE;break;case 1073742066:b=this.getPoint3f(++f,!0);f=a.iToken;z="offset";B=b;break;case 1073741906:z="crossed";break;case 1073742196:B=Float.$valueOf(this.floatParameter(++f));z="width";w=z+" "+B;break;case 1073741998:z="line";B=Boolean.TRUE;break;case 1073741908:z="curve";break;case 1074790416:z="arc";break;case 1073741846:z="arrow";break;case 1073741880:z="circle";break;case 1073741912:z="cylinder";break;case 1073742194:z="vertices";
break;case 1073742048:z="nohead";break;case 1073741861:z="isbarb";break;case 1073742130:z="rotate45";break;case 1073742092:z="perp";break;case 1666189314:case 1073741917:w=1666189314==a.theTok;L=this.floatParameter(++f);w&&(L*=2);B=Float.$valueOf(L);z=w||3==this.tokAt(f)?"width":"diameter";w=z+(3==this.tokAt(f)?" "+L:" "+u(L));break;case 1048582:if(269484096==this.tokAt(f+2)||k){h=d=this.centerParameter(f);f=a.iToken;z="coord";B=h;h=!0;break}B=a.objectNameParameter(++f);z="identifier";h=!0;break;
case 1766856708:case 603979967:case 1073742074:b=!0;v=this.getColorTrans(a,f,!1,q);f=a.iToken;continue;default:if(!a.setMeshDisplayProperty(22,0,a.theTok)){if(269484209==a.theTok||JS.T.tokAttr(a.theTok,1073741824)){c=this.setShapeId(22,f,b);f=a.iToken;break}this.invArg()}0==m&&(m=f);f=a.iToken;continue}b=12291!=a.theTok;h&&(!g&&!k)&&(this.setShapeProperty(22,"points",Integer.$valueOf(s)),g=!0,s=0);h&&pa&&this.invArg();null!=z&&this.setShapeProperty(22,z,B)}this.finalizeObject(22,q[0],v,s,h,la,m,null);
return!0});e(c$,"mo",function(a,b){var c=this.e,d=2147483647,f=!1,h=null,g=this.vwr.getVisibleFramesBitSet(),j=new JU.Lst,e=1;if(1095766030==this.tokAt(1)||4115==this.tokAt(1))e=c.modelNumberParameter(2),0>e&&this.invArg(),g.clearAll(),g.set(e),e=3;c.sm.loadShape(b);for(var k=g.nextSetBit(0);0<=k;k=g.nextSetBit(k+1)){var p=e;if(1073742001==this.tokAt(p)&&this.listIsosurface(b))break;this.setShapeProperty(b,"init",Integer.$valueOf(k));var v=null,q=this.getShapeProperty(b,"moNumber").intValue(),s=this.getShapeProperty(b,
"moLinearCombination");if(a)break;0==q&&(q=2147483647);var w=null,m=null;switch(this.getToken(p).tok){case 1141899272:if(1073877010==b){this.mo(a,28);return}h=this.paramAsStr(++p).toUpperCase();break;case 1074790451:case 554176565:w=c.theToken.value;m=this.getCapSlabObject(p,!1);break;case 1073741914:w="squareLinear";m=Boolean.TRUE;s=[1];d=q=0;break;case 2:q=this.intParameter(p);s=this.moCombo(j);null==s&&0>q&&(s=[-100,-q]);break;case 269484192:switch(this.tokAt(++p)){case 1073741973:case 1073742008:break;
default:this.invArg()}f=!0;case 1073741973:case 1073742008:2147483647==(d=this.moOffset(p))&&this.invArg();q=0;s=this.moCombo(j);break;case 1073742037:q=1073742037;s=this.moCombo(j);break;case 1073742108:q=1073742108;s=this.moCombo(j);break;case 1766856708:this.setColorOptions(null,p+1,b,2);break;case 135266319:w="plane";m=1048587==this.tokAt(this.e.iToken=++p)?null:c.planeParameter(p);break;case 135266320:this.addShapeProperty(j,"randomSeed",2==this.tokAt(p+2)?Integer.$valueOf(this.intParameter(p+
2)):null);w="monteCarloCount";m=Integer.$valueOf(this.intParameter(p+1));break;case 1073742138:w="scale";m=Float.$valueOf(this.floatParameter(p+1));break;case 1073741910:269484193==this.tokAt(p+1)?(w="cutoffPositive",m=Float.$valueOf(this.floatParameter(p+2))):(w="cutoff",m=Float.$valueOf(this.floatParameter(p+1)));break;case 536870916:w="debug";break;case 1073742054:w="plane";break;case 1073742104:case 1073742122:w="resolution";m=Float.$valueOf(this.floatParameter(p+1));break;case 1073742156:w="squareData";
m=Boolean.TRUE;break;case 1073742168:p+1<this.slen&&4==this.tokAt(p+1)&&(w="titleFormat",m=this.paramAsStr(p+1));break;case 1073741824:this.invArg();break;default:if(c.isArrayParameter(p)){s=c.floatParameterSet(p,1,2147483647);1073742156==this.tokAt(c.iToken+1)&&(this.addShapeProperty(j,"squareLinear",Boolean.TRUE),c.iToken++);break}d=c.iToken;c.setMeshDisplayProperty(b,0,c.theTok)||this.invArg();this.setShapeProperty(b,"setProperties",j);c.setMeshDisplayProperty(b,d,this.tokAt(d));return}null!=w&&
this.addShapeProperty(j,w,m);p=2147483647!=q||null!=s;if(this.chk)break;if(null!=h||p)p&&4==this.tokAt(c.iToken+1)&&(v=this.paramAsStr(++c.iToken)),c.setCursorWait(!0),this.setMoData(j,q,s,d,f,k,v,h),p&&this.addShapeProperty(j,"finalize",null);0<j.size()&&this.setShapeProperty(b,"setProperties",j);j.clear()}},"~B,~N");e(c$,"setNBOType",function(a,b){var c=";AO;  ;PNAO;;NAO; ;PNHO;;NHO; ;PNBO;;NBO; ;PNLMO;NLMO;;MO;  ;NO;".indexOf(";"+b+";");0>c&&this.invArg();var c=C(c/6)+31,d=a.get("nboLabels");null==
d&&this.error(27);if(!this.chk)try{var f=a.get(b+"_coefs");if(null==f){var h=a.get("nboRoot")+"."+c,g=this.vwr.getFileAsString3(h,!0,null);null==g&&this.error(27);for(var f=a.get("mos"),j=f.get(0).get("dfCoefMaps"),e=f.size(),f=new JU.Lst,c=e;0<=--c;){var k=new java.util.Hashtable;f.addLast(k);k.put("dfCoefMaps",j)}J.api.Interface.getInterface("J.quantum.QS",this.vwr,"script").setNboLabels(d,e,f,0,b);for(var g=g.substring(g.lastIndexOf("--")+2),p=g.length,v=G(1,0),c=0;c<e;c++){var k=f.get(c),q=A(e,
0);k.put("coefficients",q);for(var s=0;s<e;s++)q[s]=JU.PT.parseFloatChecked(g,p,v,!1)}if(b.equals("NBO")){for(var m=A(e,0),s=0;s<e;s++)m[s]=JU.PT.parseFloatChecked(g,p,v,!1);for(c=0;c<e;c++)k=f.get(c),k.put("occupancy",Float.$valueOf(m[c]))}a.put(b+"_coefs",f)}a.put("nboType",b);a.put("mos",f)}catch(E){if(T(E,Exception))this.error(27);else throw E;}},"java.util.Map,~S");e(c$,"moCombo",function(a){if(1073742156!=this.tokAt(this.e.iToken+1))return null;this.addShapeProperty(a,"squareLinear",Boolean.TRUE);
this.e.iToken++;return A(0,0)},"JU.Lst");e(c$,"moOffset",function(a){var b=1073741973==this.getToken(a).tok?0:1,c=this.tokAt(++a);2==c&&0>this.intParameter(a)?b+=this.intParameter(a):269484193==c?b+=this.intParameter(++a):269484192==c&&(b-=this.intParameter(++a));return b},"~N");e(c$,"setMoData",function(a,b,c,d,f,h,g,j){var e=this.e;0>h&&(h=this.vwr.am.cmi,0>h&&e.errorStr(30,"MO isosurfaces"));h=this.vwr.ms.getInfo(h,"moData");null==h&&this.error(27);this.vwr.checkMenuUpdate();if(null!=j&&(this.setNBOType(h,
j),null==c&&2147483647==b))return;var k=null,p,v,q=0;if(null==c||2>c.length){null!=c&&1==c.length&&(d=0);j=h.containsKey("lastMoNumber")?h.get("lastMoNumber").intValue():0;k=h.containsKey("lastMoCount")?h.get("lastMoCount").intValue():1;1073742108==b?b=j-1:1073742037==b&&(b=j+k);k=h.get("mos");q=null==k?0:k.size();0==q&&this.error(25);1==q&&1<b&&this.error(29);if(2147483647!=d){if(h.containsKey("HOMO"))b=h.get("HOMO").intValue()+d;else{b=-1;for(j=0;j<q;j++)if(p=k.get(j),null!=(v=p.get("occupancy"))){if(0.5>
v.floatValue()){b=j;break}}else if(null!=(v=p.get("energy"))){if(0<v.floatValue()){b=j;break}}else break;0>b&&this.error(28);b+=d}JU.Logger.info("MO "+b)}(1>b||b>q)&&e.errorStr(26,""+q)}b=Math.abs(b);h.put("lastMoNumber",Integer.$valueOf(b));h.put("lastMoCount",Integer.$valueOf(1));f&&null==c&&(c=[-100,b]);if(null!=c&&2>c.length){p=k.get(b-1);if(null==(v=p.get("energy")))c=[100,b];else{e=v.floatValue();d=JU.BS.newN(q);f=0;c=1==c.length&&1==c[0];for(j=0;j<q;j++)if(null!=(v=k.get(j).get("energy")))if(v=
v.floatValue(),c?v<=e:v==e)d.set(j+1),f+=2;c=A(f,0);for(k=j=0;j<f;j+=2)c[j]=1,c[j+1]=k=d.nextSetBit(k+1);h.put("lastMoNumber",Integer.$valueOf(d.nextSetBit(0)));h.put("lastMoCount",Integer.$valueOf(C(f/2)))}this.addShapeProperty(a,"squareLinear",Boolean.TRUE)}this.addShapeProperty(a,"moData",h);null!=g&&this.addShapeProperty(a,"title",g);this.addShapeProperty(a,"molecularOrbital",null!=c?c:Integer.$valueOf(Math.abs(b)));this.addShapeProperty(a,"clear",null)},"JU.Lst,~N,~A,~N,~B,~N,~S,~S");e(c$,"isosurface",
function(a){var b=this.e;b.sm.loadShape(a);if(!(1073742001==this.tokAt(1)&&this.listIsosurface(a))){var c=0,d=24==a,f=29==a,h=30==a,g=26==a,j=!1,e=!1,k=!1,p=!1,v=!1,q=!1,s=!1,m=!1,E=!1,pa=!1,la=!1,C=!1,z=!1,B=!1,D=null,G=null,F=-2147483648,P,L,H,M,O,K=NaN,I=NaN,Z=0,V=null,X=2147483647,Q=null,R=null,ba=null,r=new JU.SB,N,Y=null,ja=null,ma=!1,xa,ea=0,ca=null,S=this.chk?0:-2147483648;b.setCursorWait(!0);var ua=null!=this.initIsosurface(a),na=ua&&null==this.getShapeProperty(a,"ID"),oa=!1,ka=!1,Ea=null,
ta=null,fa=null,wa=null,Ba=null,Fa=null,y=new JU.Lst,nb=!1;(f||h)&&this.addShapeProperty(y,"fileType","Pmesh");for(var n=b.iToken;n<this.slen;++n){var x=null,t=null;this.getToken(n);1073741824==b.theTok&&(ca=this.paramAsStr(n));switch(b.theTok){case 603979870:V=1048589==this.getToken(++n).tok?Boolean.TRUE:1048588==b.theTok?Boolean.FALSE:null;null==V&&this.invArg();continue;case 553648149:X=this.intParameter(++n);continue;case 4128:x="moveIsosurface";12!=this.tokAt(++n)&&this.invArg();t=this.getToken(n++).value;
break;case 1297090050:for(var ob=this.floatArraySet(n+2,this.intParameter(n+1),16),Ba=Array(ob.length),ga=Ba.length;0<=--ga;)Ba[ga]=JU.M4.newA16(ob[ga]);n=b.iToken;break;case 1089470478:0>S&&(S=Math.min(this.vwr.am.cmi,0));var pb=null==ba;null==R&&(R=JU.BSUtil.copy(this.vwr.bsA()));R.and(this.vwr.ms.getAtoms(1297090050,Integer.$valueOf(1)));pb||R.andNot(ba);this.addShapeProperty(y,"select",R);pb&&(ba=JU.BSUtil.copy(R),JU.BSUtil.invertInPlace(ba,this.vwr.ms.ac),B=!0,this.addShapeProperty(y,"ignore",
ba),r.append(" ignore ").append(JU.Escape.eBS(ba)));r.append(" symmetry");0==ea&&this.addShapeProperty(y,"colorRGB",Integer.$valueOf(1297090050));Ba=this.vwr.ms.getSymMatrices(S);break;case 1073742066:x="offset";t=this.centerParameter(++n);n=b.iToken;break;case 528432:x="rotate";t=1048587==this.tokAt(b.iToken=++n)?null:this.getPoint4f(n);n=b.iToken;break;case 1610612740:x="scale3d";t=Float.$valueOf(this.floatParameter(++n));break;case 1073742090:r.append(" periodic");x="periodic";break;case 1073742078:case 266298:case 135266320:x=
b.theToken.value.toString();r.append(" ").appendO(b.theToken.value);t=this.centerParameter(++n);r.append(" ").append(JU.Escape.eP(t));n=b.iToken;break;case 1679429641:if(0<=b.fullCommand.indexOf("# BBOX=")){var qb=JU.PT.split(JU.PT.getQuotedAttribute(b.fullCommand,"# BBOX"),",");xa=[JU.Escape.uP(qb[0]),JU.Escape.uP(qb[1])]}else b.isCenterParameter(n+1)?(xa=[this.getPoint3f(n+1,!0),this.getPoint3f(b.iToken+1,!0)],n=b.iToken):xa=this.vwr.ms.getBBoxVertices();r.append(" boundBox "+JU.Escape.eP(xa[0])+
" "+JU.Escape.eP(xa[xa.length-1]));x="boundingBox";t=xa;break;case 135188:f=!0;r.append(" pmesh");x="fileType";t="Pmesh";break;case 135267842:R=this.atomExpressionAt(++n);this.chk?Q=new JU.BS:1048577==this.tokAt(b.iToken+1)||10==this.tokAt(b.iToken+1)?(Q=this.atomExpressionAt(++b.iToken),Q.and(this.vwr.ms.getAtomsWithinRadius(5,R,!1,null))):(Q=this.vwr.ms.getAtomsWithinRadius(5,R,!0,null),Q.andNot(this.vwr.ms.getAtoms(1095761936,R)));Q.andNot(R);r.append(" intersection ").append(JU.Escape.eBS(R)).append(" ").append(JU.Escape.eBS(Q));
n=b.iToken;if(135368713==this.tokAt(n+1)){n++;var Ga=this.getToken(++n).value;r.append(" function ").append(JU.PT.esc(Ga));this.chk||this.addShapeProperty(y,"func",Ga.equals("a+b")||Ga.equals("a-b")?Ga:this.createFunction("__iso__","a,b",Ga))}else z=!0;x="intersection";t=[R,Q];break;case 1610625028:case 135266325:var Za=1610625028==b.theTok;if(Za){r.append(" display");var c=n,qa=this.tokAt(n+1);if(0==qa)continue;n++;this.addShapeProperty(y,"token",Integer.$valueOf(1048589));if(10==qa||1048579==qa){x=
"bsDisplay";1048579==qa?r.append(" all"):(t=this.st[n].value,r.append(" ").append(JU.Escape.eBS(t)));b.checkLast(n);break}else 135266325!=qa&&(b.iToken=n,this.invArg())}else Z=n;var Oa,ya=null,Q=null,$a=!1;1048577==this.tokAt(n+1)?(Oa=this.floatParameter(n+3),b.isPoint3f(n+4)?(ya=this.centerParameter(n+4),$a=!0,b.iToken+=2):b.isPoint3f(n+5)?(ya=this.centerParameter(n+5),$a=!0,b.iToken+=2):(Q=b.atomExpression(this.st,n+5,this.slen,!0,!1,!1,!0),null==Q&&this.invArg())):(Oa=this.floatParameter(++n),
ya=this.centerParameter(++n));Za&&b.checkLast(b.iToken);n=b.iToken;0<=b.fullCommand.indexOf("# WITHIN=")?Q=JU.BS.unescape(JU.PT.getQuotedAttribute(b.fullCommand,"# WITHIN")):$a||(Q=U(b.expressionResult,JU.BS)?b.expressionResult:null);this.chk||(null!=Q&&0<=S&&Q.and(this.vwr.getModelUndeletedAtomsBitSet(S)),null==ya&&(ya=null==Q?new JU.P3:this.vwr.ms.getAtomSetCenter(Q)),this.getWithinDistanceVector(y,Oa,ya,Q,Za),r.append(" within ").appendF(Oa).append(" ").append(null==Q?JU.Escape.eP(ya):JU.Escape.eBS(Q)));
continue;case 1073742083:var x="parameters",rb=b.floatParameterSet(++n,1,10),n=b.iToken,t=rb;r.append(" parameters ").append(JU.Escape.eAF(rb));break;case 1716520985:case 1073742190:var Ea=b.theToken.value,Va=1073742190==b.theTok,Ha=this.tokAt(n+1);null==wa?(!j&&(!k&&!e)&&(this.addShapeProperty(y,"sasurface",Float.$valueOf(0)),r.append(" vdw"),j=!0),x="property",null==V&&(V=JS.T.tokAttr(Ha,1112539136)&&1==this.vwr.getIsosurfacePropertySmoothing(!1)?Boolean.TRUE:Boolean.FALSE),this.addShapeProperty(y,
"propertySmoothing",V),r.append(" isosurfacePropertySmoothing "+V),V===Boolean.TRUE&&(2147483647==X&&(X=this.vwr.getIsosurfacePropertySmoothing(!0)),this.addShapeProperty(y,"propertySmoothingPower",Integer.$valueOf(X)),r.append(" isosurfacePropertySmoothingPower "+X)),this.vwr.g.rangeSelected&&this.addShapeProperty(y,"rangeSelected",Boolean.TRUE)):x=wa;ca=this.paramAsStr(n);r.append(" ").append(ca);if(0==ca.toLowerCase().indexOf("property_")){D=A(this.vwr.ms.ac,0);if(this.chk)continue;D=this.vwr.getDataFloat(ca);
null==D&&this.invArg();this.addShapeProperty(y,x,D);continue}var Ia=this.vwr.ms.ac,D=A(Ia,0);if(Va){var sb=this.paramAsStr(++n);0==sb.length?D=b.floatParameterSet(n,Ia,Ia):(D=A(Ia,0),this.chk||JU.Parser.parseStringInfestedFloatArray(""+b.getParameter(sb,4,!0),null,D));this.chk||r.append(' "" ').append(JU.Escape.eAF(D))}else{this.getToken(++n);if(!this.chk){r.append(" "+b.theToken.value);var Wa=this.vwr.ms.at;this.vwr.autoCalculate(Ha);if(1766856708!=Ha){N=new JU.P3;for(var ab=Ia;0<=--ab;)D[ab]=Wa[ab].atomPropertyFloat(this.vwr,
Ha,N)}}1766856708==Ha&&(fa="inherit");if(135266325==this.tokAt(n+1)){var tb=this.floatParameter(n+=2);r.append(" within "+tb);this.addShapeProperty(y,"propertyDistanceMax",Float.$valueOf(tb))}}t=D;break;case 1095761935:case 1095766030:j&&this.invArg();S=1095761935==b.theTok?this.intParameter(++n):b.modelNumberParameter(++n);r.append(" modelIndex "+S);if(0>S){x="fixed";t=Boolean.TRUE;break}x="modelIndex";t=Integer.$valueOf(S);break;case 135280132:var x="select",bb=this.atomExpressionAt(++n),t=bb,n=
b.iToken;1073742072==this.tokAt(n+1)&&(n++,ba=JU.BSUtil.copy(bb),JU.BSUtil.invertInPlace(ba,this.vwr.ms.ac),this.addShapeProperty(y,"ignore",ba),r.append(" ignore ").append(JU.Escape.eBS(ba)),B=!0);j||k?r.append(" select "+JU.Escape.eBS(bb)):(R=t,0>S&&0<=R.nextSetBit(0)&&(S=this.vwr.ms.at[R.nextSetBit(0)].mi));break;case 1085443:F=this.intParameter(++n);break;case 12289:x="center";t=this.centerParameter(++n);r.append(" center "+JU.Escape.eP(t));n=b.iToken;break;case 1073742147:case 1766856708:var ua=
!0,cb=1073742147==b.theTok;if(cb)r.append(" sign"),this.addShapeProperty(y,"sign",Boolean.TRUE);else{if(1073741914==this.tokAt(n+1)){n++;x="colorDensity";r.append(" color density");if(this.isFloatParameter(n+1)){var ub=this.floatParameter(++n);r.append(" "+ub);t=Float.$valueOf(ub)}break}if(4==this.getToken(n+1).tok)fa=this.paramAsStr(++n),0<fa.indexOf(" ")&&(Fa=JU.C.getColixArray(fa),null==Fa&&this.error(4));else if(1073742018==b.theTok){n++;r.append(" color mesh");ea=b.getArgbParam(++n);this.addShapeProperty(y,
"meshcolor",Integer.$valueOf(ea));r.append(" ").append(JU.Escape.escapeColor(ea));n=b.iToken;continue}if(603979967==(b.theTok=this.tokAt(n+1))||1073742074==b.theTok){r.append(" color");ta=this.setColorOptions(r,n+1,24,-2);n=b.iToken;continue}switch(this.tokAt(n+1)){case 1073741826:case 1073742114:this.getToken(++n);r.append(" color range");this.addShapeProperty(y,"rangeAll",null);if(1048579==this.tokAt(n+1)){n++;r.append(" all");continue}var vb=this.floatParameter(++n),wb=this.floatParameter(++n);
this.addShapeProperty(y,"red",Float.$valueOf(vb));this.addShapeProperty(y,"blue",Float.$valueOf(wb));r.append(" ").appendF(vb).append(" ").appendF(wb);continue}if(b.isColorParam(n+1)&&(ea=b.getArgbParam(n+1),1074790746==this.tokAt(n+2))){fa=b.getColorRange(n+1);n=b.iToken;break}r.append(" color")}b.isColorParam(n+1)?(ea=b.getArgbParam(++n),r.append(" ").append(JU.Escape.escapeColor(ea)),n=b.iToken,this.addShapeProperty(y,"colorRGB",Integer.$valueOf(ea)),ua=!0,b.isColorParam(n+1)?(ea=b.getArgbParam(++n),
n=b.iToken,this.addShapeProperty(y,"colorRGB",Integer.$valueOf(ea)),r.append(" ").append(JU.Escape.escapeColor(ea)),p=!0):cb&&this.invPO()):!cb&&null==Fa&&this.invPO();continue;case 135270423:d||this.invArg();pa=!this.chk;continue;case 1229984263:4!=this.tokAt(n+1)&&this.invPO();continue;case 1112541194:case 1649412120:r.append(" ").appendO(b.theToken.value);var Ja=b.encodeRadiusParameter(n,!1,!0);if(null==Ja)return;r.append(" ").appendO(Ja);Float.isNaN(Ja.value)&&(Ja.value=100);t=Ja;x="radius";E=
!0;k&&(j=!1);n=b.iToken;break;case 135266319:e=!0;x="plane";t=b.planeParameter(n);n=b.iToken;r.append(" plane ").append(JU.Escape.eP4(t));break;case 1073742138:x="scale";t=Float.$valueOf(this.floatParameter(++n));r.append(" scale ").appendO(t);break;case 1048579:ua&&this.invArg();x="thisID";break;case 1113198596:j=!0;++n;t=this.getPoint4f(n);x="ellipsoid";n=b.iToken;r.append(" ellipsoid ").append(JU.Escape.eP4(t));break;case 135267841:e=!0;x="plane";t=b.hklParameter(++n);n=b.iToken;r.append(" plane ").append(JU.Escape.eP4(t));
break;case 135182:var j=!0,Pa=this.paramAsStr(++n);this.addShapeProperty(y,"lcaoType",Pa);r.append(" lcaocartoon ").append(JU.PT.esc(Pa));switch(this.getToken(++n).tok){case 10:case 1048577:x="lcaoCartoon";Q=this.atomExpressionAt(n);n=b.iToken;if(this.chk)continue;var Ka=Q.nextSetBit(0);0>Ka&&this.error(14);r.append(" ({").appendI(Ka).append("})");S=this.vwr.ms.at[Ka].mi;this.addShapeProperty(y,"modelIndex",Integer.$valueOf(S));var db=[new JU.V3,new JU.V3,JU.V3.newV(this.vwr.ms.at[Ka]),new JU.V3];
if(!Pa.equalsIgnoreCase("s")&&null==this.vwr.getHybridizationAndAxes(Ka,db[0],db[1],Pa))return;t=db;break;default:this.error(14)}break;case 1073877010:var La=2147483647,Ca=2147483647,eb=269484192==this.tokAt(n+1);eb&&n++;var Ma=null;switch(this.tokAt(++n)){case 0:b.bad();break;case 1073741914:r.append("mo [1] squared ");this.addShapeProperty(y,"squareLinear",Boolean.TRUE);Ma=[1];Ca=La=0;n++;break;case 1073741973:case 1073742008:Ca=this.moOffset(n);La=0;n=b.iToken;r.append(" mo "+(eb?"-":"")+"HOMO ");
0<Ca&&r.append("+");0!=Ca&&r.appendI(Ca);break;case 2:La=this.intParameter(n);r.append(" mo ").appendI(La);break;default:b.isArrayParameter(n)&&(Ma=b.floatParameterSet(n,1,2147483647),n=b.iToken)}if(1073742156==this.tokAt(n+1))this.addShapeProperty(y,"squareLinear",Boolean.TRUE),r.append(" squared"),null==Ma&&(Ma=A(0,0));else if(135266320==this.tokAt(n+1)){++n;var xb=this.intParameter(++n),yb=2==this.tokAt(n+1)?this.intParameter(++n):-System.currentTimeMillis()%1E4;this.addShapeProperty(y,"monteCarloCount",
Integer.$valueOf(xb));this.addShapeProperty(y,"randomSeed",Integer.$valueOf(yb));r.append(" points ").appendI(xb).appendC(" ").appendI(yb)}this.setMoData(y,La,Ma,Ca,eb,S,null,null);j=!0;continue;case 1073742036:x="nci";r.append(" "+x);var qa=this.tokAt(n+1),zb=1229984263!=qa&&4!=qa&&1073742033!=qa,t=Boolean.$valueOf(zb);zb&&(j=!0);break;case 1073742016:case 1073742022:var Ab=1073742016==b.theTok,x=Ab?"mep":"mlp";r.append(" "+x);var Qa=null,fb=-1,j=!0;2==this.tokAt(n+1)&&(fb=this.intParameter(++n),
r.append(" "+fb),this.addShapeProperty(y,"mepCalcType",Integer.$valueOf(fb)));if(4==this.tokAt(n+1))Qa=this.stringParameter(++n),r.append(" /*file*/"+JU.PT.esc(Qa));else if(1716520985==this.tokAt(n+1)){wa=x;continue}if(!this.chk)try{D=null==Qa&&Ab?this.vwr.getPartialCharges():this.getAtomicPotentials(R,ba,Qa)}catch(Bb){if(!T(Bb,Exception))throw Bb;}!this.chk&&null==D&&this.error(32);t=D;break;case 1313866249:s=!this.chk;r.append(" volume");break;case 1074790550:this.setShapeId(a,++n,ua);na=null==
this.getShapeProperty(a,"ID");n=b.iToken;break;case 1073741888:603979967==this.tokAt(n+1)&&(oa=!0,n++);fa=this.paramAsStr(++n).toLowerCase();fa.equals("sets")?r.append(' colorScheme "sets"'):b.isColorParam(n)&&(fa=b.getColorRange(n),n=b.iToken);break;case 1073741828:x="addHydrogens";t=Boolean.TRUE;r.append(" mp.addHydrogens");break;case 1073741836:x="angstroms";r.append(" angstroms");break;case 1073741837:x="anisotropy";t=this.getPoint3f(++n,!1);r.append(" anisotropy").append(JU.Escape.eP(t));n=b.iToken;
break;case 1073741842:q=!this.chk;r.append(" area");break;case 1073741850:case 1073742076:j=!0;p&&!v&&(r.append(' phase "_orb"'),this.addShapeProperty(y,"phase","_orb"));var $=A(7,0);$[0]=this.intParameter(++n);$[1]=this.intParameter(++n);$[2]=this.intParameter(++n);$[3]=this.isFloatParameter(n+1)?this.floatParameter(++n):6;r.append(" atomicOrbital ").appendI(u($[0])).append(" ").appendI(u($[1])).append(" ").appendI(u($[2])).append(" ").appendF($[3]);135266320==this.tokAt(n+1)&&(n+=2,$[4]=this.intParameter(n),
$[5]=3==this.tokAt(n+1)?this.floatParameter(++n):0,$[6]=2==this.tokAt(n+1)?this.intParameter(++n):-System.currentTimeMillis()%1E4,r.append(" points ").appendI(u($[4])).appendC(" ").appendF($[5]).appendC(" ").appendI(u($[6])));x="hydrogenOrbital";t=$;break;case 1073741866:r.append(" binary");continue;case 1073741868:r.append(" blockData");x="blockData";t=Boolean.TRUE;break;case 1074790451:case 554176565:C=!0;x=b.theToken.value;t=this.getCapSlabObject(n,!1);n=b.iToken;break;case 1073741876:d||this.invArg();
m=!0;if(this.chk)continue;var Cb=this.isFloatParameter(n+1)?this.floatParameter(++n):1.2,gb=this.isFloatParameter(n+1)?this.floatParameter(++n):10;if(10<gb){b.integerOutOfRange(0,10);return}r.append(" cavity ").appendF(Cb).append(" ").appendF(gb);this.addShapeProperty(y,"envelopeRadius",Float.$valueOf(gb));this.addShapeProperty(y,"cavityRadius",Float.$valueOf(Cb));x="cavity";break;case 1073741896:case 1073741900:x="contour";r.append(" contour");switch(this.tokAt(n+1)){case 1073741920:t=b.floatParameterSet(n+
2,1,2147483647);r.append(" discrete ").append(JU.Escape.eAF(t));n=b.iToken;break;case 1073741981:N=this.getPoint3f(n+2,!1);(0>=N.z||N.y<N.x)&&this.invArg();N.z==u(N.z)&&N.z>N.y-N.x&&(N.z=(N.y-N.x)/N.z);t=N;n=b.iToken;r.append(" increment ").append(JU.Escape.eP(N));break;default:t=Integer.$valueOf(2==this.tokAt(n+1)?this.intParameter(++n):0),r.append(" ").appendO(t),2==this.tokAt(n+1)&&(this.addShapeProperty(y,x,t),t=Integer.$valueOf(-Math.abs(this.intParameter(++n))),r.append(" ").appendO(t))}break;
case 1073741910:r.append(" cutoff ");269484193==this.tokAt(++n)?(x="cutoffPositive",t=Float.$valueOf(I=this.floatParameter(++n)),r.append("+").appendO(t)):this.isFloatParameter(n)?(x="cutoff",t=Float.$valueOf(I=this.floatParameter(n)),r.appendO(t)):(x="cutoffRange",t=b.floatParameterSet(n,2,2),this.addShapeProperty(y,"cutoff",Float.$valueOf(0)),r.append(JU.Escape.eAF(t)),n=b.iToken);break;case 1073741928:x="downsample";t=Integer.$valueOf(this.intParameter(++n));r.append(" downsample ").appendO(t);
break;case 1073741931:x="eccentricity";t=this.getPoint4f(++n);r.append(" eccentricity ").append(JU.Escape.eP4(t));n=b.iToken;break;case 1074790508:r.append(" ed");this.setMoData(y,-1,null,0,!1,S,null,null);j=!0;continue;case 536870916:case 1073742041:r.append(" ").appendO(b.theToken.value);x="debug";t=536870916==b.theTok?Boolean.TRUE:Boolean.FALSE;break;case 1060869:r.append(" fixed");x="fixed";t=Boolean.TRUE;break;case 1073741962:r.append(" fullPlane");x="fullPlane";t=Boolean.TRUE;break;case 1073741966:case 1073741968:var Xa=
1073741968==b.theTok,x=""+b.theToken.value,ra=new JU.Lst,t=ra,la=j=!0;r.append(" ").append(x);var aa=this.paramAsStr(++n);if(aa.equals("=")){r.append(" =");aa=this.paramAsStr(++n);r.append(" ").append(JU.PT.esc(aa));ra.addLast(aa);this.chk||this.addShapeProperty(y,"func",this.createFunction("__iso__","x,y,z",aa));break}var hb=JU.PT.getQuotedAttribute(b.fullCommand,"# DATA"+(la?"2":""));null==hb?hb="inline":aa=hb;var Db=0==aa.indexOf("data2d_"),Ya=0==aa.indexOf("data3d_"),ka=aa.equals("inline");r.append(" inline");
ra.addLast(aa);var Eb=this.getPoint3f(++n,!1);r.append(" ").append(JU.Escape.eP(Eb));ra.addLast(Eb);var sa;M=++b.iToken;ra.addLast(sa=this.getPoint4f(M));r.append(" ").append(JU.Escape.eP4(sa));P=u(sa.x);O=++b.iToken;ra.addLast(sa=this.getPoint4f(O));r.append(" ").append(JU.Escape.eP4(sa));L=u(sa.x);ra.addLast(sa=this.getPoint4f(++b.iToken));r.append(" ").append(JU.Escape.eP4(sa));H=u(sa.x);(0==P||0==L||0==H)&&this.invArg();if(!this.chk){var da=null,ha=null;if(Xa){ka?(P=Math.abs(P),L=Math.abs(L),
H=Math.abs(H),ha=this.floatArraySetXYZ(++b.iToken,P,L,H)):ha=Ya?this.vwr.getDataFloat3D(aa):this.vwr.functionXYZ(aa,P,L,H);P=Math.abs(P);L=Math.abs(L);H=Math.abs(H);null==ha&&(b.iToken=M,b.errorStr(53,"xyzdata is null."));if(ha.length!=P||ha[0].length!=L||ha[0][0].length!=H)b.iToken=M,b.errorStr(53,"xyzdata["+ha.length+"]["+ha[0].length+"]["+ha[0][0].length+"] is not of size ["+P+"]["+L+"]["+H+"]");ra.addLast(ha);r.append(" ").append(JU.Escape.e(ha))}else{ka?(P=Math.abs(P),L=Math.abs(L),da=this.floatArraySet(++b.iToken,
P,L)):Db?(da=this.vwr.getDataFloat2D(aa),P=null==da?0:da.length,L=3):(da=this.vwr.functionXY(aa,P,L),P=Math.abs(P),L=Math.abs(L));null==da&&(b.iToken=M,b.errorStr(53,"fdata is null."));da.length!=P&&!Db&&(b.iToken=M,b.errorStr(53,"fdata length is not correct: "+da.length+" "+P+"."));for(ga=0;ga<P;ga++)null==da[ga]&&(b.iToken=O,b.errorStr(53,"fdata["+ga+"] is null.")),da[ga].length!=L&&(b.iToken=O,b.errorStr(53,"fdata["+ga+"] is not the right length: "+da[ga].length+" "+L+"."));ra.addLast(da);r.append(" ").append(JU.Escape.e(da))}}n=
b.iToken;break;case 1073741970:x="gridPoints";r.append(" gridPoints");break;case 1073741976:x="ignore";t=ba=this.atomExpressionAt(++n);r.append(" ignore ").append(JU.Escape.eBS(ba));n=b.iToken;break;case 1073741984:x="insideOut";r.append(" insideout");break;case 1073741988:case 1073741986:case 1073742100:r.append(" ").appendO(b.theToken.value);x="pocket";t=1073742100==b.theTok?Boolean.TRUE:Boolean.FALSE;break;case 1073742002:x="lobe";t=this.getPoint4f(++n);n=b.iToken;r.append(" lobe ").append(JU.Escape.eP4(t));
j=!0;break;case 1073742004:case 1073742006:x="lp";t=this.getPoint4f(++n);n=b.iToken;r.append(" lp ").append(JU.Escape.eP4(t));j=!0;break;case 1052700:(k||this.slen==n+1)&&this.invArg();k=!0;if((m||E||z)&&!j)j=!0,this.addShapeProperty(y,"bsSolvent",E||z?new JU.BS:b.lookupIdentifierValue("solvent")),this.addShapeProperty(y,"sasurface",Float.$valueOf(0));0==r.length()?(Y=this.getShapeProperty(24,"plane"),null==Y?null!=this.getShapeProperty(24,"contours")&&this.addShapeProperty(y,"nocontour",null):(this.addShapeProperty(y,
"plane",Y),r.append("plane ").append(JU.Escape.eP4(Y)),e=!0,Y=null)):!j&&!e&&this.invArg();r.append("; isosurface map");this.addShapeProperty(y,"map",j?Boolean.TRUE:Boolean.FALSE);break;case 1073742014:x="maxset";t=Integer.$valueOf(this.intParameter(++n));r.append(" maxSet ").appendO(t);break;case 1073742020:x="minset";t=Integer.$valueOf(this.intParameter(++n));r.append(" minSet ").appendO(t);break;case 1073742112:j=!0;x="rad";t=this.getPoint4f(++n);n=b.iToken;r.append(" radical ").append(JU.Escape.eP4(t));
break;case 1073742027:x="fixed";t=Boolean.FALSE;r.append(" modelBased");break;case 1073742028:case 1073742135:case 1613758488:var Ea=b.theToken.value,Ra;1073742028==b.theTok?(x="molecular",r.append(" molecular"),Ra=this.isFloatParameter(n+1)?this.floatParameter(++n):1.4):(this.addShapeProperty(y,"bsSolvent",b.lookupIdentifierValue("solvent")),x=1073742135==b.theTok?"sasurface":"solvent",r.append(" ").appendO(b.theToken.value),Ra=this.isFloatParameter(n+1)?this.floatParameter(++n):this.vwr.getFloat(570425394));
r.append(" ").appendF(Ra);t=Float.$valueOf(Ra);1073741961==this.tokAt(n+1)&&(this.addShapeProperty(y,"doFullMolecular",null),r.append(" full"),n++);j=!0;break;case 1073742033:this.addShapeProperty(y,"fileType","Mrc");r.append(" mrc");continue;case 1073742064:case 1073742062:this.addShapeProperty(y,"fileType","Obj");r.append(" obj");continue;case 1073742034:this.addShapeProperty(y,"fileType","Msms");r.append(" msms");continue;case 1073742094:j&&this.invArg();x="phase";v=!0;t=4==this.tokAt(n+1)?this.stringParameter(++n):
"_orb";r.append(" phase ").append(JU.PT.esc(t));break;case 1073742104:case 1073742122:x="resolution";t=Float.$valueOf(this.floatParameter(++n));r.append(" resolution ").appendO(t);break;case 1073742124:x="reverseColor";t=Boolean.TRUE;r.append(" reversecolor");break;case 1073742127:case 1073742146:x="sigma";t=Float.$valueOf(K=this.floatParameter(++n));r.append(" sigma ").appendO(t);break;case 1113198597:x="geodesic";t=Float.$valueOf(this.floatParameter(++n));r.append(" geosurface ").appendO(t);j=!0;
break;case 1073742154:x="sphere";t=Float.$valueOf(this.floatParameter(++n));r.append(" sphere ").appendO(t);j=!0;break;case 1073742156:x="squareData";t=Boolean.TRUE;r.append(" squared");break;case 1073741983:x=!j&&!e&&!k?"readFile":"mapColor";ca=this.stringParameter(++n);null==ca&&this.invArg();f&&(ca=JU.PT.replaceWithCharacter(ca,"{,}|"," "));b.debugHigh&&JU.Logger.debug("pmesh inline data:\n"+ca);t=this.chk?null:ca;this.addShapeProperty(y,"fileName","");r.append(" INLINE ").append(JU.PT.esc(ca));
j=!0;break;case 4:var Sa=!j&&!e,x=Sa&&!k?"readFile":"mapColor",W=this.paramAsStr(n);if(W.startsWith("=")&&1<W.length){var ib=this.vwr.setLoadFormat(W,"_",!1),W=ib[0],jb=!Sa||!Float.isNaN(I)?null:ib[1],Fb=ib[2];if(null!=jb&&!this.chk){var I=NaN,Gb=null==Fb?"MAP_SIGMA_DENS":"DIFF_SIGMA_DENS";try{var Ta=this.vwr.getFileAsString3(jb,!1,null);JU.Logger.info(Ta);Ta=JU.PT.split(Ta,Gb)[1];I=JU.PT.parseFloat(Ta)}catch(Hb){if(T(Hb,Exception))JU.Logger.error(Gb+" -- could  not read "+jb);else throw Hb;}0<I&&
(null!=Fb&&(Float.isNaN(K)&&(K=3),this.addShapeProperty(y,"sign",Boolean.TRUE)),this.showString("using cutoff = "+I+(Float.isNaN(K)?"":" sigma="+K)),Float.isNaN(K)||(I*=K,K=NaN,this.addShapeProperty(y,"sigma",Float.$valueOf(K))),this.addShapeProperty(y,"cutoff",Float.$valueOf(I)),r.append(" cutoff ").appendF(I))}0==Z&&(Ea="=xxxx",0>S&&(S=this.vwr.am.cmi),Q=this.vwr.getModelUndeletedAtomsBitSet(S),0<=Q.nextSetBit(0)&&(this.getWithinDistanceVector(y,2,null,Q,!1),r.append(" within 2.0 ").append(JU.Escape.eBS(Q))));
Sa&&(nb=!0)}Sa&&(this.vwr.getP("_fileType").equals("Pdb")&&Float.isNaN(K)&&Float.isNaN(I))&&(this.addShapeProperty(y,"sigma",Float.$valueOf(-1)),r.append(" sigma -1.0"));0==W.length&&(0>S&&(S=this.vwr.am.cmi),W=b.getFullPathName(),t=this.vwr.ms.getInfo(S,"jmolSurfaceInfo"));var kb=-1;null==t&&2==this.tokAt(n+1)&&this.addShapeProperty(y,"fileIndex",Integer.$valueOf(kb=this.intParameter(++n)));var Na=4==this.tokAt(n+1)?this.stringParameter(++n):null,j=!0;if(this.chk)break;var Da,va=null;null==t&&(0<=
b.fullCommand.indexOf("# FILE0=")?(W=JU.PT.getQuotedAttribute(b.fullCommand,"# FILE0"),1073741848==this.tokAt(n+1)&&(n+=2)):1073741848==this.tokAt(n+1)&&(va=this.vwr.fm.getFilePath(this.stringParameter(b.iToken=n+=2),!1,!1),Da=this.vwr.getFullPathNameOrError(va),va=Da[0],""!==this.vwr.fm.getPathForAllFiles()?(W=va,va=null):this.addShapeProperty(y,"localName",va)));!W.startsWith("cache://")&&null==Na&&(Da=this.vwr.getFullPathNameOrError(W),W=Da[0],null!=Da[1]&&b.errorStr(17,W+":"+Da[1]));this.showString("reading isosurface data from "+
W);null!=Na&&(t=this.vwr.fm.cacheGet(W,!1),this.addShapeProperty(y,"calculationType",Na));null==t&&(this.addShapeProperty(y,"fileName",W),null!=va&&(W=va),0<=kb&&r.append(" ").appendI(kb));r.append(" /*file*/").append(JU.PT.esc(W));null!=Na&&r.append(" ").append(JU.PT.esc(Na));break;case 4106:x="connections";switch(this.tokAt(++n)){case 10:case 1048577:t=[this.atomExpressionAt(n).nextSetBit(0)];break;default:t=[u(b.floatParameterSet(n,1,1)[0])]}n=b.iToken;break;case 1095761923:x="atomIndex";t=Integer.$valueOf(this.intParameter(++n));
break;case 1073741999:x="link";r.append(" link");break;case 1614417948:24!=a&&this.invArg();269484193==this.tokAt(n+1)&&n++;x="extendGrid";t=Float.$valueOf(this.floatParameter(++n));r.append(" unitcell "+t);break;case 1073741994:24!=a&&this.invArg();N=this.getPoint3f(++n,!1);n=b.iToken;if(0>=N.x||0>=N.y||0>=N.z)break;N.x=u(N.x);N.y=u(N.y);N.z=u(N.z);r.append(" lattice ").append(JU.Escape.eP(N));k?(x="mapLattice",t=N):(ja=N,1060869==this.tokAt(n+1)&&(r.append(" fixed"),ma=!0,n++));break;default:1073741824==
b.theTok&&(x="thisID",t=ca);if(!b.setMeshDisplayProperty(a,0,b.theTok)){if(JS.T.tokAttr(b.theTok,1073741824)&&!ua){this.setShapeId(a,n,ua);n=b.iToken;break}this.invArg()}0==c&&(c=n);n=this.slen-1}ua=12291!=b.theTok;na&&j&&this.invArg();null!=x&&this.addShapeProperty(y,x,t)}if(!this.chk){if((m||E)&&!j)j=!0,this.addShapeProperty(y,"bsSolvent",E?new JU.BS:b.lookupIdentifierValue("solvent")),this.addShapeProperty(y,"sasurface",Float.$valueOf(0));e&&(!j&&!k)&&(this.addShapeProperty(y,"nomap",Float.$valueOf(0)),
j=!0);-1<=F&&this.addShapeProperty(y,"getSurfaceSets",Integer.$valueOf(F-1));if(null!=Fa)this.addShapeProperty(y,"colorDiscrete",Fa);else if("sets".equals(fa))this.addShapeProperty(y,"setColorScheme",null);else if(null!=fa){var Ua=this.vwr.cm.getColorEncoder(fa);null!=Ua&&(Ua.isTranslucent=oa,Ua.hi=3.4028235E38,this.addShapeProperty(y,"remapColor",Ua))}if(j&&!g&&0!=r.indexOf(";")){y.add(0,["newObject",null]);var Ib=null==R;Ib&&(R=JU.BSUtil.copy(this.vwr.bsA()));0>S&&(S=this.vwr.am.cmi);R.and(this.vwr.getModelUndeletedAtomsBitSet(S));
null!=Ea&&(1<this.vwr.ms.getModelBS(R,!1).cardinality()&&b.errorStr(30,"ISOSURFACE "+Ea),Ib&&(y.add(0,["select",R]),0==r.indexOf("; isosurface map")&&(r=(new JU.SB).append("; isosurface map select ").append(JU.Escape.eBS(R)).append(r.substring(16)))))}z&&!C&&(j||this.addShapeProperty(y,"sasurface",Float.$valueOf(0)),k||(this.addShapeProperty(y,"map",Boolean.TRUE),this.addShapeProperty(y,"select",Q),this.addShapeProperty(y,"sasurface",Float.$valueOf(0))),this.addShapeProperty(y,"slab",this.getCapSlabObject(-100,
!1)));var Jb=j&&this.vwr.getBoolean(603979934);Jb&&JU.Logger.startTimer("isosurface");this.setShapeProperty(a,"setProperties",y);Jb&&this.showString(JU.Logger.getTimerMsg("isosurface",0));nb&&(this.setShapeProperty(a,"token",Integer.$valueOf(1073742018)),this.setShapeProperty(a,"token",Integer.$valueOf(1073742046)),B=!0,r.append(" mesh nofill frontOnly"))}null!=ja&&(this.setShapeProperty(a,"lattice",ja),ma&&this.setShapeProperty(a,"fixLattice",Boolean.TRUE));null!=Ba&&this.setShapeProperty(a,"symops",
Ba);B&&this.setShapeProperty(a,"token",Integer.$valueOf(1073741960));0<c&&(b.setMeshDisplayProperty(a,c,0)||this.invArg());if(!this.chk){var za=null,Aa=null;q&&(za=this.getShapeProperty(a,"area"),U(za,Float)?this.vwr.setFloatProperty("isosurfaceArea",za.floatValue()):this.vwr.g.setUserVariable("isosurfaceArea",JS.SV.getVariableAD(za)));s&&(Aa=s?this.getShapeProperty(a,"volume"):null,U(Aa,Float)?this.vwr.setFloatProperty("isosurfaceVolume",Aa.floatValue()):this.vwr.g.setUserVariable("isosurfaceVolume",
JS.SV.getVariableAD(Aa)));if(!g){var ia=null;k&&!j?this.setShapeProperty(a,"finalize",r.toString()):j&&(G=r.toString(),this.setShapeProperty(a,"finalize",(0==G.indexOf("; isosurface map")?"":" select "+JU.Escape.eBS(R)+" ")+G),ia=this.getShapeProperty(a,"ID"),null!=ia&&!b.tQuiet&&(I=this.getShapeProperty(a,"cutoff").floatValue(),Float.isNaN(I)&&!Float.isNaN(K)&&JU.Logger.error("sigma not supported"),ia+=" created "+this.getShapeProperty(a,"message")));var lb,mb;if(q||s)lb=q?"isosurfaceArea = "+(U(za,
Float)?""+za:JU.Escape.eAD(za)):null,mb=s?"isosurfaceVolume = "+(U(Aa,Float)?""+Aa:JU.Escape.eAD(Aa)):null,null==ia?(q&&this.showString(lb),s&&this.showString(mb)):(q&&(ia+="\n"+lb),s&&(ia+="\n"+mb));null!=ia&&this.showString(ia)}null!=ta&&this.setShapeProperty(a,"translucency",ta);this.setShapeProperty(a,"clear",null);pa&&this.setShapeProperty(a,"cache",null);26!=a&&this.listIsosurface(a)}}},"~N");e(c$,"lcaoCartoon",function(){var a=this.e;a.sm.loadShape(26);if(!(1073742001==a.tokAt(1)&&this.listIsosurface(26)))if(this.setShapeProperty(26,
"init",a.fullCommand),1==this.slen)this.setShapeProperty(26,"lcaoID",null);else{for(var b=!1,c=null,c=1;c<this.slen;c++){var d=null,f=null;switch(this.getToken(c).tok){case 1074790451:case 554176565:d=a.theToken.value;1048588==this.tokAt(c+1)&&(a.iToken=c+1);f=this.getCapSlabObject(c,!0);c=a.iToken;break;case 12289:this.isosurface(26);return;case 528432:var h=f=0,g=0;switch(this.getToken(++c).tok){case 1112541205:f=0.017453292*this.floatParameter(++c);break;case 1112541206:h=0.017453292*this.floatParameter(++c);
break;case 1112541207:g=0.017453292*this.floatParameter(++c);break;default:this.invArg()}d="rotationAxis";f=JU.V3.new3(f,h,g);break;case 1048589:case 1610625028:case 3145768:d="on";break;case 1048588:case 12294:case 3145770:d="off";break;case 12291:d="delete";break;case 10:case 1048577:d="select";f=this.atomExpressionAt(c);c=a.iToken;break;case 1766856708:c=this.setColorOptions(null,c+1,26,-2);null!=c&&this.setShapeProperty(26,"settranslucency",c);c=a.iToken;b=!0;continue;case 603979967:case 1073742074:a.setMeshDisplayProperty(26,
c,a.theTok);c=a.iToken;b=!0;continue;case 1113200651:case 4:f=this.paramAsStr(c).toLowerCase();f.equals("spacefill")&&(f="cpk");d="create";a.optParameterAsString(c+1).equalsIgnoreCase("molecular")&&(c++,d="molecular");break;case 135280132:10==this.tokAt(c+1)||1048577==this.tokAt(c+1)?(d="select",f=this.atomExpressionAt(c+1),c=a.iToken):(d="selectType",f=this.paramAsStr(++c),f.equals("spacefill")&&(f="cpk"));break;case 1073742138:d="scale";f=Float.$valueOf(this.floatParameter(++c));break;case 1073742004:case 1073742006:d=
"lonePair";break;case 1073742112:case 1073742111:d="radical";break;case 1073742028:d="molecular";break;case 1073741904:f=this.paramAsStr(++c);d="create";a.optParameterAsString(c+1).equalsIgnoreCase("molecular")&&(c++,d="molecular");break;case 1074790550:f=a.setShapeNameParameter(++c);c=a.iToken;b&&this.invArg();d="lcaoID";break;default:if(269484209==a.theTok||JS.T.tokAttr(a.theTok,1073741824))269484209!=a.theTok&&(f=this.paramAsStr(c)),b&&this.invArg(),d="lcaoID"}12291!=a.theTok&&(b=!0);null==d&&
this.invArg();this.setShapeProperty(26,d,f)}this.setShapeProperty(26,"clear",null)}});e(c$,"contact",function(){var a=this.e;a.sm.loadShape(25);if(1073742001==this.tokAt(1)&&this.listIsosurface(25))return!1;var b=0;a.iToken=1;for(var c=null!=this.initIsosurface(25),d=c&&null==this.getShapeProperty(25,"ID"),f=null,h=null,g=null,j=null,e=null,k=!1,p=new JU.SB,v=2147483647,q=135266319,s=0,m=NaN,E=NaN,pa=!0,u=null,G=null,z=0,B=!1,D=-2147483648,H=1<a.iToken,F=a.iToken;F<this.slen;++F){switch(g=this.getToken(F).tok){default:H=
!0;if(!a.setMeshDisplayProperty(25,0,a.theTok)){269484209!=a.theTok&&!JS.T.tokAttr(a.theTok,1073741824)&&this.invArg();this.setShapeId(25,F,c);F=a.iToken;break}0==b&&(b=F);F=a.iToken;continue;case 1074790550:H=!0;this.setShapeId(25,++F,c);d=null==this.getShapeProperty(25,"ID");F=a.iToken;break;case 1766856708:switch(this.tokAt(F+1)){case 1073741914:g=0;k=!0;p.append(" color density");F++;break;case 1141899272:g=0,B=!0,p.append(" color type"),F++}if(0==g)break;case 603979967:case 1073742074:H=!0;0==
z&&(z=F);a.setMeshDisplayProperty(25,F,a.theTok);F=a.iToken;break;case 554176565:H=!0;G=this.getCapSlabObject(F,!1);this.setShapeProperty(25,"slab",G);F=a.iToken;break;case 1073741914:k=!0;p.append(" density");this.isFloatParameter(F+1)&&(null==e&&(e=A(1,0)),e[0]=-Math.abs(this.floatParameter(++F)),p.append(" "+-e[0]));break;case 1073742122:c=this.floatParameter(++F);0<c&&(p.append(" resolution ").appendF(c),this.setShapeProperty(25,"resolution",Float.$valueOf(c)));break;case 1095766030:case 1095761935:D=
1095761935==a.theTok?this.intParameter(++F):a.modelNumberParameter(++F);p.append(" modelIndex "+D);break;case 135266325:case 1276118018:m=this.floatParameter(++F);p.append(" within ").appendF(m);break;case 269484193:case 2:case 3:j=a.encodeRadiusParameter(F,!1,!1);if(null==j)return!1;p.append(" ").appendO(j);F=a.iToken;break;case 1073741990:case 1073741989:u=1073741989==g?Boolean.TRUE:Boolean.FALSE;p.append(" ").appendO(a.theToken.value);break;case 1073742020:v=this.intParameter(++F);break;case 1612189718:case 1073741881:case 1649412120:s=
g;p.append(" ").appendO(a.theToken.value);break;case 1073742135:this.isFloatParameter(F+1)&&(E=this.floatParameter(++F));case 1074790451:case 1073742036:case 3145756:pa=!1;case 1276117512:case 1073741961:case 135266319:case 4106:q=g;p.append(" ").appendO(a.theToken.value);1073742135==g&&p.append(" ").appendF(E);break;case 1073742083:e=a.floatParameterSet(++F,1,10);F=a.iToken;break;case 10:case 1048577:(d||null!=h)&&this.invArg(),g=JU.BSUtil.copy(this.atomExpressionAt(F)),F=a.iToken,null==f?f=g:h=
g,p.append(" ").append(JU.Escape.eBS(g))}c=12291!=a.theTok}!H&&null==f&&this.error(13);if(this.chk)return!1;if(null!=f){1649412120==s&&null==j&&(j=new J.atomdata.RadiusData(null,0,J.atomdata.RadiusData.EnumType.OFFSET,J.c.VDW.AUTO));F=null==j?new J.atomdata.RadiusData(null,0.26,J.atomdata.RadiusData.EnumType.OFFSET,J.c.VDW.AUTO):j;h=1073742036==q&&null==h&&null!=u&&u.booleanValue()?f:a.getMathExt().setContactBitSets(f,h,pa,m,F,!0);switch(q){case 1074790451:case 1073742135:F=a.lookupIdentifierValue("solvent");
f.andNot(F);h.andNot(F);h.andNot(f);break;case 3145756:h.andNot(f);break;case 1073742036:2147483647==v&&(v=100),this.setShapeProperty(25,"minset",Integer.$valueOf(v)),p.append(" minSet ").appendI(v),null==e&&(e=[0.5,2])}null!=u&&(e=null==e?A(2,0):JU.AU.ensureLengthA(e,2),e[1]=u.booleanValue()?1:2);null!=e&&p.append(" parameters ").append(JU.Escape.eAF(e));this.setShapeProperty(25,"set",[Integer.$valueOf(s),Integer.$valueOf(q),Boolean.$valueOf(k),Boolean.$valueOf(B),f,h,j,Float.$valueOf(E),e,Integer.$valueOf(D),
p.toString()]);0<z&&a.setMeshDisplayProperty(25,z,0)}0<b&&(a.setMeshDisplayProperty(25,b,0)||this.invArg());null!=G&&null!=f&&this.setShapeProperty(25,"slab",G);if(null!=f&&(1073742036==q||pa)){f=this.getShapeProperty(25,"volume");b=1073741961==q;if(JU.PT.isAD(f))for(F=a=0;F<f.length;F++)a+=b?f[F]:Math.abs(f[F]);else a=f.floatValue();a=Math.round(1E3*a)/1E3;if(k||1276117512!=q)k=this.getShapeProperty(25,"nSets").intValue(),k="Contacts: "+(0>k?C(-k/2):k),0!=a&&(k+=", with "+(b?"approx ":"net ")+"volume "+
a+" A^3"),this.showString(k)}return!0});e(c$,"cgo",function(){var a=this.e;a.sm.loadShape(23);if(1073742001==this.tokAt(1)&&this.listIsosurface(23))return!1;for(var b=0,c=null!=this.initIsosurface(23),d=c&&null==this.getShapeProperty(23,"ID"),f=!1,h=null,g=3.4028235E38,e=[-2147483648],l=0,k=a.iToken;k<this.slen;++k){var p=null,v=null,q=this.getToken(k).tok;switch(q){case 269484096:case 1073742195:case 7:(null!=h||d)&&this.invArg();p=269484096==q?k+1:k+2;if(a.optParameterAsString(p).toUpperCase().equals("BEGIN"))for(h=
Array(1);p<this.slen;p++)269484097!=this.tokAt(p)&&!this.isFloatParameter(p)&&(h[0]=this.getToken(p).value.toString(),a.getShapePropertyData(23,"key",h)?this.st[p]=JS.SV.newI(h[0].intValue()):JU.Logger.error("CGO unknown: "+this.st[p].value));h=a.listParameter(k,2,2147483647);k=a.iToken;continue;case 1073742138:++k>=this.slen&&this.error(34);switch(this.getToken(k).tok){case 2:l=this.intParameter(k);continue;case 3:l=Math.round(100*this.floatParameter(k));continue}this.error(34);break;case 1766856708:case 603979967:case 1073742074:g=
this.getColorTrans(a,k,!1,e);k=a.iToken;c=!0;continue;case 1074790550:this.setShapeId(23,++k,c);d=null==this.getShapeProperty(23,"ID");k=a.iToken;break;default:if(!a.setMeshDisplayProperty(23,0,a.theTok)){if(269484209==a.theTok||JS.T.tokAttr(a.theTok,1073741824)){this.setShapeId(23,k,c);k=a.iToken;break}this.invArg()}0==b&&(b=k);k=a.iToken;continue}c=12291!=a.theTok;null!=h&&!f&&(p="points",v=Integer.$valueOf(l),f=!0,l=0);null!=p&&this.setShapeProperty(23,p,v)}this.finalizeObject(23,e[0],g,l,null!=
h,h,b,null);return!0});e(c$,"getAtomicPotentials",function(a,b,c){var d=A(this.vwr.ms.ac,0),f=J.api.Interface.getOption("quantum.MlpCalculation",this.vwr,"script");f.set(this.vwr);c=null==c?null:this.vwr.getFileAsString3(c,!1,null);f.assignPotentials(this.vwr.ms.at,d,this.vwr.getSmartsMatch("a",a),this.vwr.getSmartsMatch("/noAromatic/[$(C=O),$(O=C),$(NC=O)]",a),b,c);return d},"JU.BS,JU.BS,~S");e(c$,"getCapSlabObject",function(a,b){if(0>a)return JU.TempArray.getSlabWithinRange(a,0);var c=this.e,d=
null,f=554176565==this.tokAt(a),h=this.tokAt(a+1),g=null,e=g=null,l=null,k=null;if(603979967==h)switch(l=this.isFloatParameter(++a+1)?this.floatParameter(++a):0.5,c.isColorParam(a+1)?(l=Short.$valueOf(JU.C.getColixTranslucent3(JU.C.getColix(c.getArgbParam(a+1)),0!=l,l)),a=c.iToken):l=Short.$valueOf(JU.C.getColixTranslucent3(1,0!=l,l)),h=this.tokAt(a+1)){case 1073742018:case 1073741938:k=Integer.$valueOf(h);h=this.tokAt(++a+1);break;default:k=Integer.$valueOf(1073741938)}switch(h){case 1048588:return c.iToken=
a+1,Integer.$valueOf(-2147483648);case 1048587:c.iToken=a+1;break;case 1048582:a++;d=[Float.$valueOf(1),this.paramAsStr(++a)];h=1073742018;break;case 135266325:a++;if(1073742114==this.tokAt(++a))d=this.floatParameter(++a),h=this.floatParameter(++a),d=[Float.$valueOf(d),Float.$valueOf(h)],h=1073742114;else if(this.isFloatParameter(a)){d=this.floatParameter(a);if(c.isCenterParameter(++a))if(g=this.centerParameter(a),this.chk||!U(c.expressionResult,JU.BS))g=[g];else for(var p=this.vwr.ms.at,e=c.expressionResult,
g=Array(e.cardinality()),v=0,q=e.nextSetBit(0);0<=q;q=e.nextSetBit(q+1),v++)g[v]=p[q];else g=c.getPointArray(a,-1,!1);0==g.length&&(c.iToken=a,this.invArg());d=[Float.$valueOf(d),g,e]}else d=c.getPointArray(a,4,!1),h=1679429641;break;case 1679429641:c.iToken=a+1;d=JU.BoxInfo.getCriticalPoints(this.vwr.ms.getBBoxVertices(),null);break;case 1073741872:case 1614417948:c.iToken=a+1;c=this.vwr.getCurrentUnitCell();if(null==c)1614417948==h&&this.invArg();else{g=JU.BoxInfo.getCriticalPoints(c.getUnitCellVertices(),
c.getCartesianOffset());c=u(c.getUnitCellInfoType(6));d=e=null;switch(c){case 1:d=JU.V3.newVsub(g[2],g[0]),d.scale(1E3);case 2:e=JU.V3.newVsub(g[1],g[0]),e.scale(1E3),g[0].sub(e),g[1].scale(2E3),1==c&&(g[0].sub(d),g[2].scale(2E3))}d=g}break;case 10:case 1048577:if(d=this.atomExpressionAt(a+1),h=3,!c.isCenterParameter(++c.iToken)){f=!0;break}default:if(!b&&f&&this.isFloatParameter(a+1)){d=this.floatParameter(++a);if(!this.isFloatParameter(a+1))return Integer.$valueOf(u(d));h=this.floatParameter(++a);
d=[Float.$valueOf(d),Float.$valueOf(h)];h=1073742114;break}g=c.planeParameter(++a);h=this.isFloatParameter(c.iToken+1)?this.floatParameter(++c.iToken):NaN;Float.isNaN(h)||(g.w-=h);d=g;h=135266319}return JU.TempArray.getSlabObjectType(h,d,!f,null==k?null:[k,l])},"~N,~B");e(c$,"setColorOptions",function(a,b,c,d){var f=this.e;this.getToken(b);var h="opaque";if(603979967==f.theTok)if(h="translucent",0>d){var g=this.isFloatParameter(b+1)?this.floatParameter(++b):3.4028235E38;f.setShapeTranslucency(c,null,
"translucent",g,null);null!=a&&(a.append(" translucent"),3.4028235E38!=g&&a.append(" ").appendF(g))}else f.setMeshDisplayProperty(c,b,f.theTok);else 1073742074==f.theTok?0<=d&&f.setMeshDisplayProperty(c,b,f.theTok):f.iToken--;d=Math.abs(d);for(g=0;g<d;g++)if(f.isColorParam(f.iToken+1)){var e=f.getArgbParam(++f.iToken);this.setShapeProperty(c,"colorRGB",Integer.$valueOf(e));null!=a&&a.append(" ").append(JU.Escape.escapeColor(e))}else if(f.iToken<b)this.invArg();else break;return h},"JU.SB,~N,~N,~N");
e(c$,"createFunction",function(a,b,c){var d=(new JS.ScriptEval).setViewer(this.vwr);try{d.compileScript(null,"function "+a+"("+b+") { return "+c+"}",!1);var f=new JU.Lst;for(a=0;a<b.length;a+=2)f.addLast(JS.SV.newV(3,Float.$valueOf(0)).setName(b.substring(a,a+1)));return[d.aatoken[0][1].value,f]}catch(h){if(T(h,Exception))return null;throw h;}},"~S,~S,~S");e(c$,"getWithinDistanceVector",function(a,b,c,d,f){var h=new JU.Lst,g=Array(2);if(null==d){var e=JU.P3.new3(b,b,b),l=JU.P3.newP(c);l.sub(e);e.add(c);
g[0]=l;g[1]=e;h.addLast(c)}else c=this.vwr.ms.getBoxInfo(d,-Math.abs(b)),g[0]=c.getBoundBoxVertices()[0],g[1]=c.getBoundBoxVertices()[7],1==d.cardinality()&&h.addLast(this.vwr.ms.at[d.nextSetBit(0)]);1==h.size()&&!f&&(this.addShapeProperty(a,"withinDistance",Float.$valueOf(b)),this.addShapeProperty(a,"withinPoint",h.get(0)));this.addShapeProperty(a,f?"displayWithin":"withinPoints",[Float.$valueOf(b),g,d,h])},"JU.Lst,~N,JU.P3,JU.BS,~B");e(c$,"addShapeProperty",function(a,b,c){this.chk||a.addLast([b,
c])},"JU.Lst,~S,~O");e(c$,"floatArraySetXYZ",function(a,b,c,d){var f=this.e,h=this.tokAt(a++);1073742195==h&&(h=this.tokAt(a++));(269484096!=h||0>=b)&&this.invArg();for(var g=JU.AU.newFloat3(b,-1),e=0;269484097!=h;)switch(h=this.getToken(a).tok,h){case 1073742195:case 269484097:continue;case 269484080:a++;break;case 269484096:g[e++]=this.floatArraySet(a,c,d);a=++f.iToken;h=0;e==b&&269484097!=this.tokAt(a)&&this.invArg();break;default:this.invArg()}return g},"~N,~N,~N,~N");e(c$,"floatArraySet",function(a,
b,c){var d=this.tokAt(a++);1073742195==d&&(d=this.tokAt(a++));269484096!=d&&this.invArg();for(var f=JU.AU.newFloat2(b),h=0;269484097!=d;)switch(d=this.getToken(a).tok,d){case 1073742195:case 269484097:continue;case 269484080:a++;break;case 269484096:a++;d=A(c,0);f[h++]=d;for(var g=0;g<c;g++)d[g]=this.floatParameter(a++),269484080==this.tokAt(a)&&a++;269484097!=this.tokAt(a++)&&this.invArg();d=0;h==b&&269484097!=this.tokAt(a)&&this.invArg();break;default:this.invArg()}return f},"~N,~N,~N");e(c$,"initIsosurface",
function(a){var b=this.e;this.setShapeProperty(a,"init",b.fullCommand);b.iToken=0;var c=this.tokAt(1),d=this.tokAt(2);if(12291==c||12291==d&&1048579==this.tokAt(++b.iToken))return this.setShapeProperty(a,"delete",null),b.iToken+=2,this.slen>b.iToken&&(this.setShapeProperty(a,"init",b.fullCommand),this.setShapeProperty(a,"thisID","+PREVIOUS_MESH+")),null;b.iToken=1;return!b.setMeshDisplayProperty(a,0,c)&&(this.setShapeProperty(a,"thisID","+PREVIOUS_MESH+"),22!=a&&this.setShapeProperty(a,"title",[b.thisCommand]),
1074790550!=c&&(269484209==d||269484209==c&&b.setMeshDisplayProperty(a,0,d)))?(a=this.setShapeId(a,1,!1),b.iToken++,a):null},"~N");e(c$,"getPoint4f",function(a){return this.e.getPoint4f(a)},"~N")});H("JU");ta(JU,"Triangulator");H("JU");K(["JU.Triangulator","JU.P3i"],"JU.TriangleData",["JU.AU","$.BS","$.P3","JU.BSUtil"],function(){c$=wa(JU,"TriangleData",null,JU.Triangulator);m(c$,"intersectPlane",function(a,b,c){if(null==a)return b.addLast(JU.TriangleData.fullCubePolygon),b;var d=b.get(0);0!=c&&b.clear();
for(var f=A(8,0),h=Array(12),g=0,e=0;8>e;e++)f[e]=a.x*d[e].x+a.y*d[e].y+a.z*d[e].z+a.w,0>f[e]&&(g|=JU.TriangleData.Pwr2[e]);a=JU.TriangleData.triangleTable2[g];if(null==a)return null;for(e=0;24>e;e+=2){var g=JU.TriangleData.edgeVertexes[e],l=JU.TriangleData.edgeVertexes[e+1],k=JU.P3.newP(d[l]);k.sub(d[g]);k.scale(f[g]/(f[g]-f[l]));k.add(d[g]);h[e>>1]=k}if(0==c){c=new JU.BS;b.clear();for(e=0;e<a.length;e++)c.set(a[e]),2==e%4&&e++;e=JU.BSUtil.cardinalityOf(c);f=Array(e);b.addLast(f);d=G(12,0);for(e=
g=0;e<a.length;e++)l=a[e],c.get(l)&&(c.clear(l),f[g]=h[l],d[l]=g++),2==e%4&&e++;h=JU.AU.newInt2(a.length>>2);b.addLast(h);for(e=0;e<a.length;e++)h[e>>2]=[d[a[e++]],d[a[e++]],d[a[e++]],a[e]];return b}for(e=0;e<a.length;e++)d=h[a[e++]],f=h[a[e++]],g=h[a[e++]],1==(c&1)&&b.addLast([d,f,g]),2==(c&2)&&(l=a[e],1==(l&1)&&b.addLast([d,f]),2==(l&2)&&b.addLast([f,g]),4==(l&4)&&b.addLast([d,g]));return b},"JU.P4,JU.Lst,~N");Z(c$,"Pwr2",[1,2,4,8,16,32,64,128,256,512,1024,2048],"fullCubePolygon",[[0,4,5,3],[5,
1,0,3],[1,5,6,2],[6,2,1,3],[2,6,7,2],[7,3,2,3],[3,7,4,2],[4,0,3,2],[6,5,4,0],[4,7,6,0],[0,1,2,0],[2,3,0,0]]);c$.cubeVertexOffsets=c$.prototype.cubeVertexOffsets=[JU.P3i.new3(0,0,0),JU.P3i.new3(1,0,0),JU.P3i.new3(1,0,1),JU.P3i.new3(0,0,1),JU.P3i.new3(0,1,0),JU.P3i.new3(1,1,0),JU.P3i.new3(1,1,1),JU.P3i.new3(0,1,1)];Z(c$,"edgeVertexes",[0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7],"triangleTable2",[null,[0,8,3,7],[0,1,9,7],[1,8,3,6,9,8,1,5],[1,2,10,7],[0,8,3,7,1,2,10,7],[9,2,10,6,0,2,9,5],[2,8,3,
6,2,10,8,1,10,9,8,3],[3,11,2,7],[0,11,2,6,8,11,0,5],[1,9,0,7,2,3,11,7],[1,11,2,6,1,9,11,1,9,8,11,3],[3,10,1,6,11,10,3,5],[0,10,1,6,0,8,10,1,8,11,10,3],[3,9,0,6,3,11,9,1,11,10,9,3],[9,8,10,5,10,8,11,6],[4,7,8,7],[4,3,0,6,7,3,4,5],[0,1,9,7,8,4,7,7],[4,1,9,6,4,7,1,1,7,3,1,3],[1,2,10,7,8,4,7,7],[3,4,7,6,3,0,4,3,1,2,10,7],[9,2,10,6,9,0,2,3,8,4,7,7],[2,10,9,3,2,9,7,0,2,7,3,6,7,9,4,6],[8,4,7,7,3,11,2,7],[11,4,7,6,11,2,4,1,2,0,4,3],[9,0,1,7,8,4,7,7,2,3,11,7],[4,7,11,3,9,4,11,1,9,11,2,2,9,2,1,6],[3,10,1,6,
3,11,10,3,7,8,4,7],[1,11,10,6,1,4,11,0,1,0,4,3,7,11,4,5],[4,7,8,7,9,0,11,1,9,11,10,6,11,0,3,6],[4,7,11,3,4,11,9,4,9,11,10,6],[9,5,4,7],[9,5,4,7,0,8,3,7],[0,5,4,6,1,5,0,5],[8,5,4,6,8,3,5,1,3,1,5,3],[1,2,10,7,9,5,4,7],[3,0,8,7,1,2,10,7,4,9,5,7],[5,2,10,6,5,4,2,1,4,0,2,3],[2,10,5,3,3,2,5,1,3,5,4,2,3,4,8,6],[9,5,4,7,2,3,11,7],[0,11,2,6,0,8,11,3,4,9,5,7],[0,5,4,6,0,1,5,3,2,3,11,7],[2,1,5,3,2,5,8,0,2,8,11,6,4,8,5,5],[10,3,11,6,10,1,3,3,9,5,4,7],[4,9,5,7,0,8,1,5,8,10,1,2,8,11,10,3],[5,4,0,3,5,0,11,0,5,11,
10,6,11,0,3,6],[5,4,8,3,5,8,10,4,10,8,11,6],[9,7,8,6,5,7,9,5],[9,3,0,6,9,5,3,1,5,7,3,3],[0,7,8,6,0,1,7,1,1,5,7,3],[1,5,3,5,3,5,7,6],[9,7,8,6,9,5,7,3,10,1,2,7],[10,1,2,7,9,5,0,5,5,3,0,2,5,7,3,3],[8,0,2,3,8,2,5,0,8,5,7,6,10,5,2,5],[2,10,5,3,2,5,3,4,3,5,7,6],[7,9,5,6,7,8,9,3,3,11,2,7],[9,5,7,3,9,7,2,0,9,2,0,6,2,7,11,6],[2,3,11,7,0,1,8,5,1,7,8,2,1,5,7,3],[11,2,1,3,11,1,7,4,7,1,5,6],[9,5,8,5,8,5,7,6,10,1,3,3,10,3,11,6],[5,7,0,1,5,0,9,6,7,11,0,1,1,0,10,5,11,10,0,1],[11,10,0,1,11,0,3,6,10,5,0,1,8,0,7,5,
5,7,0,1],[11,10,5,3,7,11,5,5],[10,6,5,7],[0,8,3,7,5,10,6,7],[9,0,1,7,5,10,6,7],[1,8,3,6,1,9,8,3,5,10,6,7],[1,6,5,6,2,6,1,5],[1,6,5,6,1,2,6,3,3,0,8,7],[9,6,5,6,9,0,6,1,0,2,6,3],[5,9,8,3,5,8,2,0,5,2,6,6,3,2,8,5],[2,3,11,7,10,6,5,7],[11,0,8,6,11,2,0,3,10,6,5,7],[0,1,9,7,2,3,11,7,5,10,6,7],[5,10,6,7,1,9,2,5,9,11,2,2,9,8,11,3],[6,3,11,6,6,5,3,1,5,1,3,3],[0,8,11,3,0,11,5,0,0,5,1,6,5,11,6,6],[3,11,6,3,0,3,6,1,0,6,5,2,0,5,9,6],[6,5,9,3,6,9,11,4,11,9,8,6],[5,10,6,7,4,7,8,7],[4,3,0,6,4,7,3,3,6,5,10,7],[1,9,
0,7,5,10,6,7,8,4,7,7],[10,6,5,7,1,9,7,1,1,7,3,6,7,9,4,6],[6,1,2,6,6,5,1,3,4,7,8,7],[1,2,5,5,5,2,6,6,3,0,4,3,3,4,7,6],[8,4,7,7,9,0,5,5,0,6,5,2,0,2,6,3],[7,3,9,1,7,9,4,6,3,2,9,1,5,9,6,5,2,6,9,1],[3,11,2,7,7,8,4,7,10,6,5,7],[5,10,6,7,4,7,2,1,4,2,0,6,2,7,11,6],[0,1,9,7,4,7,8,7,2,3,11,7,5,10,6,7],[9,2,1,6,9,11,2,2,9,4,11,1,7,11,4,5,5,10,6,7],[8,4,7,7,3,11,5,1,3,5,1,6,5,11,6,6],[5,1,11,1,5,11,6,6,1,0,11,1,7,11,4,5,0,4,11,1],[0,5,9,6,0,6,5,2,0,3,6,1,11,6,3,5,8,4,7,7],[6,5,9,3,6,9,11,4,4,7,9,5,7,11,9,1],
[10,4,9,6,6,4,10,5],[4,10,6,6,4,9,10,3,0,8,3,7],[10,0,1,6,10,6,0,1,6,4,0,3],[8,3,1,3,8,1,6,0,8,6,4,6,6,1,10,6],[1,4,9,6,1,2,4,1,2,6,4,3],[3,0,8,7,1,2,9,5,2,4,9,2,2,6,4,3],[0,2,4,5,4,2,6,6],[8,3,2,3,8,2,4,4,4,2,6,6],[10,4,9,6,10,6,4,3,11,2,3,7],[0,8,2,5,2,8,11,6,4,9,10,3,4,10,6,6],[3,11,2,7,0,1,6,1,0,6,4,6,6,1,10,6],[6,4,1,1,6,1,10,6,4,8,1,1,2,1,11,5,8,11,1,1],[9,6,4,6,9,3,6,0,9,1,3,3,11,6,3,5],[8,11,1,1,8,1,0,6,11,6,1,1,9,1,4,5,6,4,1,1],[3,11,6,3,3,6,0,4,0,6,4,6],[6,4,8,3,11,6,8,5],[7,10,6,6,7,8,
10,1,8,9,10,3],[0,7,3,6,0,10,7,0,0,9,10,3,6,7,10,5],[10,6,7,3,1,10,7,1,1,7,8,2,1,8,0,6],[10,6,7,3,10,7,1,4,1,7,3,6],[1,2,6,3,1,6,8,0,1,8,9,6,8,6,7,6],[2,6,9,1,2,9,1,6,6,7,9,1,0,9,3,5,7,3,9,1],[7,8,0,3,7,0,6,4,6,0,2,6],[7,3,2,3,6,7,2,5],[2,3,11,7,10,6,8,1,10,8,9,6,8,6,7,6],[2,0,7,1,2,7,11,6,0,9,7,1,6,7,10,5,9,10,7,1],[1,8,0,6,1,7,8,2,1,10,7,1,6,7,10,5,2,3,11,7],[11,2,1,3,11,1,7,4,10,6,1,5,6,7,1,1],[8,9,6,1,8,6,7,6,9,1,6,1,11,6,3,5,1,3,6,1],[0,9,1,7,11,6,7,7],[7,8,0,3,7,0,6,4,3,11,0,5,11,6,0,1],[7,
11,6,7],[7,6,11,7],[3,0,8,7,11,7,6,7],[0,1,9,7,11,7,6,7],[8,1,9,6,8,3,1,3,11,7,6,7],[10,1,2,7,6,11,7,7],[1,2,10,7,3,0,8,7,6,11,7,7],[2,9,0,6,2,10,9,3,6,11,7,7],[6,11,7,7,2,10,3,5,10,8,3,2,10,9,8,3],[7,2,3,6,6,2,7,5],[7,0,8,6,7,6,0,1,6,2,0,3],[2,7,6,6,2,3,7,3,0,1,9,7],[1,6,2,6,1,8,6,0,1,9,8,3,8,7,6,3],[10,7,6,6,10,1,7,1,1,3,7,3],[10,7,6,6,1,7,10,4,1,8,7,2,1,0,8,3],[0,3,7,3,0,7,10,0,0,10,9,6,6,10,7,5],[7,6,10,3,7,10,8,4,8,10,9,6],[6,8,4,6,11,8,6,5],[3,6,11,6,3,0,6,1,0,4,6,3],[8,6,11,6,8,4,6,3,9,0,1,
7],[9,4,6,3,9,6,3,0,9,3,1,6,11,3,6,5],[6,8,4,6,6,11,8,3,2,10,1,7],[1,2,10,7,3,0,11,5,0,6,11,2,0,4,6,3],[4,11,8,6,4,6,11,3,0,2,9,5,2,10,9,3],[10,9,3,1,10,3,2,6,9,4,3,1,11,3,6,5,4,6,3,1],[8,2,3,6,8,4,2,1,4,6,2,3],[0,4,2,5,4,6,2,3],[1,9,0,7,2,3,4,1,2,4,6,6,4,3,8,6],[1,9,4,3,1,4,2,4,2,4,6,6],[8,1,3,6,8,6,1,0,8,4,6,3,6,10,1,3],[10,1,0,3,10,0,6,4,6,0,4,6],[4,6,3,1,4,3,8,6,6,10,3,1,0,3,9,5,10,9,3,1],[10,9,4,3,6,10,4,5],[4,9,5,7,7,6,11,7],[0,8,3,7,4,9,5,7,11,7,6,7],[5,0,1,6,5,4,0,3,7,6,11,7],[11,7,6,7,8,
3,4,5,3,5,4,2,3,1,5,3],[9,5,4,7,10,1,2,7,7,6,11,7],[6,11,7,7,1,2,10,7,0,8,3,7,4,9,5,7],[7,6,11,7,5,4,10,5,4,2,10,2,4,0,2,3],[3,4,8,6,3,5,4,2,3,2,5,1,10,5,2,5,11,7,6,7],[7,2,3,6,7,6,2,3,5,4,9,7],[9,5,4,7,0,8,6,1,0,6,2,6,6,8,7,6],[3,6,2,6,3,7,6,3,1,5,0,5,5,4,0,3],[6,2,8,1,6,8,7,6,2,1,8,1,4,8,5,5,1,5,8,1],[9,5,4,7,10,1,6,5,1,7,6,2,1,3,7,3],[1,6,10,6,1,7,6,2,1,0,7,1,8,7,0,5,9,5,4,7],[4,0,10,1,4,10,5,6,0,3,10,1,6,10,7,5,3,7,10,1],[7,6,10,3,7,10,8,4,5,4,10,5,4,8,10,1],[6,9,5,6,6,11,9,1,11,8,9,3],[3,6,11,
6,0,6,3,4,0,5,6,2,0,9,5,3],[0,11,8,6,0,5,11,0,0,1,5,3,5,6,11,3],[6,11,3,3,6,3,5,4,5,3,1,6],[1,2,10,7,9,5,11,1,9,11,8,6,11,5,6,6],[0,11,3,6,0,6,11,2,0,9,6,1,5,6,9,5,1,2,10,7],[11,8,5,1,11,5,6,6,8,0,5,1,10,5,2,5,0,2,5,1],[6,11,3,3,6,3,5,4,2,10,3,5,10,5,3,1],[5,8,9,6,5,2,8,0,5,6,2,3,3,8,2,5],[9,5,6,3,9,6,0,4,0,6,2,6],[1,5,8,1,1,8,0,6,5,6,8,1,3,8,2,5,6,2,8,1],[1,5,6,3,2,1,6,5],[1,3,6,1,1,6,10,6,3,8,6,1,5,6,9,5,8,9,6,1],[10,1,0,3,10,0,6,4,9,5,0,5,5,6,0,1],[0,3,8,7,5,6,10,7],[10,5,6,7],[11,5,10,6,7,5,11,
5],[11,5,10,6,11,7,5,3,8,3,0,7],[5,11,7,6,5,10,11,3,1,9,0,7],[10,7,5,6,10,11,7,3,9,8,1,5,8,3,1,3],[11,1,2,6,11,7,1,1,7,5,1,3],[0,8,3,7,1,2,7,1,1,7,5,6,7,2,11,6],[9,7,5,6,9,2,7,0,9,0,2,3,2,11,7,3],[7,5,2,1,7,2,11,6,5,9,2,1,3,2,8,5,9,8,2,1],[2,5,10,6,2,3,5,1,3,7,5,3],[8,2,0,6,8,5,2,0,8,7,5,3,10,2,5,5],[9,0,1,7,5,10,3,1,5,3,7,6,3,10,2,6],[9,8,2,1,9,2,1,6,8,7,2,1,10,2,5,5,7,5,2,1],[1,3,5,5,3,7,5,3],[0,8,7,3,0,7,1,4,1,7,5,6],[9,0,3,3,9,3,5,4,5,3,7,6],[9,8,7,3,5,9,7,5],[5,8,4,6,5,10,8,1,10,11,8,3],[5,0,
4,6,5,11,0,0,5,10,11,3,11,3,0,3],[0,1,9,7,8,4,10,1,8,10,11,6,10,4,5,6],[10,11,4,1,10,4,5,6,11,3,4,1,9,4,1,5,3,1,4,1],[2,5,1,6,2,8,5,0,2,11,8,3,4,5,8,5],[0,4,11,1,0,11,3,6,4,5,11,1,2,11,1,5,5,1,11,1],[0,2,5,1,0,5,9,6,2,11,5,1,4,5,8,5,11,8,5,1],[9,4,5,7,2,11,3,7],[2,5,10,6,3,5,2,4,3,4,5,2,3,8,4,3],[5,10,2,3,5,2,4,4,4,2,0,6],[3,10,2,6,3,5,10,2,3,8,5,1,4,5,8,5,0,1,9,7],[5,10,2,3,5,2,4,4,1,9,2,5,9,4,2,1],[8,4,5,3,8,5,3,4,3,5,1,6],[0,4,5,3,1,0,5,5],[8,4,5,3,8,5,3,4,9,0,5,5,0,3,5,1],[9,4,5,7],[4,11,7,6,
4,9,11,1,9,10,11,3],[0,8,3,7,4,9,7,5,9,11,7,2,9,10,11,3],[1,10,11,3,1,11,4,0,1,4,0,6,7,4,11,5],[3,1,4,1,3,4,8,6,1,10,4,1,7,4,11,5,10,11,4,1],[4,11,7,6,9,11,4,4,9,2,11,2,9,1,2,3],[9,7,4,6,9,11,7,2,9,1,11,1,2,11,1,5,0,8,3,7],[11,7,4,3,11,4,2,4,2,4,0,6],[11,7,4,3,11,4,2,4,8,3,4,5,3,2,4,1],[2,9,10,6,2,7,9,0,2,3,7,3,7,4,9,3],[9,10,7,1,9,7,4,6,10,2,7,1,8,7,0,5,2,0,7,1],[3,7,10,1,3,10,2,6,7,4,10,1,1,10,0,5,4,0,10,1],[1,10,2,7,8,7,4,7],[4,9,1,3,4,1,7,4,7,1,3,6],[4,9,1,3,4,1,7,4,0,8,1,5,8,7,1,1],[4,0,3,3,
7,4,3,5],[4,8,7,7],[9,10,8,5,10,11,8,3],[3,0,9,3,3,9,11,4,11,9,10,6],[0,1,10,3,0,10,8,4,8,10,11,6],[3,1,10,3,11,3,10,5],[1,2,11,3,1,11,9,4,9,11,8,6],[3,0,9,3,3,9,11,4,1,2,9,5,2,11,9,1],[0,2,11,3,8,0,11,5],[3,2,11,7],[2,3,8,3,2,8,10,4,10,8,9,6],[9,10,2,3,0,9,2,5],[2,3,8,3,2,8,10,4,0,1,8,5,1,10,8,1],[1,10,2,7],[1,3,8,3,9,1,8,5],[0,9,1,7],[0,3,8,7],null])});H("J.api");ta(J.api,"VolumeDataInterface");H("J.jvxl.api");ta(J.jvxl.api,"VertexDataServer");H("J.jvxl.api");K(["J.jvxl.api.VertexDataServer"],"J.jvxl.api.MeshDataServer",
null,function(){ta(J.jvxl.api,"MeshDataServer",J.jvxl.api.VertexDataServer)});H("J.shapesurface");K(["J.jvxl.api.MeshDataServer","J.shape.MeshCollection","JU.P3i","$.P4"],"J.shapesurface.Isosurface","java.io.BufferedReader java.lang.Boolean $.Float java.util.Hashtable JU.A4 $.AU $.BS $.CU $.Lst $.M3 $.P3 $.PT $.Quat $.Rdr $.SB $.V3 J.jvxl.data.JvxlCoder $.JvxlData $.MeshData J.jvxl.readers.SurfaceGenerator J.shape.Mesh J.shapesurface.IsosurfaceMesh JU.C $.Escape $.Logger $.TempArray JV.JC $.Viewer".split(" "),
function(){c$=O(function(){this.actualID=this.thisMesh=this.isomeshes=null;this.explicitContours=this.iHaveBitSets=!1;this.moNumber=this.atomIndex=0;this.moLinearCombination=null;this.meshColix=this.defaultColix=this.colorType=0;this.center=null;this.scale3d=0;this.isColorExplicit=this.isPhaseColored=!1;this.scriptAppendix="";this.jvxlData=this.sg=null;this.withinDistance2=0;this.isWithinNot=!1;this.cutoffRange=this.withinPoints=null;this.allowMesh=!0;this.script=null;this.iHaveModelIndex=!1;this.nLCAO=
0;this.lcaoDir=null;this.associateNormals=!1;this.keyXy=this.ptXY=null;M(this,arguments)},J.shapesurface,"Isosurface",J.shape.MeshCollection,J.jvxl.api.MeshDataServer);V(c$,function(){this.isomeshes=Array(4);this.lcaoDir=new JU.P4;this.ptXY=new JU.P3i});m(c$,"allocMesh",function(a,b){var c=this.meshCount++;this.meshes=this.isomeshes=JU.AU.ensureLength(this.isomeshes,2*this.meshCount);this.currentMesh=this.thisMesh=this.isomeshes[c]=null==b?new J.shapesurface.IsosurfaceMesh(this.vwr,a,this.colix,c):
b;this.currentMesh.index=c;null!=this.sg&&this.sg.setJvxlData(this.jvxlData=this.thisMesh.jvxlData)},"~S,J.shape.Mesh");e(c$,"initShape",function(){Wa(this,J.shapesurface.Isosurface,"initShape",[]);this.myType="isosurface";this.newSg()});e(c$,"newSg",function(){this.sg=new J.jvxl.readers.SurfaceGenerator(this.vwr,this,null,this.jvxlData=new J.jvxl.data.JvxlData);this.sg.params.showTiming=this.vwr.getBoolean(603979934);this.sg.version="Jmol "+JV.Viewer.getJmolVersion()});e(c$,"clearSg",function(){this.sg=
null});m(c$,"setProperty",function(a,b,c){this.setPropI(a,b,c)},"~S,~O,JU.BS");e(c$,"setPropI",function(a,b,c){if("cache"===a){if(null!=this.currentMesh){var d=this.currentMesh.thisID;c=this.currentMesh.modelIndex;this.vwr.cachePut("cache://isosurface_"+d,this.getPropI("jvxlDataXml"));this.deleteMeshI(this.currentMesh.index);this.setPropI("init",null,null);this.setPropI("thisID",d,null);this.setPropI("modelIndex",Integer.$valueOf(c),null);this.setPropI("fileName","cache://isosurface_"+d,null);this.setPropI("readFile",
null,null);this.setPropI("finalize","isosurface ID "+JU.PT.esc(d)+(0<=c?" modelIndex "+c:"")+" /*file*/"+JU.PT.esc("cache://isosurface_"+d),null);this.setPropI("clear",null,null)}}else if("delete"===a)this.setPropertySuper(a,b,c),this.explicitID||(this.nLCAO=this.nUnnamed=0),this.currentMesh=this.thisMesh=null;else if("remapInherited"===a)for(d=this.meshCount;0<=--d;)null!=this.isomeshes[d]&&"#inherit;".equals(this.isomeshes[d].colorCommand)&&this.isomeshes[d].remapColors(this.vwr,null,NaN);else if("remapColor"===
a)null!=this.thisMesh&&this.thisMesh.remapColors(this.vwr,b,this.translucentLevel);else if("thisID"===a)null!=this.actualID&&(b=this.actualID),this.setPropertySuper("thisID",b,null);else if("params"===a){if(null!=this.thisMesh){this.ensureMeshSource();this.thisMesh.checkAllocColixes();a=b[0];var f=null;if(null!=a){for(d=0;d<a.length;d++)a[d]=a[d];f=G(c.length(),0);b=0;for(d=c.nextSetBit(0);0<=d;d=c.nextSetBit(d+1),b++)f[d]=b}this.thisMesh.setVertexColixesForAtoms(this.vwr,a,f,c);this.thisMesh.setVertexColorMap()}}else if("atomcolor"===
a)null!=this.thisMesh&&(this.ensureMeshSource(),this.thisMesh.colorVertices(JU.C.getColixO(b),c,!0));else if("pointSize"===a)null!=this.thisMesh&&(this.thisMesh.volumeRenderPointSize=b.floatValue());else if("vertexcolor"===a)null!=this.thisMesh&&this.thisMesh.colorVertices(JU.C.getColixO(b),c,!1);else if("colorPhase"===a){d=b;c=JU.C.getColix(d[0].intValue());b=JU.C.getColix(d[1].intValue());d=null!=this.thisMesh?this.thisMesh.thisID:JU.PT.isWild(this.previousMeshID)?this.previousMeshID:null;f=this.getMeshList(d,
!1);for(d=f.size();0<=--d;)this.setColorPhase(f.get(d),c,b)}else if("color"===a){var h=JU.C.getHexCode(JU.C.getColixO(b));if(null!=this.thisMesh)this.setIsoMeshColor(this.thisMesh,h);else{f=this.getMeshList(JU.PT.isWild(this.previousMeshID)?this.previousMeshID:null,!1);for(d=f.size();0<=--d;)this.setIsoMeshColor(f.get(d),h)}this.setPropertySuper(a,b,c)}else if("nocontour"===a)null!=this.thisMesh&&this.thisMesh.deleteContours();else if("fixed"===a)this.isFixed=b.booleanValue(),this.setMeshI();else if("newObject"===
a)null!=this.thisMesh&&this.thisMesh.clearType(this.thisMesh.meshType,!1);else if("moveIsosurface"===a)null!=this.thisMesh&&(this.thisMesh.updateCoordinates(b,null),this.thisMesh.altVertices=null);else if("refreshTrajectories"===a)for(d=this.meshCount;0<=--d;)null!=this.meshes[d].connections&&this.meshes[d].modelIndex==b[0].intValue()&&this.meshes[d].updateCoordinates(b[2],b[1]);else if("modelIndex"===a)this.iHaveModelIndex||(this.modelIndex=b.intValue(),this.isFixed=0>this.modelIndex,this.sg.params.modelIndex=
Math.abs(this.modelIndex));else if("lcaoCartoon"===a||"lonePair"===a||"radical"===a)d=b,this.explicitID||this.setPropertySuper("thisID",null,null),this.sg.setProp("lcaoCartoonCenter",d[2],null)||this.drawLcaoCartoon(d[0],d[1],d[3],"lonePair"===a?2:"radical"===a?1:0);else if(!("select"===a&&this.iHaveBitSets||"ignore"===a&&this.iHaveBitSets))if("meshcolor"===a)d=b.intValue(),this.meshColix=JU.C.getColix(d),null!=this.thisMesh&&(this.thisMesh.meshColix=this.meshColix);else if("offset"===a)d=JU.P3.newP(b),
d.equals(JV.JC.center)&&(d=null),null!=this.thisMesh&&(this.thisMesh.rotateTranslate(null,d,!0),this.thisMesh.altVertices=null);else if("rotate"===a)null!=this.thisMesh&&(this.thisMesh.rotateTranslate(JU.Quat.newP4(b),null,!0),this.thisMesh.altVertices=null);else if("bsDisplay"===a)this.bsDisplay=b;else if("displayWithin"===a)d=b,this.displayWithinDistance2=d[0].floatValue(),this.isDisplayWithinNot=0>this.displayWithinDistance2,this.displayWithinDistance2*=this.displayWithinDistance2,this.displayWithinPoints=
d[3],0==this.displayWithinPoints.size()&&(this.displayWithinPoints=this.vwr.ms.getAtomPointVector(d[2]));else if("finalize"===a)null!=this.thisMesh&&(d=b,null!=d&&!d.startsWith("; isosurface map")&&(this.thisMesh.setDiscreteColixes(this.sg.params.contoursDiscrete,this.sg.params.contourColixes),this.setJvxlInfo()),this.setScriptInfo(d)),this.clearSg();else if("connections"===a)null!=this.currentMesh&&(this.connections=b,0<=this.connections[0]&&this.connections[0]<this.vwr.ms.ac?this.currentMesh.connections=
this.connections:this.connections=this.currentMesh.connections=null);else if("cutoffRange"===a)this.cutoffRange=b;else if("fixLattice"===a)null!=this.thisMesh&&this.thisMesh.fixLattice();else{if("slab"===a){if(U(b,Integer)){null!=this.thisMesh&&(this.thisMesh.jvxlData.slabValue=b.intValue());return}if(null!=this.thisMesh){switch(b[0].intValue()){case 1073742018:d=b[1];c=this.getMesh(d[1]);if(null==c)return;d[1]=c}this.slabPolygons(b);return}}if("cap"===a&&null!=this.thisMesh&&0!=this.thisMesh.pc)this.thisMesh.getMeshSlicer().slabPolygons(b,
!0),this.thisMesh.initialize(this.thisMesh.lighting,null,null);else{if("map"===a&&(null!=this.sg&&(this.sg.params.isMapped=!0),this.setProperty("squareData",Boolean.FALSE,null),null==this.thisMesh||0==this.thisMesh.vc))return;if("deleteVdw"===a){for(d=this.meshCount;0<=--d;)null!=this.isomeshes[d].bsVdw&&(null==c||c.intersects(this.isomeshes[d].bsVdw))&&this.deleteMeshI(d);this.currentMesh=this.thisMesh=null}else{if("mapColor"===a||"readFile"===a){if(null==b){b=this.vwr.fm.getBufferedReaderOrErrorMessageFromName(this.sg.params.fileName,
null,!0,!0);if(U(b,String)){JU.Logger.error("Isosurface: could not open file "+this.sg.params.fileName+" -- "+b);return}if(!U(b,java.io.BufferedReader))try{b=JU.Rdr.getBufferedReader(b,"ISO-8859-1")}catch(g){if(!T(g,java.io.IOException))throw g;}}}else if("atomIndex"===a)this.atomIndex=b.intValue(),null!=this.thisMesh&&(this.thisMesh.atomIndex=this.atomIndex);else if("center"===a)this.center.setT(b);else if("colorRGB"===a)d=b.intValue(),1297090050==d?this.colorType=d:(this.colorType=0,this.defaultColix=
JU.C.getColix(d));else if("contour"===a)this.explicitContours=!0;else if("functionXY"===a)2==this.sg.params.state&&this.setScriptInfo(null);else if("init"===a)this.newSg();else if("getSurfaceSets"===a)null!=this.thisMesh&&(this.thisMesh.jvxlData.thisSet=b.intValue(),this.thisMesh.calculatedVolume=null,this.thisMesh.calculatedArea=null);else if("localName"===a)b=this.vwr.getOutputChannel(b,null),a="outputChannel";else if("molecularOrbital"===a)U(b,Integer)?(this.moNumber=b.intValue(),this.moLinearCombination=
null):(this.moLinearCombination=b,this.moNumber=0),this.isColorExplicit||(this.isPhaseColored=!0);else if("phase"===a)this.isPhaseColored=!0;else if("plane"!==a&&"pocket"!==a)if("scale3d"===a)this.scale3d=b.floatValue(),null!=this.thisMesh&&(this.thisMesh.scale3d=this.thisMesh.jvxlData.scale3d=this.scale3d,this.thisMesh.altVertices=null);else if("title"===a)U(b,String)&&"-".equals(b)&&(b=null),this.setPropertySuper(a,b,c),b=this.title;else if("withinPoints"===a)d=b,this.withinDistance2=d[0].floatValue(),
this.isWithinNot=0>this.withinDistance2,this.withinDistance2*=this.withinDistance2,this.withinPoints=d[3],0==this.withinPoints.size()&&(this.withinPoints=this.vwr.ms.getAtomPointVector(d[2]));else if(("nci"===a||"orbital"===a)&&null!=this.sg)this.sg.params.testFlags=this.vwr.getTestFlag(2)?2:0;if(null!=this.sg&&this.sg.setProp(a,b,c)){if(this.sg.isValid)return;a="delete"}if("init"===a)this.explicitID=!1,this.scriptAppendix="",d=U(b,String)?b:null,b=null==d?-1:d.indexOf("# ID="),this.actualID=0<=b?
JU.PT.getQuotedStringAt(d,b):null,this.setPropertySuper("thisID","+PREVIOUS_MESH+",null),null!=d&&!(this.iHaveBitSets=this.getScriptBitSets(d,null))&&this.sg.setProp("select",c,null),this.initializeIsosurface(),this.sg.params.modelIndex=this.isFixed?-1:this.modelIndex;else if("clear"===a)this.discardTempData(!0);else if("colorDensity"===a)null!=b&&null!=this.currentMesh&&(this.currentMesh.volumeRenderPointSize=b.floatValue());else if("deleteModelAtoms"===a){a=b[2][0];f=b[2][1];b=b[2][2];for(d=this.meshCount;0<=
--d;)c=this.meshes[d],null!=c&&(null!=c.connections&&(h=c.connections[0],h>=f+b?c.connections[0]=h-b:h>=f&&(c.connections=null)),c.connections=null,c.modelIndex==a?(this.meshCount--,c===this.currentMesh&&(this.currentMesh=this.thisMesh=null),this.meshes=this.isomeshes=JU.AU.deleteElements(this.meshes,d,1)):c.modelIndex>a&&(c.modelIndex--,c.atomIndex>=f&&(c.atomIndex-=b)))}else this.setPropertySuper(a,b,c)}}}},"~S,~O,JU.BS");e(c$,"setIsoMeshColor",function(a,b){a.jvxlData.baseColor=b;a.isColorSolid=
!0;a.pcs=null;a.colorsExplicit=!1;a.colorEncoder=null;a.vertexColorMap=null},"J.shapesurface.IsosurfaceMesh,~S");e(c$,"setColorPhase",function(a,b,c){a.colorPhased=!0;a.colix=a.jvxlData.minColorIndex=b;a.jvxlData.maxColorIndex=c;a.jvxlData.isBicolorMap=!0;a.jvxlData.colorDensity=!1;a.isColorSolid=!1;a.remapColors(this.vwr,null,this.translucentLevel)},"J.shapesurface.IsosurfaceMesh,~N,~N");e(c$,"ensureMeshSource",function(){var a=null!=this.thisMesh.vertexSource;if(a)for(var b=this.thisMesh.vc;0<=
--b;)if(0>this.thisMesh.vertexSource[b]){a=!1;break}if(!a){var a=this.thisMesh.vertexSource,c=this.thisMesh.vcs,b=this.thisMesh.isColorSolid?this.thisMesh.colix:0;this.setProperty("init",null,null);this.setProperty("map",Boolean.FALSE,null);this.setProperty("property",A(this.vwr.ms.ac,0),null);0!=b&&(this.thisMesh.colorCommand="color isosurface "+JU.C.getHexCode(b),this.setProperty("color",Integer.$valueOf(JU.C.getArgb(b)),null));if(null!=a){for(b=this.thisMesh.vc;0<=--b;)0>a[b]&&(a[b]=this.thisMesh.vertexSource[b]);
this.thisMesh.vertexSource=a;this.thisMesh.vcs=c}}});e(c$,"slabPolygons",function(a){this.thisMesh.getMeshSlicer().slabPolygons(a,!1);this.thisMesh.reinitializeLightingAndColor(this.vwr)},"~A");e(c$,"setPropertySuper",function(a,b,c){"thisID"===a&&null!=this.currentMesh&&null!=this.currentMesh.thisID&&this.currentMesh.thisID.equals(b)?this.checkExplicit(b):(this.currentMesh=this.thisMesh,this.setPropMC(a,b,c),this.thisMesh=this.currentMesh,this.jvxlData=null==this.thisMesh?null:this.thisMesh.jvxlData,
null!=this.sg&&this.sg.setJvxlData(this.jvxlData))},"~S,~O,JU.BS");m(c$,"getPropertyData",function(a,b){if("colorEncoder"===a){var c=this.getMesh(b[0]);return null==c||null==(b[1]=c.colorEncoder)?!1:!0}if("intersectPlane"===a){c=this.getMesh(b[0]);if(null==c)return!1;b[3]=Integer.$valueOf(c.modelIndex);c.getMeshSlicer().getIntersection(0,b[1],null,b[2],null,null,null,!1,!1,135266319,!1);return!0}if("getBoundingBox"===a){c=b[0];c=this.getMesh(c);if(null==c||null==c.vs)return!1;b[2]=c.jvxlData.boundingBox;
if(null!=c.mat4){var d=Array(2);d[0]=JU.P3.newP(c.jvxlData.boundingBox[0]);d[1]=JU.P3.newP(c.jvxlData.boundingBox[1]);var f=new JU.V3;c.mat4.getTranslation(f);d[0].add(f);d[1].add(f);b[2]=d}return!0}if("unitCell"===a)return c=this.getMesh(b[0]),null!=c&&null!=(b[1]=c.getUnitCell());if("getCenter"===a&&-2147483648==b[1].intValue()){c=b[0];c=this.getMesh(c);if(null==c||null==c.vs)return!1;d=JU.P3.newP(c.jvxlData.boundingBox[0]);d.add(c.jvxlData.boundingBox[1]);d.scale(0.5);null!=c.mat4&&(f=new JU.V3,
c.mat4.getTranslation(f),d.add(f));b[2]=d;return!0}return this.getPropDataMC(a,b)},"~S,~A");m(c$,"getProperty",function(a){return this.getPropI(a)},"~S,~N");e(c$,"getPropI",function(a){var b=this.getPropMC(a);if(null!=b)return b;if("message"===a)return a="",24==this.shapeID&&(a+=" with cutoff="+this.jvxlData.cutoff),3.4028235E38!=this.jvxlData.dataMin&&(a+=" min="+this.jvxlData.dataMin+" max="+this.jvxlData.dataMax),a+="; "+JV.JC.shapeClassBases[this.shapeID].toLowerCase()+" count: "+this.getPropMC("count"),
a+this.getPropI("dataRangeStr")+this.jvxlData.msg;if("dataRange"===a)return this.getDataRange();if("dataRangeStr"===a)return a=this.getDataRange(),null!=a&&3.4028235E38!=a[0]&&a[0]!=a[1]?"\nisosurface full data range "+a[0]+" to "+a[1]+" with color scheme spanning "+a[2]+" to "+a[3]:"";if("moNumber"===a)return Integer.$valueOf(this.moNumber);if("moLinearCombination"===a)return this.moLinearCombination;if("nSets"===a)return Integer.$valueOf(null==this.thisMesh?0:this.thisMesh.nSets);if("area"===a)return null==
this.thisMesh?Float.$valueOf(NaN):this.calculateVolumeOrArea(!0);if("volume"===a)return null==this.thisMesh?Float.$valueOf(NaN):this.calculateVolumeOrArea(!1);if(null==this.thisMesh)return null;if("cutoff"===a)return Float.$valueOf(this.jvxlData.cutoff);if("minMaxInfo"===a)return[this.jvxlData.dataMin,this.jvxlData.dataMax];if("plane"===a)return this.jvxlData.jvxlPlane;if("contours"===a)return this.thisMesh.getContours();if("jvxlDataXml"===a||"jvxlMeshXml"===a)return b=null,this.jvxlData.slabInfo=
null,"jvxlMeshXml"===a||this.jvxlData.vertexDataOnly||null!=this.thisMesh.bsSlabDisplay&&null==this.thisMesh.bsSlabGhost?(b=new J.jvxl.data.MeshData,this.fillMeshData(b,1,null),b.polygonColorData=J.shapesurface.Isosurface.getPolygonColorData(b.pc,b.pcs,b.colorsExplicit?b.pis:null,b.bsSlabDisplay)):null!=this.thisMesh.bsSlabGhost&&(this.jvxlData.slabInfo=this.thisMesh.slabOptions.toString()),a=new JU.SB,this.getMeshCommand(a,this.thisMesh.index),this.thisMesh.setJvxlColorMap(!0),J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData,
b,this.title,"",!0,1,a.toString(),null);if("jvxlFileInfo"===a)return this.thisMesh.setJvxlColorMap(!1),J.jvxl.data.JvxlCoder.jvxlGetInfo(this.jvxlData);if("command"===a){a=new JU.SB;for(b=this.getMeshList(this.previousMeshID,!1).size();0<=--b;)this.getMeshCommand(a,b);return a.toString()}return null},"~S");e(c$,"getDataRange",function(){return null==this.thisMesh||null!=this.jvxlData.jvxlPlane&&null==this.thisMesh.colorEncoder?null:[this.jvxlData.mappedDataMin,this.jvxlData.mappedDataMax,this.jvxlData.isColorReversed?
this.jvxlData.valueMappedToBlue:this.jvxlData.valueMappedToRed,this.jvxlData.isColorReversed?this.jvxlData.valueMappedToRed:this.jvxlData.valueMappedToBlue]});e(c$,"calculateVolumeOrArea",function(a){if(a){if(null!=this.thisMesh.calculatedArea)return this.thisMesh.calculatedArea}else if(null!=this.thisMesh.calculatedVolume)return this.thisMesh.calculatedVolume;var b=new J.jvxl.data.MeshData;this.fillMeshData(b,1,null);b.nSets=this.thisMesh.nSets;b.vertexSets=this.thisMesh.vertexSets;if(!a&&this.thisMesh.jvxlData.colorDensity)return a=
this.thisMesh.jvxlData.voxelVolume,a*=null==this.thisMesh.bsSlabDisplay?this.thisMesh.vc:this.thisMesh.bsSlabDisplay.cardinality(),this.thisMesh.calculatedVolume=Float.$valueOf(a);var c=J.jvxl.data.MeshData.calculateVolumeOrArea(b,this.thisMesh.jvxlData.thisSet,a,!1);0>=this.thisMesh.nSets&&(this.thisMesh.nSets=-b.nSets);a?this.thisMesh.calculatedArea=c:this.thisMesh.calculatedVolume=c;return c},"~B");c$.getPolygonColorData=e(c$,"getPolygonColorData",function(a,b,c,d){var f=null!=c;if(null==b&&null==
c)return null;for(var h=new JU.SB,g=0,e=0,l=0,k=0,p=!1,v=0;v<a||!0==(p=!0);v++)if(p||null==d||d.get(v))if(p||(f?(k=c[v][4])!=l:b[v]!=e)){0!=g&&h.append(" ").appendI(g).append(" ").appendI(f?l:0==e?0:JU.C.getArgb(e));if(p)break;f?l=k:e=b[v];g=1}else g++;h.append("\n");return h.toString()},"~N,~A,~A,JU.BS");m(c$,"getShapeState",function(){this.clean();var a=new JU.SB;a.append("\n");for(var b=0;b<this.meshCount;b++)this.getMeshCommand(a,b);return a.toString()});e(c$,"getMeshCommand",function(a,b){var c=
this.meshes[b];if(!(null==c||null==c.scriptCommand)){var d=c.scriptCommand;1<this.vwr.ms.mc&&J.shape.Shape.appendCmd(a,"frame "+this.vwr.getModelNumberDotted(c.modelIndex));var d=JU.PT.rep(d,";; isosurface map"," map"),d=JU.PT.rep(d,"; isosurface map"," map"),d=d.$replace("\t"," "),d=JU.PT.rep(d,";#","; #"),f=d.indexOf("; #");0<=f&&(d=d.substring(0,f));null!=c.connections&&(d+=" connect "+JU.Escape.eAI(c.connections));d=JU.PT.trim(d,";");null!=c.linkedMesh&&(d+=" LINK");"lcaoCartoon"===this.myType&&
0<=c.atomIndex&&(d+=" ATOMINDEX "+c.atomIndex);J.shape.Shape.appendCmd(a,d);f=this.myType+" ID "+JU.PT.esc(c.thisID);0<=c.jvxlData.thisSet&&J.shape.Shape.appendCmd(a,f+" set "+(c.jvxlData.thisSet+1));null!=c.mat4&&J.shape.Shape.appendCmd(a,f+" move "+JU.Escape.matrixToScript(c.mat4));0!=c.scale3d&&J.shape.Shape.appendCmd(a,f+" scale3d "+c.scale3d);-2147483648!=c.jvxlData.slabValue&&J.shape.Shape.appendCmd(a,f+" slab "+c.jvxlData.slabValue);null!=c.slabOptions&&J.shape.Shape.appendCmd(a,c.slabOptions.toString());
if("#"!=d.charAt(0)&&(this.allowMesh&&J.shape.Shape.appendCmd(a,c.getState(this.myType)),!c.isColorSolid&&(0==c.colorType&&JU.C.isColixTranslucent(c.colix))&&J.shape.Shape.appendCmd(a,"color "+this.myType+" "+J.shape.Shape.getTranslucentLabel(c.colix)),null!=c.colorCommand&&(0==c.colorType&&!c.colorCommand.equals("#inherit;"))&&J.shape.Shape.appendCmd(a,c.colorCommand),d=c.isColorSolid&&null!=c.pcs,c.isColorSolid&&0==c.colorType&&!c.colorsExplicit&&!d?J.shape.Shape.appendCmd(a,J.shape.Shape.getColorCommandUnk(this.myType,
c.colix,this.translucentAllowed)):c.jvxlData.isBicolorMap&&c.colorPhased&&J.shape.Shape.appendCmd(a,"color isosurface phase "+J.shape.Shape.encodeColor(c.jvxlData.minColorIndex)+" "+J.shape.Shape.encodeColor(c.jvxlData.maxColorIndex)),null!=c.vertexColorMap))for(var h,c=c.vertexColorMap.entrySet().iterator();c.hasNext()&&((h=c.next())||1);)d=h.getValue(),d.isEmpty()||J.shape.Shape.appendCmd(a,"color "+this.myType+" "+JU.Escape.eBS(d)+" "+h.getKey())}},"JU.SB,~N");e(c$,"getScriptBitSets",function(a,
b){this.script=a;var c;this.iHaveModelIndex=!1;this.modelIndex=-1;if(null!=a&&0<=(c=a.indexOf("MODEL({"))){var d=a.indexOf("})",c);0<d&&(c=JU.BS.unescape(a.substring(c+3,d+1)),this.modelIndex=null==c?-1:c.nextSetBit(0),this.iHaveModelIndex=0<=this.modelIndex)}if(null==a)return!1;this.getCapSlabInfo(a);c=a.indexOf("# ({");if(0>c)return!1;d=a.indexOf("})",c);if(0>d)return!1;c=JU.BS.unescape(a.substring(c+2,d+2));null==b?this.sg.setProp("select",c,null):b[0]=c;if(0>(c=a.indexOf("({",d)))return!0;d=a.indexOf("})",
c);if(0>d)return!1;c=JU.BS.unescape(a.substring(c+1,d+1));null==b?this.sg.setProp("ignore",c,null):b[1]=c;if((c=a.indexOf("/({",d))==d+2){if(0>(d=a.indexOf("})",c)))return!1;c=JU.BS.unescape(a.substring(c+3,d+1));null==b?this.vwr.ms.setTrajectoryBs(c):b[2]=c}return!0},"~S,~A");e(c$,"getCapSlabInfo",function(a){var b=a.indexOf("# SLAB=");0<=b&&this.sg.setProp("slab",this.getCapSlabObject(JU.PT.getQuotedStringAt(a,b),!1),null);b=a.indexOf("# CAP=");0<=b&&this.sg.setProp("slab",this.getCapSlabObject(JU.PT.getQuotedStringAt(a,
b),!0),null)},"~S");e(c$,"getCapSlabObject",function(a,b){try{if(0==a.indexOf("array")){var c=JU.PT.split(a.substring(6,a.length-1),",");return JU.TempArray.getSlabObjectType(1679429641,[JU.Escape.uP(c[0]),JU.Escape.uP(c[1]),JU.Escape.uP(c[2]),JU.Escape.uP(c[3])],b,null)}var d=JU.Escape.uP(a);if(U(d,JU.P4))return JU.TempArray.getSlabObjectType(135266319,d,b,null)}catch(f){if(!T(f,Exception))throw f;}return null},"~S,~B");e(c$,"initializeIsosurface",function(){this.iHaveModelIndex||(this.modelIndex=
this.vwr.am.cmi);this.atomIndex=-1;this.bsDisplay=null;this.center=JU.P3.new3(NaN,0,0);this.colix=5;this.cutoffRange=this.connections=null;this.colorType=this.defaultColix=this.meshColix=0;this.displayWithinPoints=null;this.explicitContours=!1;this.isFixed=0>this.modelIndex;this.isPhaseColored=this.isColorExplicit=!1;this.linkedMesh=null;0>this.modelIndex&&(this.modelIndex=0);this.scale3d=0;this.title=null;this.translucentLevel=0;this.withinPoints=null;this.initState()});e(c$,"initState",function(){this.associateNormals=
!0;this.sg.initState()});e(c$,"setMeshI",function(){this.thisMesh.visible=!0;this.thisMesh.modelIndex=0<=(this.thisMesh.atomIndex=this.atomIndex)?this.vwr.ms.at[this.atomIndex].mi:this.isFixed?-1:0<=this.modelIndex?this.modelIndex:this.vwr.am.cmi;this.thisMesh.scriptCommand=this.script;this.thisMesh.ptCenter.setT(this.center);this.thisMesh.scale3d=null==this.thisMesh.jvxlData.jvxlPlane?0:this.scale3d});e(c$,"discardTempData",function(a){a&&(this.title=null,null!=this.thisMesh&&(this.thisMesh.surfaceSet=
null))},"~B");e(c$,"getDefaultColix",function(){return 0!=this.defaultColix?this.defaultColix:!this.sg.jvxlData.wasCubic?this.colix:JU.C.getColix(0<=this.sg.params.cutoff?-11525984:-6283184)});e(c$,"drawLcaoCartoon",function(a,b,c,d){var f=this.sg.setLcao(),h=c.x+c.y+c.z;this.defaultColix=JU.C.getColix(this.sg.params.colorPos);var g=JU.C.getColix(this.sg.params.colorNeg),e=new JU.V3,l=0<f.length&&"-"==f.charAt(0);l&&(f=f.substring(1));l=l?-1:1;e.cross(a,b);if(0!=h){var k=new JU.A4;0!=c.x?k.setVA(b,
h):0!=c.y?k.setVA(e,h):k.setVA(a,h);c=(new JU.M3).setAA(k);c.rotate(b);c.rotate(e);c.rotate(a)}null==this.thisMesh&&0==this.nLCAO&&(this.nLCAO=this.meshCount);c=null==this.thisMesh?(0<d?"lp":"lcao")+ ++this.nLCAO+"_"+f:this.thisMesh.thisID;null==this.thisMesh&&this.allocMesh(c,null);f.equals("px")?(this.thisMesh.thisID+="a",f=this.thisMesh,this.createLcaoLobe(b,l,d),0<d||(this.setProperty("thisID",c+"b",null),this.createLcaoLobe(b,-l,d),this.thisMesh.colix=g,this.linkedMesh=this.thisMesh.linkedMesh=
f)):f.equals("py")?(this.thisMesh.thisID+="a",f=this.thisMesh,this.createLcaoLobe(e,l,d),0<d||(this.setProperty("thisID",c+"b",null),this.createLcaoLobe(e,-l,d),this.thisMesh.colix=g,this.linkedMesh=this.thisMesh.linkedMesh=f)):f.equals("pz")?(this.thisMesh.thisID+="a",f=this.thisMesh,this.createLcaoLobe(a,l,d),0<d||(this.setProperty("thisID",c+"b",null),this.createLcaoLobe(a,-l,d),this.thisMesh.colix=g,this.linkedMesh=this.thisMesh.linkedMesh=f)):f.equals("pza")||0==f.indexOf("sp")||0==f.indexOf("d")||
0==f.indexOf("lp")?this.createLcaoLobe(a,l,d):f.equals("pzb")?this.createLcaoLobe(a,-l,d):f.equals("pxa")?this.createLcaoLobe(b,l,d):f.equals("pxb")?this.createLcaoLobe(b,-l,d):f.equals("pya")?this.createLcaoLobe(e,l,d):f.equals("pyb")?this.createLcaoLobe(e,-l,d):f.equals("spacefill")||f.equals("cpk")?this.createLcaoLobe(null,2*this.vwr.ms.at[this.atomIndex].getRadius(),d):this.createLcaoLobe(null,1,d)},"JU.V3,JU.V3,JU.V3,~N");e(c$,"createLcaoLobe",function(a,b,c){this.initState();JU.Logger.debugging&&
JU.Logger.debug("creating isosurface ID "+this.thisMesh.thisID);null==a?this.setProperty("sphere",Float.$valueOf(b/2),null):(this.lcaoDir.x=a.x*b,this.lcaoDir.y=a.y*b,this.lcaoDir.z=a.z*b,this.lcaoDir.w=0.7,this.setProperty(2==c?"lp":1==c?"rad":"lobe",this.lcaoDir,null));this.thisMesh.colix=this.defaultColix;this.setScriptInfo(null)},"JU.V3,~N,~N");m(c$,"invalidateTriangles",function(){this.thisMesh.invalidatePolygons()});m(c$,"setOutputChannel",function(a,b){a.setOutputChannel(b)},"javajs.api.GenericBinaryDocument,JU.OC");
m(c$,"fillMeshData",function(a,b,c){if(null==a){if(null==this.thisMesh&&this.allocMesh(null,null),this.thisMesh.isMerged||this.thisMesh.clearType(this.myType,this.sg.params.iAddGridPoints),this.thisMesh.connections=this.connections,this.thisMesh.colix=this.getDefaultColix(),this.thisMesh.colorType=this.colorType,this.thisMesh.meshColix=this.meshColix,this.isPhaseColored||this.thisMesh.jvxlData.isBicolorMap)this.thisMesh.isColorSolid=!1}else if(null==c&&(c=this.thisMesh),null!=c)switch(b){case 1:a.mergeVertexCount0=
c.mergeVertexCount0;a.vs=c.vs;a.vertexSource=c.vertexSource;a.vvs=c.vvs;a.vc=c.vc;a.vertexIncrement=c.vertexIncrement;a.pc=c.pc;a.pis=c.pis;a.pcs=c.pcs;a.bsSlabDisplay=c.bsSlabDisplay;a.bsSlabGhost=c.bsSlabGhost;a.slabColix=c.slabColix;a.slabMeshType=c.slabMeshType;a.polygonCount0=c.polygonCount0;a.vertexCount0=c.vertexCount0;a.slabOptions=c.slabOptions;a.colorsExplicit=c.colorsExplicit;break;case 2:if(null==c.vcs||c.vc>c.vcs.length)c.vcs=Y(c.vc,0);a.vcs=c.vcs;break;case 3:c.surfaceSet=a.surfaceSet;
c.vertexSets=a.vertexSets;c.nSets=a.nSets;break;case 4:c.vs=a.vs,c.vvs=a.vvs,c.vc=a.vc,c.vertexIncrement=a.vertexIncrement,c.vertexSource=a.vertexSource,c.pc=a.pc,c.pis=a.pis,c.pcs=a.pcs,c.bsSlabDisplay=a.bsSlabDisplay,c.bsSlabGhost=a.bsSlabGhost,c.slabColix=a.slabColix,c.slabMeshType=a.slabMeshType,c.polygonCount0=a.polygonCount0,c.vertexCount0=a.vertexCount0,c.mergeVertexCount0=a.mergeVertexCount0,c.slabOptions=a.slabOptions,c.colorsExplicit=a.colorsExplicit}},"J.jvxl.data.MeshData,~N,J.shapesurface.IsosurfaceMesh");
m(c$,"notifySurfaceGenerationCompleted",function(){this.setMeshI();this.setBsVdw();this.thisMesh.insideOut=this.sg.isInsideOut();this.thisMesh.vertexSource=this.sg.params.vertexSource;this.thisMesh.spanningVectors=this.sg.getSpanningVectors();this.thisMesh.calculatedArea=null;this.thisMesh.calculatedVolume=null;this.thisMesh.isMerged?(this.sg.params.allowVolumeRender||(this.thisMesh.jvxlData.allowVolumeRender=!1),this.thisMesh.setColorsFromJvxlData(this.sg.params.colorRgb),null!=this.thisMesh.jvxlData.slabInfo&&
this.vwr.runScript("isosurface "+this.thisMesh.jvxlData.slabInfo),0<this.sg.params.psi_monteCarloCount&&(this.thisMesh.diameter=-1)):(this.thisMesh.initialize(this.sg.isFullyLit()?1073741964:1073741958,null,this.sg.params.thePlane),null!=this.jvxlData.fixedLattice&&(this.thisMesh.lattice=this.jvxlData.fixedLattice,this.thisMesh.fixLattice()))});m(c$,"notifySurfaceMappingCompleted",function(){this.thisMesh.isMerged||this.thisMesh.initialize(this.sg.isFullyLit()?1073741964:1073741958,null,this.sg.params.thePlane);
this.setBsVdw();this.thisMesh.isColorSolid=!1;this.thisMesh.colorDensity=this.jvxlData.colorDensity;this.thisMesh.volumeRenderPointSize=this.jvxlData.pointSize;this.thisMesh.colorEncoder=this.sg.params.colorEncoder;this.thisMesh.getContours();0!=this.thisMesh.jvxlData.nContours&&-1!=this.thisMesh.jvxlData.nContours&&(this.explicitContours=!0);this.explicitContours&&null!=this.thisMesh.jvxlData.jvxlPlane&&(this.thisMesh.havePlanarContours=!0);this.setPropertySuper("token",Integer.$valueOf(this.explicitContours?
1073742046:1073741938),null);this.setPropertySuper("token",Integer.$valueOf(this.explicitContours?1073741898:1073742039),null);this.thisMesh.isMerged||this.thisMesh.setJvxlDataRendering();null!=this.sg.params.slabInfo&&(this.thisMesh.slabPolygonsList(this.sg.params.slabInfo,!1),this.thisMesh.reinitializeLightingAndColor(this.vwr));this.thisMesh.setColorCommand()});e(c$,"setBsVdw",function(){null!=this.sg.bsVdw&&(null==this.thisMesh.bsVdw&&(this.thisMesh.bsVdw=new JU.BS),this.thisMesh.bsVdw.or(this.sg.bsVdw))});
m(c$,"calculateGeodesicSurface",function(a,b){return this.vwr.calculateSurface(a,b)},"JU.BS,~N");m(c$,"getSurfacePointIndexAndFraction",function(){return 0},"~N,~B,~N,~N,~N,JU.P3i,~N,~N,~N,~N,JU.T3,JU.V3,~B,~A");m(c$,"addVertexCopy",function(a,b,c,d){return null!=this.cutoffRange&&(b<this.cutoffRange[0]||b>this.cutoffRange[1])?-1:null!=this.withinPoints&&!J.shape.Mesh.checkWithin(a,this.withinPoints,this.withinDistance2,this.isWithinNot)?-1:this.thisMesh.addVertexCopy(a,b,c,this.associateNormals,
d)},"JU.T3,~N,~N,~B");m(c$,"addTriangleCheck",function(a,b,c,d,f,h,g){return 0>a||0>b||0>c||h&&!J.jvxl.data.MeshData.checkCutoff(a,b,c,this.thisMesh.vvs)?-1:this.thisMesh.addTriangleCheck(a,b,c,d,f,g)},"~N,~N,~N,~N,~N,~B,~N");e(c$,"setScriptInfo",function(a){a=null==a?this.sg.params.script:a;var b=null==a?-1:a.indexOf("; isosurface map");if(0==b)null!=this.thisMesh.scriptCommand&&(b=this.thisMesh.scriptCommand.indexOf("; isosurface map"),0<=b&&(this.thisMesh.scriptCommand=this.thisMesh.scriptCommand.substring(0,
b)),this.thisMesh.scriptCommand+=a);else if(this.thisMesh.title=this.sg.params.title,this.thisMesh.dataType=this.sg.params.dataType,this.thisMesh.scale3d=this.sg.params.scale3d,null!=a&&" "==a.charAt(0)&&(a=this.myType+" ID "+JU.PT.esc(this.thisMesh.thisID)+a,b=a.indexOf("; isosurface map")),this.thisMesh.scriptCommand=0<b&&0<this.scriptAppendix.length?a.substring(0,b)+this.scriptAppendix+a.substring(b):a+this.scriptAppendix,!this.explicitID&&null!=a&&0<=(b=a.indexOf("# ID=")))this.thisMesh.thisID=
JU.PT.getQuotedStringAt(a,b)},"~S");m(c$,"addRequiredFile",function(a){a=' # /*file*/"'+a+'"';0>this.scriptAppendix.indexOf(a)&&(this.scriptAppendix+=a)},"~S");e(c$,"setJvxlInfo",function(){if(this.sg.jvxlData!==this.jvxlData||this.sg.jvxlData!==this.thisMesh.jvxlData)this.jvxlData=this.thisMesh.jvxlData=this.sg.jvxlData});m(c$,"getShapeDetail",function(){for(var a=new JU.Lst,b=0;b<this.meshCount;b++){var c=new java.util.Hashtable,d=this.isomeshes[b];null==d||(null==d.vs||0==d.vc&&0==d.pc)||(this.addMeshInfo(d,
c),a.addLast(c))}return a});e(c$,"addMeshInfo",function(a,b){b.put("ID",null==a.thisID?"<noid>":a.thisID);b.put("visible",Boolean.$valueOf(a.visible));b.put("vertexCount",Integer.$valueOf(a.vc));null!=a.calculatedVolume&&b.put("volume",a.calculatedVolume);null!=a.calculatedArea&&b.put("area",a.calculatedArea);Float.isNaN(a.ptCenter.x)||b.put("center",a.ptCenter);null!=a.mat4&&b.put("mat4",a.mat4);0!=a.scale3d&&b.put("scale3d",Float.$valueOf(a.scale3d));b.put("xyzMin",a.jvxlData.boundingBox[0]);b.put("xyzMax",
a.jvxlData.boundingBox[1]);var c=J.jvxl.data.JvxlCoder.jvxlGetInfo(a.jvxlData);null!=c&&b.put("jvxlInfo",c.$replace("\n"," "));b.put("modelIndex",Integer.$valueOf(a.modelIndex));b.put("color",JU.CU.colorPtFromInt(JU.C.getArgb(a.colix),null));null!=a.colorEncoder&&b.put("colorKey",a.colorEncoder.getColorKey());null!=a.title&&b.put("title",a.title);(null!=a.jvxlData.contourValues||null!=a.jvxlData.contourValuesUsed)&&b.put("contours",a.getContourList(this.vwr))},"J.shapesurface.IsosurfaceMesh,java.util.Map");
m(c$,"getPlane",function(){return null},"~N");m(c$,"getValue",function(){return 0},"~N,~N,~N,~N");m(c$,"checkObjectHovered",function(a,b,c){if(null!=this.keyXy&&a>=this.keyXy[0]&&b>=this.keyXy[1]&&a<this.keyXy[2]&&b<this.keyXy[3])return this.hoverKey(a,b),!0;if(!this.vwr.getDrawHover())return!1;c=this.findValue(a,b,!1,c);if(null==c)return!1;this.vwr.gdata.antialiasEnabled&&(a<<=1,b<<=1);this.vwr.hoverOnPt(a,b,c,this.pickedMesh.thisID,this.pickedPt);return!0},"~N,~N,JU.BS");e(c$,"hoverKey",function(a,
b){try{var c,d=1-1*(b-this.keyXy[1])/(this.keyXy[3]-this.keyXy[1]);if(this.thisMesh.showContourLines){var f=this.thisMesh.getContours();if(null==f){if(null==this.thisMesh.jvxlData.contourValues)return;var h=C(Math.floor(d*this.thisMesh.jvxlData.contourValues.length));if(0>h||h>this.thisMesh.jvxlData.contourValues.length)return;c=""+this.thisMesh.jvxlData.contourValues[h]}else{h=C(Math.floor(d*f.length));if(0>h||h>f.length)return;c=""+f[h].get(2).floatValue()}}else{var g=this.thisMesh.colorEncoder.quantize(d,
!0),d=this.thisMesh.colorEncoder.quantize(d,!1);c=""+g+" - "+d}this.vwr.gdata.isAntialiased()&&(a<<=1,b<<=1);this.vwr.hoverOnPt(a,b,c,null,null)}catch(e){if(!T(e,Exception))throw e;}},"~N,~N");m(c$,"checkObjectClicked",function(a,b,c,d,f){if(!f||!this.vwr.isBound(c,18))return null;c=100;this.vwr.gdata.isAntialiased()&&(a<<=1,b<<=1,c<<=1);for(var h=f=-1,g=-2147483648,e=2147483647,l=0;l<this.meshCount;l++){var k=this.isomeshes[l];if(this.isPickable(k,d)&&(k=k.vs,null!=k))for(var p=k.length;0<=--p;){var v=
k[p];null!=v&&0<=this.coordinateInRange(a,b,v,c,this.ptXY)&&(this.ptXY.z<e&&(f=l,e=this.ptXY.z,h=p),this.ptXY.z>g&&(g=this.ptXY.z))}}if(0>f)return null;this.pickedMesh=this.isomeshes[f];this.setPropertySuper("thisID",this.pickedMesh.thisID,null);this.pickedVertex=h;a=new JU.P3;a.setT(this.pickedMesh.vs[this.pickedVertex]);this.pickedModel=this.pickedMesh.modelIndex;b=this.getPickedPoint(a,this.pickedModel);this.setStatusPicked(-4,a,b);return b},"~N,~N,~N,JU.BS,~B");e(c$,"isPickable",function(a,b){return 0!=
a.visibilityFlags&&(0>a.modelIndex||b.get(a.modelIndex))&&!JU.C.isColixTranslucent(a.colix)},"J.shapesurface.IsosurfaceMesh,JU.BS");e(c$,"findValue",function(a,b,c,d){c=100;this.vwr.gdata.isAntialiased()&&(a<<=1,b<<=1,c<<=1);for(var f=-1,h=null,g=null,e=0;e<this.meshCount;e++)if(g=this.isomeshes[e],this.isPickable(g,d)){var l=g.jvxlData.vContours,k=0>g.firstRealVertex?0:g.firstRealVertex,p=0;if(null!=l&&0<l.length){for(k=0;k<l.length;k++)for(var v=l[k],q=v.size()-1,s=6;s<q;s++){var m=v.get(s),E=this.coordinateInRange(a,
b,m,c,this.ptXY);0<=E&&(c=E,h=v,p=k,this.pickedMesh=g,this.pickedPt=m)}if(null!=h)return h.get(2).toString()+(JU.Logger.debugging?" "+p:"")}else if(null!=g.jvxlData.jvxlPlane&&null!=g.vvs){l=null==g.mat4&&0==g.scale3d?g.vs:g.getOffsetVertices(g.jvxlData.jvxlPlane);for(s=g.vc;--s>=k;)m=l[s],E=this.coordinateInRange(a,b,m,c,this.ptXY),0<=E&&(c=E,f=s,this.pickedMesh=g,this.pickedPt=m);if(-1!=f)break}else if(null!=g.vvs){if(null!=g.bsSlabDisplay)for(s=g.bsSlabDisplay.nextSetBit(0);0<=s;s=g.bsSlabDisplay.nextSetBit(s+
1)){l=g.pis[s];for(p=0;3>p;p++)m=g.vs[l[p]],E=this.coordinateInRange(a,b,m,c,this.ptXY),0<=E&&(c=E,f=l[p],this.pickedMesh=g,this.pickedPt=m)}else for(s=g.vc;--s>=k;)m=g.vs[s],E=this.coordinateInRange(a,b,m,c,this.ptXY),0<=E&&(c=E,f=s,this.pickedMesh=g,this.pickedPt=m);if(-1!=f)break}}return-1==f?null:(JU.Logger.debugging?"$"+g.thisID+"["+(f+1)+"] "+g.vs[f]+": ":g.thisID+": ")+g.vvs[f]},"~N,~N,~B,JU.BS");e(c$,"getCmd",function(a){var b=(new JU.SB).append("\n");this.getMeshCommand(b,a);return b.toString()},
"~N");Z(c$,"MAX_OBJECT_CLICK_DISTANCE_SQUARED",100)});H("J.jvxl.data");K(null,"J.jvxl.data.JvxlCoder","java.lang.Float JU.BS $.Lst $.P3 $.PT $.SB $.XmlUtil J.jvxl.data.VolumeData JU.BSUtil $.C $.Escape $.Logger".split(" "),function(){c$=wa(J.jvxl.data,"JvxlCoder");c$.jvxlGetFile=e(c$,"jvxlGetFile",function(a,b,c){var d=a.getVoxelCounts();b.nPointsX=d[0];b.nPointsY=d[1];b.nPointsZ=d[2];b.jvxlVolumeDataXml=a.setVolumetricXml();return J.jvxl.data.JvxlCoder.jvxlGetFile(b,null,c,null,!0,1,null,null)},
"J.jvxl.data.VolumeData,J.jvxl.data.JvxlData,~A");c$.jvxlGetFile=e(c$,"jvxlGetFile",function(a,b,c,d,f,h,g,e){return J.jvxl.data.JvxlCoder.jvxlGetFileXml(a,b,c,d,f,h,g,e)},"J.jvxl.data.JvxlData,J.jvxl.data.MeshData,~A,~S,~B,~N,~S,~S");c$.jvxlGetFileXml=e(c$,"jvxlGetFileXml",function(a,b,c,d,f,h,g,e){var l=new JU.SB;if("TRAILERONLY".equals(d))return JU.XmlUtil.closeTag(l,"jvxlSurfaceSet"),JU.XmlUtil.closeTag(l,"jvxl"),l.toString();var k=null!=b,p="HEADERONLY".equals(d);if(f){JU.XmlUtil.openDocument(l);
JU.XmlUtil.openTagAttr(l,"jvxl",["version","2.3","jmolVersion",a.version,"xmlns","http://jmol.org/jvxl_schema","xmlns:cml","http://www.xml-cml.org/schema"]);null!=a.jvxlFileTitle&&JU.XmlUtil.appendCdata(l,"jvxlFileTitle",null,"\n"+a.jvxlFileTitle);null!=a.moleculeXml&&l.append(a.moleculeXml);var v=k?null:a.jvxlVolumeDataXml;null==v&&(v=(new J.jvxl.data.VolumeData).setVolumetricXml());l.append(v);JU.XmlUtil.openTagAttr(l,"jvxlSurfaceSet",["count",""+(0<h?h:1)]);if(p)return l.toString()}h=k?"pmesh":
null==a.jvxlPlane?"isosurface":"plane";null!=a.jvxlColorData&&0<a.jvxlColorData.length&&(h="mapped "+h);JU.XmlUtil.openTagAttr(l,"jvxlSurface",["type",h]);l.append(J.jvxl.data.JvxlCoder.jvxlGetInfoData(a,k));J.jvxl.data.JvxlCoder.jvxlAppendCommandState(l,e,g);if(null!=c||null!=d&&0<d.length){g=new JU.SB;null!=d&&0<d.length&&g.append(d).append("\n");if(null!=c)for(d=0;d<c.length;d++)g.append(c[d]).appendC("\n");JU.XmlUtil.appendCdata(l,"jvxlSurfaceTitle",null,g.toString())}g=new JU.SB;JU.XmlUtil.openTagAttr(g,
"jvxlSurfaceData",k||null==a.jvxlPlane?null:null==a.mapLattice?["plane",JU.Escape.eP4(a.jvxlPlane)]:["plane",JU.Escape.eP4(a.jvxlPlane),"maplattice",JU.Escape.eP(a.mapLattice)]);if(k)J.jvxl.data.JvxlCoder.appendXmlVertexOnlyData(g,a,b,!0);else{if(null==a.jvxlPlane){if(null==a.jvxlEdgeData)return"";J.jvxl.data.JvxlCoder.appendXmlEdgeData(g,a)}J.jvxl.data.JvxlCoder.appendXmlColorData(g,a.jvxlColorData,!0,a.isJvxlPrecisionColor,a.valueMappedToRed,a.valueMappedToBlue)}J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(g,
"jvxlInvalidatedVertexData",a.jvxlExcluded[1],-1,null);0<a.excludedVertexCount&&(J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(g,"jvxlExcludedVertexData",a.jvxlExcluded[0],a.excludedVertexCount,null),J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(g,"jvxlExcludedPlaneData",a.jvxlExcluded[2],-1,null));J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(g,"jvxlExcludedTriangleData",a.jvxlExcluded[3],a.excludedTriangleCount,null);JU.XmlUtil.closeTag(g,"jvxlSurfaceData");b=g.length();l.appendSB(g);null!=a.vContours&&
0<a.vContours.length&&J.jvxl.data.JvxlCoder.jvxlEncodeContourData(a.vContours,l);if(null!=a.vertexColorMap){null==a.baseColor?JU.XmlUtil.openTag(l,"jvxlVertexColorData"):JU.XmlUtil.openTagAttr(l,"jvxlVertexColorData",["baseColor",a.baseColor]);var q;for(c=a.vertexColorMap.entrySet().iterator();c.hasNext()&&((q=c.next())||1);)J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(l,"jvxlColorMap",q.getValue(),-1,["color",q.getKey()]);a.vertexColorMap=null;JU.XmlUtil.closeTag(l,"jvxlVertexColorData")}JU.XmlUtil.closeTag(l,
"jvxlSurface");f&&(JU.XmlUtil.closeTag(l,"jvxlSurfaceSet"),JU.XmlUtil.closeTag(l,"jvxl"));return J.jvxl.data.JvxlCoder.jvxlSetCompressionRatio(l,a,b)},"J.jvxl.data.JvxlData,J.jvxl.data.MeshData,~A,~S,~B,~N,~S,~S");c$.appendEncodedBitSetTag=e(c$,"appendEncodedBitSetTag",function(a,b,c,d,f){0>d&&(d=JU.BSUtil.cardinalityOf(c));if(0!=d){var h=new JU.SB;h.append("\n ");J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(c,-1,h);JU.XmlUtil.appendTagObj(a,b,[f,"bsEncoding","base90+35","count",""+d,"len",""+c.length()],
J.jvxl.data.JvxlCoder.jvxlCompressString(h.toString(),!0))}},"JU.SB,~S,JU.BS,~N,~A");c$.jvxlSetCompressionRatio=e(c$,"jvxlSetCompressionRatio",function(a,b,c){a=a.toString();b=u(0<b.nBytes?b.nBytes/c:13*b.nPointsX*b.nPointsY*b.nPointsZ/c);return JU.PT.rep(a,'"not calculated"',0<b?'"'+b+':1"':'"?"')},"JU.SB,J.jvxl.data.JvxlData,~N");c$.appendXmlEdgeData=e(c$,"appendXmlEdgeData",function(a,b){JU.XmlUtil.appendTagObj(a,"jvxlEdgeData",["count",""+(b.jvxlEdgeData.length-1),"encoding","base90f1","bsEncoding",
"base90+35c","isXLowToHigh",""+b.isXLowToHigh,"data",J.jvxl.data.JvxlCoder.jvxlCompressString(b.jvxlEdgeData,!0)],"\n"+J.jvxl.data.JvxlCoder.jvxlCompressString(b.jvxlSurfaceData,!0))},"JU.SB,J.jvxl.data.JvxlData");c$.jvxlAppendCommandState=e(c$,"jvxlAppendCommandState",function(a,b,c){null!=b&&JU.XmlUtil.appendCdata(a,"jvxlIsosurfaceCommand",null,"\n"+(0>b.indexOf("#")?b:b.substring(0,b.indexOf("#")))+"\n");null!=c&&(0<=c.indexOf("** XML ** ")?(c=JU.PT.split(c,"** XML **")[1].trim(),JU.XmlUtil.appendTag(a,
"jvxlIsosurfaceState","\n"+c+"\n")):JU.XmlUtil.appendCdata(a,"jvxlIsosurfaceState",null,"\n"+c))},"JU.SB,~S,~S");c$.appendXmlColorData=e(c$,"appendXmlColorData",function(a,b,c,d,f,h){var g;if(!(null==b||0>(g=b.length-1)))d&&(g/=2),JU.XmlUtil.appendTagObj(a,"jvxlColorData",["count",""+g,"encoding",c?"base90f"+(d?"2":"1"):"none","min",""+f,"max",""+h,"data",J.jvxl.data.JvxlCoder.jvxlCompressString(b,!0)],null)},"JU.SB,~S,~B,~B,~N,~N");c$.jvxlGetInfo=e(c$,"jvxlGetInfo",function(a){return J.jvxl.data.JvxlCoder.jvxlGetInfoData(a,
a.vertexDataOnly)},"J.jvxl.data.JvxlData");c$.jvxlGetInfoData=e(c$,"jvxlGetInfoData",function(a,b){if(null==a.jvxlSurfaceData)return"";var c=new JU.Lst,d=a.nSurfaceInts,f=b?0:a.jvxlEdgeData.length-1,h=null==a.jvxlColorData?-1:a.jvxlColorData.length-1;if(!b){J.jvxl.data.JvxlCoder.addAttrib(c,"\n  cutoff",""+a.cutoff);J.jvxl.data.JvxlCoder.addAttrib(c,"\n  isCutoffAbsolute",""+a.isCutoffAbsolute);J.jvxl.data.JvxlCoder.addAttrib(c,"\n  pointsPerAngstrom",""+a.pointsPerAngstrom);var g=a.jvxlSurfaceData.length+
f+h+1;0<g&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nBytesData",""+g);J.jvxl.data.JvxlCoder.addAttrib(c,"\n  isXLowToHigh",""+a.isXLowToHigh);null==a.jvxlPlane&&(J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nSurfaceInts",""+d),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nBytesUncompressedEdgeData",""+f));0<h&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nBytesUncompressedColorData",""+h)}a.excludedVertexCount=JU.BSUtil.cardinalityOf(a.jvxlExcluded[0]);a.excludedTriangleCount=JU.BSUtil.cardinalityOf(a.jvxlExcluded[3]);
0<a.excludedVertexCount&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nExcludedVertexes",""+a.excludedVertexCount);0<a.excludedTriangleCount&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nExcludedTriangles",""+a.excludedTriangleCount);g=JU.BSUtil.cardinalityOf(a.jvxlExcluded[1]);0<g&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nInvalidatedVertexes",""+g);null!=a.slabInfo&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  slabInfo",a.slabInfo);a.isJvxlPrecisionColor&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  precisionColor","true");
a.colorDensity&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorDensity","true");Float.isNaN(a.pointSize)?0!=a.diameter&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  diameter",""+a.diameter):J.jvxl.data.JvxlCoder.addAttrib(c,"\n  pointSize",""+a.pointSize);a.allowVolumeRender||J.jvxl.data.JvxlCoder.addAttrib(c,"\n  allowVolumeRender","false");null==a.jvxlPlane||b?(null!=a.fixedLattice&&!b&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  fixedLattice",""+a.fixedLattice),a.isContoured?(J.jvxl.data.JvxlCoder.addAttrib(c,
"\n  contoured","true"),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorMapped","true")):a.isBicolorMap?(J.jvxl.data.JvxlCoder.addAttrib(c,"\n  bicolorMap","true"),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorNegative",JU.C.getHexCode(a.minColorIndex)),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorPositive",JU.C.getHexCode(a.maxColorIndex))):0<h&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorMapped","true"),null!=a.vContours&&0<a.vContours.length&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nContourData",""+a.vContours.length)):
(null!=a.mapLattice&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  mapLattice",""+a.mapLattice),0!=a.scale3d&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  scale3d",""+a.scale3d),0<h&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorMapped","true"),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  plane",JU.Escape.eP4(a.jvxlPlane)));null!=a.color&&0>a.color.indexOf("null")&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  color",a.color);J.jvxl.data.JvxlCoder.addAttrib(c,"\n  translucency",""+a.translucency);null!=a.meshColor&&J.jvxl.data.JvxlCoder.addAttrib(c,
"\n  meshColor",a.meshColor);null!=a.colorScheme&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  colorScheme",a.colorScheme);null!=a.rendering&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  rendering",a.rendering);0<=a.thisSet&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  set",""+(a.thisSet+1));-2147483648!=a.slabValue&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  slabValue",""+a.slabValue);a.isSlabbable&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  slabbable","true");0<a.nVertexColors&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nVertexColors",
""+a.nVertexColors);d=3.4028235E38==a.mappedDataMin?0:a.mappedDataMin;f=a.isColorReversed?a.valueMappedToRed:a.valueMappedToBlue;h=a.isColorReversed?a.valueMappedToBlue:a.valueMappedToRed;null!=a.jvxlColorData&&(0<a.jvxlColorData.length&&!a.isBicolorMap)&&(J.jvxl.data.JvxlCoder.addAttrib(c,"\n  dataMinimum",""+d),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  dataMaximum",""+a.mappedDataMax),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  valueMappedToRed",""+h),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  valueMappedToBlue",
""+f));a.isContoured&&(null==a.contourValues||null==a.contourColixes?null==a.vContours&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nContours",""+Math.abs(a.nContours)):(null!=a.jvxlPlane&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  contoured","true"),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  nContours",""+a.contourValues.length),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  contourValues",JU.Escape.eAF(null==a.contourValuesUsed?a.contourValues:a.contourValuesUsed)),J.jvxl.data.JvxlCoder.addAttrib(c,"\n  contourColors",
a.contourColors)),0<a.thisContour&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  thisContour",""+a.thisContour));a.insideOut&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  insideOut","true");a.vertexDataOnly?J.jvxl.data.JvxlCoder.addAttrib(c,"\n  note","vertex/face data only"):a.isXLowToHigh&&J.jvxl.data.JvxlCoder.addAttrib(c,"\n  note","progressive JVXL+ -- X values read from low(0) to high("+(a.nPointsX-1)+")");J.jvxl.data.JvxlCoder.addAttrib(c,"\n  xyzMin",JU.Escape.eP(a.boundingBox[0]));J.jvxl.data.JvxlCoder.addAttrib(c,
"\n  xyzMax",JU.Escape.eP(a.boundingBox[1]));J.jvxl.data.JvxlCoder.addAttrib(c,"\n  approximateCompressionRatio","not calculated");J.jvxl.data.JvxlCoder.addAttrib(c,"\n  jmolVersion",a.version);d=new JU.SB;JU.XmlUtil.openTagAttr(d,"jvxlSurfaceInfo",c.toArray(Array(c.size())));JU.XmlUtil.closeTag(d,"jvxlSurfaceInfo");return d.toString()},"J.jvxl.data.JvxlData,~B");c$.addAttrib=e(c$,"addAttrib",function(a,b,c){a.addLast([b,c])},"JU.Lst,~S,~S");c$.jvxlEncodeContourData=e(c$,"jvxlEncodeContourData",function(a,
b){JU.XmlUtil.openTagAttr(b,"jvxlContourData",["count",""+a.length]);for(var c=0;c<a.length;c++)if(!(6>a[c].size())){var d=a[c].get(0).intValue(),f=new JU.SB;f.append("\n");var h=a[c].get(1);J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(h,d,f);JU.XmlUtil.appendTagObj(b,"jvxlContour",["index",""+c,"value",""+a[c].get(2),"color",JU.Escape.escapeColor(a[c].get(4)[0]),"count",""+h.length(),"encoding","base90iff1","bsEncoding","base90+35c","data",J.jvxl.data.JvxlCoder.jvxlCompressString(a[c].get(5).toString(),
!0)],J.jvxl.data.JvxlCoder.jvxlCompressString(f.toString(),!0))}JU.XmlUtil.closeTag(b,"jvxlContourData")},"~A,JU.SB");c$.set3dContourVector=e(c$,"set3dContourVector",function(a,b,c){if(!(6>a.size()))for(var d=a.get(5),f=a.get(1),h=0,g=d.length(),e=0,l=" ",k=" ",p=f.nextSetBit(0);0<=p;p=f.nextSetBit(p+1)){for(var v=b[p];h<g&&!JU.PT.isDigit(l=d.charAt(h++)););for(e=l.charCodeAt(0)-48;h<g&&JU.PT.isWhitespace(l=d.charAt(h++)););for(;h<g&&JU.PT.isWhitespace(k=d.charAt(h++)););var q=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(l.charCodeAt(0),
35,90,0),s=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(k.charCodeAt(0),35,90,0),m,E;0==(e&1)?(m=v[1],E=e=v[2],v=v[0]):(m=v[0],E=v[1],0!=(e&2)?(e=E,v=v[2]):(e=v[2],v=m));a.addLast(J.jvxl.data.JvxlCoder.getContourPoint(c,m,E,q));a.addLast(J.jvxl.data.JvxlCoder.getContourPoint(c,e,v,s))}},"JU.Lst,~A,~A");c$.getContourPoint=e(c$,"getContourPoint",function(a,b,c,d){var f=new JU.P3;f.sub2(a[c],a[b]);f.scaleAdd2(d,f,a[b]);return f},"~A,~N,~N,~N");c$.appendContourTriangleIntersection=e(c$,"appendContourTriangleIntersection",
function(a,b,c,d){d.appendI(a);d.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(b));d.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(c))},"~N,~N,~N,JU.SB");c$.jvxlCreateColorData=e(c$,"jvxlCreateColorData",function(a,b){if(null==b)a.jvxlColorData="";else{var c=a.isJvxlPrecisionColor,d=a.isTruncated,f=a.colorFractionBase,h=a.colorFractionRange,g=a.valueMappedToBlue,e=a.valueMappedToRed,l=0<a.saveVertexCount?a.saveVertexCount:a.vertexCount;l>b.length&&System.out.println("JVXLCODER ERROR");
var k=a.mappedDataMin,p=a.mappedDataMax,v=new JU.SB,q=new JU.SB;b.length<l&&System.out.println("JVXLCOLOR OHOHO");for(var m=0;m<l;m++){var w=b[m];Float.isNaN(w)&&(w=k);d&&(w=0<w?0.999:-0.999);c?J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(w,k,p,f,h,v,q):v.appendC(J.jvxl.data.JvxlCoder.jvxlValueAsCharacter(w,e,g,f,h))}a.jvxlColorData=v.appendSB(q).appendC("\n").toString()}},"J.jvxl.data.JvxlData,~A");c$.appendXmlVertexOnlyData=e(c$,"appendXmlVertexOnlyData",function(a,b,c,d){var f=G(c.vc,0);J.jvxl.data.JvxlCoder.appendXmlTriangleData(a,
c.pis,c.pc,c.bsSlabDisplay,f,d)&&J.jvxl.data.JvxlCoder.appendXmlVertexData(a,b,f,c.vs,c.vvs,c.vc,c.polygonColorData,c.pc,c.bsSlabDisplay,b.vertexColors,0<b.jvxlColorData.length,d)},"JU.SB,J.jvxl.data.JvxlData,J.jvxl.data.MeshData,~B");c$.appendXmlTriangleData=e(c$,"appendXmlTriangleData",function(a,b,c,d,f,h){for(var g=new JU.SB,e=new JU.SB,l=1,k=0,p=0,v=!1,q=0,m=null!=d,w=0;w<c;)if(null==b[w]||m&&!d.get(w))w++;else{var E=b[w][k],E=0<f[E]?f[E]:f[E]=++p,u=E-l,l=E;0==u?(g.appendC("!"),v=!1):32<u?(v&&
g.appendC("+"),g.appendI(u),v=!0):-32>u?(g.appendI(u),v=!0):(g.appendC(String.fromCharCode(92+u)),v=!1);0==++k%3&&(e.appendI(b[w][3]),k=0,w++,q++)}if(0==g.length())return!0;JU.XmlUtil.appendTagObj(a,"jvxlTriangleData",["count",""+q,"encoding","jvxltdiff","data",J.jvxl.data.JvxlCoder.jvxlCompressString(g.toString(),h)],null);JU.XmlUtil.appendTagObj(a,"jvxlTriangleEdgeData",["count",""+q,"encoding","jvxlsc","data",J.jvxl.data.JvxlCoder.jvxlCompressString(e.toString(),h)],null);return!0},"JU.SB,~A,~N,JU.BS,~A,~B");
c$.appendXmlVertexData=e(c$,"appendXmlVertexData",function(a,b,c,d,f,h,g,e,l,k,p,v){var q=b.colorFractionBase,m=b.colorFractionRange,w,E=b.boundingBox[0],u=b.boundingBox[1],A=new JU.SB,C=new JU.SB,z=null,B=null!=l;if(0<e){B&&(e=l.cardinality());for(var B=!1,z=G(h,0),D=0;D<h;D++)0<c[D]&&(z[c[D]-1]=D)}for(D=c=0;D<h;D++)if(!B||l.get(D))c++,w=d[0==e?D:z[D]],J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(w.x,E.x,u.x,q,m,A,C),J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(w.y,E.y,u.y,q,m,A,C),J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(w.z,
E.z,u.z,q,m,A,C);A.appendSB(C);JU.XmlUtil.appendTagObj(a,"jvxlVertexData",["count",""+c,"min",JU.Escape.eP(E),"max",JU.Escape.eP(u),"encoding","base90xyz2","data",J.jvxl.data.JvxlCoder.jvxlCompressString(A.toString(),v)],null);null!=g&&JU.XmlUtil.appendTagObj(a,"jvxlPolygonColorData",["encoding","jvxlnc","count",""+e],"\n"+g);if(p){A=new JU.SB;C=new JU.SB;if(null==k)for(D=0;D<h;D++){if(!B||l.get(D))J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(f[0==e?D:z[D]],b.mappedDataMin,b.mappedDataMax,q,m,A,C)}else{d=
0;A.appendI(c).append(" ");for(D=0;D<h;D++)if(!B||l.get(D))f=k[0==e?D:z[D]],f==d?f=0:d=f,A.appendI(f),A.append(" ")}J.jvxl.data.JvxlCoder.appendXmlColorData(a,A.appendSB(C).append("\n").toString(),null==k,!0,b.valueMappedToRed,b.valueMappedToBlue)}},"JU.SB,J.jvxl.data.JvxlData,~A,~A,~A,~N,~S,~N,JU.BS,~A,~B,~B");c$.jvxlFractionAsCharacter=e(c$,"jvxlFractionAsCharacter",function(a){return J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(a,35,90)},"~N");c$.jvxlFractionAsCharacterRange=e(c$,"jvxlFractionAsCharacterRange",
function(a,b,c){0.9999<a?a=0.9999:Float.isNaN(a)&&(a=1.0001);a=C(Math.floor(a*c+b));return a<b?String.fromCharCode(b):92==a?"!":String.fromCharCode(a)},"~N,~N,~N");c$.jvxlAppendCharacter2=e(c$,"jvxlAppendCharacter2",function(a,b,c,d,f,h,g){a=b==c?a:(a-b)/(c-b);b=J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(a,d,f);h.appendC(b);a-=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(b.charCodeAt(0),d,f,0);g.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(a*f,d,f))},"~N,~N,~N,~N,~N,JU.SB,JU.SB");
c$.jvxlFractionFromCharacter=e(c$,"jvxlFractionFromCharacter",function(a,b,c,d){if(a==b+c)return NaN;a<b&&(a=92);a=(a-b+d)/c;return 0>a?0:1<a?0.999999:a},"~N,~N,~N,~N");c$.jvxlFractionFromCharacter2=e(c$,"jvxlFractionFromCharacter2",function(a,b,c,d){a=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(a,c,d,0);b=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(b,c,d,0.5);return a+b/d},"~N,~N,~N,~N");c$.jvxlValueAsCharacter=e(c$,"jvxlValueAsCharacter",function(a,b,c,d,f){return J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(b==
c?a:(a-b)/(c-b),d,f)},"~N,~N,~N,~N,~N");c$.jvxlValueFromCharacter2=e(c$,"jvxlValueFromCharacter2",function(a,b,c,d,f,h){a=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(a,b,f,h);return d==c?a:c+a*(d-c)},"~N,~N,~N,~N,~N,~N");c$.jvxlEncodeBitSet0=e(c$,"jvxlEncodeBitSet0",function(a,b,c){var d=0,f=-1,h=0;0>b&&(b=a.length());for(var g=0,e=!1,l=b-1,k=0;k<b;++k)e==a.get(k)?d++:(d==f&&k!=l?h++:(0<h&&(c.appendC(" ").appendI(-h),h=0,g++),c.appendC(" ").appendI(d),g++,f=d),d=1,e=!e);c.appendC(" ").appendI(d).appendC("\n");
return g},"JU.BS,~N,JU.SB");c$.jvxlEncodeBitSet=e(c$,"jvxlEncodeBitSet",function(a){var b=new JU.SB;J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(a,-1,b);return b.toString()},"JU.BS");c$.jvxlEncodeBitSetBuffer=e(c$,"jvxlEncodeBitSetBuffer",function(a,b,c){var d=0,f=0,h=!1;0>b&&(b=a.length());if(0==b)return 0;c.append("-");for(var g=0;g<b;++g)h==a.get(g)?d++:(J.jvxl.data.JvxlCoder.jvxlAppendEncodedNumber(c,d,35,90),f++,d=1,h=!h);J.jvxl.data.JvxlCoder.jvxlAppendEncodedNumber(c,d,35,90);c.appendC("\n");
return f},"JU.BS,~N,JU.SB");c$.jvxlAppendEncodedNumber=e(c$,"jvxlAppendEncodedNumber",function(a,b,c,d){var f=b<d;for(0==b?a.appendC(String.fromCharCode(c)):f||a.appendC(String.fromCharCode(c+d));0<b;){var h=C(b/d);b=c+b-h*d;92==b&&(b=33);a.appendC(String.fromCharCode(b));b=h}f||a.append(" ")},"JU.SB,~N,~N,~N");c$.jvxlDecodeBitSetRange=e(c$,"jvxlDecodeBitSetRange",function(a,b,c){for(var d=new JU.BS,f=0,h=0,g=!1,e=G(1,0);-2147483648!=(f=J.jvxl.data.JvxlCoder.jvxlParseEncodedInt(a,b,c,e));)g&&d.setBits(h,
h+f),h+=f,g=!g;return d},"~S,~N,~N");c$.jvxlParseEncodedInt=e(c$,"jvxlParseEncodedInt",function(a,b,c,d){var f=!1,h=0,g=d[0],e=a.length;if(0>g)return-2147483648;for(;g<e&&JU.PT.isWhitespace(a.charAt(g));)++g;if(g>=e)return-2147483648;var l=1,k=a.charCodeAt(g)==b+c;for(k&&g++;g<e&&!JU.PT.isWhitespace(a.charAt(g));){f=a.charCodeAt(g);f<b&&(f=92);h+=(f-b)*l;f=!0;++g;if(!k)break;l*=c}f||(h=-2147483648);d[0]=g;return h},"~S,~N,~N,~A");c$.jvxlDecodeBitSet=e(c$,"jvxlDecodeBitSet",function(a){if(a.startsWith("-"))return J.jvxl.data.JvxlCoder.jvxlDecodeBitSetRange(J.jvxl.data.JvxlCoder.jvxlDecompressString(a.substring(1)),
35,90);for(var b=new JU.BS,c=0,d=0,f=0,h=0,g=!1,e=G(1,0);;){c=0>f++?c:JU.PT.parseIntNext(a,e);if(-2147483648==c)break;0>c?(f=c,c=d):(g&&b.setBits(h,h+c),h+=c,d=c,g=!g)}return b},"~S");c$.jvxlCompressString=e(c$,"jvxlCompressString",function(a,b){if(0<=a.indexOf("~"))return a;for(var c=new JU.SB,d="\x00",f=!1,h=!1,g=0,e=a.length,l=0;l<=e;l++){var k=l==e?"\x00":a.charAt(l);switch(k){case "\n":case "\r":continue;case "&":case "<":f=b;break;default:f=!1}if(k==d)++g,k="\x00";else if(0<g||h){if(4>g&&!h||
" "==d||"\t"==d)for(;0<=--g;)c.appendC(d);else h?h=!1:c.appendC("~"),c.appendI(g),c.appendC(" ");g=0}"\x00"!=k&&(f?(h=!0,c.appendC("~"),d=k,k=String.fromCharCode(k.charCodeAt(0)-1)):d=k,c.appendC(k))}return c.toString()},"~S,~B");c$.jvxlDecompressString=e(c$,"jvxlDecompressString",function(a){if(0>a.indexOf("~"))return a;for(var b=new JU.SB,c="\x00",d=G(1,0),f=0;f<a.length;f++){var h=a.charAt(f);if("~"==h)switch(d[0]=++f,h=a.charAt(f)){case ";":case "%":d[0]++,b.appendC(c=String.fromCharCode(h.charCodeAt(0)+
1));case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":f=JU.PT.parseIntNext(a,d);for(h=0;h<f;h++)b.appendC(c);f=d[0];continue;case "~":--f;break;default:JU.Logger.error("Error uncompressing string "+a.substring(0,f)+"?")}b.appendC(h);c=h}return b.toString()},"~S");c$.jvxlCreateHeaderWithoutTitleOrAtoms=e(c$,"jvxlCreateHeaderWithoutTitleOrAtoms",function(a,b){J.jvxl.data.JvxlCoder.jvxlCreateHeader(a,b)},"J.jvxl.data.VolumeData,JU.SB");c$.jvxlCreateHeader=e(c$,"jvxlCreateHeader",
function(a,b){a.setVolumetricXml();0==b.length()&&b.append("Line 1\nLine 2\n")},"J.jvxl.data.VolumeData,JU.SB");Z(c$,"JVXL_VERSION1","2.0","JVXL_VERSION_XML","2.3","CONTOUR_NPOLYGONS",0,"CONTOUR_BITSET",1,"CONTOUR_VALUE",2,"CONTOUR_COLIX",3,"CONTOUR_COLOR",4,"CONTOUR_FDATA",5,"CONTOUR_POINTS",6,"defaultEdgeFractionBase",35,"defaultEdgeFractionRange",90,"defaultColorFractionBase",35,"defaultColorFractionRange",90)});H("J.jvxl.data");K(["J.api.VolumeDataInterface","JU.M3","$.P3","$.V3"],"J.jvxl.data.VolumeData",
["java.lang.Float","java.util.Hashtable","JU.SB","JU.Escape","$.Logger"],function(){c$=O(function(){this.sr=null;this.doIterate=!0;this.voxelCounts=this.volumetricVectors=this.origin=this.volumetricOrigin=null;this.nPoints=0;this.volumetricVectorLengths=this.voxelMap=this.voxelData=null;this.yzCount=this.minToPlaneDistance=this.maxVectorLength=0;this.thePlane=this.inverseMatrix=this.volumetricMatrix=this.unitVolumetricVectors=null;this.thePlaneNormalMag=0;this.mappingPlane=this.xmlData=this.ptXyzTemp=
null;this.voxelVolume=this.maxGrid=this.minGrid=this.mappingPlaneNormalMag=0;this.spanningVectors=null;this.isSquared=this.isPeriodic=!1;this.ptTemp=this.edgeVector=null;M(this,arguments)},J.jvxl.data,"VolumeData",null,J.api.VolumeDataInterface);V(c$,function(){this.volumetricOrigin=new JU.P3;this.origin=A(3,0);this.volumetricVectors=Array(3);this.voxelCounts=G(3,0);this.volumetricVectorLengths=A(3,0);this.unitVolumetricVectors=Array(3);this.volumetricMatrix=new JU.M3;this.inverseMatrix=new JU.M3;
this.ptXyzTemp=new JU.P3;this.edgeVector=new JU.V3;this.ptTemp=new JU.P3});m(c$,"getVoxelData",function(){return this.voxelData});m(c$,"setVoxelDataAsArray",function(a){this.voxelData=a;null!=a&&(this.sr=null)},"~A");e(c$,"hasPlane",function(){return null!=this.thePlane});I(c$,function(){this.volumetricVectors[0]=new JU.V3;this.volumetricVectors[1]=new JU.V3;this.volumetricVectors[2]=new JU.V3;this.unitVolumetricVectors[0]=new JU.V3;this.unitVolumetricVectors[1]=new JU.V3;this.unitVolumetricVectors[2]=
new JU.V3});e(c$,"setMappingPlane",function(a){this.mappingPlane=a;null!=a&&(this.mappingPlaneNormalMag=Math.sqrt(a.x*a.x+a.y*a.y+a.z*a.z))},"JU.P4");e(c$,"distanceToMappingPlane",function(a){return(this.mappingPlane.x*a.x+this.mappingPlane.y*a.y+this.mappingPlane.z*a.z+this.mappingPlane.w)/this.mappingPlaneNormalMag},"JU.T3");m(c$,"setVolumetricOrigin",function(a,b,c){this.volumetricOrigin.set(a,b,c)},"~N,~N,~N");m(c$,"getOriginFloat",function(){return this.origin});e(c$,"getYzCount",function(){this.minGrid=
this.volumetricVectors[0].length();this.minGrid=Math.min(this.minGrid,this.volumetricVectors[1].length());this.minGrid=Math.min(this.minGrid,this.volumetricVectors[2].length());this.maxGrid=this.volumetricVectors[0].length();this.maxGrid=Math.max(this.maxGrid,this.volumetricVectors[1].length());this.maxGrid=Math.max(this.maxGrid,this.volumetricVectors[2].length());this.nPoints=this.voxelCounts[0]*this.voxelCounts[1]*this.voxelCounts[2];return this.yzCount=this.voxelCounts[1]*this.voxelCounts[2]});
m(c$,"getVolumetricVectorLengths",function(){return this.volumetricVectorLengths});m(c$,"setVolumetricVector",function(a,b,c,d){this.volumetricVectors[a].x=b;this.volumetricVectors[a].y=c;this.volumetricVectors[a].z=d;this.setUnitVectors()},"~N,~N,~N,~N");m(c$,"getVoxelCounts",function(){return this.voxelCounts});m(c$,"setVoxelCounts",function(a,b,c){this.voxelCounts[0]=a;this.voxelCounts[1]=b;this.voxelCounts[2]=c;return a*b*c},"~N,~N,~N");e(c$,"getVoxelDataAt",function(a){var b=C(a/this.yzCount);
a-=b*this.yzCount;var c=C(a/this.voxelCounts[2]);return this.voxelData[b][c][a-c*this.voxelCounts[2]]},"~N");e(c$,"getPointIndex",function(a,b,c){return a*this.yzCount+b*this.voxelCounts[2]+c},"~N,~N,~N");e(c$,"getPoint",function(a,b){var c=C(a/this.yzCount);a-=c*this.yzCount;var d=C(a/this.voxelCounts[2]);this.voxelPtToXYZ(c,d,a-d*this.voxelCounts[2],b)},"~N,JU.P3");e(c$,"setVoxelData",function(a,b){var c=C(a/this.yzCount);a-=c*this.yzCount;var d=C(a/this.voxelCounts[2]);this.voxelData[c][d][a-d*
this.voxelCounts[2]]=b},"~N,~N");e(c$,"setVoxelMap",function(){this.voxelMap=new java.util.Hashtable;this.getYzCount()});e(c$,"setMatrix",function(){for(var a=0;3>a;a++)this.volumetricMatrix.setColumnV(a,this.volumetricVectors[a]);try{this.inverseMatrix.invertM(this.volumetricMatrix)}catch(b){if(T(b,Exception))return JU.Logger.error("VolumeData error setting matrix -- bad unit vectors? "),!1;throw b;}return!0});m(c$,"transform",function(a,b){this.volumetricMatrix.rotate2(a,b)},"JU.V3,JU.V3");m(c$,
"setPlaneParameters",function(a){this.thePlane=a;this.thePlaneNormalMag=Math.sqrt(a.x*a.x+a.y*a.y+a.z*a.z)},"JU.P4");m(c$,"calcVoxelPlaneDistance",function(a,b,c){this.voxelPtToXYZ(a,b,c,this.ptXyzTemp);return this.distancePointToPlane(this.ptXyzTemp)},"~N,~N,~N");e(c$,"getToPlaneParameter",function(){return Math.sqrt(this.thePlane.x*this.thePlane.x+this.thePlane.y*this.thePlane.y+this.thePlane.z*this.thePlane.z)*this.minToPlaneDistance});e(c$,"isNearPlane",function(a,b,c,d){this.voxelPtToXYZ(a,b,
c,this.ptXyzTemp);return this.thePlane.x*this.ptXyzTemp.x+this.thePlane.y*this.ptXyzTemp.y+this.thePlane.z*this.ptXyzTemp.z+this.thePlane.w<d},"~N,~N,~N,~N");m(c$,"distancePointToPlane",function(a){return(this.thePlane.x*a.x+this.thePlane.y*a.y+this.thePlane.z*a.z+this.thePlane.w)/this.thePlaneNormalMag},"JU.T3");m(c$,"voxelPtToXYZ",function(a,b,c,d){d.scaleAdd2(a,this.volumetricVectors[0],this.volumetricOrigin);d.scaleAdd2(b,this.volumetricVectors[1],d);d.scaleAdd2(c,this.volumetricVectors[2],d)},
"~N,~N,~N,JU.T3");e(c$,"setUnitVectors",function(){this.maxVectorLength=0;this.voxelVolume=1;for(var a=0;3>a;a++){var b=this.volumetricVectorLengths[a]=this.volumetricVectors[a].length();if(0==b)return!1;b>this.maxVectorLength&&(this.maxVectorLength=b);this.voxelVolume*=b;this.unitVolumetricVectors[a].setT(this.volumetricVectors[a]);this.unitVolumetricVectors[a].normalize()}this.minToPlaneDistance=2*this.maxVectorLength;this.origin[0]=this.volumetricOrigin.x;this.origin[1]=this.volumetricOrigin.y;
this.origin[2]=this.volumetricOrigin.z;this.spanningVectors=Array(4);this.spanningVectors[0]=JU.V3.newV(this.volumetricOrigin);for(a=0;3>a;a++)b=this.spanningVectors[a+1]=new JU.V3,b.scaleAdd2(this.voxelCounts[a]-1,this.volumetricVectors[a],b);return this.setMatrix()});m(c$,"xyzToVoxelPt",function(a,b,c,d){this.ptXyzTemp.set(a,b,c);this.ptXyzTemp.sub(this.volumetricOrigin);this.inverseMatrix.rotate(this.ptXyzTemp);d.set(Math.round(this.ptXyzTemp.x),Math.round(this.ptXyzTemp.y),Math.round(this.ptXyzTemp.z))},
"~N,~N,~N,JU.T3i");m(c$,"lookupInterpolatedVoxelValue",function(a,b){if(null!=this.mappingPlane)return this.distanceToMappingPlane(a);if(null!=this.sr){var c=this.sr.getValueAtPoint(a,b);return this.isSquared?c*c:c}this.ptXyzTemp.sub2(a,this.volumetricOrigin);this.inverseMatrix.rotate(this.ptXyzTemp);var d,f=this.indexLower(this.ptXyzTemp.x,d=this.voxelCounts[0]-1),h=this.indexUpper(this.ptXyzTemp.x,f,d),g=this.indexLower(this.ptXyzTemp.y,d=this.voxelCounts[1]-1),e=this.indexUpper(this.ptXyzTemp.y,
g,d),c=this.indexLower(this.ptXyzTemp.z,d=this.voxelCounts[2]-1),l=this.indexUpper(this.ptXyzTemp.z,c,d);d=J.jvxl.data.VolumeData.getFractional2DValue(this.mantissa(this.ptXyzTemp.x-f),this.mantissa(this.ptXyzTemp.y-g),this.getVoxelValue(f,g,c),this.getVoxelValue(h,g,c),this.getVoxelValue(f,e,c),this.getVoxelValue(h,e,c));f=J.jvxl.data.VolumeData.getFractional2DValue(this.mantissa(this.ptXyzTemp.x-f),this.mantissa(this.ptXyzTemp.y-g),this.getVoxelValue(f,g,l),this.getVoxelValue(h,g,l),this.getVoxelValue(f,
e,l),this.getVoxelValue(h,e,l));return d+this.mantissa(this.ptXyzTemp.z-c)*(f-d)},"JU.T3,~B");e(c$,"mantissa",function(a){return this.isPeriodic?a-Math.floor(a):a},"~N");e(c$,"getVoxelValue",function(a,b,c){if(null==this.voxelMap)return this.voxelData[a][b][c];a=this.voxelMap.get(Integer.$valueOf(this.getPointIndex(a,b,c)));return null==a?NaN:a.floatValue()},"~N,~N,~N");c$.getFractional2DValue=e(c$,"getFractional2DValue",function(a,b,c,d,f,h){c+=a*(d-c);return c+b*(f+a*(h-f)-c)},"~N,~N,~N,~N,~N,~N");
e(c$,"indexLower",function(a,b){if(this.isPeriodic&&0<b){for(;0>a;)a+=b;for(;a>=b;)a-=b;return C(Math.floor(a))}if(0>a)return 0;var c=C(Math.floor(a));return c>b?b:c},"~N,~N");e(c$,"indexUpper",function(a,b,c){return!this.isPeriodic&&0>a||b==c?b:b+1},"~N,~N,~N");e(c$,"offsetCenter",function(a){var b=new JU.P3;b.scaleAdd2((this.voxelCounts[0]-1)/2,this.volumetricVectors[0],b);b.scaleAdd2((this.voxelCounts[1]-1)/2,this.volumetricVectors[1],b);b.scaleAdd2((this.voxelCounts[2]-1)/2,this.volumetricVectors[2],
b);this.volumetricOrigin.sub2(a,b)},"JU.P3");m(c$,"setDataDistanceToPlane",function(a){this.setPlaneParameters(a);a=this.voxelCounts[0];var b=this.voxelCounts[1],c=this.voxelCounts[2];this.voxelData=A(a,b,c,0);for(var d=0;d<a;d++)for(var f=0;f<b;f++)for(var h=0;h<c;h++)this.voxelData[d][f][h]=this.calcVoxelPlaneDistance(d,f,h)},"JU.P4");m(c$,"filterData",function(a,b){var c=!Float.isNaN(b);if(null!=this.sr)this.isSquared=a;else{var d=this.voxelCounts[0],f=this.voxelCounts[1],h=this.voxelCounts[2];
if(a)for(var g=0;g<d;g++)for(var e=0;e<f;e++)for(var l=0;l<h;l++)this.voxelData[g][e][l]*=this.voxelData[g][e][l];if(c)for(g=0;g<d;g++)for(e=0;e<f;e++)for(l=0;l<h;l++)this.voxelData[g][e][l]=b-this.voxelData[g][e][l]}},"~B,~N");m(c$,"capData",function(a,b){if(null!=this.voxelData){var c=this.voxelCounts[0],d=this.voxelCounts[1],f=this.voxelCounts[2],h=JU.V3.new3(a.x,a.y,a.z);h.normalize();for(var g=0;g<c;g++)for(var e=0;e<d;e++)for(var l=0;l<f;l++){var k=this.voxelData[g][e][l]-b;this.voxelPtToXYZ(g,
e,l,this.ptXyzTemp);var p=(this.ptXyzTemp.x*h.x+this.ptXyzTemp.y*h.y+this.ptXyzTemp.z*h.z+a.w-b)/1;if(0<=p||p>k)this.voxelData[g][e][l]=p}}},"JU.P4,~N");e(c$,"setVolumetricXml",function(){var a=new JU.SB;if(0==this.voxelCounts[0])a.append("<jvxlVolumeData>\n");else{a.append('<jvxlVolumeData origin="'+JU.Escape.eP(this.volumetricOrigin)+'">\n');for(var b=0;3>b;b++)a.append('<jvxlVolumeVector type="'+b+'" count="'+this.voxelCounts[b]+'" vector="'+JU.Escape.eP(this.volumetricVectors[b])+'"></jvxlVolumeVector>\n')}a.append("</jvxlVolumeData>\n");
return this.xmlData=a.toString()});e(c$,"setVoxelMapValue",function(a,b,c,d){null!=this.voxelMap&&this.voxelMap.put(Integer.$valueOf(this.getPointIndex(a,b,c)),Float.$valueOf(d))},"~N,~N,~N,~N");e(c$,"calculateFractionalPoint",function(a,b,c,d,f,h){var g=f-d,e=(a-d)/g;this.edgeVector.sub2(c,b);h.scaleAdd2(e,this.edgeVector,b);if(null==this.sr||!this.doIterate||f==d||0.01>e||0.99<e||0.01>this.edgeVector.length())return a;b=0;this.ptTemp.setT(h);c=this.lookupInterpolatedVoxelValue(this.ptTemp,!1);for(f=
NaN;10>++b;){var l=(c-d)/g;if(0>l||1<l)break;l=(a-c)/g/2;e+=l;if(0>e||1<e)break;h.setT(this.ptTemp);f=c;if(0.005>Math.abs(l))break;this.ptTemp.scaleAdd2(l,this.edgeVector,h);c=this.lookupInterpolatedVoxelValue(this.ptTemp,!1)}return f},"~N,JU.P3,JU.P3,~N,~N,JU.P3")});H("J.jvxl.data");K(null,"J.jvxl.data.JvxlData",["java.lang.Float","JU.SB","J.jvxl.data.JvxlCoder"],function(){c$=O(function(){this.msg="";this.wasCubic=this.wasJvxl=!1;this.jvxlPlane=this.jvxlExcluded=this.jvxlVolumeDataXml=this.jvxlColorData=
this.jvxlEdgeData=this.jvxlSurfaceData=this.jvxlFileMessage=this.jvxlFileTitle=null;this.isColorReversed=this.jvxlDataIsColorDensity=this.jvxlDataIs2dContour=this.jvxlDataIsColorMapped=this.isJvxlPrecisionColor=!1;this.thisSet=-2147483648;this.edgeFractionBase=35;this.edgeFractionRange=90;this.colorFractionBase=35;this.colorFractionRange=90;this.vertexDataOnly=this.isCutoffAbsolute=this.isTruncated=this.isBicolorMap=this.isContoured=this.isXLowToHigh=this.insideOut=this.dataXYReversed=!1;this.vertexCount=
this.nSurfaceInts=this.nEdges=this.nContours=this.nBytes=this.nPointsZ=this.nPointsY=this.nPointsX=this.pointsPerAngstrom=this.cutoff=this.valueMappedToBlue=this.valueMappedToRed=this.mappedDataMax=this.mappedDataMin=0;this.contourValuesUsed=this.contourValues=this.contourColors=this.contourColixes=this.vContours=null;this.thisContour=-1;this.scale3d=0;this.minColorIndex=-1;this.maxColorIndex=0;this.boundingBox=this.version=this.title=null;this.excludedVertexCount=this.excludedTriangleCount=0;this.colorDensity=
!1;this.pointSize=0;this.moleculeXml=null;this.saveVertexCount=this.dataMax=this.dataMin=0;this.vertexColorMap=null;this.nVertexColors=0;this.meshColor=this.color=this.vertexColors=null;this.translucency=0;this.rendering=this.colorScheme=null;this.slabValue=-2147483648;this.isSlabbable=!1;this.diameter=0;this.slabInfo=null;this.allowVolumeRender=!1;this.voxelVolume=0;this.baseColor=this.fixedLattice=this.mapLattice=null;M(this,arguments)},J.jvxl.data,"JvxlData");V(c$,function(){this.jvxlExcluded=
Array(4)});I(c$,function(){});e(c$,"clear",function(){this.allowVolumeRender=!0;this.jvxlVolumeDataXml=this.jvxlColorData=this.jvxlEdgeData=this.jvxlSurfaceData="";this.colorScheme=this.color=null;this.colorDensity=!1;this.pointSize=NaN;this.contourColors=this.contourColixes=this.contourValuesUsed=this.contourValues=null;this.isSlabbable=!1;this.meshColor=this.mapLattice=null;this.msg="";this.nVertexColors=this.nPointsX=0;this.slabInfo=this.fixedLattice=null;this.thisSet=this.slabValue=-2147483648;
this.rendering=null;this.thisContour=-1;this.translucency=0;this.vertexColors=this.vertexColorMap=this.vContours=null;this.voxelVolume=0});e(c$,"setSurfaceInfo",function(a,b,c,d){this.jvxlSurfaceData=d;0==this.jvxlSurfaceData.indexOf("--")&&(this.jvxlSurfaceData=this.jvxlSurfaceData.substring(2));this.jvxlPlane=a;this.mapLattice=b;this.nSurfaceInts=c},"JU.P4,JU.P3,~N,~S");e(c$,"setSurfaceInfoFromBitSet",function(a,b){this.setSurfaceInfoFromBitSetPts(a,b,null)},"JU.BS,JU.P4");e(c$,"setSurfaceInfoFromBitSetPts",
function(a,b,c){var d=new JU.SB;a=null!=b?0:J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(a,this.nPointsX*this.nPointsY*this.nPointsZ,d);this.setSurfaceInfo(b,c,a,d.toString())},"JU.BS,JU.P4,JU.P3");e(c$,"jvxlUpdateInfo",function(a,b){this.title=a;this.nBytes=b},"~A,~N");c$.updateSurfaceData=e(c$,"updateSurfaceData",function(a,b,c,d,f){if(0==a.length)return"";a=a.toCharArray();for(var h=0,g=0;h<c;h+=d,g++)Float.isNaN(b[h])&&(a[g]=f);return String.copyValueOf(a)},"~S,~A,~N,~N,~S")});H("J.jvxl.data");
K(["JU.MeshSurface"],"J.jvxl.data.MeshData",["java.lang.Float","java.util.Arrays","JU.AU","$.BS","$.V3"],function(){c$=O(function(){this.setsSuccessful=!1;this.vertexIncrement=1;this.polygonColorData=null;oa("J.jvxl.data.MeshData.SSet")||J.jvxl.data.MeshData.$MeshData$SSet$();oa("J.jvxl.data.MeshData.SortSet")||J.jvxl.data.MeshData.$MeshData$SortSet$();M(this,arguments)},J.jvxl.data,"MeshData",JU.MeshSurface);e(c$,"addVertexCopy",function(a,b,c,d){0>c&&(this.vertexIncrement=-c);return this.addVCVal(a,
b,d)},"JU.T3,~N,~N,~B");e(c$,"getSurfaceSet",function(){return null==this.surfaceSet?this.getSurfaceSetForLevel(0):this.surfaceSet});e(c$,"getSurfaceSetForLevel",function(a){0==a&&(this.surfaceSet=Array(100),this.nSets=0);this.setsSuccessful=!0;for(var b=0;b<this.pc;b++)if(null!=this.pis[b]&&(null==this.bsSlabDisplay||this.bsSlabDisplay.get(b))){var c=this.pis[b],d=this.findSet(c[0]),f=this.findSet(c[1]),h=this.findSet(c[2]);0>d&&0>f&&0>h?this.createSet(c[0],c[1],c[2]):d==f&&f==h||(0<=d?(this.surfaceSet[d].set(c[1]),
this.surfaceSet[d].set(c[2]),0<=f&&f!=d&&this.mergeSets(d,f),0<=h&&(h!=d&&h!=f)&&this.mergeSets(d,h)):0<=f?(this.surfaceSet[f].set(c[0]),this.surfaceSet[f].set(c[2]),0<=h&&h!=f&&this.mergeSets(f,h)):(this.surfaceSet[h].set(c[0]),this.surfaceSet[h].set(c[1])))}for(b=c=0;b<this.nSets;b++)null!=this.surfaceSet[b]&&c++;d=Array(this.surfaceSet.length);for(b=c=0;b<this.nSets;b++)null!=this.surfaceSet[b]&&(d[c++]=this.surfaceSet[b]);this.nSets=c;this.surfaceSet=d;!this.setsSuccessful&&2>a&&this.getSurfaceSetForLevel(a+
1);if(0==a){a=Array(this.nSets);for(b=0;b<this.nSets;b++)a[b]=na(J.jvxl.data.MeshData.SSet,this,null,this.surfaceSet[b]);java.util.Arrays.sort(a,na(J.jvxl.data.MeshData.SortSet,this,null));for(b=0;b<this.nSets;b++)this.surfaceSet[b]=a[b].bs;this.setVertexSets(!1)}return this.surfaceSet},"~N");e(c$,"setVertexSets",function(a){if(null!=this.surfaceSet){for(var b=0,c=0;c<this.nSets;c++)null!=this.surfaceSet[c]&&0==this.surfaceSet[c].cardinality()&&(this.surfaceSet[c]=null),null==this.surfaceSet[c]&&
b++;if(0<b){a=Array(this.nSets-b);for(var d=c=0;c<this.nSets;c++)null!=this.surfaceSet[c]&&(a[d++]=this.surfaceSet[c]);this.surfaceSet=a;this.nSets-=b}else if(a)return;this.vertexSets=G(this.vc,0);for(c=0;c<this.nSets;c++)for(b=this.surfaceSet[c].nextSetBit(0);0<=b;b=this.surfaceSet[c].nextSetBit(b+1))this.vertexSets[b]=c}},"~B");e(c$,"findSet",function(a){for(var b=0;b<this.nSets;b++)if(null!=this.surfaceSet[b]&&this.surfaceSet[b].get(a))return b;return-1},"~N");e(c$,"createSet",function(a,b,c){var d;
for(d=0;d<this.nSets&&null!=this.surfaceSet[d];d++);d==this.surfaceSet.length&&(this.surfaceSet=JU.AU.ensureLength(this.surfaceSet,this.surfaceSet.length+100));this.surfaceSet[d]=new JU.BS;this.surfaceSet[d].set(a);this.surfaceSet[d].set(b);this.surfaceSet[d].set(c);d==this.nSets&&this.nSets++},"~N,~N,~N");e(c$,"mergeSets",function(a,b){this.surfaceSet[a].or(this.surfaceSet[b]);this.surfaceSet[b]=null},"~N,~N");e(c$,"invalidateSurfaceSet",function(a){for(var b=this.surfaceSet[a].nextSetBit(0);0<=
b;b=this.surfaceSet[a].nextSetBit(b+1))this.vvs[b]=NaN;this.surfaceSet[a]=null},"~N");c$.checkCutoff=e(c$,"checkCutoff",function(a,b,c,d){if(0>a||0>b||0>c)return!1;a=d[a];b=d[b];c=d[c];return 0<=a&&0<=b&&0<=c||0>=a&&0>=b&&0>=c},"~N,~N,~N,~A");c$.calculateVolumeOrArea=e(c$,"calculateVolumeOrArea",function(a,b,c,d){(d||0>=a.nSets)&&a.getSurfaceSet();for(var f=(d=-1<=b)||0>=a.nSets?1:a.nSets,h=Xa(f,0),g=new JU.V3,e=new JU.V3,l=new JU.V3,k=a.pc;0<=--k;)if(null!=a.setABC(k)){var p=0>=a.nSets?0:a.vertexSets[a.iA];
0<=b&&p!=b||(c?(g.sub2(a.vs[a.iB],a.vs[a.iA]),e.sub2(a.vs[a.iC],a.vs[a.iA]),l.cross(g,e),h[d?0:p]+=l.length()):(g.setT(a.vs[a.iB]),e.setT(a.vs[a.iC]),l.cross(g,e),e.setT(a.vs[a.iA]),h[d?0:p]+=e.dot(l)))}a=c?2:6;for(k=0;k<f;k++)h[k]/=a;return d?Float.$valueOf(h[0]):h},"J.jvxl.data.MeshData,~N,~B,~B");e(c$,"updateInvalidatedVertices",function(a){a.clearAll();for(var b=0;b<this.vc;b+=this.vertexIncrement)Float.isNaN(this.vvs[b])&&a.set(b)},"JU.BS");e(c$,"invalidateVertices",function(a){for(var b=a.nextSetBit(0);0<=
b;b=a.nextSetBit(b+1))this.vvs[b]=NaN},"JU.BS");c$.$MeshData$SSet$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);this.bs=null;this.n=0;M(this,arguments)},J.jvxl.data.MeshData,"SSet");I(c$,function(a){this.bs=a;this.n=a.cardinality()},"JU.BS");c$=ja()};c$.$MeshData$SortSet$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);M(this,arguments)},J.jvxl.data.MeshData,"SortSet",null,java.util.Comparator);m(c$,"compare",function(a,b){return a.n>b.n?-1:a.n<b.n?1:0},"J.jvxl.data.MeshData.SSet,J.jvxl.data.MeshData.SSet");
c$=ja()};Z(c$,"MODE_GET_VERTICES",1,"MODE_GET_COLOR_INDEXES",2,"MODE_PUT_SETS",3,"MODE_PUT_VERTICES",4)});H("J.jvxl.readers");K(null,"J.jvxl.readers.XmlReader",["JU.P3","$.PT","$.SB","$.XmlUtil","JU.Escape"],function(){c$=O(function(){this.line=this.br=null;M(this,arguments)},J.jvxl.readers,"XmlReader");e(c$,"getLine",function(){return this.line});I(c$,function(a){this.br=a},"java.io.BufferedReader");e(c$,"toTag",function(a){this.skipTo("<"+a);if(null==this.line)return"";var b=this.line.indexOf("<"+
a)+a.length+1;if(b==this.line.length||" "==this.line.charAt(b)||">"==this.line.charAt(b))return this.line;this.line=null;return this.toTag(a)},"~S");e(c$,"skipTag",function(a){this.skipTo("</"+a+">")},"~S");e(c$,"getXmlData",function(a,b,c,d){var f="</"+a+">";a="<"+a;if(null==b){b=new JU.SB;try{null==this.line&&(this.line=this.br.readLine());for(;0>this.line.indexOf(a);)this.line=this.br.readLine()}catch(h){if(T(h,Exception))return null;throw h;}b.append(this.line);var g=!1,e=this.line.indexOf("/>"),
l=this.line.indexOf(">");if(0>l||e==l-1)g=d;for(;0>this.line.indexOf(f)&&(!g||0>this.line.indexOf("/>"));)b.append(this.line=this.br.readLine());b=b.toString()}return J.jvxl.readers.XmlReader.extractTag(b,a,f,c)},"~S,~S,~B,~B");c$.extractTagOnly=e(c$,"extractTagOnly",function(a,b){return J.jvxl.readers.XmlReader.extractTag(a,"<"+b+">","</"+b+">",!1)},"~S,~S");c$.extractTag=e(c$,"extractTag",function(a,b,c,d){b=a.indexOf(b);if(0>b)return"";var f=a.indexOf(c,b);0>f&&(f=a.indexOf("/>",b),c="/>");if(0>
f)return"";if(d)return f+=c.length,a.substring(b,f);for(c=!1;b<f;b++)if('"'==(d=a.charAt(b)))c=!c;else if(c&&"\\"==d)b++;else if(!c&&(">"==d||"/"==d))break;if(b>=f)return"";for(;JU.PT.isWhitespace(a.charAt(++b)););return JU.XmlUtil.unwrapCdata(a.substring(b,f))},"~S,~S,~S,~B");c$.getXmlAttrib=e(c$,"getXmlAttrib",function(a,b){var c=G(1,0),d=J.jvxl.readers.XmlReader.setNext(a,b,c,1);if(2>d||2>(d=J.jvxl.readers.XmlReader.setNext(a,'"',c,0)))return"";c=J.jvxl.readers.XmlReader.setNext(a,'"',c,-1);return 0>=
c?"":a.substring(d,c)},"~S,~S");e(c$,"getXmlPoint",function(a,b){var c=J.jvxl.readers.XmlReader.getXmlAttrib(a,b).$replace("(","{").$replace(")","}"),c=JU.Escape.uP(c);return U(c,JU.P3)?c:new JU.P3},"~S,~S");c$.setNext=e(c$,"setNext",function(a,b,c,d){var f=c[0];if(0>f||0>(f=a.indexOf(b,c[0])))return-1;f+=b.length;c[0]=f+d;return 0<d&&f<a.length&&"="!=a.charAt(f)?J.jvxl.readers.XmlReader.setNext(a,b,c,d):c[0]},"~S,~S,~A,~N");e(c$,"skipTo",function(a){null==this.line&&(this.line=this.br.readLine());
for(;null!=this.line&&0>this.line.indexOf(a);)this.line=this.br.readLine()},"~S");e(c$,"isNext",function(a){if(null==this.line||0<=this.line.indexOf("</")&&this.line.indexOf("</")==this.line.indexOf("<"))this.line=this.br.readLine();return 0<=this.line.indexOf("<"+a)},"~S")});H("J.jvxl.readers");K(["JU.P3","$.V3"],"J.jvxl.readers.SurfaceGenerator","java.lang.Float java.util.Map JU.AU $.BS $.Measure $.P4 $.PT $.Rdr J.jvxl.data.JvxlCoder $.JvxlData $.MeshData $.VolumeData J.jvxl.readers.Parameters $.SurfaceReader JU.Logger".split(" "),
function(){c$=O(function(){this.version=this.marchingSquares=this.atomDataServer=this.meshDataServer=this.volumeDataTemp=this.meshData=this.jvxlData=this.params=null;this.isValid=!0;this.bsVdw=this.fileType=null;this.colorPtr=0;this.ptRef=this.vNorm=this.vAB=this.readerData=this.out=this.surfaceReader=null;M(this,arguments)},J.jvxl.readers,"SurfaceGenerator");V(c$,function(){this.vAB=new JU.V3;this.vNorm=new JU.V3;this.ptRef=JU.P3.new3(0,0,1E15)});I(c$,function(a,b,c,d){this.atomDataServer=a;this.meshDataServer=
b;this.params=new J.jvxl.readers.Parameters;this.meshData=null==c?new J.jvxl.data.MeshData:c;this.jvxlData=null==d?new J.jvxl.data.JvxlData:d;this.volumeDataTemp=new J.jvxl.data.VolumeData;this.initializeIsosurface()},"J.atomdata.AtomDataServer,J.jvxl.api.MeshDataServer,J.jvxl.data.MeshData,J.jvxl.data.JvxlData");e(c$,"setJvxlData",function(a){this.jvxlData=a;null!=a&&(a.version=this.version)},"J.jvxl.data.JvxlData");e(c$,"isInsideOut",function(){return this.params.insideOut!=this.params.dataXYReversed});
e(c$,"isFullyLit",function(){return null!=this.params.thePlane||this.params.fullyLit});e(c$,"setProp",function(a,b){if("debug"===a){var c=b.booleanValue();this.params.logMessages=c;this.params.logCube=c;return!0}if("init"===a)return this.initializeIsosurface(),U(b,J.jvxl.readers.Parameters)?this.params=b:(this.params.script=b,null!=this.params.script&&0<=this.params.script.indexOf(";#")&&(this.params.script=JU.PT.rep(this.params.script,";#","; #"))),!1;if("map"===a)return this.params.resetForMapping(b.booleanValue()),
null!=this.surfaceReader&&(this.surfaceReader.minMax=null),!0;if("finalize"===a)return this.initializeIsosurface(),!0;if("clear"===a)return null!=this.surfaceReader&&this.surfaceReader.discardTempData(!0),!1;if("fileIndex"===a)return this.params.fileIndex=b.intValue(),0>this.params.fileIndex&&(this.params.fileIndex=0),this.params.readAllData=!1,!0;if("blockData"===a)return this.params.blockCubeData=b.booleanValue(),!0;if("withinPoints"===a)return this.params.boundingBox=b[1],!0;if("boundingBox"===
a)return this.params.boundingBox=[JU.P3.newP(b[0]),JU.P3.newP(b[b.length-1])],!0;if("func"===a)return this.params.func=b,!0;if("intersection"===a)return this.params.intersection=b,!0;if("bsSolvent"===a)return this.params.bsSolvent=b,!0;if("select"===a)return this.params.bsSelected=b,!0;if("ignore"===a)return this.params.bsIgnore=b,!0;if("propertySmoothing"===a)return this.params.propertySmoothing=b.booleanValue(),!0;if("propertyDistanceMax"===a)return this.params.propertyDistanceMax=b.floatValue(),
!0;if("propertySmoothingPower"===a)return this.params.propertySmoothingPower=b.intValue(),!0;if("title"===a){if(null==b)this.params.title=null;else if(JU.PT.isAS(b)){this.params.title=b;for(var d=0;d<this.params.title.length;d++)0<this.params.title[d].length&&JU.Logger.info(this.params.title[d])}return!0}if("sigma"===a)return this.params.cutoff=this.params.sigma=b.floatValue(),this.params.isPositiveOnly=!1,this.params.cutoffAutomatic=!1,!0;if("cutoff"===a)return this.params.cutoff=b.floatValue(),
this.params.isPositiveOnly=!1,this.params.cutoffAutomatic=!1,!0;if("parameters"===a)return this.params.parameters=JU.AU.ensureLengthA(b,2),0<this.params.parameters.length&&0!=this.params.parameters[0]&&(this.params.cutoff=this.params.parameters[0]),!0;if("cutoffPositive"===a)return this.params.cutoff=b.floatValue(),this.params.isPositiveOnly=!0;if("cap"===a||"slab"===a)return null!=b&&this.params.addSlabInfo(b),!0;if("scale"===a)return this.params.scale=b.floatValue(),!0;if("scale3d"===a)return this.params.scale3d=
b.floatValue(),!0;if("angstroms"===a)return this.params.isAngstroms=!0;if("resolution"===a)return c=b.floatValue(),this.params.resolution=0<c?c:3.4028235E38,!0;if("downsample"===a)return c=b.intValue(),this.params.downsampleFactor=0<=c?c:0,!0;if("anisotropy"===a)return 0==(this.params.dataType&32)&&this.params.setAnisotropy(b),!0;if("eccentricity"===a)return this.params.setEccentricity(b),!0;if("addHydrogens"===a)return this.params.addHydrogens=b.booleanValue(),!0;if("squareData"===a)return this.params.isSquared=
null==b?!1:b.booleanValue(),!0;if("squareLinear"===a)return this.params.isSquaredLinear=null==b?!1:b.booleanValue(),!0;if("gridPoints"===a)return this.params.iAddGridPoints=!0;if("atomIndex"===a)return this.params.atomIndex=b.intValue(),!0;if("insideOut"===a)return this.params.insideOut=!0;if("sign"===a)return this.params.isCutoffAbsolute=!0,this.params.colorBySign=!0,this.colorPtr=0,!0;if("colorRGB"===a)return c=b.intValue(),this.params.colorRgb=this.params.colorPos=this.params.colorPosLCAO=c,0==
this.colorPtr++?this.params.colorNeg=this.params.colorNegLCAO=c:this.params.colorRgb=2147483647,!0;if("monteCarloCount"===a)return this.params.psi_monteCarloCount=b.intValue(),!0;if("rangeAll"===a)return this.params.rangeAll=!0;if("rangeSelected"===a)return this.params.rangeSelected=!0;if("red"===a)return this.params.valueMappedToRed=b.floatValue(),!0;if("blue"===a)return this.params.valueMappedToBlue=b.floatValue(),this.params.valueMappedToRed>this.params.valueMappedToBlue&&(c=this.params.valueMappedToRed,
this.params.valueMappedToRed=this.params.valueMappedToBlue,this.params.valueMappedToBlue=c,this.params.isColorReversed=!this.params.isColorReversed),this.params.rangeDefined=!0,this.params.rangeAll=!1,!0;if("reverseColor"===a)return this.params.isColorReversed=!0;if("setColorScheme"===a)return this.getSurfaceSets(),this.params.colorBySets=!0,this.mapSurface(),!0;if("center"===a)return this.params.center.setT(b),!0;if("origin"===a)return this.params.origin=b,!0;if("step"===a)return this.params.steps=
b,!0;if("point"===a)return this.params.points=b,!0;if("withinDistance"===a)return this.params.distance=b.floatValue(),!0;if("withinPoint"===a)return this.params.point=b,!0;if("progressive"===a)return this.params.isXLowToHigh=!0;if("phase"===a)return this.params.isCutoffAbsolute=!0,this.params.colorBySign=!0,this.params.colorByPhase=!0,this.params.colorPhase=J.jvxl.readers.SurfaceReader.getColorPhaseIndex(b),0>this.params.colorPhase&&(JU.Logger.warn(" invalid color phase: "+b),this.params.colorPhase=
0),this.params.colorByPhase=0!=this.params.colorPhase,2<=this.params.state&&(this.params.dataType=this.params.surfaceType,this.params.state=3,this.params.isBicolorMap=!0,this.surfaceReader.applyColorScale()),!0;if("radius"===a)return JU.Logger.info("solvent probe radius set to "+b),this.params.atomRadiusData=b,!0;if("envelopeRadius"===a)return this.params.envelopeRadius=b.floatValue(),!0;if("cavityRadius"===a)return this.params.cavityRadius=b.floatValue(),!0;if("cavity"===a)return this.params.isCavity=
!0;if("doFullMolecular"===a)return this.params.doFullMolecular=!0;if("pocket"===a)return this.params.pocket=b,this.params.fullyLit=this.params.pocket.booleanValue(),!0;if("minset"===a)return this.params.minSet=b.intValue(),!0;if("maxset"===a)return this.params.maxSet=b.intValue(),!0;if("plane"===a)return this.params.setPlane(b),!0;if("contour"===a){this.params.isContoured=!0;if(JU.PT.isAF(b))this.params.contoursDiscrete=b,this.params.nContours=this.params.contoursDiscrete.length;else if(U(b,JU.P3)){var c=
this.params.contourIncrements=b,d=c.x,f=c.y,h=c.z;0>=h&&(h=1);for(var c=0,g=d;g<=f+h/10;g+=h,c++);this.params.contoursDiscrete=A(c,0);g=d;for(d=0;d<c;d++,g+=h)this.params.contoursDiscrete[d]=g;this.params.nContours=c}else c=b.intValue(),this.params.thisContour=0,0==c?this.params.nContours=9:0<c?this.params.nContours=c:this.params.thisContour=-c;return!0}if("colorDiscrete"===a)return this.params.contourColixes=b,!0;if("colorDensity"===a)return this.params.colorDensity=!0,null!=b&&(this.params.pointSize=
b.floatValue()),!1;if("fullPlane"===a)return this.params.contourFromZero=!b.booleanValue(),!0;if("mapLattice"===a)return this.params.mapLattice=b,!0;if("extendGrid"===a)return this.params.extendGrid=b.floatValue(),!0;if("property"===a)return this.params.dataType=1206,this.params.theProperty=b,this.mapSurface(),!0;if("sphere"===a)return this.params.setSphere(b.floatValue(),!1),this.readerData=Float.$valueOf(this.params.distance),this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),
!0;if("geodesic"===a)return this.params.setSphere(b.floatValue(),!0),this.readerData=Float.$valueOf(this.params.distance),this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),!0;if("ellipsoid"===a){if(U(b,JU.P4))this.params.setEllipsoidP4(b);else if(JU.PT.isAF(b))this.params.setEllipsoidAF(b);else return!0;this.readerData=Float.$valueOf(this.params.distance);this.surfaceReader=this.newReader("IsoShapeReader");this.generateSurface();return!0}if("ellipsoid3"===a)return this.params.setEllipsoidAF(b),
this.readerData=Float.$valueOf(this.params.distance),this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),!0;if("lp"===a)return this.params.setLp(b),this.readerData=[3,2,0,15,0],this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),!0;if("rad"===a)return this.params.setRadical(b),this.readerData=[3,2,0,15,0],this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),!0;if("lobe"===a)return this.params.setLobe(b),this.readerData=[3,2,0,15,
0],this.surfaceReader=this.newReader("IsoShapeReader"),this.generateSurface(),!0;if("hydrogenOrbital"===a){if(!this.params.setAtomicOrbital(b))return this.isValid=!1,!0;this.readerData=[this.params.psi_n,this.params.psi_l,this.params.psi_m,this.params.psi_Znuc,this.params.psi_monteCarloCount];this.surfaceReader=this.newReader("IsoShapeReader");this.processState();return!0}if("functionXY"===a)return this.params.setFunctionXY(b),this.params.isContoured&&this.volumeDataTemp.setPlaneParameters(null==
this.params.thePlane?this.params.thePlane=JU.P4.new4(0,0,1,0):this.params.thePlane),0<=this.params.functionInfo.get(0).indexOf("_xyz")&&this.getFunctionZfromXY(),this.processState(),!0;if("functionXYZ"===a)return this.params.setFunctionXYZ(b),this.processState(),!0;if("lcaoType"===a)return this.params.setLcao(b,this.colorPtr),!0;if("lcaoCartoonCenter"===a){if(2!=++this.params.state)return!0;3.4028235E38==this.params.center.x&&this.params.center.setT(b);return!1}if("molecular"===a||"solvent"===a||
"sasurface"===a||"nomap"===a)return this.params.setSolvent(a,b.floatValue()),JU.Logger.info(this.params.calculationType),this.processState(),!0;if("moData"===a)return this.params.moData=b,!0;if("mepCalcType"===a)return this.params.mep_calcType=b.intValue(),!0;if("mep"===a)return this.params.setMep(b,!1),this.processState(),!0;if("mlp"===a)return this.params.setMep(b,!0),this.processState(),!0;if("nci"===a)return c=b.booleanValue(),this.params.setNci(c),c&&this.processState(),!0;if("calculationType"===
a)return this.params.calculationType=b,!0;if("charges"===a)return this.params.theProperty=b,!0;if("randomSeed"===a)return this.params.randomSeed=b.intValue(),!0;if("molecularOrbital"===a)return c=0,d=null,U(b,Integer)?c=b.intValue():d=b,this.params.setMO(c,d),JU.Logger.info(this.params.calculationType),this.processState(),!0;if("fileType"===a)return this.fileType=b,!0;if("fileName"===a)return this.params.fileName=b,!0;if("outputChannel"===a)return this.out=b,!0;if("readFile"===a){if(null==(this.surfaceReader=
this.setFileData(this.atomDataServer,b)))return JU.Logger.error("Could not set the surface data"),!0;this.surfaceReader.setOutputChannel(this.out);this.generateSurface();return!0}if("mapColor"===a){if(null==(this.surfaceReader=this.setFileData(this.atomDataServer,b)))return JU.Logger.error("Could not set the mapping data"),!0;this.surfaceReader.setOutputChannel(this.out);this.mapSurface();return!0}if("getSurfaceSets"===a)return this.getSurfaceSets(),!0;"periodic"===a&&(this.params.isPeriodic=!0);
return!1},"~S,~O,JU.BS");e(c$,"newReader",function(a){a=J.jvxl.readers.SurfaceGenerator.getInterface(a);null!=a&&a.init(this);return a},"~S");e(c$,"newReaderBr",function(a,b){var c=J.jvxl.readers.SurfaceGenerator.getInterface(a);null!=c&&c.init2(this,b);return c},"~S,java.io.BufferedReader");c$.getInterface=e(c$,"getInterface",function(a){try{var b=Va._4Name("J.jvxl.readers."+a);return null==b?null:b.newInstance()}catch(c){if(T(c,Exception))return JU.Logger.error("Interface.java Error creating instance for "+
a+": \n"+c.toString()),null;throw c;}},"~S");e(c$,"getSurfaceSets",function(){null==this.meshDataServer?this.meshData.getSurfaceSet():(this.meshDataServer.fillMeshData(this.meshData,1,null),this.meshData.getSurfaceSet(),this.meshDataServer.fillMeshData(this.meshData,3,null))});e(c$,"processState",function(){1==this.params.state&&null!=this.params.thePlane&&this.params.state++;2<=this.params.state?this.mapSurface():this.generateSurface()});e(c$,"setReader",function(){this.readerData=null;if(null!=
this.surfaceReader)return!this.surfaceReader.vertexDataOnly;switch(this.params.dataType){case 1205:this.surfaceReader=this.newReader("IsoPlaneReader");break;case 1206:this.surfaceReader=this.newReader("AtomPropertyMapper");break;case 1328:case 1329:this.readerData=1328==this.params.dataType?"Mep":"Mlp";this.surfaceReader=3==this.params.state?this.newReader("AtomPropertyMapper"):this.newReader("Iso"+this.readerData+"Reader");break;case 1333:this.surfaceReader=this.newReader("IsoIntersectReader");break;
case 1195:case 1203:case 1196:this.surfaceReader=this.newReader("IsoSolventReader");break;case 1844:case 1837:this.surfaceReader=this.newReader("IsoMOReader");break;case 8:this.surfaceReader=this.newReader("IsoFxyReader");break;case 9:this.surfaceReader=this.newReader("IsoFxyzReader")}JU.Logger.info("Using surface reader "+this.surfaceReader);return!0});e(c$,"generateSurface",function(){if(2==++this.params.state){this.setReader();var a=null!=this.meshDataServer;this.params.colorBySign&&(this.params.isBicolorMap=
!0);if(null==this.surfaceReader)JU.Logger.error("surfaceReader is null for "+this.params.dataType);else if(this.surfaceReader.createIsosurface(!1)){null!=this.params.pocket&&a&&this.surfaceReader.selectPocket(!this.params.pocket.booleanValue());0<this.params.minSet&&this.surfaceReader.excludeMinimumSet();0<this.params.maxSet&&this.surfaceReader.excludeMaximumSet();null!=this.params.slabInfo&&this.surfaceReader.slabIsosurface(this.params.slabInfo);a&&this.meshDataServer.notifySurfaceGenerationCompleted();
0<=this.jvxlData.thisSet&&this.getSurfaceSets();this.jvxlData.jvxlDataIs2dContour&&(this.surfaceReader.colorIsosurface(),this.params.state=3);this.jvxlData.jvxlDataIsColorDensity&&(this.params.state=3);if(this.params.colorBySign||this.params.isBicolorMap)this.params.state=3,this.surfaceReader.applyColorScale();null!=this.jvxlData.vertexColorMap&&(this.jvxlData.vertexColorMap=null,this.surfaceReader.hasColorData=!1);this.surfaceReader.jvxlUpdateInfo();this.marchingSquares=this.surfaceReader.marchingSquares;
this.surfaceReader.discardTempData(!1);this.params.mappedDataMin=3.4028235E38;this.surfaceReader.closeReader();if(3!=this.params.state&&(this.surfaceReader.hasColorData||this.params.colorDensity))this.params.state=3,this.colorIsosurface();this.surfaceReader=null}else JU.Logger.error("Could not create isosurface"),this.params.cutoff=NaN,this.surfaceReader.closeReader()}});e(c$,"mapSurface",function(){1==this.params.state&&null!=this.params.thePlane&&this.params.state++;if(!(3>++this.params.state)&&
this.setReader()){this.params.isPeriodic&&(this.surfaceReader.volumeData.isPeriodic=!0);if(null!=this.params.thePlane){var a=this.params.isSquared;this.params.isSquared=!1;this.params.cutoff=0;this.surfaceReader.volumeData.setMappingPlane(this.params.thePlane);this.surfaceReader.createIsosurface(!this.params.isPeriodic);this.surfaceReader.volumeData.setMappingPlane(null);null!=this.meshDataServer&&this.meshDataServer.notifySurfaceGenerationCompleted();if(1205==this.params.dataType){this.surfaceReader.discardTempData(!0);
return}this.params.isSquared=a;this.params.mappedDataMin=3.4028235E38;this.surfaceReader.readVolumeData(!0);null!=this.params.mapLattice&&(this.surfaceReader.volumeData.isPeriodic=!0)}else!this.params.colorBySets&&!this.params.colorDensity&&(this.surfaceReader.readAndSetVolumeParameters(!0),this.params.mappedDataMin=3.4028235E38,this.surfaceReader.readVolumeData(!0));this.colorIsosurface();this.surfaceReader.closeReader();this.surfaceReader=null}});e(c$,"colorIsosurface",function(){this.surfaceReader.colorIsosurface();
this.surfaceReader.jvxlUpdateInfo();this.surfaceReader.updateTriangles();this.surfaceReader.discardTempData(!0);null!=this.meshDataServer&&this.meshDataServer.notifySurfaceMappingCompleted()});e(c$,"getProperty",function(a,b){return"jvxlFileData"===a?J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData,null,this.params.title,"",!0,b,null,null):"jvxlFileInfo"===a?J.jvxl.data.JvxlCoder.jvxlGetInfo(this.jvxlData):null},"~S,~N");e(c$,"setFileData",function(a,b){var c=this.fileType;this.fileType=null;if(U(b,
java.util.Map)){var d=b;if(d.containsKey("__pymolSurfaceData__"))return this.readerData=d,this.newReaderBr("PyMOLMeshReader",null);b=d.get("volumeData")}if(U(b,J.jvxl.data.VolumeData))return this.volumeDataTemp=b,this.newReader("VolumeDataReader");d=null;U(b,String)&&(d=b,b=JU.Rdr.getBR(b));var f=b;null==c&&(c=a.fm.jmb.determineSurfaceFileType(f));if(null!=c&&c.startsWith("UPPSALA")){var h=this.params.fileName,h=h.substring(0,h.indexOf("/",10)),h=h+JU.PT.getQuotedStringAt(c,c.indexOf("A HREF")+1);
this.params.fileName=h;b=this.atomDataServer.getBufferedInputStream(h);if(null==b)return JU.Logger.error("Isosurface: could not open file "+h),null;try{f=JU.Rdr.getBufferedReader(b,null)}catch(g){if(!T(g,Exception))throw g;}c=a.fm.jmb.determineSurfaceFileType(f)}null==c&&(c="UNKNOWN");JU.Logger.info("data file type was determined to be "+c);if(c.equals("Jvxl+"))return this.newReaderBr("JvxlReader",f);this.readerData=[this.params.fileName,d];if(0<="MRC DELPHI DSN6".indexOf(c.toUpperCase())){try{f.close()}catch(e){if(!T(e,
java.io.IOException))throw e;}f=null;c+="Binary"}return this.newReaderBr(c+"Reader",f)},"JV.Viewer,~O");e(c$,"getReaderData",function(){var a=this.readerData;this.readerData=null;return a});e(c$,"initializeIsosurface",function(){this.params.initialize();this.colorPtr=0;this.marchingSquares=this.surfaceReader=null;this.initState()});e(c$,"initState",function(){this.params.state=1;this.params.dataType=this.params.surfaceType=0});e(c$,"setLcao",function(){this.params.colorPos=this.params.colorPosLCAO;
this.params.colorNeg=this.params.colorNegLCAO;return this.params.lcaoType});e(c$,"getFunctionZfromXY",function(){for(var a=this.params.functionInfo.get(1),b=G(3,0),c=G(3,0),d=Array(3),f=0;3>f;f++){var h=this.params.functionInfo.get(f+2);b[f]=Math.abs(u(h.x));d[f]=JU.V3.new3(h.y,h.z,h.w)}for(var h=b[0],b=b[1],e=new JU.P3,j=new JU.P3,l=new JU.P3,k=new JU.P3,p=this.params.functionInfo.get(5),v=A(h,b,0),m,f=0;f<h;f++)for(var s=0;s<b;s++){e.scaleAdd2(f,d[0],a);e.scaleAdd2(s,d[1],e);var w=J.jvxl.readers.SurfaceGenerator.findNearestThreePoints(e.x,
e.y,p,c);j.set((m=p[c[0]])[0],m[1],m[2]);1E-5>w?e.z=m[2]:(l.set((m=p[c[1]])[0],m[1],m[2]),k.set((m=p[c[2]])[0],m[1],m[2]),e.z=this.distanceVerticalToPlane(e.x,e.y,j,l,k));v[f][s]=e.z}this.params.functionInfo.set(5,v)});e(c$,"distanceVerticalToPlane",function(a,b,c,d,f){c=JU.Measure.getDirectedNormalThroughPoints(c,d,f,this.ptRef,this.vNorm,this.vAB);return(this.vNorm.x*a+this.vNorm.y*b+c)/-this.vNorm.z},"~N,~N,JU.P3,JU.P3,JU.P3");c$.findNearestThreePoints=e(c$,"findNearestThreePoints",function(a,
b,c,d){var f,h,e,j,l,k,p;l=k=p=-1;h=e=j=3.4028235E38;for(var m=c.length;0<=--m;)f=(f=c[m][0]-a)*f+(f=c[m][1]-b)*f,f<h?(j=e,e=h,h=f,p=k,k=l,l=m):f<e?(j=e,e=f,p=k,k=m):f<j&&(j=f,p=m);d[0]=l;d[1]=k;d[2]=p;return h},"~N,~N,~A,~A");e(c$,"addRequiredFile",function(a){null!=this.meshDataServer&&this.meshDataServer.addRequiredFile(a)},"~S");e(c$,"log",function(a){null==this.atomDataServer?System.out.println(a):this.atomDataServer.log(a)},"~S");e(c$,"setOutputChannel",function(a,b){null!=this.meshDataServer&&
this.meshDataServer.setOutputChannel(a,b)},"javajs.api.GenericBinaryDocument,JU.OC");e(c$,"fillAtomData",function(a,b){0!=(b&2)&&null!=a.bsSelected&&(null==this.bsVdw&&(this.bsVdw=new JU.BS),this.bsVdw.or(a.bsSelected));this.atomDataServer.fillAtomData(a,b)},"J.atomdata.AtomData,~N");e(c$,"getSpanningVectors",function(){return null==this.surfaceReader.volumeData?null:this.surfaceReader.volumeData.spanningVectors})});H("J.jvxl.readers");K(null,"J.jvxl.readers.Parameters","java.lang.Float java.util.Hashtable JU.A4 $.Lst $.M3 $.P3 $.P4 $.V3 JU.Escape $.Logger".split(" "),
function(){c$=O(function(){this.testFlags=this.state=0;this.isSilent=this.logCube=this.logCompression=this.logMessages=!1;this.assocCutoff=0.3;this.surfaceType=this.dataType=0;this.calculationType="";this.atomRadiusData=null;this.addHydrogens=!1;this.solventExtendedAtomRadius=this.solventRadius=0;this.propertySmoothing=!1;this.propertySmoothingPower=4;this.cavityRadius=this.envelopeRadius=0;this.isCavity=!1;this.pocket=null;this.minSet=0;this.slabInfo=null;this.slabPlaneOffset=NaN;this.theProperty=
null;this.solvent_ptsPerAngstrom=4;this.solvent_gridMax=60;this.plane_ptsPerAngstrom=4;this.plane_gridMax=81;this.colorBySets=this.colorByPhase=this.colorBySign=!1;this.colorPhase=this.colorNegLCAO=this.colorPosLCAO=this.colorPos=this.colorNeg=this.colorRgb=0;this.iAddGridPoints=this.colorDensity=!1;this.atomIndex=0;this.isAngstroms=!1;this.scale3d=this.scale=0;this.anisotropy=null;this.isAnisotropic=!1;this.eccentricityMatrixInverse=this.eccentricityMatrix=null;this.isEccentric=!1;this.eccentricityRatio=
this.eccentricityScale=0;this.functionInfo=this.lcaoType=this.anisoB=this.aniosU=null;this.psi_n=2;this.psi_Znuc=this.psi_m=this.psi_l=1;this.psi_ptsPerAngstrom=5;this.psi_monteCarloCount=0;this.mep_gridMax=40;this.mep_ptsPerAngstrom=3;this.mep_marginAngstroms=1;this.mep_calcType=-1;this.qmOrbitalCount=this.qmOrbitalType=0;this.moData=null;this.qm_gridMax=80;this.qm_ptsPerAngstrom=10;this.qm_marginAngstroms=1;this.qm_nAtoms=0;this.qm_moNumber=2147483647;this.point=this.center=this.qm_moLinearCombination=
null;this.distance=0;this.allowVolumeRender=!1;this.title=this.func=this.bsSolvent=this.bsIgnore=this.bsSelected=this.script=null;this.readAllData=this.blockCubeData=!1;this.fileIndex=-1;this.fileName=null;this.modelIndex=-1;this.dataXYReversed=this.insideOut=this.isXLowToHigh=!1;this.sigma=this.cutoff=3.4028235E38;this.cutoffAutomatic=!0;this.rangeDefined=this.rangeSelected=this.rangeAll=this.isPositiveOnly=this.isCutoffAbsolute=!1;this.mappedDataMax=this.mappedDataMin=this.valueMappedToBlue=this.valueMappedToRed=
0;this.isSquaredLinear=this.isSquared=this.isBicolorMap=this.isColorReversed=!1;this.thePlane=null;this.isContoured=!1;this.thisContour=this.nContours=0;this.contourFromZero=!1;this.parameters=null;this.maxSet=this.downsampleFactor=this.resolution=0;this.bsExcluded=this.boundingBox=this.contourIncrements=this.contourColixes=this.contoursDiscrete=null;this.contourType=0;this.colorSchemeTranslucent=!1;this.colorEncoder=null;this.usePropertyForColorRange=!0;this.doFullMolecular=this.isPeriodic=!1;this.propertyDistanceMax=
2147483647;this.randomSeed=0;this.fullyLit=!1;this.mapLattice=this.contactPair=this.volumeData=this.points=this.steps=this.origin=this.intersection=this.vertexSource=null;this.extendGrid=0;this.showTiming=this.isMapped=!1;this.pointSize=0;M(this,arguments)},J.jvxl.readers,"Parameters");V(c$,function(){this.anisotropy=A(3,0)});e(c$,"initialize",function(){this.addHydrogens=!1;this.allowVolumeRender=!0;this.atomRadiusData=null;this.atomIndex=-1;this.blockCubeData=!1;this.boundingBox=null;this.bsExcluded=
Array(4);this.bsSolvent=this.bsSelected=this.bsIgnore=null;this.calculationType="";this.center=new JU.P3;this.resetForMapping(!0);this.colorBySign=this.colorByPhase=this.colorBySets=!1;this.colorEncoder=null;this.colorNeg=-65536;this.colorNegLCAO=-8388480;this.colorPos=-16776961;this.colorPosLCAO=-23296;this.colorRgb=-2147483648;this.colorSchemeTranslucent=!1;this.contourColixes=this.contoursDiscrete=this.contourIncrements=this.contactPair=null;this.contourFromZero=!0;this.cutoff=3.4028235E38;this.cutoffAutomatic=
!0;this.dataXYReversed=!1;this.distance=3.4028235E38;this.doFullMolecular=!1;this.envelopeRadius=10;this.extendGrid=0;this.fileIndex=1;this.readAllData=!0;this.fileName="";this.fullyLit=!1;this.functionInfo=null;this.logCube=this.logCompression=this.isSilent=this.isPeriodic=this.isMapped=this.isEccentric=this.isContoured=this.isSquaredLinear=this.isSquared=this.isColorReversed=this.isCavity=this.isBicolorMap=this.isCutoffAbsolute=this.isPositiveOnly=this.isAngstroms=this.insideOut=this.iAddGridPoints=
!1;this.logMessages=JU.Logger.debugging;this.mapLattice=null;this.mep_calcType=-1;this.minSet=0;this.modelIndex=-1;this.nContours=0;this.pocket=null;this.pointSize=NaN;this.propertyDistanceMax=2147483647;this.propertySmoothing=!1;this.propertySmoothingPower=4;this.rangeSelected=this.rangeAll=this.rangeDefined=!1;this.resolution=3.4028235E38;this.scale=NaN;this.scale3d=0;this.sigma=NaN;this.slabInfo=null;this.solventExtendedAtomRadius=0;this.state=1;this.testFlags=0;this.theProperty=this.thePlane=
null;this.thisContour=-1;this.title=null;this.usePropertyForColorRange=!0;this.vertexSource=null});e(c$,"resetForMapping",function(a){a||(this.state=2);this.center.x=NaN;this.colorDensity=!1;this.intersection=this.func=null;this.isAnisotropic=!1;this.isMapped=!0;this.mappedDataMin=3.4028235E38;this.points=this.parameters=this.origin=null;this.qmOrbitalType=0;this.volumeData=this.steps=null},"~B");e(c$,"setAnisotropy",function(a){this.anisotropy[0]=a.x;this.anisotropy[1]=a.y;this.anisotropy[2]=a.z;
this.isAnisotropic=!0;Float.isNaN(this.center.x)&&this.center.set(0,0,0)},"JU.P3");e(c$,"setEccentricity",function(a){var b=JU.V3.new3(a.x,a.y,a.z),c=0<this.scale?this.scale:0>a.w?1:b.length();a=Math.abs(a.w);b.normalize();var d=JU.V3.new3(0,0,1);b.add(d);b.normalize();Float.isNaN(b.x)&&b.set(1,0,0);this.eccentricityMatrixInverse=new JU.M3;this.eccentricityMatrixInverse.invertM(this.eccentricityMatrix=(new JU.M3).setAA(JU.A4.newVA(b,3.141592653589793)));this.isEccentric=this.isAnisotropic=!0;this.eccentricityScale=
c;this.eccentricityRatio=a;1<a&&(this.eccentricityScale*=a);this.anisotropy[0]=a*c;this.anisotropy[1]=a*c;this.anisotropy[2]=c;Float.isNaN(this.center.x)&&this.center.set(0,0,0)},"JU.P4");e(c$,"setPlane",function(a){this.thePlane=a;0==this.thePlane.x&&(0==this.thePlane.y&&0==this.thePlane.z)&&(this.thePlane.z=1);this.isContoured=!0},"JU.P4");e(c$,"setSphere",function(a,b){this.dataType=b?74:65;this.distance=a;this.setEccentricity(JU.P4.new4(0,0,1,1));this.cutoff=1.4E-45;this.isCutoffAbsolute=!1;this.isSilent=
!this.logMessages;this.script=this.getScriptParams()+" SPHERE "+a+";"},"~N,~B");e(c$,"setEllipsoidP4",function(a){this.dataType=66;this.distance=1;this.setEccentricity(a);this.cutoff=1.4E-45;this.isCutoffAbsolute=!1;this.isSilent=!this.logMessages},"JU.P4");e(c$,"setEllipsoidAF",function(a){this.anisoB=a;this.dataType=67;this.distance=0.3*(Float.isNaN(this.scale)?1:this.scale);this.cutoff=1.4E-45;this.isCutoffAbsolute=!1;this.isSilent=!this.logMessages;3.4028235E38==this.center.x&&this.center.set(0,
0,0);3.4028235E38==this.resolution&&(this.resolution=6)},"~A");e(c$,"setLobe",function(a){this.dataType=68;this.setEccentricity(a);3.4028235E38==this.cutoff&&(this.cutoff=0.14,this.isSquared&&(this.cutoff*=this.cutoff));this.isSilent=!this.logMessages;this.script=this.getScriptParams()+" LOBE {"+a.x+" "+a.y+" "+a.z+" "+a.w+"};"},"JU.P4");e(c$,"getScriptParams",function(){return" center "+JU.Escape.eP(this.center)+(Float.isNaN(this.scale)?"":" scale "+this.scale)});e(c$,"setLp",function(a){this.dataType=
70;this.setEccentricity(a);3.4028235E38==this.cutoff&&(this.cutoff=0.14,this.isSquared&&(this.cutoff*=this.cutoff));this.isSilent=!this.logMessages;this.script=" center "+JU.Escape.eP(this.center)+(Float.isNaN(this.scale)?"":" scale "+this.scale)+" LP {"+a.x+" "+a.y+" "+a.z+" "+a.w+"};"},"JU.P4");e(c$,"setRadical",function(a){this.dataType=71;this.setEccentricity(a);3.4028235E38==this.cutoff&&(this.cutoff=0.14,this.isSquared&&(this.cutoff*=this.cutoff));this.isSilent=!this.logMessages;this.script=
" center "+JU.Escape.eP(this.center)+(Float.isNaN(this.scale)?"":" scale "+this.scale)+" RAD {"+a.x+" "+a.y+" "+a.z+" "+a.w+"};"},"JU.P4");e(c$,"setLcao",function(a,b){this.lcaoType=a;1==b&&(this.colorPosLCAO=this.colorNegLCAO);this.isSilent=!this.logMessages},"~S,~N");e(c$,"setSolvent",function(a,b){this.isEccentric=this.isAnisotropic=!1;this.solventRadius=Math.abs(b);this.dataType=null!=this.intersection?1333:"nomap"===a?1205:"molecular"===a?1203:"sasurface"===a||0==this.solventRadius?1196:1195;
if(2>this.state&&(this.cutoffAutomatic||!this.colorDensity)&&(null==this.intersection||3.4028235E38==this.cutoff))this.cutoff=0;switch(this.dataType){case 1333:this.calculationType="VDW intersection";break;case 1205:this.calculationType="unmapped plane";break;case 1203:this.calculationType="molecular surface with radius "+this.solventRadius;break;case 1195:this.calculationType="solvent-excluded surface with radius "+this.solventRadius;break;case 1196:this.calculationType="solvent-accessible surface with radius "+
this.solventRadius}switch(this.dataType){case 1205:this.solventExtendedAtomRadius=this.solventRadius;this.solventRadius=0;this.isContoured=!1;break;case 1203:this.solventExtendedAtomRadius=0;break;case 1195:this.solventExtendedAtomRadius=0;null==this.bsIgnore?this.bsIgnore=this.bsSolvent:null!=this.bsSolvent&&this.bsIgnore.or(this.bsSolvent);break;case 1196:this.solventExtendedAtomRadius=this.solventRadius,this.solventRadius=0,null==this.bsIgnore?this.bsIgnore=this.bsSolvent:null!=this.bsSolvent&&
this.bsIgnore.or(this.bsSolvent)}},"~S,~N");e(c$,"setFunctionXY",function(a){this.dataType=8;this.functionInfo=a;this.cutoff=1.4E-45;this.isEccentric=this.isAnisotropic=!1},"JU.Lst");e(c$,"setFunctionXYZ",function(a){this.dataType=9;this.functionInfo=a;3.4028235E38==this.cutoff&&(this.cutoff=1.4E-45);this.isEccentric=this.isAnisotropic=!1},"JU.Lst");e(c$,"setAtomicOrbital",function(a){this.dataType=1294;this.setEccentricity(JU.P4.new4(0,0,1,1));this.psi_n=u(a[0]);this.psi_l=u(a[1]);this.psi_m=u(a[2]);
this.psi_Znuc=a[3];this.psi_monteCarloCount=u(a[4]);this.distance=a[5];if(0!=this.distance||null!=this.thePlane)this.allowVolumeRender=!1;this.randomSeed=u(a[6]);this.psi_ptsPerAngstrom=10;if(3.4028235E38==this.cutoff||0.14==this.cutoff)this.cutoff=0<this.psi_monteCarloCount?0:0.04,this.isSquared&&(this.cutoff*=this.cutoff);this.isCutoffAbsolute=!0;2>this.state&&(null==this.thePlane&&this.colorBySign)&&(this.isBicolorMap=!0);return 0<this.psi_Znuc&&Math.abs(this.psi_m)<=this.psi_l&&this.psi_l<this.psi_n},
"~A");e(c$,"setMep",function(a,b){this.dataType=b?1329:1328;this.theProperty=a;this.isEccentric=this.isAnisotropic=this.usePropertyForColorRange=!1;3.4028235E38==this.cutoff&&(this.cutoff=0.1,this.isSquared&&(this.cutoff*=this.cutoff));this.isCutoffAbsolute=0<this.cutoff&&!this.isPositiveOnly;this.contourFromZero=!1;2<=this.state||null!=this.thePlane?!this.rangeDefined&&!this.rangeAll&&(this.valueMappedToRed=-0.1,this.valueMappedToBlue=0.1,this.rangeDefined=!0):this.isBicolorMap=this.colorBySign=
!0},"~A,~B");e(c$,"setNci",function(a){this.fullyLit=!0;this.qm_gridMax=200;a&&(this.dataType=1844);this.qm_marginAngstroms=2;this.qmOrbitalType=a?3:4;if(a&&(null==this.parameters||2>this.parameters.length))this.parameters=[this.cutoff,2];if(3.4028235E38==this.cutoff||0==this.cutoff)this.cutoff=0.3;this.isSquared&&(this.cutoff*=this.cutoff);null==this.title&&(this.title=[]);this.moData=new java.util.Hashtable},"~B");e(c$,"setMO",function(a,b){this.qm_moLinearCombination=b;this.qm_moNumber=null==b?
Math.abs(a):u(b[1]);this.qmOrbitalType=this.moData.containsKey("haveVolumeData")?5:this.moData.containsKey("gaussians")?1:this.moData.containsKey("slaters")?2:0;var c=0>=a&&null==b;0==this.qmOrbitalType?(JU.Logger.error("MO ERROR: No basis functions found in file for MO calculation. (GAUSSIAN 'gfprint' keyword may be missing?)"),this.title=["no basis functions found in file"]):(this.qmOrbitalCount=this.moData.get("mos").size(),this.calculationType=this.moData.get("calculationType"),this.calculationType=
"Molecular orbital #"+this.qm_moNumber+"/"+this.qmOrbitalCount+" "+(null==this.calculationType?"":this.calculationType),!c&&null==this.title&&(this.title=Array(5),this.title[0]="%F",this.title[1]="Model %M  MO %I/%N %T",this.title[2]="?Energy = %E %U",this.title[3]="?Symmetry = %S",this.title[4]="?Occupancy = %O"));this.dataType=1837;3.4028235E38==this.cutoff&&(this.cutoff=c?0.01:0.05);if(this.isSquared||this.isSquaredLinear)this.cutoff*=this.cutoff;this.isEccentric=this.isAnisotropic=!1;this.isCutoffAbsolute=
0<this.cutoff&&!this.isPositiveOnly;2<=this.state||null!=this.thePlane||(this.colorBySign=!0,this.colorByPhase&&0==this.colorPhase&&(this.colorByPhase=!1),this.isBicolorMap=!0)},"~N,~A");e(c$,"setMapRanges",function(a,b){if(!this.colorDensity&&(this.colorByPhase||this.colorBySign||(null!=this.thePlane||this.isBicolorMap)&&!this.isContoured))this.mappedDataMin=-1,this.mappedDataMax=1;if(3.4028235E38==this.mappedDataMin||this.mappedDataMin==this.mappedDataMax){var c=a.getMinMaxMappedValues(b);this.mappedDataMin=
c[0];this.mappedDataMax=c[1]}0==this.mappedDataMin&&0==this.mappedDataMax&&(this.mappedDataMin=-1,this.mappedDataMax=1);this.rangeDefined||(this.valueMappedToRed=this.mappedDataMin,this.valueMappedToBlue=this.mappedDataMax)},"J.jvxl.readers.SurfaceReader,~B");e(c$,"addSlabInfo",function(a){null==this.slabInfo&&(this.slabInfo=new JU.Lst);this.slabInfo.addLast(a)},"~A");Z(c$,"STATE_UNINITIALIZED",0,"STATE_INITIALIZED",1,"STATE_DATA_READ",2,"STATE_DATA_COLORED",3,"NO_ANISOTROPY",32,"IS_SILENT",64,"IS_SOLVENTTYPE",
128,"HAS_MAXGRID",256,"IS_POINTMAPPABLE",512,"IS_SLABBABLE",1024,"SURFACE_NONE",0,"SURFACE_SPHERE",65,"SURFACE_ELLIPSOID2",66,"SURFACE_ELLIPSOID3",67,"SURFACE_LOBE",68,"SURFACE_LCAOCARTOON",69,"SURFACE_LONEPAIR",70,"SURFACE_RADICAL",71,"SURFACE_FUNCTIONXY",8,"SURFACE_FUNCTIONXYZ",9,"SURFACE_GEODESIC",74,"SURFACE_SOLVENT",1195,"SURFACE_SASURFACE",1196,"SURFACE_MOLECULARORBITAL",1837,"SURFACE_ATOMICORBITAL",1294,"SURFACE_MEP",1328,"SURFACE_MLP",1329,"SURFACE_MOLECULAR",1203,"SURFACE_NCI",1844,"SURFACE_INTERSECT",
1333,"SURFACE_NOMAP",1205,"SURFACE_PROPERTY",1206,"ANGSTROMS_PER_BOHR",0.5291772,"defaultEdgeFractionBase",35,"defaultEdgeFractionRange",90,"defaultColorFractionBase",35,"defaultColorFractionRange",90,"defaultMappedDataMin",0,"defaultMappedDataMax",1,"defaultCutoff",0.02,"defaultOrbitalCutoff",0.04,"defaultLobeCutoff",0.14,"defaultOrbitalCutoffOld",0.14,"defaultQMOrbitalCutoff",0.05,"defaultQMElectronDensityCutoff",0.01,"defaultContourCount",11,"nContourMax",100,"defaultColorNegative",4294901760,
"defaultColorPositive",4278190335,"defaultColorNegativeLCAO",4286578816,"defaultColorPositiveLCAO",4294944E3,"defaultSolventRadius",1.2,"defaultMepCutoff",0.1,"defaultMepMin",-0.1,"defaultMepMax",0.1,"MEP_MAX_GRID",40,"QM_TYPE_UNKNOWN",0,"QM_TYPE_GAUSSIAN",1,"QM_TYPE_SLATER",2,"QM_TYPE_NCI_PRO",3,"QM_TYPE_NCI_SCF",4,"QM_TYPE_VOLUME_DATA",5,"MO_MAX_GRID",80)});H("J.jvxl.readers");K(["J.jvxl.api.VertexDataServer","JU.P3"],"J.jvxl.readers.SurfaceReader","java.lang.Float JU.AU $.BS J.jvxl.calc.MarchingCubes $.MarchingSquares J.jvxl.data.JvxlCoder $.MeshData JU.BoxInfo $.C $.ColorEncoder $.Escape $.Logger".split(" "),
function(){c$=O(function(){this.edgeData=this.volumeData=this.jvxlData=this.meshData=this.params=this.meshDataServer=this.sg=null;this.isXLowToHigh=this.isProgressive=this.allowSigma=this.haveSurfaceAtoms=!1;this.assocCutoff=0.3;this.hasColorData=this.vertexDataOnly=this.isPeriodic=this.isQuiet=!1;this.dataMin=3.4028235E38;this.dataMax=-3.4028235E38;this.dataMean=0;this.anisotropy=this.center=this.xyzMax=this.xyzMin=null;this.isAnisotropic=!1;this.eccentricityMatrixInverse=this.eccentricityMatrix=
null;this.isEccentric=!1;this.edgeCount=this.eccentricityRatio=this.eccentricityScale=0;this.voxelData=this.voxelCounts=this.volumetricVectors=this.volumetricOrigin=null;this.nPointsZ=this.nPointsY=this.nPointsX=this.nDataPoints=this.nBytes=0;this.isJvxl=!1;this.colorFractionRange=this.colorFractionBase=this.edgeFractionRange=this.edgeFractionBase=0;this.fractionData=this.jvxlFileHeaderBuffer=null;this.jvxlColorDataRead=this.jvxlEdgeDataRead="";this.jvxlVoxelBitSet=null;this.jvxlDataIsColorDensity=
this.jvxlDataIs2dContour=this.jvxlDataIsPrecisionColor=this.jvxlDataIsColorMapped=!1;this.jvxlNSurfaceInts=this.jvxlCutoff=0;this.cJvxlEdgeNaN="\x00";this.contourVertexCount=0;this.yzPlanes=this.marchingCubes=this.marchingSquares=null;this.yzCount=0;this.minMax=this.ptTemp=this.qpc=null;this.haveSetAnisotropy=!1;M(this,arguments)},J.jvxl.readers,"SurfaceReader",null,J.jvxl.api.VertexDataServer);V(c$,function(){this.ptTemp=new JU.P3});I(c$,function(){});e(c$,"initSR",function(a){this.sg=a;this.params=
a.params;this.assocCutoff=this.params.assocCutoff;this.isXLowToHigh=this.params.isXLowToHigh;this.center=this.params.center;this.anisotropy=this.params.anisotropy;this.isAnisotropic=this.params.isAnisotropic;this.eccentricityMatrix=this.params.eccentricityMatrix;this.eccentricityMatrixInverse=this.params.eccentricityMatrixInverse;this.isEccentric=this.params.isEccentric;this.eccentricityScale=this.params.eccentricityScale;this.eccentricityRatio=this.params.eccentricityRatio;this.marchingSquares=a.marchingSquares;
this.meshData=a.meshData;this.jvxlData=a.jvxlData;this.setVolumeDataV(a.volumeDataTemp);this.meshDataServer=a.meshDataServer;this.cJvxlEdgeNaN=String.fromCharCode(125)},"J.jvxl.readers.SurfaceGenerator");e(c$,"setOutputChannel",function(){},"JU.OC");e(c$,"newVoxelDataCube",function(){this.volumeData.setVoxelDataAsArray(this.voxelData=A(this.nPointsX,this.nPointsY,this.nPointsZ,0))});e(c$,"setVolumeDataV",function(a){this.nBytes=0;this.volumetricOrigin=a.volumetricOrigin;this.volumetricVectors=a.volumetricVectors;
this.voxelCounts=a.voxelCounts;this.voxelData=a.getVoxelData();this.volumeData=a},"J.jvxl.data.VolumeData");e(c$,"jvxlUpdateInfo",function(){this.jvxlData.jvxlUpdateInfo(this.params.title,this.nBytes)});e(c$,"readAndSetVolumeParameters",function(a){return!this.readVolumeParameters(a)?!1:this.vertexDataOnly?!0:this.volumeData.setUnitVectors()},"~B");e(c$,"createIsosurface",function(a){this.resetIsosurface();this.params.showTiming&&JU.Logger.startTimer("isosurface creation");this.jvxlData.cutoff=NaN;
if(!this.readAndSetVolumeParameters(a))return!1;!a&&(!Float.isNaN(this.params.sigma)&&!this.allowSigma)&&(0<this.params.sigma&&JU.Logger.error("Reader does not support SIGMA option -- using cutoff 1.6"),this.params.cutoff=1.6);0>this.params.sigma&&(this.params.sigma=-this.params.sigma);this.nPointsX=this.voxelCounts[0];this.nPointsY=this.voxelCounts[1];this.nPointsZ=this.voxelCounts[2];this.jvxlData.isSlabbable=0!=(this.params.dataType&1024);this.jvxlData.insideOut=this.params.insideOut;this.jvxlData.dataXYReversed=
this.params.dataXYReversed;this.jvxlData.isBicolorMap=this.params.isBicolorMap;this.jvxlData.nPointsX=this.nPointsX;this.jvxlData.nPointsY=this.nPointsY;this.jvxlData.nPointsZ=this.nPointsZ;this.jvxlData.jvxlVolumeDataXml=this.volumeData.xmlData;this.jvxlData.voxelVolume=this.volumeData.voxelVolume;if(a)this.volumeData.setMappingPlane(this.params.thePlane),null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null),this.params.setMapRanges(this,!1),this.generateSurfaceData(),
this.volumeData.setMappingPlane(null);else{if(!this.readVolumeData(!1))return!1;this.generateSurfaceData()}if(null!=this.jvxlFileHeaderBuffer){a=this.jvxlFileHeaderBuffer.toString();var b=a.indexOf("\n",a.indexOf("\n",a.indexOf("\n")+1)+1)+1;this.jvxlData.jvxlFileTitle=a.substring(0,b)}null==this.params.contactPair&&this.setBBoxAll();this.params.isSilent||JU.Logger.info("boundbox corners "+JU.Escape.eP(this.xyzMin)+" "+JU.Escape.eP(this.xyzMax));this.jvxlData.boundingBox=[this.xyzMin,this.xyzMax];
this.jvxlData.dataMin=this.dataMin;this.jvxlData.dataMax=this.dataMax;this.jvxlData.cutoff=this.isJvxl?this.jvxlCutoff:this.params.cutoff;this.jvxlData.isCutoffAbsolute=this.params.isCutoffAbsolute;this.jvxlData.pointsPerAngstrom=1/this.volumeData.volumetricVectorLengths[0];this.jvxlData.jvxlColorData="";this.jvxlData.jvxlPlane=this.params.thePlane;this.jvxlData.jvxlEdgeData=this.edgeData;this.jvxlData.isBicolorMap=this.params.isBicolorMap;this.jvxlData.isContoured=this.params.isContoured;this.jvxlData.colorDensity=
this.params.colorDensity;this.jvxlData.pointSize=this.params.pointSize;null!=this.jvxlData.vContours&&(this.params.nContours=this.jvxlData.vContours.length);this.jvxlData.nContours=this.params.contourFromZero?this.params.nContours:-1-this.params.nContours;this.jvxlData.thisContour=this.params.thisContour;this.jvxlData.nEdges=this.edgeCount;this.jvxlData.edgeFractionBase=this.edgeFractionBase;this.jvxlData.edgeFractionRange=this.edgeFractionRange;this.jvxlData.colorFractionBase=this.colorFractionBase;
this.jvxlData.colorFractionRange=this.colorFractionRange;this.jvxlData.jvxlDataIs2dContour=this.jvxlDataIs2dContour;this.jvxlData.jvxlDataIsColorMapped=this.jvxlDataIsColorMapped;this.jvxlData.jvxlDataIsColorDensity=this.jvxlDataIsColorDensity;this.jvxlData.isXLowToHigh=this.isXLowToHigh;this.jvxlData.vertexDataOnly=this.vertexDataOnly;this.jvxlData.saveVertexCount=0;if(this.jvxlDataIsColorMapped||0<this.jvxlData.nVertexColors)null!=this.meshDataServer&&(this.meshDataServer.fillMeshData(this.meshData,
1,null),this.meshDataServer.fillMeshData(this.meshData,2,null)),this.jvxlData.jvxlColorData=this.readColorData(),this.updateSurfaceData(),null!=this.meshDataServer&&this.meshDataServer.notifySurfaceMappingCompleted();this.params.showTiming&&JU.Logger.checkTimer("isosurface creation",!1);return!0},"~B");e(c$,"resetIsosurface",function(){this.meshData=new J.jvxl.data.MeshData;this.xyzMin=this.xyzMax=null;this.jvxlData.isBicolorMap=this.params.isBicolorMap;null!=this.meshDataServer&&this.meshDataServer.fillMeshData(null,
0,null);this.contourVertexCount=0;3.4028235E38==this.params.cutoff&&(this.params.cutoff=0.02);this.jvxlData.jvxlSurfaceData="";this.jvxlData.jvxlEdgeData="";this.jvxlData.jvxlColorData="";this.edgeCount=0;this.edgeFractionBase=35;this.edgeFractionRange=90;this.colorFractionBase=35;this.colorFractionRange=90;this.params.mappedDataMin=3.4028235E38});e(c$,"discardTempData",function(a){this.discardTempDataSR(a)},"~B");e(c$,"discardTempDataSR",function(a){a&&(this.voxelData=null,this.marchingCubes=this.sg.marchingSquares=
this.marchingSquares=null)},"~B");e(c$,"initializeVolumetricData",function(){this.nPointsX=this.voxelCounts[0];this.nPointsY=this.voxelCounts[1];this.nPointsZ=this.voxelCounts[2];this.setVolumeDataV(this.volumeData)});e(c$,"gotoAndReadVoxelData",function(a){this.initializeVolumetricData();if(0<this.nPointsX&&0<this.nPointsY&&0<this.nPointsZ)try{this.gotoData(this.params.fileIndex-1,this.nPointsX*this.nPointsY*this.nPointsZ),this.readSurfaceData(a)}catch(b){if(T(b,Exception))return JU.Logger.error(b.toString()),
!1;throw b;}return!0},"~B");e(c$,"gotoData",function(){},"~N,~N");e(c$,"readColorData",function(){if(null==this.jvxlData.vertexColors)return"";var a=this.jvxlData.vertexCount,b=this.meshData.vcs,c=this.meshData.vvs;if(null==b||b.length<a)this.meshData.vcs=b=Y(a,0);if(null==c||c.length<a)this.meshData.vvs=A(a,0);for(c=0;c<a;c++)b[c]=JU.C.getColix(this.jvxlData.vertexColors[c]);return"-"});m(c$,"getPlane",function(a){return this.getPlane2(a)},"~N");e(c$,"getPlane2",function(a){0==this.yzCount&&this.initPlanes();
null!=this.qpc&&this.qpc.getPlane(a,this.yzPlanes[a%2]);return this.yzPlanes[a%2]},"~N");e(c$,"initPlanes",function(){this.yzCount=this.nPointsY*this.nPointsZ;this.isQuiet||JU.Logger.info("reading data progressively -- yzCount = "+this.yzCount);this.yzPlanes=JU.AU.newFloat2(2);this.yzPlanes[0]=A(this.yzCount,0);this.yzPlanes[1]=A(this.yzCount,0)});m(c$,"getValue",function(a,b,c,d){return this.getValue2(a,b,c,d)},"~N,~N,~N,~N");e(c$,"getValue2",function(a,b,c,d){return null==this.yzPlanes?this.voxelData[a][b][c]:
this.yzPlanes[a%2][d]},"~N,~N,~N,~N");e(c$,"generateSurfaceData",function(){this.edgeData="";if(this.vertexDataOnly)try{this.readSurfaceData(!1)}catch(a){if(T(a,Exception))System.out.println(a.toString()),JU.Logger.error("Exception in SurfaceReader::readSurfaceData: "+a.toString());else throw a;}else{this.contourVertexCount=0;var b=-1;this.marchingSquares=null;if(null!=this.params.thePlane||this.params.isContoured)this.marchingSquares=new J.jvxl.calc.MarchingSquares(this,this.volumeData,this.params.thePlane,
this.params.contoursDiscrete,this.params.nContours,this.params.thisContour,this.params.contourFromZero),b=this.marchingSquares.contourType,this.marchingSquares.setMinMax(this.params.valueMappedToRed,this.params.valueMappedToBlue);this.params.contourType=b;this.params.isXLowToHigh=this.isXLowToHigh;this.marchingCubes=new J.jvxl.calc.MarchingCubes(this,this.volumeData,this.params,this.jvxlVoxelBitSet);b=this.marchingCubes.getEdgeData();null==this.params.thePlane&&(this.edgeData=b);this.jvxlData.setSurfaceInfoFromBitSetPts(this.marchingCubes.bsVoxels,
this.params.thePlane,this.params.mapLattice);this.jvxlData.jvxlExcluded=this.params.bsExcluded;this.isJvxl&&(this.edgeData=this.jvxlEdgeDataRead);this.postProcessVertices()}});e(c$,"postProcessVertices",function(){});m(c$,"getSurfacePointIndexAndFraction",function(a,b,c,d,f,e,g,j,l,k,p,m,q,s){b=this.getSurfacePointAndFraction(a,b,l,k,p,m,c,d,f,g,j,s,this.ptTemp);if(null!=this.marchingSquares&&this.params.isContoured)return this.marchingSquares.addContourVertex(this.ptTemp,a);a=0<this.assocCutoff?
s[0]<this.assocCutoff?g:s[0]>1-this.assocCutoff?j:-1:-1;0<=a&&(a=this.marchingCubes.getLinearOffset(c,d,f,a));a=this.addVertexCopy(this.ptTemp,b,a,!0);0<=a&&this.params.iAddGridPoints&&(this.marchingCubes.calcVertexPoint(c,d,f,j,this.ptTemp),this.addVertexCopy(l<k?p:this.ptTemp,Math.min(l,k),-3,!0),this.addVertexCopy(l<k?this.ptTemp:p,Math.max(l,k),-3,!0));return a},"~N,~B,~N,~N,~N,JU.P3i,~N,~N,~N,~N,JU.T3,JU.V3,~B,~A");e(c$,"getSurfacePointAndFraction",function(a,b,c,d,f,e,g,j,l,k,p,m,q){return this.getSPF(a,
b,c,d,f,e,g,j,l,k,p,m,q)},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");e(c$,"getSPF",function(a,b,c,d,f,e,g,j,l,k,p,m,q){d-=c;g=(a-c)/d;if(b&&(0>g||1<g))g=(-a-c)/d;if(0>g||1<g)g=NaN;m[0]=g;q.scaleAdd2(g,e,f);return c+g*d},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");e(c$,"addVertexCopy",function(a,b,c,d){return this.addVC(a,b,c,d)},"JU.T3,~N,~N,~B");e(c$,"addVC",function(a,b,c,d){return Float.isNaN(b)&&-3!=c?-1:null==this.meshDataServer?this.meshData.addVertexCopy(a,b,c,d):this.meshDataServer.addVertexCopy(a,
b,c,d)},"JU.T3,~N,~N,~B");e(c$,"addTriangleCheck",function(a,b,c,d,f,e,g){if(null!=this.marchingSquares&&this.params.isContoured){if(0==g)return this.marchingSquares.addTriangle(a,b,c,d,f);g=0}return null!=this.meshDataServer?this.meshDataServer.addTriangleCheck(a,b,c,d,f,e,g):e&&!J.jvxl.data.MeshData.checkCutoff(a,b,c,this.meshData.vvs)?-1:this.meshData.addTriangleCheck(a,b,c,d,f,g)},"~N,~N,~N,~N,~N,~B,~N");e(c$,"colorIsosurface",function(){this.params.isSquared&&null!=this.volumeData&&this.volumeData.filterData(!0,
NaN);null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);this.jvxlData.saveVertexCount=0;this.params.isContoured&&null!=this.marchingSquares&&(this.initializeMapping(),this.params.setMapRanges(this,!1),this.marchingSquares.setMinMax(this.params.valueMappedToRed,this.params.valueMappedToBlue),this.jvxlData.saveVertexCount=this.marchingSquares.contourVertexCount,this.contourVertexCount=this.marchingSquares.generateContourData(this.jvxlDataIs2dContour,this.params.isSquared?
1E-8:1E-4),this.jvxlData.contourValuesUsed=this.marchingSquares.contourValuesUsed,this.minMax=this.marchingSquares.getMinMax(),null!=this.meshDataServer&&this.meshDataServer.notifySurfaceGenerationCompleted(),this.finalizeMapping());this.applyColorScale();this.jvxlData.nContours=this.params.contourFromZero?this.params.nContours:-1-this.params.nContours;this.jvxlData.thisContour=this.params.thisContour;this.jvxlData.jvxlFileMessage="mapped: min = "+this.params.valueMappedToRed+"; max = "+this.params.valueMappedToBlue});
e(c$,"applyColorScale",function(){this.colorFractionBase=this.jvxlData.colorFractionBase=35;this.colorFractionRange=this.jvxlData.colorFractionRange=90;0==this.params.colorPhase&&(this.params.colorPhase=1);null==this.meshDataServer?this.meshData.vcs=Y(this.meshData.vc,0):(this.meshDataServer.fillMeshData(this.meshData,1,null),null==this.params.contactPair&&this.meshDataServer.fillMeshData(this.meshData,2,null));var a=this.params.colorDensity||this.params.isBicolorMap||this.params.colorBySign||!this.params.colorByPhase;
null!=this.params.contactPair&&(a=!1);this.jvxlData.isJvxlPrecisionColor=!0;this.jvxlData.vertexCount=0<this.contourVertexCount?this.contourVertexCount:this.meshData.vc;this.jvxlData.minColorIndex=-1;this.jvxlData.maxColorIndex=0;this.jvxlData.contourValues=this.params.contoursDiscrete;this.jvxlData.isColorReversed=this.params.isColorReversed;if(!this.params.colorDensity&&(this.params.isBicolorMap&&!this.params.isContoured||this.params.colorBySign))this.jvxlData.minColorIndex=JU.C.getColixTranslucent3(JU.C.getColix(this.params.isColorReversed?
this.params.colorPos:this.params.colorNeg),0!=this.jvxlData.translucency,this.jvxlData.translucency),this.jvxlData.maxColorIndex=JU.C.getColixTranslucent3(JU.C.getColix(this.params.isColorReversed?this.params.colorNeg:this.params.colorPos),0!=this.jvxlData.translucency,this.jvxlData.translucency);this.jvxlData.isTruncated=0<=this.jvxlData.minColorIndex&&!this.params.isContoured;if(!this.jvxlDataIs2dContour&&!this.hasColorData&&!this.vertexDataOnly&&!(this.params.colorDensity||this.params.isBicolorMap&&
!this.params.isContoured)){this.haveSurfaceAtoms&&null==this.meshData.vertexSource&&(this.meshData.vertexSource=G(this.meshData.vc,0));var b=3.4028235E38,c=-3.4028235E38,d;this.initializeMapping();for(var f=this.meshData.vc;--f>=this.meshData.mergeVertexCount0;){if(this.params.colorBySets)d=this.meshData.vertexSets[f];else if(this.params.colorByPhase)d=this.getPhase(this.meshData.vs[f]);else{var e=this.haveSurfaceAtoms;d=this.volumeData.lookupInterpolatedVoxelValue(this.meshData.vs[f],e);e&&(this.meshData.vertexSource[f]=
this.getSurfaceAtomIndex())}d<b&&(b=d);d>c&&3.4028235E38!=d&&(c=d);this.meshData.vvs[f]=d}this.params.rangeSelected&&null==this.minMax&&(this.minMax=[b,c]);this.finalizeMapping()}this.params.setMapRanges(this,!0);this.jvxlData.mappedDataMin=this.params.mappedDataMin;this.jvxlData.mappedDataMax=this.params.mappedDataMax;this.jvxlData.valueMappedToRed=this.params.valueMappedToRed;this.jvxlData.valueMappedToBlue=this.params.valueMappedToBlue;null==this.params.contactPair&&null==this.jvxlData.vertexColors&&
this.colorData();J.jvxl.data.JvxlCoder.jvxlCreateColorData(this.jvxlData,a?this.meshData.vvs:null);this.haveSurfaceAtoms&&null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,4,null);null!=this.meshDataServer&&this.params.colorBySets&&this.meshDataServer.fillMeshData(this.meshData,3,null)});e(c$,"colorData",function(){var a=this.meshData.vvs,b=this.meshData.vcs;this.meshData.pcs=null;var c=this.jvxlData.valueMappedToBlue,d=this.jvxlData.valueMappedToRed,f=this.jvxlData.minColorIndex,
e=this.jvxlData.maxColorIndex;null==this.params.colorEncoder&&(this.params.colorEncoder=new JU.ColorEncoder(null,null));this.params.colorEncoder.setRange(this.params.valueMappedToRed,this.params.valueMappedToBlue,this.params.isColorReversed);for(var g=this.meshData.vc;0<=--g;){var j=a[g];0<=f?0>=j?b[g]=f:0<j&&(b[g]=e):(j<=d&&(j=d),j>=c&&(j=c),b[g]=this.params.colorEncoder.getColorIndex(j))}if((0<this.params.nContours||null!=this.jvxlData.contourValues)&&null==this.jvxlData.contourColixes){a=null==
this.jvxlData.contourValues?this.params.nContours:this.jvxlData.contourValues.length;b=this.jvxlData.contourColixes=Y(a,0);f=this.jvxlData.contourValues;null==f&&(f=this.jvxlData.contourValuesUsed);null==this.jvxlData.contourValuesUsed&&(this.jvxlData.contourValuesUsed=null==f?A(a,0):f);c=(c-d)/(a+1);this.params.colorEncoder.setRange(this.params.valueMappedToRed,this.params.valueMappedToBlue,this.params.isColorReversed);for(g=0;g<a;g++)e=null==f?d+(g+1)*c:f[g],this.jvxlData.contourValuesUsed[g]=e,
b[g]=JU.C.getColixTranslucent(this.params.colorEncoder.getArgb(e));this.jvxlData.contourColors=JU.C.getHexCodes(b)}});c$.getColorPhaseIndex=e(c$,"getColorPhaseIndex",function(a){for(var b=-1,c=0;c<J.jvxl.readers.SurfaceReader.colorPhases.length;c++)if(a.equalsIgnoreCase(J.jvxl.readers.SurfaceReader.colorPhases[c])){b=c;break}return b},"~S");e(c$,"getPhase",function(a){switch(this.params.colorPhase){case 0:case -1:case 1:return 0<a.x?1:-1;case 2:return 0<a.y?1:-1;case 3:return 0<a.z?1:-1;case 4:return 0<
a.x*a.y?1:-1;case 5:return 0<a.y*a.z?1:-1;case 6:return 0<a.x*a.z?1:-1;case 7:return 0<a.x*a.x-a.y*a.y?1:-1;case 8:return 0<2*a.z*a.z-a.x*a.x-a.y*a.y?1:-1}return 1},"JU.T3");e(c$,"getMinMaxMappedValues",function(a){if(null!=this.minMax&&3.4028235E38!=this.minMax[0])return this.minMax;if(this.params.colorBySets)return this.minMax=[0,Math.max(this.meshData.nSets-1,0)];var b=3.4028235E38,c=-3.4028235E38;if(this.params.usePropertyForColorRange&&null!=this.params.theProperty){for(a=this.params.theProperty.length;0<=
--a;)if(!this.params.rangeSelected||this.params.bsSelected.get(a)){var d=this.params.theProperty[a];Float.isNaN(d)||(d<b&&(b=d),d>c&&(c=d))}return this.minMax=[b,c]}var d=0<this.contourVertexCount?this.contourVertexCount:this.meshData.vc,f=this.meshData.vs,e=a||this.jvxlDataIs2dContour||this.vertexDataOnly||this.params.colorDensity;for(a=this.meshData.mergeVertexCount0;a<d;a++){var g;g=e?this.meshData.vvs[a]:this.volumeData.lookupInterpolatedVoxelValue(f[a],!1);g<b&&(b=g);g>c&&3.4028235E38!=g&&(c=
g)}return this.minMax=[b,c]},"~B");e(c$,"updateTriangles",function(){null==this.meshDataServer?this.meshData.invalidatePolygons():this.meshDataServer.invalidateTriangles()});e(c$,"updateSurfaceData",function(){this.meshData.setVertexSets(!0);this.updateTriangles();null==this.params.bsExcluded[1]&&(this.params.bsExcluded[1]=new JU.BS);this.meshData.updateInvalidatedVertices(this.params.bsExcluded[1])});e(c$,"selectPocket",function(){},"~B");e(c$,"excludeMinimumSet",function(){null!=this.meshDataServer&&
this.meshDataServer.fillMeshData(this.meshData,1,null);this.meshData.getSurfaceSet();for(var a,b=this.meshData.nSets;0<=--b;)null!=(a=this.meshData.surfaceSet[b])&&a.cardinality()<this.params.minSet&&this.meshData.invalidateSurfaceSet(b);this.updateSurfaceData();null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,3,null)});e(c$,"excludeMaximumSet",function(){null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);this.meshData.getSurfaceSet();for(var a,
b=this.meshData.nSets;0<=--b;)null!=(a=this.meshData.surfaceSet[b])&&a.cardinality()>this.params.maxSet&&this.meshData.invalidateSurfaceSet(b);this.updateSurfaceData();null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,3,null)});e(c$,"slabIsosurface",function(a){null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);this.meshData.slabPolygonsList(a,!0);null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,4,null)},"JU.Lst");e(c$,
"setVertexAnisotropy",function(a){a.x*=this.anisotropy[0];a.y*=this.anisotropy[1];a.z*=this.anisotropy[2];a.add(this.center)},"JU.T3");e(c$,"setVectorAnisotropy",function(a){this.haveSetAnisotropy=!0;a.x*=this.anisotropy[0];a.y*=this.anisotropy[1];a.z*=this.anisotropy[2]},"JU.T3");e(c$,"setVolumetricAnisotropy",function(){this.haveSetAnisotropy||(this.setVolumetricOriginAnisotropy(),this.setVectorAnisotropy(this.volumetricVectors[0]),this.setVectorAnisotropy(this.volumetricVectors[1]),this.setVectorAnisotropy(this.volumetricVectors[2]))});
e(c$,"setVolumetricOriginAnisotropy",function(){this.volumetricOrigin.setT(this.center)});e(c$,"setBBoxAll",function(){null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);this.xyzMin=new JU.P3;this.xyzMax=new JU.P3;this.meshData.setBox(this.xyzMin,this.xyzMax)});e(c$,"setBBox",function(a,b){null==this.xyzMin&&(this.xyzMin=JU.P3.new3(3.4028235E38,3.4028235E38,3.4028235E38),this.xyzMax=JU.P3.new3(-3.4028235E38,-3.4028235E38,-3.4028235E38));JU.BoxInfo.addPoint(a,this.xyzMin,
this.xyzMax,b)},"JU.T3,~N");e(c$,"getValueAtPoint",function(){return 0},"JU.T3,~B");e(c$,"initializeMapping",function(){});e(c$,"finalizeMapping",function(){});e(c$,"getSurfaceAtomIndex",function(){return-1});Z(c$,"ANGSTROMS_PER_BOHR",0.5291772,"defaultMappedDataMin",0,"defaultMappedDataMax",1,"defaultCutoff",0.02,"colorPhases","_orb x y z xy yz xz x2-y2 z2".split(" "))});H("J.jvxl.calc");K(["JU.TriangleData","JU.BS","$.P3","$.SB","$.V3"],"J.jvxl.calc.MarchingCubes",["java.lang.Float","J.jvxl.data.JvxlCoder"],
function(){c$=O(function(){this.volumeData=this.surfaceReader=null;this.contourType=0;this.isContoured=!1;this.cutoff=0;this.isXLowToHigh=this.isSquared=this.isCutoffAbsolute=!1;this.yzCount=this.nZ=this.nY=this.cubeCountZ=this.cubeCountY=this.cubeCountX=0;this.colorDensity=!1;this.integrateSquared=!0;this.edgeData=this.bsExcludedPlanes=this.bsExcludedTriangles=this.bsExcludedVertices=this.bsVoxels=null;this.excludePartialCubes=!0;this.mode=0;this.vertexValues=null;this.edgeCount=0;this.mappingPlane=
this.yzPlanes=this.isoPointIndexPlanes=this.edgePointIndexes=this.edgeVectors=this.voxelVertexVectors=null;this.$isInside=this.allInside=!1;this.voxelData=this.offset=null;this.nTriangles=0;this.linearOffsets=this.fReturn=this.edgeVertexPlanes=this.edgeVertexPointers=this.pointA=this.pt0=this.bsValues=null;M(this,arguments)},J.jvxl.calc,"MarchingCubes",JU.TriangleData);V(c$,function(){this.edgeData=new JU.SB;this.vertexValues=A(8,0);this.voxelVertexVectors=Array(8);this.edgeVectors=Array(12);for(var a=
12;0<=--a;)this.edgeVectors[a]=new JU.V3;this.edgePointIndexes=G(12,0);this.bsValues=new JU.BS;this.pt0=new JU.P3;this.pointA=new JU.P3;this.fReturn=A(1,0);this.linearOffsets=G(8,0)});I(c$,function(){X(this,J.jvxl.calc.MarchingCubes,[])});I(c$,function(a,b,c,d){X(this,J.jvxl.calc.MarchingCubes,[]);this.excludePartialCubes=!0;this.surfaceReader=a;this.bsVoxels=d;a=c.bsExcluded;this.bsExcludedVertices=null==a[0]?a[0]=new JU.BS:a[0];this.bsExcludedPlanes=null==a[2]?a[2]=new JU.BS:a[2];this.bsExcludedTriangles=
null==a[3]?a[3]=new JU.BS:a[3];this.mode=null!=b.getVoxelData()||null!=b.mappingPlane?1:null!=d?2:3;this.setParameters(b,c)},"J.jvxl.api.VertexDataServer,J.jvxl.data.VolumeData,J.jvxl.readers.Parameters,JU.BS");e(c$,"setParameters",function(a,b){this.volumeData=a;this.colorDensity=b.colorDensity;this.isContoured=null==b.thePlane&&b.isContoured&&!this.colorDensity;this.cutoff=b.cutoff;this.isCutoffAbsolute=b.isCutoffAbsolute;this.contourType=b.contourType;this.isSquared=b.isSquared;this.isXLowToHigh=
b.isXLowToHigh;this.cubeCountX=a.voxelCounts[0]-1;this.cubeCountY=a.voxelCounts[1]-1;this.cubeCountZ=a.voxelCounts[2]-1;a.getYzCount();null!=b.mapLattice&&(this.cubeCountX*=Math.abs(b.mapLattice.x),this.cubeCountY*=Math.abs(b.mapLattice.y),this.cubeCountZ*=Math.abs(b.mapLattice.z));this.nY=this.cubeCountY+1;this.nZ=this.cubeCountZ+1;this.yzCount=this.nY*this.nZ;null==this.bsVoxels&&(this.bsVoxels=new JU.BS);this.edgeVertexPointers=this.isXLowToHigh?J.jvxl.calc.MarchingCubes.edgeVertexPointersLowToHigh:
J.jvxl.calc.MarchingCubes.edgeVertexPointersHighToLow;this.edgeVertexPlanes=this.isXLowToHigh?J.jvxl.calc.MarchingCubes.edgeVertexPlanesLowToHigh:J.jvxl.calc.MarchingCubes.edgeVertexPlanesHighToLow;this.isoPointIndexPlanes=G(2,this.yzCount,3,0);this.yzPlanes=3==this.mode?A(2,this.yzCount,0):null;this.setLinearOffsets();this.calcVoxelVertexVectors()},"J.jvxl.data.VolumeData,J.jvxl.readers.Parameters");e(c$,"calcVoxelVertexVectors",function(){for(var a=8;0<=--a;)this.volumeData.transform(J.jvxl.calc.MarchingCubes.cubeVertexVectors[a],
this.voxelVertexVectors[a]=new JU.V3);for(a=12;0<=--a;)this.edgeVectors[a].sub2(this.voxelVertexVectors[JU.TriangleData.edgeVertexes[a+a+1]],this.voxelVertexVectors[JU.TriangleData.edgeVertexes[a+a]])});e(c$,"resetIndexPlane",function(a){for(var b=0;b<this.yzCount;b++)for(var c=0;3>c;c++)a[b][c]=-2147483648;return a},"~A");e(c$,"getEdgeData",function(){if(0>this.cubeCountX||0>this.cubeCountY||0>this.cubeCountZ)return"";this.mappingPlane=this.volumeData.mappingPlane;this.edgeCount=0;var a,b,c,d,f,
e;this.isXLowToHigh?(a=0,this.colorDensity?(b=this.cubeCountX+1,e=this.yzCount-1):(b=this.cubeCountX,e=this.yzCount-1-this.nZ-1),c=1,d=this.yzCount):(this.colorDensity?(a=this.cubeCountX,e=(this.cubeCountX+1)*this.yzCount-1):(a=this.cubeCountX-1,e=this.cubeCountX*this.yzCount-1-this.nZ-1),c=b=-1,d=-this.yzCount);f=e;this.resetIndexPlane(this.isoPointIndexPlanes[1]);this.voxelData=null;var g=this.cubeCountY+(this.colorDensity?1:0),j=this.cubeCountZ+(this.colorDensity?1:0);switch(this.mode){case 3:this.getPlane(a,
!1);break;case 1:this.voxelData=this.volumeData.getVoxelData()}this.allInside=this.colorDensity&&(0==this.cutoff||2==this.mode&&0==this.bsVoxels.cardinality());for(var l=this.colorDensity&&0==this.cutoff,k=0;a!=b;a+=c,e+=d,f=e)if(3==this.mode&&a+c<=b&&this.getPlane(a+c,!0),!this.bsExcludedPlanes.get(a)||!this.bsExcludedPlanes.get(a+c))if(this.colorDensity)for(var p=g;0<=--p;)for(var m=j;0<=--m;f--)k=this.getValue(a,p,m,f,0),(l||this.$isInside)&&this.addVertex(a,p,m,f,k);else{p=this.isoPointIndexPlanes[0];
this.isoPointIndexPlanes[0]=this.isoPointIndexPlanes[1];this.isoPointIndexPlanes[1]=this.resetIndexPlane(p);for(var q=!0,p=g;0<=--p;f--)for(m=j;0<=--m;f--){for(var s=0,w=8;0<=--w;)k=this.getValue(a,p,m,f,w),this.$isInside&&(s|=JU.TriangleData.Pwr2[w]);q&&!Float.isNaN(k)&&(q=!1);0!=s&&255!=s&&this.processOneCubical(s,a,p,m,f)&&(!this.isContoured&&!this.colorDensity)&&this.processTriangles(s)}q&&this.bsExcludedPlanes.set(a)}return this.edgeData.toString()});e(c$,"getValue",function(a,b,c,d,f){this.offset=
JU.TriangleData.cubeVertexOffsets[f];d+=this.linearOffsets[f];switch(this.mode){case 3:a=this.vertexValues[f]=this.getValueArray(a+this.offset.x,b+this.offset.y,c+this.offset.z,d,this.yzPlanes[J.jvxl.calc.MarchingCubes.yzPlanePts[f]]);this.$isInside=this.allInside||this.bsVoxels.get(d);break;case 2:this.$isInside=this.allInside||this.bsVoxels.get(d);a=this.vertexValues[f]=this.bsExcludedVertices.get(d)?NaN:this.$isInside?1:0;break;default:case 1:null==this.mappingPlane?a=this.vertexValues[f]=this.voxelData[a+
this.offset.x][b+this.offset.y][c+this.offset.z]:(this.volumeData.voxelPtToXYZ(a+this.offset.x,b+this.offset.y,c+this.offset.z,this.pt0),a=this.vertexValues[f]=this.volumeData.distanceToMappingPlane(this.pt0)),this.isSquared&&(this.vertexValues[f]*=this.vertexValues[f]),(this.$isInside=this.allInside?!0:J.jvxl.calc.MarchingCubes.isInside(this.vertexValues[f],this.cutoff,this.isCutoffAbsolute))&&this.bsVoxels.set(d)}return a},"~N,~N,~N,~N,~N");e(c$,"getPlane",function(a,b){if(!(0>a||a>this.cubeCountX))if(this.surfaceReader.getPlane(a),
b){var c=this.yzPlanes[0];this.yzPlanes[0]=this.yzPlanes[1];this.yzPlanes[1]=c}},"~N,~B");e(c$,"processTriangles",function(a){a=JU.TriangleData.triangleTable2[a];for(var b=a.length;0<=(b-=4);)this.addTriangle(a[b],a[b+1],a[b+2],a[b+3])},"~N");e(c$,"addVertex",function(a,b,c,d,f){this.volumeData.voxelPtToXYZ(a,b,c,this.pt0);0>this.surfaceReader.addVertexCopy(this.pt0,f,-4,!0)&&this.bsExcludedVertices.set(d)},"~N,~N,~N,~N,~N");e(c$,"addTriangle",function(a,b,c,d){!this.bsExcludedTriangles.get(this.nTriangles)&&
0>this.surfaceReader.addTriangleCheck(this.edgePointIndexes[a],this.edgePointIndexes[b],this.edgePointIndexes[c],d,0,this.isCutoffAbsolute,0)&&this.bsExcludedTriangles.set(this.nTriangles);this.nTriangles++},"~N,~N,~N,~N");e(c$,"getValueArray",function(a,b,c,d,f){var e=d%this.yzCount;this.bsValues.set(d);a=this.surfaceReader.getValue(a,b,c,e);this.isSquared&&(a*=a);f[e]=a;J.jvxl.calc.MarchingCubes.isInside(a,this.cutoff,this.isCutoffAbsolute)&&this.bsVoxels.set(d);return a},"~N,~N,~N,~N,~A");c$.isInside=
e(c$,"isInside",function(a,b,c){return 0<b&&(c?Math.abs(a):a)>=b||0>=b&&a<=b},"~N,~N,~B");e(c$,"processOneCubical",function(a,b,c,d,f){a=J.jvxl.calc.MarchingCubes.insideMaskTable[a];for(var e=!1,g=12;0<=--g;)if(0!=(a&JU.TriangleData.Pwr2[g])){var j=this.edgeVertexPlanes[g],l=(f+this.linearOffsets[this.edgeVertexPointers[g]])%this.yzCount,k=J.jvxl.calc.MarchingCubes.edgeTypeTable[g],p=this.edgePointIndexes[g]=this.isoPointIndexPlanes[j][l][k];if(-2147483648!=p)-1==p&&(e=this.excludePartialCubes);else{var p=
JU.TriangleData.edgeVertexes[g<<1],m=JU.TriangleData.edgeVertexes[(g<<1)+1],q=this.vertexValues[p],s=this.vertexValues[m];this.calcVertexPoint(b,c,d,p,this.pointA);this.edgeCount++;j=this.edgePointIndexes[g]=this.isoPointIndexPlanes[j][l][k]=this.surfaceReader.getSurfacePointIndexAndFraction(this.cutoff,this.isCutoffAbsolute,b,c,d,JU.TriangleData.cubeVertexOffsets[p],p,m,q,s,this.pointA,this.edgeVectors[g],k==this.contourType,this.fReturn);this.addEdgeData(0>j?NaN:this.fReturn[0]);if(Float.isNaN(this.fReturn[0])||
0>j)e=this.excludePartialCubes}}return!e},"~N,~N,~N,~N,~N");e(c$,"addEdgeData",function(a){a=J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(a);this.edgeData.appendC(a)},"~N");e(c$,"calcVertexPoint",function(a,b,c,d,f){this.volumeData.voxelPtToXYZ(a,b,c,this.pt0);f.add2(this.pt0,this.voxelVertexVectors[d])},"~N,~N,~N,~N,JU.P3");e(c$,"setLinearOffsets",function(){this.linearOffsets[0]=0;this.linearOffsets[1]=this.yzCount;this.linearOffsets[2]=this.yzCount+1;this.linearOffsets[3]=1;this.linearOffsets[4]=
this.nZ;this.linearOffsets[5]=this.yzCount+this.nZ;this.linearOffsets[6]=this.yzCount+this.nZ+1;this.linearOffsets[7]=this.nZ+1});e(c$,"getLinearOffset",function(a,b,c,d){return a*this.yzCount+b*this.nZ+c+this.linearOffsets[d]},"~N,~N,~N,~N");Z(c$,"MODE_CUBE",1,"MODE_JVXL",2,"MODE_PLANES",3);Z(c$,"yzPlanePts",[0,1,1,0,0,1,1,0],"edgeVertexPointersLowToHigh",[1,1,2,0,5,5,6,4,0,1,2,3],"edgeVertexPointersHighToLow",[0,1,3,0,4,5,7,4,0,1,2,3],"edgeVertexPlanesLowToHigh",[1,1,1,0,1,1,1,0,0,1,1,0],"edgeVertexPlanesHighToLow",
[1,0,1,1,1,0,1,1,1,0,0,1]);c$.cubeVertexVectors=c$.prototype.cubeVertexVectors=[JU.V3.new3(0,0,0),JU.V3.new3(1,0,0),JU.V3.new3(1,0,1),JU.V3.new3(0,0,1),JU.V3.new3(0,1,0),JU.V3.new3(1,1,0),JU.V3.new3(1,1,1),JU.V3.new3(0,1,1)];Z(c$,"edgeTypeTable",[0,2,0,2,0,2,0,2,1,1,1,1],"insideMaskTable",[0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,
3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107,1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,
3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170,419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0])});
H("J.jvxl.calc");K(["JU.P3","java.util.Hashtable"],"J.jvxl.calc.MarchingSquares",["java.lang.Float","JU.AU","JU.Logger"],function(){c$=O(function(){this.volumeData=this.surfaceReader=null;this.valueMax=this.valueMin=this.thisContour=this.contourType=this.nContourSegments=0;this.pointB=this.pointA=null;this.contourFromZero=!0;this.contoursDiscrete=null;this.contourVertexCount=0;this.contourVertexes=null;oa("J.jvxl.calc.MarchingSquares.ContourVertex")||J.jvxl.calc.MarchingSquares.$MarchingSquares$ContourVertex$();
this.contourPlaneMaximumValue=this.contourPlaneMinimumValue=0;this.ptTemp=this.contourValuesUsed=null;this.triangleCount=0;this.htPts=this.triangles=null;oa("J.jvxl.calc.MarchingSquares.Triangle")||J.jvxl.calc.MarchingSquares.$MarchingSquares$Triangle$();M(this,arguments)},J.jvxl.calc,"MarchingSquares");V(c$,function(){this.pointA=new JU.P3;this.pointB=new JU.P3;this.contourVertexes=Array(1E3);this.ptTemp=new JU.P3;this.triangles=Array(1E3);this.htPts=new java.util.Hashtable});I(c$,function(a,b,c,
d,f,e,g){this.surfaceReader=a;this.volumeData=b;this.thisContour=e;this.contoursDiscrete=d;this.contourFromZero=g;null==d?(this.nContourSegments=(0==f?9:f)+0,100<this.nContourSegments&&(this.nContourSegments=100)):(this.nContourSegments=f=d.length,this.contourFromZero=!1)},"J.jvxl.api.VertexDataServer,J.jvxl.data.VolumeData,JU.P4,~A,~N,~N,~B");e(c$,"setMinMax",function(a,b){this.valueMin=a;this.valueMax=b},"~N,~N");e(c$,"addContourVertex",function(a,b){this.contourVertexCount==this.contourVertexes.length&&
(this.contourVertexes=JU.AU.doubleLength(this.contourVertexes));var c=this.surfaceReader.addVertexCopy(a,b,-2,!0);this.contourVertexes[this.contourVertexCount++]=na(J.jvxl.calc.MarchingSquares.ContourVertex,this,null,a);return c},"JU.P3,~N");e(c$,"setContourData",function(a,b){this.contourVertexes[a].setValue(b)},"~N,~N");e(c$,"calcContourPoint",function(a,b,c,d){return this.volumeData.calculateFractionalPoint(a,this.pointA,this.pointB,b,c,d)},"~N,~N,~N,JU.P3");e(c$,"addTriangle",function(a,b,c,d,
f){this.triangleCount==this.triangles.length&&(this.triangles=JU.AU.doubleLength(this.triangles));this.triangles[this.triangleCount++]=na(J.jvxl.calc.MarchingSquares.Triangle,this,null,a,b,c,d,f);return 0},"~N,~N,~N,~N,~N");e(c$,"generateContourData",function(a,b){JU.Logger.info("generateContours: "+this.nContourSegments+" segments");this.getVertexValues(a);this.createContours(this.valueMin,this.valueMax,b);this.addAllTriangles();return this.contourVertexCount},"~B,~N");e(c$,"getVertexValues",function(a){this.contourPlaneMinimumValue=
3.4028235E38;this.contourPlaneMaximumValue=-3.4028235E38;for(var b=0;b<this.contourVertexCount;b++){var c=this.contourVertexes[b],d;a?d=c.value:(d=this.volumeData.lookupInterpolatedVoxelValue(c,!1),c.setValue(d));d<this.contourPlaneMinimumValue&&(this.contourPlaneMinimumValue=d);d>this.contourPlaneMaximumValue&&(this.contourPlaneMaximumValue=d)}},"~B");e(c$,"createContours",function(a,b,c){b-=a;this.contourValuesUsed=A(this.nContourSegments,0);for(var d=this.triangleCount;0<=--d;)this.triangles[d].check=
0;for(var f=-3.4028235E38,d=0;d<this.nContourSegments;d++){f=null!=this.contoursDiscrete?this.contoursDiscrete[d]:this.contourFromZero?a+1*d/this.nContourSegments*b:0==d?-3.4028235E38:d==this.nContourSegments-1?3.4028235E38:a+1*(d-1)/(this.nContourSegments-1)*b;null==this.contoursDiscrete&&Math.abs(f)<c&&(f=0>f?-c:c);this.contourValuesUsed[d]=f;JU.Logger.info("#contour "+(d+1)+" "+f);this.htPts.clear();for(var e=this.triangleCount;0<=--e;)this.triangles[e].isValid&&this.checkContour(this.triangles[e],
d,f)}this.valueMin=this.contourValuesUsed[0];this.valueMax=0==this.contourValuesUsed.length?this.valueMin:this.contourValuesUsed[this.contourValuesUsed.length-1];return!0},"~N,~N,~N");e(c$,"intercept",function(a,b,c){var d=a.pts[b];a=a.pts[(b+1)%3];if(2147483647==d||2147483647==a)return-1;b=d<a?d+"_"+a:a+"_"+d;if(this.htPts.containsKey(b))return this.htPts.get(b).intValue();var f=this.contourVertexes[d].value,e=this.contourVertexes[a].value,g=-1;if(f!=e){var j=(c-f)/(e-f);if(0<=j&&1>=j&&(this.pointA.setT(this.contourVertexes[d]),
this.pointB.setT(this.contourVertexes[a]),c=this.calcContourPoint(c,f,e,this.ptTemp),!Float.isNaN(c))){g=this.addContourVertex(this.ptTemp,c);if(0>g)return-1;this.contourVertexes[g].setValue(c)}}this.htPts.put(b,Integer.$valueOf(g));return g},"J.jvxl.calc.MarchingSquares.Triangle,~N,~N");e(c$,"checkContour",function(a,b,c){if(!(0<this.thisContour&&b+1!=this.thisContour)){var d=this.intercept(a,0,c),f=this.intercept(a,1,c);c=this.intercept(a,2,c);var e=a.pts,g=0;0<=d&&(g+=1);0<=f&&(g+=2);0<=c&&(g+=
4);switch(g){case 3:this.addTriangle(e[0],d,f,2|a.check&1,b);this.addTriangle(d,e[1],f,4|a.check&3,b);this.addTriangle(e[0],f,e[2],a.check&6,b);break;case 5:this.addTriangle(e[0],d,c,2|a.check&5,b);this.addTriangle(d,e[1],c,4|a.check&1,b);this.addTriangle(c,e[1],e[2],a.check&6,b);break;case 6:this.addTriangle(e[0],e[1],c,a.check&5,b);this.addTriangle(c,e[1],f,4|a.check&2,b);this.addTriangle(c,f,e[2],1|a.check&6,b);break;default:return}a.isValid=!1}},"J.jvxl.calc.MarchingSquares.Triangle,~N,~N");e(c$,
"getMinMax",function(){return[this.valueMin,this.valueMax]});e(c$,"addAllTriangles",function(){for(var a=0;a<this.triangleCount;a++)if(this.triangles[a].isValid){var b=this.triangles[a];this.surfaceReader.addTriangleCheck(b.pts[0],b.pts[1],b.pts[2],b.check,b.contourIndex,!1,-1)}});c$.$MarchingSquares$ContourVertex$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);this.value=0;M(this,arguments)},J.jvxl.calc.MarchingSquares,"ContourVertex",JU.P3);I(c$,function(a){X(this,J.jvxl.calc.MarchingSquares.ContourVertex,
[]);this.setT(a)},"JU.P3");e(c$,"setValue",function(a){this.value=a},"~N");c$=ja()};c$.$MarchingSquares$Triangle$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);this.pts=null;this.check=0;this.isValid=!0;this.contourIndex=0;M(this,arguments)},J.jvxl.calc.MarchingSquares,"Triangle");I(c$,function(a,b,c,d,f){this.pts=[a,b,c];this.check=d;this.contourIndex=f},"~N,~N,~N,~N,~N");c$=ja()};Z(c$,"CONTOUR_POINT",-1,"VERTEX_POINT",-2,"EDGE_POINT",-3,"nContourMax",100,"defaultContourCount",9)});H("J.shapesurface");
K(["J.shape.Mesh"],"J.shapesurface.IsosurfaceMesh","java.lang.Float java.util.Hashtable JU.AU $.BS $.CU $.Lst $.M4 $.P3 $.P3i $.PT $.SB $.V3 J.api.Interface J.jvxl.data.JvxlCoder $.JvxlData JS.T JU.C $.ColorEncoder $.Logger JV.Viewer".split(" "),function(){c$=O(function(){this.jvxlData=null;this.vertexIncrement=1;this.firstRealVertex=-1;this.dataType=0;this.hasGridPoints=!1;this.assocGridPointNormals=this.assocGridPointMap=this.info=this.calculatedVolume=this.calculatedArea=null;this.mergeAssociatedNormalCount=
0;this.bsVdw=this.colorEncoder=this.contourColixes=this.contourValues=this.centers=null;this.colorPhased=!1;M(this,arguments)},J.shapesurface,"IsosurfaceMesh",J.shape.Mesh);m(c$,"getResolution",function(){return 1/this.jvxlData.pointsPerAngstrom});I(c$,function(a,b,c,d){this.mesh1(a,b,c,d);this.jvxlData=new J.jvxl.data.JvxlData;this.checkByteCount=2;this.jvxlData.version=JV.Viewer.getJmolVersion()},"JV.Viewer,~S,~N,~N");e(c$,"clearType",function(a,b){this.clear(a);this.jvxlData.clear();this.colorEncoder=
this.centers=this.calculatedArea=this.calculatedVolume=this.bsVdw=this.assocGridPointNormals=this.assocGridPointMap=null;this.colorsExplicit=this.colorPhased=!1;this.firstRealVertex=-1;this.hasGridPoints=b;this.isColorSolid=!0;this.nSets=this.mergeAssociatedNormalCount=0;this.pcs=null;this.showPoints=b;this.vertexColorMap=this.vcs=this.surfaceSet=null;this.vertexIncrement=1;this.vvs=this.vertexSets=null},"~S,~B");e(c$,"allocVertexColixes",function(){if(null==this.vcs){this.vcs=Y(this.vc,0);for(var a=
this.vc;0<=--a;)this.vcs[a]=this.colix}this.isColorSolid=!1});e(c$,"addVertexCopy",function(a,b,c,d,f){a=this.addVCVal(a,b,f);switch(c){case -1:0>this.firstRealVertex&&(this.firstRealVertex=a);break;case -2:this.hasGridPoints=!0;break;case -3:this.vertexIncrement=3;break;default:0>this.firstRealVertex&&(this.firstRealVertex=a),d&&(null==this.assocGridPointMap&&(this.assocGridPointMap=new java.util.Hashtable),this.assocGridPointMap.put(Integer.$valueOf(a),Integer.$valueOf(c+this.mergeAssociatedNormalCount)))}return a},
"JU.T3,~N,~N,~B,~B");m(c$,"setTranslucent",function(a,b){this.colix=JU.C.getColixTranslucent3(this.colix,a,b);if(null!=this.vcs)for(var c=this.vc;0<=--c;)this.vcs[c]=JU.C.getColixTranslucent3(this.vcs[c],a,b)},"~B,~N");e(c$,"setMerged",function(a){this.mergePolygonCount0=(this.isMerged=a)?this.pc:0;this.mergeVertexCount0=a?this.vc:0;a&&(this.mergeAssociatedNormalCount+=this.jvxlData.nPointsX*this.jvxlData.nPointsY*this.jvxlData.nPointsZ,this.assocGridPointNormals=null)},"~B");m(c$,"sumVertexNormals",
function(a,b){J.shape.Mesh.sumVertexNormals2(this,a,b);if(null!=this.assocGridPointMap&&0<b.length&&!this.isMerged){null==this.assocGridPointNormals&&(this.assocGridPointNormals=new java.util.Hashtable);for(var c,d=this.assocGridPointMap.entrySet().iterator();d.hasNext()&&((c=d.next())||1);){var f=c.getValue();this.assocGridPointNormals.containsKey(f)||this.assocGridPointNormals.put(f,JU.V3.new3(0,0,0));this.assocGridPointNormals.get(f).add(b[c.getKey().intValue()])}for(d=this.assocGridPointMap.entrySet().iterator();d.hasNext()&&
((c=d.next())||1);)b[c.getKey().intValue()]=this.assocGridPointNormals.get(c.getValue())}},"~A,~A");e(c$,"getCenters",function(){if(null!=this.centers)return this.centers;this.centers=Array(this.pc);for(var a=0;a<this.pc;a++){var b=this.pis[a];if(null!=b){var c=this.centers[a]=JU.P3.newP(this.vs[b[0]]);c.add(this.vs[b[1]]);c.add(this.vs[b[2]]);c.scale(0.33333334)}}return this.centers});e(c$,"getContours",function(){var a=this.jvxlData.nContours;if(0==a||null==this.pis||(this.havePlanarContours=null!=
this.jvxlData.jvxlPlane))return null;0>a&&(a=-1-a);var b=this.jvxlData.vContours;if(null!=b){for(var c=0;c<a&&!(6<b[c].size());c++)J.jvxl.data.JvxlCoder.set3dContourVector(b[c],this.pis,this.vs);return this.jvxlData.vContours}b=Array(a);for(c=0;c<a;c++)b[c]=new JU.Lst;if(null==this.jvxlData.contourValuesUsed){for(var d=(this.jvxlData.valueMappedToBlue-this.jvxlData.valueMappedToRed)/(a+1),c=0;c<a;c++){var f=this.jvxlData.valueMappedToRed+(c+1)*d;J.shapesurface.IsosurfaceMesh.get3dContour(this,b[c],
f,this.jvxlData.contourColixes[c])}JU.Logger.info(a+" contour lines; separation = "+d)}else for(c=0;c<a;c++)f=this.jvxlData.contourValuesUsed[c],J.shapesurface.IsosurfaceMesh.get3dContour(this,b[c],f,this.jvxlData.contourColixes[c]);this.jvxlData.contourColixes=Y(a,0);this.jvxlData.contourValues=A(a,0);for(c=0;c<a;c++)this.jvxlData.contourValues[c]=b[c].get(2).floatValue(),this.jvxlData.contourColixes[c]=b[c].get(3)[0];return this.jvxlData.vContours=b});c$.get3dContour=e(c$,"get3dContour",function(a,
b,c,d){var f=JU.BS.newN(a.pc),e=new JU.SB,g=JU.C.getArgb(d);J.shapesurface.IsosurfaceMesh.setContourVector(b,a.pc,f,c,d,g,e);for(d=0;d<a.pc;d++)null!=a.setABC(d)&&J.shapesurface.IsosurfaceMesh.addContourPoints(b,f,d,e,a.vs,a.vvs,a.iA,a.iB,a.iC,c)},"J.shapesurface.IsosurfaceMesh,JU.Lst,~N,~N");c$.setContourVector=e(c$,"setContourVector",function(a,b,c,d,f,e,g){a.add(0,Integer.$valueOf(b));a.add(1,c);a.add(2,Float.$valueOf(d));a.add(3,[f]);a.add(4,[e]);a.add(5,g)},"JU.Lst,~N,JU.BS,~N,~N,~N,JU.SB");
c$.addContourPoints=e(c$,"addContourPoints",function(a,b,c,d,f,e,g,j,l,k){var p=null,m=null,q=0,s=J.shapesurface.IsosurfaceMesh.checkPt(e,g,j,k);Float.isNaN(s)||(p=J.shapesurface.IsosurfaceMesh.getContourPoint(f,g,j,s),q|=1);var w=1==s?NaN:J.shapesurface.IsosurfaceMesh.checkPt(e,j,l,k);Float.isNaN(w)||(m=J.shapesurface.IsosurfaceMesh.getContourPoint(f,j,l,w),0==q&&(p=m,s=w),q|=2);switch(q){case 0:return;case 1:if(0==s)return;case 2:w=1==w?NaN:J.shapesurface.IsosurfaceMesh.checkPt(e,l,g,k),Float.isNaN(w)||
(m=J.shapesurface.IsosurfaceMesh.getContourPoint(f,l,g,w),q|=4)}switch(q){case 3:case 5:case 6:break;default:return}b.set(c);J.jvxl.data.JvxlCoder.appendContourTriangleIntersection(q,s,w,d);a.addLast(p);a.addLast(m)},"JU.Lst,JU.BS,~N,JU.SB,~A,~A,~N,~N,~N,~N");c$.checkPt=e(c$,"checkPt",function(a,b,c,d){var f,e;return d==(f=a[b])?0:d==(e=a[c])?1:f<d==d<e?(d-f)/(e-f):NaN},"~A,~N,~N,~N");c$.getContourPoint=e(c$,"getContourPoint",function(a,b,c,d){var f=new JU.P3;f.sub2(a[c],a[b]);f.scaleAdd2(d,f,a[b]);
return f},"~A,~N,~N,~N");e(c$,"setDiscreteColixes",function(a,b){null!=a&&(this.jvxlData.contourValues=a);if(null==a||0==a.length)a=this.jvxlData.contourValues=this.jvxlData.contourValuesUsed;null==b&&null!=this.jvxlData.contourColixes?b=this.jvxlData.contourColixes:(this.jvxlData.contourColixes=b,this.jvxlData.contourColors=JU.C.getHexCodes(b));if(!(null==this.vs||null==this.vvs||null==a)){var c=a.length,d=a[c-1];this.colorCommand=null;var f=null!=b&&0<b.length;this.isColorSolid=f&&null!=this.jvxlData.jvxlPlane;
if(null!=this.jvxlData.vContours){if(f)for(var e=0;e<this.jvxlData.vContours.length;e++)c=b[e%b.length],this.jvxlData.vContours[e].get(3)[0]=c,this.jvxlData.vContours[e].get(4)[0]=JU.C.getArgb(c)}else{this.pcs=Y(this.pc,0);this.colorsExplicit=!1;for(e=0;e<this.pc;e++){var g=this.pis[e];if(null!=g){this.pcs[e]=0;for(var g=(this.vvs[g[0]]+this.vvs[g[1]]+this.vvs[g[2]])/3,j=c;0<=--j;)if(g>=a[j]&&g<d){this.pcs[e]=f?b[j%b.length]:0;break}}}}}},"~A,~A");e(c$,"getContourList",function(){var a=new java.util.Hashtable;
a.put("values",null==this.jvxlData.contourValuesUsed?this.jvxlData.contourValues:this.jvxlData.contourValuesUsed);var b=new JU.Lst;if(null!=this.jvxlData.contourColixes){for(var c=0;c<this.jvxlData.contourColixes.length;c++)b.addLast(JU.CU.colorPtFromInt(JU.C.getArgb(this.jvxlData.contourColixes[c]),null));a.put("colors",b)}return a},"JV.Viewer");e(c$,"deleteContours",function(){this.jvxlData.contourValuesUsed=null;this.jvxlData.contourValues=null;this.jvxlData.contourColixes=null;this.jvxlData.vContours=
null});e(c$,"setVertexColorMap",function(){this.vertexColorMap=new java.util.Hashtable;for(var a=-999,b=null,c=this.vc;0<=--c;){var d=this.vcs[c];d!=a&&(d=JU.C.getHexCode(a=d),b=this.vertexColorMap.get(d),null==b&&this.vertexColorMap.put(d,b=new JU.BS));b.set(c)}});e(c$,"setVertexColixesForAtoms",function(a,b,c,d){this.jvxlData.vertexDataOnly=!0;this.jvxlData.vertexColors=G(this.vc,0);this.jvxlData.nVertexColors=this.vc;var f=a.ms.at;a=a.gdata;for(var e=this.mergeVertexCount0;e<this.vc;e++){var g=
this.vertexSource[e];if(!(0>g)&&d.get(g)){this.jvxlData.vertexColors[e]=a.getColorArgbOrGray(this.vcs[e]=JU.C.copyColixTranslucency(this.colix,f[g].colixAtom));var j=null==b?0:b[c[g]];0==j&&(j=f[g].colixAtom);this.vcs[e]=JU.C.copyColixTranslucency(this.colix,j)}}},"JV.Viewer,~A,~A,JU.BS");e(c$,"colorVertices",function(a,b,c){if(null!=this.vertexSource){a=JU.C.copyColixTranslucency(this.colix,a);var d=c?new JU.BS:b;this.checkAllocColixes();if(c)for(var f=0;f<this.vc;f++){var e=this.vertexSource[f];
0<=e&&b.get(e)&&(this.vcs[f]=a,null!=d&&d.set(f))}else for(f=0;f<this.vc;f++)d.get(f)&&(this.vcs[f]=a);c&&(a=JU.C.getHexCode(a),null==this.vertexColorMap&&(this.vertexColorMap=new java.util.Hashtable),J.shapesurface.IsosurfaceMesh.addColorToMap(this.vertexColorMap,a,b))}},"~N,JU.BS,~B");e(c$,"checkAllocColixes",function(){(null==this.vcs||null==this.vertexColorMap&&this.isColorSolid)&&this.allocVertexColixes();this.isColorSolid=!1});c$.addColorToMap=e(c$,"addColorToMap",function(a,b,c){for(var d=
null,f,e=a.entrySet().iterator();e.hasNext()&&((f=e.next())||1);)f.getKey()===b?(d=f.getValue(),d.or(c)):f.getValue().andNot(c);null==d&&a.put(b,c)},"java.util.Map,~S,JU.BS");e(c$,"setJvxlColorMap",function(a){this.jvxlData.diameter=this.diameter;this.jvxlData.color=JU.C.getHexCode(this.colix);this.jvxlData.meshColor=0==this.meshColix?null:JU.C.getHexCode(this.meshColix);this.jvxlData.translucency=JU.C.getColixTranslucencyFractional(this.colix);this.jvxlData.rendering=this.getRendering().substring(1);
this.jvxlData.colorScheme=null==this.colorEncoder?null:this.colorEncoder.getColorScheme();null==this.jvxlData.vertexColors&&(this.jvxlData.nVertexColors=null==this.vertexColorMap?0:this.vertexColorMap.size());if(!(null==this.vertexColorMap||null==this.vertexSource||!a)){null==this.jvxlData.vertexColorMap&&(this.jvxlData.vertexColorMap=new java.util.Hashtable);var b;for(a=this.vertexColorMap.entrySet().iterator();a.hasNext()&&((b=a.next())||1);){var c=b.getValue();if(!c.isEmpty()){for(var d=b.getKey(),
f=new JU.BS,e=0;e<this.vc;e++)c.get(this.vertexSource[e])&&f.set(e);J.shapesurface.IsosurfaceMesh.addColorToMap(this.jvxlData.vertexColorMap,d,f)}}this.jvxlData.nVertexColors=this.jvxlData.vertexColorMap.size();0==this.jvxlData.vertexColorMap.size()&&(this.jvxlData.vertexColorMap=null)}},"~B");e(c$,"setColorCommand",function(){null!=this.colorEncoder&&(this.colorCommand=this.colorEncoder.getColorScheme(),this.colorCommand.equals("inherit")?this.colorCommand="#inherit;":null!=this.colorCommand&&(this.colorCommand=
"color $"+(JU.PT.isLetter(this.thisID.charAt(0))&&0>this.thisID.indexOf(" ")?this.thisID:'"'+this.thisID+'"')+' "'+this.colorCommand+'" range '+(this.jvxlData.isColorReversed?this.jvxlData.valueMappedToBlue+" "+this.jvxlData.valueMappedToRed:this.jvxlData.valueMappedToRed+" "+this.jvxlData.valueMappedToBlue)))});e(c$,"setColorsFromJvxlData",function(a){this.diameter=this.jvxlData.diameter;-1!=a&&(-2147483648!=a&&2147483647!=a?this.colix=JU.C.getColix(a):null!=this.jvxlData.color&&(this.colix=JU.C.getColixS(this.jvxlData.color)));
0==this.colix&&(this.colix=5);this.colix=JU.C.getColixTranslucent3(this.colix,0!=this.jvxlData.translucency,this.jvxlData.translucency);null!=this.jvxlData.meshColor&&(this.meshColix=JU.C.getColixS(this.jvxlData.meshColor));this.setJvxlDataRendering();this.isColorSolid=!this.jvxlData.isBicolorMap&&null==this.jvxlData.vertexColors&&null==this.jvxlData.vertexColorMap;if(null!=this.colorEncoder)if(null==this.jvxlData.vertexColorMap){if(null!=this.jvxlData.colorScheme){var b=this.jvxlData.colorScheme;
(a=b.startsWith("translucent "))&&(b=b.substring(12));this.colorEncoder.setColorScheme(b,a);this.remapColors(null,null,NaN)}}else{if(null!=this.jvxlData.baseColor)for(a=this.vc;0<=--a;)this.vcs[a]=this.colix;for(var c=this.jvxlData.vertexColorMap.entrySet().iterator();c.hasNext()&&((b=c.next())||1);){var d=b.getValue(),f=JU.C.copyColixTranslucency(this.colix,JU.C.getColixS(b.getKey()));for(a=d.nextSetBit(0);0<=a;a=d.nextSetBit(a+1))this.vcs[a]=f}}},"~N");e(c$,"setJvxlDataRendering",function(){if(null!=
this.jvxlData.rendering)for(var a=JU.PT.getTokens(this.jvxlData.rendering),b=0;b<a.length;b++)this.setTokenProperty(JS.T.getTokFromName(a[b]),!0)});e(c$,"remapColors",function(a,b,c){null==b&&(b=this.colorEncoder);null==b&&(b=this.colorEncoder=new JU.ColorEncoder(null,a));this.colorEncoder=b;this.setColorCommand();Float.isNaN(c)?c=JU.C.getColixTranslucencyLevel(this.colix):this.colix=JU.C.getColixTranslucent3(this.colix,!0,c);var d=b.lo,f=b.hi,e=null!=this.vertexSource&&15==b.currentPalette;this.pcs=
this.vertexColorMap=null;this.colorsExplicit=!1;this.jvxlData.baseColor=null;this.jvxlData.vertexCount=this.vc;if(!(null==this.vvs||0==this.jvxlData.vertexCount))if((null==this.vcs||this.vcs.length!=this.vc)&&this.allocVertexColixes(),e){this.jvxlData.vertexDataOnly=!0;this.jvxlData.vertexColors=G(this.vc,0);this.jvxlData.nVertexColors=this.vc;b=a.ms.at;c=a.gdata;for(a=this.mergeVertexCount0;a<this.vc;a++)d=this.vertexSource[a],0<=d&&d<b.length&&(this.jvxlData.vertexColors[a]=c.getColorArgbOrGray(this.vcs[a]=
JU.C.copyColixTranslucency(this.colix,b[d].colixAtom)))}else if(this.jvxlData.vertexColors=null,this.jvxlData.vertexColorMap=null,this.jvxlData.isBicolorMap)for(a=this.mergeVertexCount0;a<this.vc;a++)this.vcs[a]=JU.C.copyColixTranslucency(this.colix,0>this.vvs[a]?this.jvxlData.minColorIndex:this.jvxlData.maxColorIndex);else{this.jvxlData.isColorReversed=b.isReversed;3.4028235E38!=f&&(this.jvxlData.valueMappedToRed=d,this.jvxlData.valueMappedToBlue=f);b.setRange(this.jvxlData.valueMappedToRed,this.jvxlData.valueMappedToBlue,
this.jvxlData.isColorReversed);d=JU.C.isColixTranslucent(this.colix);b.isTranslucent&&(d||(this.colix=JU.C.getColixTranslucent3(this.colix,!0,0.5)),d=!1);for(a=this.vc;--a>=this.mergeVertexCount0;)this.vcs[a]=b.getColorIndex(this.vvs[a]);this.setTranslucent(d,c);this.colorEncoder=b;c=this.getContours();if(null!=c)for(a=c.length;0<=--a;)d=c[a].get(2).floatValue(),f=c[a].get(3),f[0]=b.getColorIndex(d),c[a].get(4)[0]=JU.C.getArgb(f[0]);if(null!=this.contourValues){this.contourColixes=Y(this.contourValues.length,
0);for(a=0;a<this.contourValues.length;a++)this.contourColixes[a]=b.getColorIndex(this.contourValues[a]);this.setDiscreteColixes(null,null)}this.jvxlData.isJvxlPrecisionColor=!0;J.jvxl.data.JvxlCoder.jvxlCreateColorData(this.jvxlData,this.vvs);this.setColorCommand();this.isColorSolid=!1}},"JV.Viewer,JU.ColorEncoder,~N");e(c$,"reinitializeLightingAndColor",function(a){this.initialize(this.lighting,null,null);if(null!=this.colorEncoder||this.jvxlData.isBicolorMap)this.vcs=null,this.remapColors(a,null,
NaN)},"JV.Viewer");m(c$,"getBoundingBox",function(){return this.jvxlData.boundingBox});m(c$,"setBoundingBox",function(a){this.jvxlData.boundingBox=a},"~A");e(c$,"merge",function(a){var b=this.vc+(null==a?0:a.vc);null==this.pis&&(this.pis=G(0,0,0));null!=a&&null==a.pis&&(a.pis=G(0,0,0));var c=(null==this.bsSlabDisplay||0==this.pc?this.pc:this.bsSlabDisplay.cardinality())+(null==a||0==a.pc?0:null==a.bsSlabDisplay?a.pc:a.bsSlabDisplay.cardinality());null==this.vs&&(this.vs=[]);this.vs=JU.AU.ensureLength(this.vs,
b);this.vvs=JU.AU.ensureLengthA(this.vvs,b);var d=null!=this.vertexSource&&(null==a||null!=a.vertexSource);this.vertexSource=JU.AU.ensureLengthI(this.vertexSource,b);var f=JU.AU.newInt2(c),e=J.shapesurface.IsosurfaceMesh.mergePolygons(this,0,0,f);if(null!=a){J.shapesurface.IsosurfaceMesh.mergePolygons(a,e,this.vc,f);for(e=0;e<a.vc;e++,this.vc++)this.vs[this.vc]=a.vs[e],this.vvs[this.vc]=a.vvs[e],d&&(this.vertexSource[this.vc]=a.vertexSource[e])}this.pc=this.polygonCount0=c;this.vc=this.vertexCount0=
b;0<c&&this.resetSlab();this.pis=f},"J.jvxl.data.MeshData");c$.mergePolygons=e(c$,"mergePolygons",function(a,b,c,d){for(var f,e=0;e<a.pc;e++)if(!(null==(f=a.pis[e])||null!=a.bsSlabDisplay&&!a.bsSlabDisplay.get(e)))if(d[b++]=a.pis[e],0<c)for(var g=0;3>g;g++)f[g]+=c;return b},"JU.MeshSurface,~N,~N,~A");m(c$,"getUnitCell",function(){return null!=this.unitCell||null!=(this.unitCell=this.vwr.ms.am[this.modelIndex].biosymmetry)||null!=(this.unitCell=this.vwr.ms.getUnitCell(this.modelIndex))||null!=this.spanningVectors&&
null!=(this.unitCell=J.api.Interface.getSymmetry(this.vwr,"symmetry").getUnitCell(this.spanningVectors,!0,null))?this.unitCell:null});e(c$,"fixLattice",function(){if(null!=this.getUnitCell()){var a=new JU.P3i,b=JU.P3i.new3(u(this.lattice.x),u(this.lattice.y),u(this.lattice.z));this.jvxlData.fixedLattice=this.lattice;this.lattice=null;this.unitCell.setMinMaxLatticeParameters(a,b);var c=(b.x-a.x)*(b.y-a.y)*(b.z-a.z),d=new JU.P3,f=this.vc,e=c*this.vc;this.vs=JU.AU.arrayCopyPt(this.vs,e);this.vvs=null==
this.vvs?null:JU.AU.ensureLengthA(this.vvs,e);var g=this.pc;this.pis=JU.AU.arrayCopyII(this.pis,c*this.pc);c=0;this.normixes=JU.AU.arrayCopyShort(this.normixes,e);for(e=a.x;e<b.x;e++)for(var j=a.y;j<b.y;j++)for(var l=a.z;l<b.z;l++)if(!(0==e&&0==j&&0==l)){d.set(e,j,l);this.unitCell.toCartesian(d,!1);for(var k=0;k<f;k++){this.normixes[this.vc]=this.normixes[k];var p=JU.P3.newP(this.vs[k]);p.add(d);this.addVCVal(p,this.vvs[k],!1)}c+=f;for(k=0;k<g;k++)p=JU.AU.arrayCopyI(this.pis[k],-1),p[0]+=c,p[1]+=
c,p[2]+=c,this.addPolygon(p,null)}a=new JU.P3;b=new JU.P3;this.setBox(a,b);this.jvxlData.boundingBox=[a,b]}});m(c$,"getMinDistance2ForVertexGrouping",function(){return null!=this.jvxlData.boundingBox&&null!=this.jvxlData.boundingBox[0]&&5>this.jvxlData.boundingBox[1].distanceSquared(this.jvxlData.boundingBox[0])?1E-10:1E-8});m(c$,"getVisibleVertexBitSet",function(){var a=this.getVisibleVBS();if(0<=this.jvxlData.thisSet)for(var b=0;b<this.vc;b++)this.vertexSets[b]!=this.jvxlData.thisSet&&a.clear(b);
return a});e(c$,"updateCoordinates",function(a,b){var c=null==b;if(!c)for(var d=0;d<this.connections.length;d++)if(0<=this.connections[d]&&b.get(this.connections[d])){c=!0;break}c&&(null==this.mat4&&(this.mat4=JU.M4.newM4(null)),this.mat4.mul2(a,this.mat4),this.recalcAltVertices=!0)},"JU.M4,JU.BS")});H("J.jvxl.readers");K(["J.jvxl.readers.SurfaceReader"],"J.jvxl.readers.VolumeDataReader",["java.lang.Float","JU.AU","$.SB","J.jvxl.data.JvxlCoder","JU.Logger"],function(){c$=O(function(){this.dataType=
0;this.allowMapData=this.precalculateVoxelData=!1;this.point=null;this.maxGrid=this.ptsPerAngstrom=0;this.useOriginStepsPoints=!1;M(this,arguments)},J.jvxl.readers,"VolumeDataReader",J.jvxl.readers.SurfaceReader);I(c$,function(){X(this,J.jvxl.readers.VolumeDataReader,[])});m(c$,"init",function(a){this.initVDR(a)},"J.jvxl.readers.SurfaceGenerator");e(c$,"initVDR",function(a){this.initSR(a);this.useOriginStepsPoints=null!=this.params.origin&&null!=this.params.points&&null!=this.params.steps;this.dataType=
this.params.dataType;this.allowMapData=this.precalculateVoxelData=!0},"J.jvxl.readers.SurfaceGenerator");e(c$,"setup",function(){this.jvxlFileHeaderBuffer=(new JU.SB).append("volume data read from file\n\n");J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData,this.jvxlFileHeaderBuffer)},"~B");m(c$,"readVolumeParameters",function(a){this.setup(a);this.initializeVolumetricData();return!0},"~B");m(c$,"readVolumeData",function(a){try{this.readSurfaceData(a)}catch(b){if(T(b,Exception))return System.out.println(b.toString()),
!1;throw b;}return!0},"~B");e(c$,"readVoxelDataIndividually",function(a){if(!a||this.allowMapData)if(!a||null!=this.volumeData.sr)this.volumeData.setVoxelDataAsArray(this.voxelData=null);else{this.newVoxelDataCube();for(a=0;a<this.nPointsX;++a){var b=JU.AU.newFloat2(this.nPointsY);this.voxelData[a]=b;for(var c=0,d=0;d<this.nPointsY;++d)for(var f=b[d]=A(this.nPointsZ,0),e=0;e<this.nPointsZ;++e,++c)f[e]=this.getValue(a,d,e,c)}}},"~B");e(c$,"setVolumeData",function(){});e(c$,"setVolumeDataParams",function(){if(null!=
this.params.volumeData)return this.setVolumeDataV(this.params.volumeData),!0;if(!this.useOriginStepsPoints)return!1;this.volumetricOrigin.setT(this.params.origin);this.volumetricVectors[0].set(this.params.steps.x,0,0);this.volumetricVectors[1].set(0,this.params.steps.y,0);this.volumetricVectors[2].set(0,0,this.params.steps.z);this.voxelCounts[0]=u(this.params.points.x);this.voxelCounts[1]=u(this.params.points.y);this.voxelCounts[2]=u(this.params.points.z);if(1>this.voxelCounts[0]||1>this.voxelCounts[1]||
1>this.voxelCounts[2])return!1;this.showGridInfo();return!0});e(c$,"showGridInfo",function(){JU.Logger.info("grid origin  = "+this.params.origin);JU.Logger.info("grid steps   = "+this.params.steps);JU.Logger.info("grid points  = "+this.params.points);this.ptTemp.x=this.params.steps.x*this.params.points.x;this.ptTemp.y=this.params.steps.y*this.params.points.y;this.ptTemp.z=this.params.steps.z*this.params.points.z;JU.Logger.info("grid lengths = "+this.ptTemp);this.ptTemp.add(this.params.origin);JU.Logger.info("grid max xyz = "+
this.ptTemp)});e(c$,"setVoxelRange",function(a,b,c,d,f,e){b>=c&&(b=-10,c=10);var g=c-b,j=this.params.resolution;3.4028235E38!=j&&(d=j);c=C(Math.floor(g*d))+1;c>f&&(0<(this.dataType&256)?3.4028235E38==j?(this.isQuiet||JU.Logger.info("Maximum number of voxels for index="+a+" exceeded ("+c+") -- set to "+f),c=f):this.isQuiet||JU.Logger.info("Warning -- high number of grid points: "+c):3.4028235E38==j&&(c=f));d=(c-1)/g;d<e&&(c=C(Math.floor(e*g+1)),d=(c-1)/g);f=this.volumeData.volumetricVectorLengths[a]=
1/d;this.voxelCounts[a]=c;this.isQuiet||JU.Logger.info("isosurface resolution for axis "+(a+1)+" set to "+d+" points/Angstrom; "+this.voxelCounts[a]+" voxels");switch(a){case 0:this.volumetricVectors[0].set(f,0,0);this.volumetricOrigin.x=b;break;case 1:this.volumetricVectors[1].set(0,f,0);this.volumetricOrigin.y=b;break;case 2:this.volumetricVectors[2].set(0,0,f),this.volumetricOrigin.z=b,this.isEccentric&&this.eccentricityMatrix.rotate(this.volumetricOrigin),null!=this.center&&!Float.isNaN(this.center.x)&&
this.volumetricOrigin.add(this.center)}this.isEccentric&&this.eccentricityMatrix.rotate(this.volumetricVectors[a]);return this.voxelCounts[a]},"~N,~N,~N,~N,~N,~N");m(c$,"readSurfaceData",function(a){this.readSurfaceDataVDR(a)},"~B");e(c$,"readSurfaceDataVDR",function(a){this.isProgressive&&!a?(this.nDataPoints=this.volumeData.setVoxelCounts(this.nPointsX,this.nPointsY,this.nPointsZ),this.voxelData=null):this.precalculateVoxelData?this.generateCube():this.readVoxelDataIndividually(a)},"~B");e(c$,"generateCube",
function(){JU.Logger.info("data type: user volumeData");JU.Logger.info("voxel grid origin:"+this.volumetricOrigin);for(var a=0;3>a;++a)JU.Logger.info("voxel grid vector:"+this.volumetricVectors[a]);JU.Logger.info("Read "+this.nPointsX+" x "+this.nPointsY+" x "+this.nPointsZ+" data points")});m(c$,"closeReader",function(){})});H("J.jvxl.readers");K(["J.jvxl.readers.VolumeDataReader","JU.BS","$.P3","$.P3i","J.atomdata.AtomData"],"J.jvxl.readers.AtomDataReader","java.lang.Float java.util.Date JU.AU $.SB $.V3 J.atomdata.RadiusData J.c.VDW J.jvxl.data.JvxlCoder JU.BSUtil $.Logger".split(" "),
function(){c$=O(function(){this.maxDistance=0;this.fileDotModel=this.fileName=this.contactPair=null;this.modelIndex=0;this.myIndex=this.atomIndex=this.atomNo=this.atomProp=this.atomRadius=this.atomXyz=this.atomData=null;this.firstNearbyAtom=this.nearbyAtomCount=this.myAtomCount=this.ac=0;this.bsNearby=this.bsMyIgnored=this.bsMySelected=null;this.doUseIterator=this.havePlane=this.doAddHydrogens=!1;this.theProperty=0;this.haveOneProperty=!1;this.sr=this.minPtsPerAng=0;this.rs2=this.rs=null;this.maxRS=
0;this.thisAtomSet=this.thisPlane=null;this.vl2=this.vl1=this.vl0=this.margin=this.thisX=0;this.ptV=this.pt1=this.pt0=this.ptZ0=this.ptY0=this.voxelSource=this.noFaceSpheres=this.validSpheres=this.bsSurfaceVoxels=null;M(this,arguments)},J.jvxl.readers,"AtomDataReader",J.jvxl.readers.VolumeDataReader);V(c$,function(){this.atomData=new J.atomdata.AtomData;this.bsMySelected=new JU.BS;this.bsMyIgnored=new JU.BS;this.ptY0=new JU.P3;this.ptZ0=new JU.P3;this.pt0=new JU.P3i;this.pt1=new JU.P3i;this.ptV=new JU.P3});
I(c$,function(){X(this,J.jvxl.readers.AtomDataReader,[])});e(c$,"initADR",function(a){this.initVDR(a);this.precalculateVoxelData=!0},"J.jvxl.readers.SurfaceGenerator");m(c$,"setup",function(){this.setup2()},"~B");e(c$,"setup2",function(){this.contactPair=this.params.contactPair;this.doAddHydrogens=null!=this.sg.atomDataServer&&this.params.addHydrogens;this.modelIndex=this.params.modelIndex;null!=this.params.bsIgnore&&(this.bsMyIgnored=this.params.bsIgnore);if(null!=this.params.volumeData){this.setVolumeDataV(this.params.volumeData);
this.setBBox(this.volumeData.volumetricOrigin,0);this.ptV.setT(this.volumeData.volumetricOrigin);for(var a=0;3>a;a++)this.ptV.scaleAdd2(this.volumeData.voxelCounts[a]-1,this.volumeData.volumetricVectors[a],this.ptV);this.setBBox(this.ptV,0)}(this.havePlane=null!=this.params.thePlane)&&this.volumeData.setPlaneParameters(this.params.thePlane)});e(c$,"markPlaneVoxels",function(a,b){for(var c=0,d=this.thisX*this.yzCount,f=d+this.yzCount;d<f;d++,c++)this.volumeData.getPoint(d,this.ptV),this.thisPlane[c]=
this.ptV.distance(a)-b},"JU.P3,~N");e(c$,"setVolumeForPlane",function(){this.useOriginStepsPoints?(this.xyzMin=JU.P3.newP(this.params.origin),this.xyzMax=JU.P3.newP(this.params.origin),this.xyzMax.add3((this.params.points.x-1)*this.params.steps.x,(this.params.points.y-1)*this.params.steps.y,(this.params.points.z-1)*this.params.steps.z)):null==this.params.boundingBox?(this.getAtoms(this.params.bsSelected,!1,!0,!1,!1,!1,!1,this.params.mep_marginAngstroms),null==this.xyzMin&&(this.xyzMin=JU.P3.new3(-10,
-10,-10),this.xyzMax=JU.P3.new3(10,10,10))):(this.xyzMin=JU.P3.newP(this.params.boundingBox[0]),this.xyzMax=JU.P3.newP(this.params.boundingBox[1]));this.setRanges(this.params.plane_ptsPerAngstrom,this.params.plane_gridMax,0)});e(c$,"getAtoms",function(a,b,c,d,f,e,g,j){e&&(c=!0);c&&(null==this.params.atomRadiusData&&(this.params.atomRadiusData=new J.atomdata.RadiusData(null,1,J.atomdata.RadiusData.EnumType.FACTOR,J.c.VDW.AUTO)),this.atomData.radiusData=this.params.atomRadiusData,this.atomData.radiusData.valueExtended=
this.params.solventExtendedAtomRadius,b&&(this.atomData.radiusData.vdwType=J.c.VDW.NOJMOL));this.atomData.modelIndex=this.modelIndex;this.atomData.bsSelected=a;this.atomData.bsIgnored=this.bsMyIgnored;this.sg.fillAtomData(this.atomData,1|(f?16:0)|(d?4:0)|(c?2:0));this.doUseIterator&&(this.atomData.bsSelected=null);this.ac=this.atomData.ac;this.modelIndex=this.atomData.firstModelIndex;f=!1;for(d=0;d<this.ac;d++){if((null==a||a.get(d))&&!this.bsMyIgnored.get(d)){if(this.havePlane&&Math.abs(this.volumeData.distancePointToPlane(this.atomData.atomXyz[d]))>
2*(this.atomData.atomRadius[d]=this.getWorkingRadius(d,j)))continue;this.bsMySelected.set(d);f=!this.havePlane}if(c&&(e||f))this.atomData.atomRadius[d]=this.getWorkingRadius(d,j)}f=c&&b?this.getWorkingRadius(-1,j):0;this.myAtomCount=JU.BSUtil.cardinalityOf(this.bsMySelected);j=JU.BSUtil.copy(this.bsMySelected);g=0;this.atomProp=null;this.theProperty=3.4028235E38;this.haveOneProperty=!1;a=this.params.theProperty;if(0<this.myAtomCount){var l=null;if(b){this.atomData.bsSelected=j;this.sg.atomDataServer.fillAtomData(this.atomData,
8);l=Array(g=this.atomData.hydrogenAtomCount);for(d=0;d<this.atomData.hAtoms.length;d++)if(null!=this.atomData.hAtoms[d])for(b=this.atomData.hAtoms[d].length;0<=--b;)l[--g]=this.atomData.hAtoms[d][b];g=l.length;JU.Logger.info(g+" attached hydrogens added")}b=g+this.myAtomCount;c&&(this.atomRadius=A(b,0));this.atomXyz=Array(b);null!=this.params.theProperty&&(this.atomProp=A(b,0));this.atomNo=G(b,0);this.atomIndex=G(b,0);this.myIndex=G(this.ac,0);for(d=0;d<g;d++)c&&(this.atomRadius[d]=f),this.atomXyz[d]=
l[d],this.atomNo[d]=-1,null!=this.atomProp&&this.addAtomProp(d,NaN);this.myAtomCount=g;for(d=j.nextSetBit(0);0<=d;d=j.nextSetBit(d+1))null!=this.atomProp&&this.addAtomProp(this.myAtomCount,null!=a&&d<a.length?a[d]:NaN),this.atomXyz[this.myAtomCount]=this.atomData.atomXyz[d],this.atomNo[this.myAtomCount]=this.atomData.atomicNumber[d],this.atomIndex[this.myAtomCount]=d,this.myIndex[d]=this.myAtomCount,c&&(this.atomRadius[this.myAtomCount]=this.atomData.atomRadius[d]),this.myAtomCount++}this.firstNearbyAtom=
this.myAtomCount;JU.Logger.info(this.myAtomCount+" atoms will be used in the surface calculation");0==this.myAtomCount&&(this.setBBox(JU.P3.new3(10,10,10),0),this.setBBox(JU.P3.new3(-10,-10,-10),0));for(d=0;d<this.myAtomCount;d++)this.setBBox(this.atomXyz[d],c?this.atomRadius[d]+0.5:0);Float.isNaN(this.params.scale)||(b=JU.V3.newVsub(this.xyzMax,this.xyzMin),b.scale(0.5),this.xyzMin.add(b),b.scale(this.params.scale),this.xyzMax.add2(this.xyzMin,b),this.xyzMin.sub(b));if(e&&0!=this.myAtomCount){e=
new JU.P3;this.bsNearby=new JU.BS;for(d=0;d<this.ac;d++)!j.get(d)&&!this.bsMyIgnored.get(d)&&(b=this.atomData.atomRadius[d],null!=this.params.thePlane&&Math.abs(this.volumeData.distancePointToPlane(this.atomData.atomXyz[d]))>2*b||(null!=this.params.theProperty&&(b+=this.maxDistance),e=this.atomData.atomXyz[d],e.x+b>this.xyzMin.x&&(e.x-b<this.xyzMax.x&&e.y+b>this.xyzMin.y&&e.y-b<this.xyzMax.y&&e.z+b>this.xyzMin.z&&e.z-b<this.xyzMax.z)&&(this.bsNearby.set(d),this.nearbyAtomCount++)));e=this.myAtomCount;
if(0!=this.nearbyAtomCount){e+=this.nearbyAtomCount;this.atomRadius=JU.AU.arrayCopyF(this.atomRadius,e);this.atomXyz=JU.AU.arrayCopyObject(this.atomXyz,e);null!=this.atomIndex&&(this.atomIndex=JU.AU.arrayCopyI(this.atomIndex,e));null!=a&&(this.atomProp=JU.AU.arrayCopyF(this.atomProp,e));for(d=this.bsNearby.nextSetBit(0);0<=d;d=this.bsNearby.nextSetBit(d+1))null!=a&&this.addAtomProp(this.myAtomCount,a[d]),this.myIndex[d]=this.myAtomCount,this.atomIndex[this.myAtomCount]=d,this.atomXyz[this.myAtomCount]=
this.atomData.atomXyz[d],this.atomRadius[this.myAtomCount++]=this.atomData.atomRadius[d]}c&&this.setRadii();this.haveOneProperty=!Float.isNaN(this.theProperty)}},"JU.BS,~B,~B,~B,~B,~B,~B,~N");e(c$,"setRadii",function(){if(null==this.rs){this.maxRS=0;this.rs=A(this.myAtomCount,0);this.rs2=A(this.myAtomCount,0);for(var a=0;a<this.myAtomCount;a++){var b=this.rs[a]=this.atomRadius[a]+this.sr;b>this.maxRS&&(this.maxRS=b);this.rs2[a]=this.rs[a]*this.rs[a]}}});e(c$,"addAtomProp",function(a,b){this.atomProp[a]=
b;!Float.isNaN(this.theProperty)&&b!=this.theProperty&&(this.theProperty=3.4028235E38==this.theProperty?b:NaN)},"~N,~N");e(c$,"getWorkingRadius",function(a,b){var c=0>a?this.atomData.hAtomRadius:this.atomData.atomRadius[a];return Float.isNaN(b)?Math.max(c,0.1):c+b},"~N,~N");e(c$,"setHeader",function(a,b){this.jvxlFileHeaderBuffer=new JU.SB;null!=this.atomData.programInfo&&this.jvxlFileHeaderBuffer.append("#created by ").append(this.atomData.programInfo).append(" on ").append(""+new java.util.Date).append("\n");
this.jvxlFileHeaderBuffer.append(a).append("\n").append(b).append("\n")},"~S,~S");e(c$,"setRanges",function(a,b,c){null!=this.xyzMin&&(this.ptsPerAngstrom=a,this.maxGrid=b,this.minPtsPerAng=c,this.setVolumeData(),J.jvxl.data.JvxlCoder.jvxlCreateHeader(this.volumeData,this.jvxlFileHeaderBuffer))},"~N,~N,~N");m(c$,"setVolumeData",function(){this.setVolumeDataADR()});e(c$,"setVolumeDataADR",function(){this.setVolumeDataParams()||(this.setVoxelRange(0,this.xyzMin.x,this.xyzMax.x,this.ptsPerAngstrom,this.maxGrid,
this.minPtsPerAng),this.setVoxelRange(1,this.xyzMin.y,this.xyzMax.y,this.ptsPerAngstrom,this.maxGrid,this.minPtsPerAng),this.setVoxelRange(2,this.xyzMin.z,this.xyzMax.z,this.ptsPerAngstrom,this.maxGrid,this.minPtsPerAng))});e(c$,"setVertexSource",function(){null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);if(null!=this.params.vertexSource){this.params.vertexSource=JU.AU.arrayCopyI(this.params.vertexSource,this.meshData.vc);for(var a=0;a<this.meshData.vc;a++)this.params.vertexSource[a]=
Math.abs(this.params.vertexSource[a])-1}});e(c$,"resetPlane",function(a){for(var b=0;b<this.yzCount;b++)this.thisPlane[b]=a},"~N");e(c$,"resetVoxelData",function(a){for(var b=0;b<this.nPointsX;++b)for(var c=0;c<this.nPointsY;++c)for(var d=0;d<this.nPointsZ;++d)this.voxelData[b][c][d]=a},"~N");e(c$,"getVoxel",function(a,b,c,d){return this.isProgressive?this.thisPlane[d%this.yzCount]:this.voxelData[a][b][c]},"~N,~N,~N,~N");e(c$,"unsetVoxelData",function(){this.unsetVoxelData2()});e(c$,"unsetVoxelData2",
function(){if(this.isProgressive)for(var a=0;a<this.yzCount;a++)3.4028235E38==this.thisPlane[a]&&(this.thisPlane[a]=NaN);else for(a=0;a<this.nPointsX;++a)for(var b=0;b<this.nPointsY;++b)for(var c=0;c<this.nPointsZ;++c)3.4028235E38==this.voxelData[a][b][c]&&(this.voxelData[a][b][c]=NaN)});e(c$,"setGridLimitsForAtom",function(a,b,c,d){b+=this.margin;this.volumeData.xyzToVoxelPt(a.x,a.y,a.z,c);a=C(Math.floor(b/this.volumeData.volumetricVectorLengths[0]));var f=C(Math.floor(b/this.volumeData.volumetricVectorLengths[1]));
b=C(Math.floor(b/this.volumeData.volumetricVectorLengths[2]));d.set(c.x+a,c.y+f,c.z+b);c.set(c.x-a,c.y-f,c.z-b);c.x=Math.max(c.x-1,0);c.y=Math.max(c.y-1,0);c.z=Math.max(c.z-1,0);d.x=Math.min(d.x+1,this.nPointsX);d.y=Math.min(d.y+1,this.nPointsY);d.z=Math.min(d.z+1,this.nPointsZ)},"JU.P3,~N,JU.P3i,JU.P3i");e(c$,"getAtomMinMax",function(a,b){for(var c=0;c<this.nPointsX;c++)b[c]=new JU.BS;for(var d=this.myAtomCount;0<=--d;)if(null==a||a.get(d)){this.setGridLimitsForAtom(this.atomXyz[d],this.atomRadius[d],
this.pt0,this.pt1);for(c=this.pt0.x;c<this.pt1.x;c++)b[c].set(d)}},"JU.BS,~A");e(c$,"markSphereVoxels",function(a,b){for(var c=3.4028235E38!=b&&null!=this.point,d=this.volumetricVectors[0],f=this.volumetricVectors[1],e=this.volumetricVectors[2],g=this.thisAtomSet.nextSetBit(0);0<=g;g=this.thisAtomSet.nextSetBit(g+1))if(this.havePlane||null==this.validSpheres||this.validSpheres.get(g)){var j=null!=this.noFaceSpheres&&this.noFaceSpheres.get(g),l=g>=this.firstNearbyAtom,k=this.atomXyz[g],p=this.atomRadius[g];
if(!(c&&k.distance(this.point)>b+p+0.5)){var m=p+a;this.setGridLimitsForAtom(k,m,this.pt0,this.pt1);this.isProgressive&&(this.pt0.x=this.thisX,this.pt1.x=this.thisX+1);this.volumeData.voxelPtToXYZ(this.pt0.x,this.pt0.y,this.pt0.z,this.ptV);for(var q=this.pt0.x;q<this.pt1.x;q++,this.ptV.add2(d,this.ptY0)){this.ptY0.setT(this.ptV);for(var s=this.pt0.y;s<this.pt1.y;s++,this.ptV.add2(f,this.ptZ0)){this.ptZ0.setT(this.ptV);for(var w=this.pt0.z;w<this.pt1.z;w++,this.ptV.add(e)){var E=this.ptV.distance(k)-
p,u=this.volumeData.getPointIndex(q,s,w);if((0==a||E<=m)&&E<this.getVoxel(q,s,w,u)){if(l||c&&this.ptV.distance(this.point)>b)E=NaN;this.setVoxel(q,s,w,u,E);Float.isNaN(E)||(null!=this.voxelSource&&(this.voxelSource[u]=g+1),0>E&&j&&this.bsSurfaceVoxels.set(u))}}}}}}},"~N,~N");e(c$,"setVoxel",function(a,b,c,d,f){this.isProgressive?this.thisPlane[d%this.yzCount]=f:this.voxelData[a][b][c]=f},"~N,~N,~N,~N,~N")});H("J.jvxl.readers");K(["JU.P3","J.jvxl.readers.AtomDataReader","JU.P4","$.V3"],"J.jvxl.readers.IsoSolventReader",
"java.lang.Float java.util.Hashtable JU.BS $.Lst $.Measure J.jvxl.data.MeshData JU.BSUtil $.Logger $.MeshSurface $.TempArray".split(" "),function(){c$=O(function(){this.envelopeRadius=this.cavityRadius=0;this.dots=null;this.isPocket=this.isCavity=this.doCalculateTroughs=!1;this.bsAtomMinMax=this.p=this.vTemp2=this.ptTemp2=this.plane=this.vTemp=this.ptS2=this.ptS1=this.vFaces=this.vEdges=this.htEdges=this.bsLocale=this.bsSurfaceDone=this.bsSurfacePoints=this.iter=null;this.isSurfacePoint=!1;this.nTest=
this.iAtomSurface=0;oa("J.jvxl.readers.IsoSolventReader.Edge")||J.jvxl.readers.IsoSolventReader.$IsoSolventReader$Edge$();oa("J.jvxl.readers.IsoSolventReader.Face")||J.jvxl.readers.IsoSolventReader.$IsoSolventReader$Face$();this.ecosASB2=this.dAB2=this.dAB=this.rBS2=this.rAS2=this.rBS=this.rAS=0;M(this,arguments)},J.jvxl.readers,"IsoSolventReader",J.jvxl.readers.AtomDataReader);V(c$,function(){this.ptS1=new JU.P3;this.ptS2=new JU.P3;this.vTemp=new JU.V3;this.plane=new JU.P4;this.ptTemp2=new JU.P3;
this.vTemp2=new JU.V3;this.p=new JU.P3});I(c$,function(){X(this,J.jvxl.readers.IsoSolventReader,[])});m(c$,"init",function(a){this.initADR(a)},"J.jvxl.readers.SurfaceGenerator");m(c$,"readVolumeParameters",function(a){this.setup(a);this.initializeVolumetricData();this.volumeData.setUnitVectors();this.vl0=this.volumeData.volumetricVectorLengths[0];this.vl1=this.volumeData.volumetricVectorLengths[1];this.vl2=this.volumeData.volumetricVectorLengths[2];this.isProgressive&&(this.volumeData.getYzCount(),
this.bsAtomMinMax=Array(this.nPointsX),this.getAtomMinMax(null,this.bsAtomMinMax),this.voxelSource=G(this.volumeData.nPoints,0));return!0},"~B");m(c$,"setup",function(a){this.setup2();if(null==this.contactPair){this.cavityRadius=this.params.cavityRadius;this.envelopeRadius=this.params.envelopeRadius;this.sr=this.params.solventRadius;this.point=this.params.point;this.isCavity=this.params.isCavity&&null!=this.meshDataServer;this.isPocket=null!=this.params.pocket&&null!=this.meshDataServer;this.doUseIterator=
this.doCalculateTroughs=!a&&null!=this.sg.atomDataServer&&!this.isCavity&&0<this.sr&&(1195==this.dataType||1203==this.dataType);this.getAtoms(this.params.bsSelected,this.doAddHydrogens,!0,!1,!1,!0,!1,NaN);if(this.isCavity||this.isPocket)this.dots=this.meshDataServer.calculateGeodesicSurface(this.bsMySelected,this.envelopeRadius);this.setHeader("solvent/molecular surface",this.params.calculationType);if(this.havePlane||!a)this.setRanges(this.params.solvent_ptsPerAngstrom,this.params.solvent_gridMax,
0),this.volumeData.getYzCount(),this.margin=2*this.volumeData.maxGrid;null!=this.bsNearby&&this.bsMySelected.or(this.bsNearby)}else a||this.setVolumeData();this.doCalculateTroughs||(a?(this.precalculateVoxelData=!1,this.volumeData.sr=this):this.isCavity||(this.isProgressive=this.isXLowToHigh=!0));null==this.thisAtomSet&&(this.thisAtomSet=JU.BSUtil.setAll(this.myAtomCount))},"~B");m(c$,"generateCube",function(){if(!(this.isCavity&&null!=this.params.theProperty)){this.isCavity&&1205!=this.dataType&&
1206!=this.dataType?(this.params.vertexSource=null,this.newVoxelDataCube(),this.resetVoxelData(3.4028235E38),this.markSphereVoxels(this.cavityRadius,this.params.distance),this.generateSolventCavity(),this.resetVoxelData(3.4028235E38),this.markSphereVoxels(0,NaN)):(this.voxelSource=G(this.volumeData.nPoints,0),this.generateSolventCube());this.unsetVoxelData();var a=this.params.slabInfo;if(null!=a)for(var b=0;b<a.size();b++)a.get(b)[2].booleanValue()&&U(a.get(b)[0],JU.P4)&&(this.volumeData.capData(a.get(b)[0],
this.params.cutoff),a.remove(b--))}});m(c$,"getSurfacePointAndFraction",function(a,b,c,d,f,e,g,j,l,k,p,m,q){k=this.marchingCubes.getLinearOffset(g,j,l,k);p=this.marchingCubes.getLinearOffset(g,j,l,p);this.isSurfacePoint=null!=this.bsSurfaceVoxels&&(this.bsSurfaceVoxels.get(k)||this.bsSurfaceVoxels.get(p));if(null!=this.voxelSource){var s=Math.abs(Float.isNaN(d)||c<d?this.voxelSource[k]:this.voxelSource[p]);0<s&&(this.iAtomSurface=this.atomIndex[s-1])}if(J.jvxl.readers.IsoSolventReader.testLinear||
null==this.voxelSource||0==this.voxelSource[k]||this.voxelSource[k]!=this.voxelSource[p])return this.getSPF(a,b,c,d,f,e,g,j,l,k,p,m,q);a=m[0]=JU.MeshSurface.getSphericalInterpolationFraction(0>this.voxelSource[k]?this.sr:this.atomRadius[this.voxelSource[k]-1],c,d,e.length());q.scaleAdd2(a,e,f);return c+a*(d-c)},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");m(c$,"addVertexCopy",function(a,b,c,d){a=this.addVC(a,b,c,d);if(0>a)return a;this.isSurfacePoint&&this.bsSurfacePoints.set(a);null!=this.params.vertexSource&&
(this.params.vertexSource[a]=this.iAtomSurface);return a},"JU.T3,~N,~N,~B");m(c$,"selectPocket",function(a){null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,1,null);for(var b=this.meshData.vs,c=this.meshData.vc,d=this.meshData.vvs,f=this.dots.length,e=0;e<c;e++)for(var g=0;g<f;g++)this.dots[g].distance(b[e])<this.envelopeRadius&&(d[e]=NaN);this.meshData.getSurfaceSet();b=this.meshData.nSets;c=JU.BS.newN(b);for(e=0;e<b;e++)if(null!=(d=this.meshData.surfaceSet[e]))for(g=d.nextSetBit(0);0<=
g;g=d.nextSetBit(g+1))if(Float.isNaN(this.meshData.vvs[g])){c.set(e);break}for(e=0;e<b;e++)null!=this.meshData.surfaceSet[e]&&c.get(e)==a&&this.meshData.invalidateSurfaceSet(e);this.updateSurfaceData();a||(this.meshData.surfaceSet=null);null!=this.meshDataServer&&(this.meshDataServer.fillMeshData(this.meshData,3,null),this.meshData=new J.jvxl.data.MeshData)},"~B");m(c$,"postProcessVertices",function(){this.setVertexSource();if(this.doCalculateTroughs&&null!=this.bsSurfacePoints){var a=new JU.BS,b=
this.meshData.getSurfaceSet(),c=null,d=this.isPocket?null:J.jvxl.data.MeshData.calculateVolumeOrArea(this.meshData,-2147483648,!1,!1),e=4.71238898038469*Math.pow(this.sr,3),h=0,g=!1;if(null!=d&&!this.isCavity)for(var j=0;j<this.meshData.nSets;j++){var l=d[j];Math.abs(l)>h&&(h=Math.abs(l),g=0>l)}h=g?-1:1;for(j=0;j<this.meshData.nSets;j++)if(g=b[j],g.intersects(this.bsSurfacePoints)&&(null==d||d[j]*h>e)&&null!=this.params.vertexSource){l=new JU.BS;null==c&&(c=Array(b.length));for(var k=g.nextSetBit(0);0<=
k;k=g.nextSetBit(k+1)){var p=this.params.vertexSource[k];if(!(0>p)){if(a.get(p)){this.meshData.invalidateSurfaceSet(j);break}l.set(p)}}a.or(l)}else this.meshData.invalidateSurfaceSet(j);this.updateSurfaceData();null!=this.meshDataServer&&(this.meshDataServer.fillMeshData(this.meshData,3,null),this.meshData=new J.jvxl.data.MeshData)}null!=this.params.thePlane&&null==this.params.slabInfo&&this.params.addSlabInfo(JU.TempArray.getSlabWithinRange(-100,0))});e(c$,"generateSolventCavity",function(){for(var a=
JU.BS.newN(this.nPointsX*this.nPointsY*this.nPointsZ),b=0,c=this.dots.length,d=0,e,h=this.envelopeRadius,g=0;g<this.nPointsX;++g)for(var j=0;j<this.nPointsY;++j){var l=0;a:for(;l<this.nPointsZ;++l,++b)if(3.4028235E38>(e=this.voxelData[g][j][l])&&e>=this.cavityRadius){this.volumeData.voxelPtToXYZ(g,j,l,this.ptV);for(var k=0;k<c;k++)if(this.dots[k].distance(this.ptV)<h)continue a;a.set(b);d++}}JU.Logger.info("cavities include "+d+" voxel points");this.atomRadius=A(d,0);this.atomXyz=Array(d);for(c=b=
g=0;g<this.nPointsX;++g)for(j=0;j<this.nPointsY;++j)for(l=0;l<this.nPointsZ;++l)a.get(b++)&&(this.volumeData.voxelPtToXYZ(g,j,l,this.atomXyz[c]=new JU.P3),this.atomRadius[c++]=this.voxelData[g][j][l]);this.myAtomCount=this.firstNearbyAtom=d;this.thisAtomSet=JU.BSUtil.setAll(this.myAtomCount);this.rs=null;this.setRadii()});e(c$,"generateSolventCube",function(){1205!=this.dataType&&(this.params.vertexSource=G(this.volumeData.nPoints,0),this.bsSurfaceDone=new JU.BS,this.bsSurfaceVoxels=new JU.BS,this.bsSurfacePoints=
new JU.BS,this.doCalculateTroughs?(this.iter=this.sg.atomDataServer.getSelectedAtomIterator(this.bsMySelected,!0,!1,!1),this.vEdges=new JU.Lst,this.bsLocale=Array(this.myAtomCount),this.htEdges=new java.util.Hashtable,this.getEdges(),JU.Logger.info(this.vEdges.size()+" edges"),this.vFaces=new JU.Lst,this.getFaces(),JU.Logger.info(this.vFaces.size()+" faces"),this.htEdges=this.bsLocale=null,this.iter.release(),this.iter=null,this.newVoxelDataCube(),this.resetVoxelData(3.4028235E38),this.markFaceVoxels(!0),
this.markToroidVoxels(),this.validSpheres.or(this.noFaceSpheres),this.vEdges=null,this.markFaceVoxels(!1),this.vFaces=null):(this.newVoxelDataCube(),this.resetVoxelData(3.4028235E38)),this.markSphereVoxels(0,this.doCalculateTroughs?3.4028235E38:this.params.distance),this.validSpheres=this.noFaceSpheres=null)});e(c$,"getEdges",function(){for(var a=0;a<this.myAtomCount;a++)this.bsLocale[a]=new JU.BS;for(a=0;a<this.myAtomCount;a++){var b=this.atomXyz[a],c=this.rs[a];for(this.sg.atomDataServer.setIteratorForAtom(this.iter,
this.atomIndex[a],c+this.maxRS);this.iter.hasNext();){var d=this.iter.next(),d=this.myIndex[d];if(!(a>=this.firstNearbyAtom&&d>=this.firstNearbyAtom)){var e=this.rs[d],h=b.distance(this.atomXyz[d]);h>=c+e||(e=na(J.jvxl.readers.IsoSolventReader.Edge,this,null,this,a,d,h),this.vEdges.addLast(e),this.bsLocale[a].set(d),this.bsLocale[d].set(a),this.htEdges.put(e.toString(),e))}}}});e(c$,"findEdge",function(a,b){return this.htEdges.get(a<b?a+"_"+b:b+"_"+a)},"~N,~N");e(c$,"getFaces",function(){var a=new JU.BS;
this.validSpheres=new JU.BS;this.noFaceSpheres=JU.BSUtil.setAll(this.myAtomCount);for(var b=this.vEdges.size();0<=--b;){var c=this.vEdges.get(b),d=c.ia,e=c.ib;a.clearAll();a.or(this.bsLocale[d]);a.and(this.bsLocale[e]);for(var h=a.nextSetBit(e+1);0<=h;h=a.nextSetBit(h+1))if(this.getSolventPoints(c,d,e,h)){var g,j=!1;if(null!=(g=this.validateFace(d,e,h,c,this.ptS1)))this.vFaces.addLast(g),j=!0;if(null!=(g=this.validateFace(d,e,h,c,this.ptS2)))this.vFaces.addLast(g),j=!0;j&&(this.noFaceSpheres.clear(d),
this.noFaceSpheres.clear(e),this.noFaceSpheres.clear(h))}}});e(c$,"validateFace",function(a,b,c,d,e){this.sg.atomDataServer.setIteratorForPoint(this.iter,this.modelIndex,e,this.maxRS);for(var h=!0;this.iter.hasNext();){var g=this.iter.next(),j=this.myIndex[g];if(!(j==a||j==b||j==c)&&this.atomData.atomXyz[g].distance(e)<this.atomData.atomRadius[g]+this.sr){h=!1;break}}g=this.findEdge(b,c);j=this.findEdge(a,c);e=h?na(J.jvxl.readers.IsoSolventReader.Face,this,null,a,b,c,e):null;d.addFace(e);g.addFace(e);
j.addFace(e);if(!h)return null;this.validSpheres.set(a);this.validSpheres.set(b);this.validSpheres.set(c);return e},"~N,~N,~N,J.jvxl.readers.IsoSolventReader.Edge,JU.P3");e(c$,"markFaceVoxels",function(a){for(var b=new JU.BS,c=this.volumetricVectors[0],d=this.volumetricVectors[1],e=this.volumetricVectors[2],h=this.vFaces.size();0<=--h;){var g=this.vFaces.get(h),j=this.atomXyz[g.ia],l=this.atomXyz[g.ib],k=this.atomXyz[g.ic],p=g.pS;this.setGridLimitsForAtom(p,this.sr,this.pt0,this.pt1);this.volumeData.voxelPtToXYZ(this.pt0.x,
this.pt0.y,this.pt0.z,this.ptV);for(var m=this.pt0.x;m<this.pt1.x;m++,this.ptV.add2(c,this.ptY0)){this.ptY0.setT(this.ptV);for(var q=this.pt0.y;q<this.pt1.y;q++,this.ptV.add2(d,this.ptZ0)){this.ptZ0.setT(this.ptV);for(var s=this.pt0.z;s<this.pt1.z;s++,this.ptV.add(e)){var w=this.sr-this.ptV.distance(p),E=this.voxelData[m][q][s],u=this.volumeData.getPointIndex(m,q,s);a&&0<w&&this.bsSurfaceDone.set(u);if(JU.Measure.isInTetrahedron(this.ptV,j,l,k,p,this.plane,this.vTemp,this.vTemp2,!1)&&(!a?!this.bsSurfaceDone.get(u)&&
0>w&&w>1.8*-this.volumeData.maxGrid&&w>E==b.get(u):0<w&&(0>E||3.4028235E38==E||w>E==b.get(u))))b.set(u),this.setVoxel(m,q,s,u,w),null!=this.voxelSource&&(this.voxelSource[u]=-1-g.ia),0<w&&this.bsSurfaceVoxels.set(u)}}}}},"~B");e(c$,"markToroidVoxels",function(){for(var a=this.volumetricVectors[0],b=this.volumetricVectors[1],c=this.volumetricVectors[2],d=this.vEdges.size();0<=--d;){var e=this.vEdges.get(d);if(e.isValid()){var h=e.ia,g=e.ib,j=this.atomXyz[h],l=this.atomXyz[g];this.rAS=this.rs[h];this.rBS=
this.rs[g];this.rAS2=this.rs2[h];this.rBS2=this.rs2[g];this.dAB=e.d;this.dAB2=e.d2;this.ecosASB2=e.cosASB2;this.setGridLimitsForAtom(e,e.maxr,this.pt0,this.pt1);this.volumeData.voxelPtToXYZ(this.pt0.x,this.pt0.y,this.pt0.z,this.ptV);for(e=this.pt0.x;e<this.pt1.x;e++,this.ptV.add2(a,this.ptY0)){this.ptY0.setT(this.ptV);for(g=this.pt0.y;g<this.pt1.y;g++,this.ptV.add2(b,this.ptZ0)){this.ptZ0.setT(this.ptV);for(var k=this.pt0.z;k<this.pt1.z;k++,this.ptV.add(c)){var p=this.checkSpecialVoxel(j,l,this.ptV);
if(!Float.isNaN(p)&&(p=this.sr-p,p<this.voxelData[e][g][k])){var m=this.volumeData.getPointIndex(e,g,k);this.setVoxel(e,g,k,m,p);null!=this.voxelSource&&(this.voxelSource[m]=-1-h)}}}}}}});m(c$,"unsetVoxelData",function(){if(this.havePlane)if(this.isProgressive)for(var a=0;a<this.yzCount;a++)0.001>this.thisPlane[a]||(this.thisPlane[a]=0.001);else for(a=0;a<this.nPointsX;++a)for(var b=0;b<this.nPointsY;++b)for(var c=0;c<this.nPointsZ;++c)0.001>this.voxelData[a][b][c]||(this.voxelData[a][b][c]=0.001);
else this.unsetVoxelData2()});e(c$,"getSolventPoints",function(a,b,c,d){var e=this.rs[b],h=a.v;a=(a.d2+this.rs2[b]-this.rs2[c])/(2*a.d*e);c=Math.acos(a);this.p.scaleAdd2(a*e,h,this.atomXyz[b]);JU.Measure.getPlaneThroughPoint(this.p,h,this.plane);b=Math.sin(c)*e;a=this.atomXyz[d];c=this.rs[d];e=JU.Measure.distanceToPlane(this.plane,a);if(Math.abs(e)>=0.9*c)return!1;this.ptTemp.scaleAdd2(-e,h,a);a=this.p.distance(this.ptTemp);d=(b*b+a*a-(this.rs2[d]-e*e))/(2*b*a);if(0.99<=Math.abs(d))return!1;e=this.vTemp2;
e.sub2(this.ptTemp,this.p);e.normalize();this.ptTemp.scaleAdd2(b*d,e,this.p);e.cross(h,e);e.normalize();e.scale(Math.sqrt(1-d*d)*b);this.ptS1.add2(this.ptTemp,e);this.ptS2.sub2(this.ptTemp,e);return!0},"J.jvxl.readers.IsoSolventReader.Edge,~N,~N,~N");e(c$,"checkSpecialVoxel",function(a,b,c){var d=a.distance(c),e=a.distanceSquared(c),h=this.rAS/d;if(1<h)return this.p.set(a.x+(c.x-a.x)*h,a.y+(c.y-a.y)*h,a.z+(c.z-a.z)*h),b.distanceSquared(this.p)>=this.rBS2?NaN:this.solventDistance(this.rAS,this.rAS2,
this.rBS2,d,e,b.distanceSquared(c));d=b.distance(c);return 1<(h=this.rBS/d)?(this.p.set(b.x+(c.x-b.x)*h,b.y+(c.y-b.y)*h,b.z+(c.z-b.z)*h),a.distanceSquared(this.p)>=this.rAS2?NaN:this.solventDistance(this.rBS,this.rBS2,this.rAS2,d,d*d,e)):NaN},"JU.P3,JU.P3,JU.P3");e(c$,"solventDistance",function(a,b,c,d,e,h){h=Math.acos((e+this.dAB2-h)/(2*d*this.dAB));c=Math.acos((b+this.dAB2-c)/(2*a*this.dAB));e=b+e-2*a*d*Math.cos(c-h);c=Math.sqrt(e);return this.ecosASB2<(b+e-d*d)/(c*a)?c:NaN},"~N,~N,~N,~N,~N,~N");
e(c$,"dumpLine",function(a,b,c,d){this.sg.log('draw ID "x'+c+this.nTest++ +'" '+JU.P3.newP(a)+" "+JU.P3.newP(b)+" color "+d)},"JU.P3,JU.T3,~S,~S");e(c$,"dumpLine2",function(a,b,c,d,e,h){var g=new JU.V3;g.setT(b);g.sub(a);g.normalize();g.scale(d);g.add(a);this.sg.log('draw ID "'+c+this.nTest++ +'" '+JU.P3.newP(a)+" "+JU.P3.newP(g)+" color "+e);this.sg.log('draw ID "'+c+this.nTest++ +'"'+JU.P3.newP(g)+" "+JU.P3.newP(b)+" color "+h+'"'+c+'"')},"JU.P3,JU.P3,~S,~N,~S,~S");e(c$,"dumpPoint",function(a,b,
c){this.sg.log('draw ID "'+b+this.nTest++ +'"'+JU.P3.newP(a)+" color "+c)},"JU.P3,~S,~S");m(c$,"getValueAtPoint",function(a){if(null!=this.contactPair)return a.distance(this.contactPair.myAtoms[1])-this.contactPair.radii[1];for(var b=3.4028235E38,c=0;c<this.firstNearbyAtom;c++){var d=a.distance(this.atomXyz[c])-this.rs[c];d<b&&(b=d)}return 3.4028235E38==b?NaN:b},"JU.T3,~B");m(c$,"discardTempData",function(a){this.rs2=this.rs=null;this.discardTempDataSR(a)},"~B");m(c$,"getPlane",function(a){0==this.yzCount&&
this.initPlanes();this.thisX=a;this.thisPlane=this.yzPlanes[a%2];null==this.contactPair?(this.resetPlane(3.4028235E38),this.thisAtomSet=this.bsAtomMinMax[a],this.markSphereVoxels(0,this.params.distance),this.unsetVoxelData()):this.markPlaneVoxels(this.contactPair.myAtoms[0],this.contactPair.radii[0]);return this.thisPlane},"~N");c$.$IsoSolventReader$Edge$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);this.cosASB2=this.maxr=this.d2=this.d=this.nInvalid=this.nFaces=this.ib=this.ia=0;this.v=
null;M(this,arguments)},J.jvxl.readers.IsoSolventReader,"Edge",JU.P3);Ya(c$,function(a,b,c,d){this.ia=Math.min(b,c);this.ib=Math.max(b,c);this.d=d;this.d2=d*d;this.maxr=Math.sqrt(this.d2/4+Math.max(a.rs2[b],a.rs2[c]));this.ave(a.atomXyz[b],a.atomXyz[c]);this.cosASB2=(a.rs2[b]+a.rs2[c]-this.d2)/(a.rs[c]*a.rs[b]);this.v=JU.V3.newVsub(a.atomXyz[c],a.atomXyz[b]);this.v.normalize()},"J.jvxl.readers.IsoSolventReader,~N,~N,~N");e(c$,"addFace",function(a){this.nFaces++;null==a&&this.nInvalid++},"J.jvxl.readers.IsoSolventReader.Face");
e(c$,"isValid",function(){return 0==this.nFaces||this.nInvalid!=this.nFaces});m(c$,"toString",function(){return this.ia+"_"+this.ib});c$=ja()};c$.$IsoSolventReader$Face$=function(){ma(self.c$);c$=O(function(){ka(this,arguments);this.ic=this.ib=this.ia=0;this.pS=null;M(this,arguments)},J.jvxl.readers.IsoSolventReader,"Face");I(c$,function(a,b,c,d){this.ia=a;this.ib=b;this.ic=c;this.pS=JU.P3.newP(d)},"~N,~N,~N,JU.P3");m(c$,"toString",function(){return this.ia+"_"+this.ib+"_"+this.ic+"_"+this.pS});c$=
ja()};Z(c$,"testLinear",!1)});H("J.jvxl.readers");K(["J.jvxl.readers.SurfaceReader"],"J.jvxl.readers.SurfaceFileReader",["JU.PT","J.api.Interface"],function(){c$=O(function(){this.next=this.line=this.out=this.binarydoc=this.br=null;M(this,arguments)},J.jvxl.readers,"SurfaceFileReader",J.jvxl.readers.SurfaceReader);V(c$,function(){this.next=G(1,0)});I(c$,function(){X(this,J.jvxl.readers.SurfaceFileReader,[])});e(c$,"setStream",function(a,b){this.binarydoc.setStream(this.sg.atomDataServer.getJzt(),
null==a?null:this.sg.atomDataServer.getBufferedInputStream(a),b)},"~S,~B");m(c$,"init",function(a){this.initSR(a)},"J.jvxl.readers.SurfaceGenerator");e(c$,"init2",function(a,b){this.init2SFR(a,b)},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");e(c$,"init2SFR",function(a,b){this.init(a);this.br=b},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");e(c$,"newBinaryDocument",function(){return J.api.Interface.getInterface("JU.BinaryDocument",this.sg.atomDataServer,"file")});m(c$,"setOutputChannel",
function(a){null==this.binarydoc?this.out=a:this.sg.setOutputChannel(this.binarydoc,a)},"JU.OC");m(c$,"closeReader",function(){this.closeReaderSFR()});e(c$,"closeReaderSFR",function(){if(null!=this.br)try{this.br.close()}catch(a){if(!T(a,java.io.IOException))throw a;}null!=this.out&&this.out.closeChannel();null!=this.binarydoc&&this.binarydoc.close()});m(c$,"discardTempData",function(a){this.closeReader();this.discardTempDataSR(a)},"~B");e(c$,"getTokens",function(){return JU.PT.getTokensAt(this.line,
0)});e(c$,"parseFloat",function(){return JU.PT.parseFloatNext(this.line,this.next)});e(c$,"parseFloatStr",function(a){this.next[0]=0;return JU.PT.parseFloatNext(a,this.next)},"~S");e(c$,"parseFloatRange",function(a,b,c){this.next[0]=b;return JU.PT.parseFloatRange(a,c,this.next)},"~S,~N,~N");e(c$,"parseInt",function(){return JU.PT.parseIntNext(this.line,this.next)});e(c$,"parseIntStr",function(a){this.next[0]=0;return JU.PT.parseIntNext(a,this.next)},"~S");e(c$,"parseIntNext",function(a){return JU.PT.parseIntNext(a,
this.next)},"~S");e(c$,"parseFloatArrayStr",function(a){this.next[0]=0;return JU.PT.parseFloatArrayNext(a,this.next,null,null,null)},"~S");e(c$,"parseFloatArray",function(a,b,c){return JU.PT.parseFloatArrayNext(this.line,this.next,a,b,c)},"~A,~S,~S");e(c$,"getQuotedStringNext",function(){return JU.PT.getQuotedStringNext(this.line,this.next)});e(c$,"skipTo",function(a,b){if(null!=a)for(;0>this.rd().indexOf(a););null!=b&&(this.next[0]=this.line.indexOf(b)+b.length+2)},"~S,~S");e(c$,"rd",function(){this.line=
this.br.readLine();if(null!=this.line&&(this.nBytes+=this.line.length,null!=this.out)){var a=this.line.getBytes();this.out.write(a,0,a.length);this.out.writeByteAsInt(10)}return this.line})});H("J.jvxl.readers");K(["J.jvxl.readers.SurfaceFileReader"],"J.jvxl.readers.VolumeFileReader","java.lang.Float JU.AU $.PT $.SB J.api.Interface J.atomdata.AtomData JU.Logger".split(" "),function(){c$=O(function(){this.negativeAtomCount=this.endOfData=!1;this.nSurfaces=this.ac=0;this.canDownsample=this.isAngstroms=
!1;this.downsampleRemainders=null;this.preProcessPlanes=!1;this.nData=0;this.readerClosed=!1;this.nSkipZ=this.nSkipY=this.nSkipX=this.downsampleFactor=0;this.yzPlanesRaw=null;this.iPlaneRaw=0;this.boundingBox=null;this.isScaledAlready=!1;M(this,arguments)},J.jvxl.readers,"VolumeFileReader",J.jvxl.readers.SurfaceFileReader);I(c$,function(){X(this,J.jvxl.readers.VolumeFileReader,[])});m(c$,"init2",function(a,b){this.init2VFR(a,b)},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");e(c$,"init2VFR",
function(a,b){this.init2SFR(a,b);this.canDownsample=this.isProgressive=this.isXLowToHigh=!0;this.jvxlData.wasCubic=!0;this.boundingBox=this.params.boundingBox;4==this.params.qmOrbitalType&&(this.hasColorData=null==this.params.parameters||0<=this.params.parameters[1],this.preProcessPlanes=!0,this.params.insideOut=!this.params.insideOut)},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");e(c$,"recordData",function(a){if(Float.isNaN(a))return a;a<this.dataMin&&(this.dataMin=a);a>this.dataMax&&
(this.dataMax=a);this.dataMean+=a;this.nData++;return a},"~N");m(c$,"closeReader",function(){this.readerClosed||(this.readerClosed=!0,this.closeReaderSFR(),0==this.nData||-3.4028235E38==this.dataMax||(this.dataMean/=this.nData,JU.Logger.info("VolumeFileReader closing file: "+this.nData+" points read \ndata min/max/mean = "+this.dataMin+"/"+this.dataMax+"/"+this.dataMean)))});m(c$,"readVolumeParameters",function(){this.endOfData=!1;this.nSurfaces=this.readVolumetricHeader();if(0==this.nSurfaces)return!1;
this.nSurfaces<this.params.fileIndex&&(JU.Logger.warn("not enough surfaces in file -- resetting params.fileIndex to "+this.nSurfaces),this.params.fileIndex=this.nSurfaces);return!0},"~B");m(c$,"readVolumeData",function(a){return this.readVolumeDataVFR(a)},"~B");e(c$,"readVolumeDataVFR",function(a){if(!this.gotoAndReadVoxelData(a))return!1;this.vertexDataOnly||JU.Logger.info("JVXL read: "+this.nPointsX+" x "+this.nPointsY+" x "+this.nPointsZ+" data points");return!0},"~B");e(c$,"readVolumetricHeader",
function(){try{this.readParameters();if(-2147483648==this.ac)return 0;this.vertexDataOnly||JU.Logger.info("voxel grid origin:"+this.volumetricOrigin);var a=this.params.downsampleFactor,b=this.canDownsample&&1<a;1<a&&!this.canDownsample&&(this.jvxlData.msg+="\ncannot downsample this file type");if(b){this.downsampleRemainders=G(3,0);JU.Logger.info("downsample factor = "+a);for(var c=0;3>c;++c){var d=this.voxelCounts[c];this.downsampleRemainders[c]=d%a;this.voxelCounts[c]/=a;this.isPeriodic&&(this.voxelCounts[c]++,
this.downsampleRemainders[c]--);this.volumetricVectors[c].scale(a);JU.Logger.info("downsampling axis "+(c+1)+" from "+d+" to "+this.voxelCounts[c])}}if(!this.vertexDataOnly)for(c=0;3>c;++c)this.isAngstroms||this.volumetricVectors[c].scale(0.5291772),this.line=this.voxelCounts[c]+" "+this.volumetricVectors[c].x+" "+this.volumetricVectors[c].y+" "+this.volumetricVectors[c].z,this.jvxlFileHeaderBuffer.append(this.line).appendC("\n"),JU.Logger.info("voxel grid count/vector:"+this.line);this.scaleIsosurface(this.params.scale);
this.volumeData.setVolumetricXml();return this.nSurfaces}catch(e){if(T(e,Exception))return JU.Logger.error(e.toString()),0;throw e;}});e(c$,"skipComments",function(a){for(var b=new JU.SB;null!=this.rd()&&(a&&0==this.line.length||0==this.line.indexOf("#"));)b.append(this.line).appendC("\n");return b.toString()},"~B");e(c$,"readVoxelVector",function(a){this.rd();var b=this.volumetricVectors[a];if(-2147483648==(this.voxelCounts[a]=this.parseIntStr(this.line)))this.next[0]=this.line.indexOf(" ");b.set(this.parseFloat(),
this.parseFloat(),this.parseFloat());this.isAnisotropic&&this.setVectorAnisotropy(b)},"~N");e(c$,"initializeSurfaceData",function(){this.downsampleFactor=this.params.downsampleFactor;this.nSkipZ=this.nSkipY=this.nSkipX=0;this.canDownsample&&0<this.downsampleFactor&&(this.nSkipX=this.downsampleFactor-1,this.nSkipY=this.downsampleRemainders[2]+(this.downsampleFactor-1)*(this.nSkipZ=(this.nPointsZ-(this.isPeriodic?1:0))*this.downsampleFactor+this.downsampleRemainders[2]),this.nSkipZ=this.downsampleRemainders[1]*
this.nSkipZ+(this.downsampleFactor-1)*this.nSkipZ*((this.nPointsY-(this.isPeriodic?1:0))*this.downsampleFactor+this.downsampleRemainders[1]));null!=this.params.thePlane?this.params.cutoff=0:this.isJvxl&&(this.params.cutoff=this.params.isBicolorMap||this.params.colorBySign?0.01:0.5);this.nDataPoints=0;this.next[0]=0;this.line="";this.jvxlNSurfaceInts=0});m(c$,"readSurfaceData",function(a){this.readSurfaceDataVFR(a)},"~B");e(c$,"readSurfaceDataVFR",function(a){this.initializeSurfaceData();if(this.isProgressive&&
!a||this.isJvxl)this.nDataPoints=this.volumeData.setVoxelCounts(this.nPointsX,this.nPointsY,this.nPointsZ),this.voxelData=null,this.isJvxl&&(this.jvxlVoxelBitSet=this.getVoxelBitSet(this.nDataPoints));else if(a&&this.volumeData.hasPlane()){this.volumeData.setVoxelMap();var b=this.volumeData.getToPlaneParameter();for(a=0;a<this.nPointsX;++a){for(var c=0;c<this.nPointsY;++c){for(var d=0;d<this.nPointsZ;++d){var e=this.recordData(this.getNextVoxelValue());this.volumeData.isNearPlane(a,c,d,b)&&this.volumeData.setVoxelMapValue(a,
c,d,e);0!=this.nSkipX&&this.skipVoxels(this.nSkipX)}0!=this.nSkipY&&this.skipVoxels(this.nSkipY)}0!=this.nSkipZ&&this.skipVoxels(this.nSkipZ)}}else{this.voxelData=JU.AU.newFloat3(this.nPointsX,-1);for(a=0;a<this.nPointsX;++a){b=JU.AU.newFloat2(this.nPointsY);this.voxelData[a]=b;for(c=0;c<this.nPointsY;++c){e=A(this.nPointsZ,0);b[c]=e;for(d=0;d<this.nPointsZ;++d)e[d]=this.recordData(this.getNextVoxelValue()),0!=this.nSkipX&&this.skipVoxels(this.nSkipX);0!=this.nSkipY&&this.skipVoxels(this.nSkipY)}0!=
this.nSkipZ&&this.skipVoxels(this.nSkipZ)}}this.volumeData.setVoxelDataAsArray(this.voxelData)},"~B");e(c$,"getPlane",function(a){0==a&&this.initPlanes();if(this.preProcessPlanes)return this.getPlaneProcessed(a);a=this.getPlane2(a);null==this.qpc&&this.getPlane(a,!0);return a},"~N");e(c$,"getPlaneProcessed",function(a){var b;if(0==this.iPlaneRaw){this.qpc=J.api.Interface.getOption("quantum.NciCalculation",this.sg.atomDataServer,null);b=new J.atomdata.AtomData;b.modelIndex=-1;b.bsSelected=this.params.bsSelected;
this.sg.fillAtomData(b,1);this.qpc.setupCalculation(this.volumeData,this.sg.params.bsSelected,null,null,null,b.atomXyz,-1,null,null,null,null,null,null,this.params.isSquaredLinear,null,this.params.theProperty,!0,null,this.params.parameters,this.params.testFlags);this.iPlaneRaw=1;this.qpc.setPlanes(this.yzPlanesRaw=A(4,this.yzCount,0));if(this.hasColorData){this.getPlane(this.yzPlanesRaw[0],!1);this.getPlane(this.yzPlanesRaw[1],!1);b=this.yzPlanes[0];for(a=0;a<this.yzCount;a++)b[a]=NaN;return b}this.iPlaneRaw=
-1}var c=this.qpc.getNoValue(),d=this.nPointsX-1;switch(this.iPlaneRaw){case -1:b=this.yzPlanes[a%2];d++;break;case 3:b=this.yzPlanesRaw[0];this.yzPlanesRaw[0]=this.yzPlanesRaw[1];this.yzPlanesRaw[1]=this.yzPlanesRaw[2];this.yzPlanesRaw[2]=this.yzPlanesRaw[3];this.yzPlanesRaw[3]=b;b=this.yzPlanesRaw[this.iPlaneRaw];break;default:this.iPlaneRaw++,b=this.yzPlanesRaw[this.iPlaneRaw]}if(a<d){this.getPlane(b,!1);this.qpc.calcPlane(a,b=this.yzPlanes[a%2]);for(a=0;a<this.yzCount;a++)b[a]!=c&&this.recordData(b[a])}else for(a=
0;a<this.yzCount;a++)b[a]=NaN;return b},"~N");e(c$,"getPlane",function(a,b){try{for(var c=0,d=0;c<this.nPointsY;++c){for(var e=0;e<this.nPointsZ;++e){var h=this.getNextVoxelValue();b&&this.recordData(h);a[d++]=h;0!=this.nSkipX&&this.skipVoxels(this.nSkipX)}0!=this.nSkipY&&this.skipVoxels(this.nSkipY)}0!=this.nSkipZ&&this.skipVoxels(this.nSkipZ)}catch(g){if(!T(g,Exception))throw g;}},"~A,~B");m(c$,"getValue",function(a,b,c,d){return null!=this.boundingBox&&(this.volumeData.voxelPtToXYZ(a,b,c,this.ptTemp),
this.ptTemp.x<this.boundingBox[0].x||this.ptTemp.x>this.boundingBox[1].x||this.ptTemp.y<this.boundingBox[0].y||this.ptTemp.y>this.boundingBox[1].y||this.ptTemp.z<this.boundingBox[0].z||this.ptTemp.z>this.boundingBox[1].z)?NaN:this.getValue2(a,b,c,d)},"~N,~N,~N,~N");e(c$,"skipVoxels",function(a){for(;0<=--a;)this.getNextVoxelValue()},"~N");e(c$,"getVoxelBitSet",function(){return null},"~N");e(c$,"getNextVoxelValue",function(){var a=0;if(1<this.nSurfaces&&!this.params.blockCubeData){for(var b=1;b<this.params.fileIndex;b++)this.nextVoxel();
a=this.nextVoxel();for(b=this.params.fileIndex;b<this.nSurfaces;b++)this.nextVoxel()}else a=this.nextVoxel();return a});e(c$,"nextVoxel",function(){var a=this.parseFloat();if(Float.isNaN(a)){for(;null!=this.rd()&&Float.isNaN(a=this.parseFloatStr(this.line)););null==this.line&&(this.endOfData||JU.Logger.warn("end of file reading cube voxel data? nBytes="+this.nBytes+" nDataPoints="+this.nDataPoints+" (line):"+this.line),this.endOfData=!0,this.line="0 0 0 0 0 0 0 0 0 0")}return a});m(c$,"gotoData",
function(a,b){if(this.params.blockCubeData){0<a&&JU.Logger.info("skipping "+a+" data sets, "+b+" points each");for(var c=0;c<a;c++)this.skipData(b)}},"~N,~N");e(c$,"skipData",function(a){this.skipDataVFR(a)},"~N");e(c$,"skipDataVFR",function(a){for(var b=0;b<a;)b+=this.countData(this.rd())},"~N");e(c$,"countData",function(a){for(var b=0,c=0,d=a.length,e;c<d;){for(;c<d&&(" "==(e=a.charAt(c))||"\t"==e);)++c;for(c<d&&++b;c<d&&" "!=(e=a.charAt(c))&&"\t"!=e;)++c}return b},"~S");c$.checkAtomLine=e(c$,"checkAtomLine",
function(a,b,c,d,e){0<=d.indexOf("ANGSTROMS")&&(b=!0);c=null==c?2147483647:JU.PT.parseInt(c);switch(c){case -2147483648:c=0;d=" "+d.substring(d.indexOf(" ")+1);break;case 2147483647:c=-2147483648;break;default:var h=""+c;d=d.substring(d.indexOf(h)+h.length)}b?0>d.indexOf("ANGSTROM")&&(d+=" ANGSTROMS"):0>d.indexOf("BOHR")&&(d+=" BOHR");d=(-2147483648==c?"":(a?"+":"-")+Math.abs(c))+d+"\n";e.append(d);return b},"~B,~B,~S,~S,JU.SB");m(c$,"getSurfacePointAndFraction",function(a,b,c,d,e,h,g,j,l,k,p,m,q){return this.getSPFv(a,
b,c,d,e,h,g,j,l,k,p,m,q)},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");e(c$,"getSPFv",function(a,b,c,d,e,h,g,j,l,k,p,m,q){a=this.getSPF(a,b,c,d,e,h,g,j,l,k,p,m,q);if(null==this.qpc||Float.isNaN(a)||!this.hasColorData)return a;k=this.marchingCubes.getLinearOffset(g,j,l,k);p=this.marchingCubes.getLinearOffset(g,j,l,p);return this.qpc.process(k,p,m[0])},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");e(c$,"scaleIsosurface",function(a){this.isScaledAlready||(this.isScaledAlready=!0,this.isAnisotropic&&
this.setVolumetricAnisotropy(),Float.isNaN(a)||(JU.Logger.info("applying scaling factor of "+a),this.volumetricOrigin.scaleAdd2((1-a)/2,this.volumetricVectors[0],this.volumetricOrigin),this.volumetricOrigin.scaleAdd2((1-a)/2,this.volumetricVectors[1],this.volumetricOrigin),this.volumetricOrigin.scaleAdd2((1-a)/2,this.volumetricVectors[2],this.volumetricOrigin),this.volumetricVectors[0].scale(a),this.volumetricVectors[1].scale(a),this.volumetricVectors[2].scale(a)))},"~N");e(c$,"swapXZ",function(){var a=
this.volumetricVectors[0];this.volumetricVectors[0]=this.volumetricVectors[2];this.volumetricVectors[2]=a;a=this.voxelCounts[0];this.voxelCounts[0]=this.voxelCounts[2];this.voxelCounts[2]=a;this.params.insideOut=!this.params.insideOut})});H("J.jvxl.readers");K(["J.jvxl.readers.VolumeFileReader"],"J.jvxl.readers.JvxlXmlReader","java.lang.Float $.NullPointerException java.util.Hashtable JU.AU $.BS $.CU $.Lst $.P3 $.P4 $.PT $.SB J.jvxl.data.JvxlCoder $.MeshData J.jvxl.readers.XmlReader J.shapesurface.IsosurfaceMesh JU.C $.ColorEncoder $.Escape $.Logger".split(" "),
function(){c$=O(function(){this.JVXL_VERSION="2.3";this.invalidatedVertexCount=this.excludedVertexCount=this.excludedTriangleCount=this.colorDataCount=this.edgeDataCount=this.surfaceDataCount=0;this.haveContourData=!1;this.xr=null;this.isXmlFile=!0;this.thisInside=!1;this.bsVoxelBitSet=this.tempDataXml=null;this.includeValueNaN=!0;this.valueCount=0;this.valueRange=this.valueMin=NaN;this.colorPtr=this.fractionPtr=0;this.strFractionTemp="";this.haveReadColorData=!1;this.jvxlColorEncodingRead=null;M(this,
arguments)},J.jvxl.readers,"JvxlXmlReader",J.jvxl.readers.VolumeFileReader);I(c$,function(){X(this,J.jvxl.readers.JvxlXmlReader,[])});m(c$,"init2",function(a,b){this.init2JXR(a,b)},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");e(c$,"init2JXR",function(a,b){this.init2VFR(a,b);this.jvxlData.wasJvxl=this.isJvxl=!0;this.isXLowToHigh=this.canDownsample=!1;this.xr=new J.jvxl.readers.XmlReader(b)},"J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader");m(c$,"readVolumeData",function(a){if(!this.readVolumeDataVFR(a))return!1;
this.strFractionTemp=this.jvxlEdgeDataRead;this.fractionPtr=0;return!0},"~B");m(c$,"gotoAndReadVoxelData",function(a){this.initializeVolumetricData();if(0>this.nPointsX||0>this.nPointsY||0>this.nPointsZ)return!0;try{this.gotoData(this.params.fileIndex-1,this.nPointsX*this.nPointsY*this.nPointsZ);if(this.vertexDataOnly)return!0;this.volumeData.setMappingPlane(this.params.thePlane);this.readSurfaceData(a);this.volumeData.setMappingPlane(null);0<this.edgeDataCount&&(this.jvxlEdgeDataRead=this.jvxlReadFractionData("edge",
this.edgeDataCount));this.params.bsExcluded=this.jvxlData.jvxlExcluded=Array(4);if(this.hasColorData=0<this.colorDataCount)this.jvxlColorDataRead=this.jvxlReadFractionData("color",this.colorDataCount);0<this.excludedVertexCount&&(this.jvxlData.jvxlExcluded[0]=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedVertexData",null,!1,!1)),this.xr.isNext("jvxlExcludedPlaneData")&&(this.jvxlData.jvxlExcluded[2]=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedPlaneData",
null,!1,!1))));0<this.excludedTriangleCount&&(this.jvxlData.jvxlExcluded[3]=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedTriangleData",null,!1,!1)));0<this.invalidatedVertexCount&&(this.jvxlData.jvxlExcluded[1]=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlInvalidatedVertexData",null,!1,!1)));this.haveContourData&&this.jvxlDecodeContourData(this.jvxlData,this.xr.getXmlData("jvxlContourData",null,!1,!1));if(this.jvxlDataIsColorMapped&&0<this.jvxlData.nVertexColors){this.jvxlData.vertexColorMap=
new java.util.Hashtable;var b=this.xr.getXmlData("jvxlVertexColorData",null,!0,!1),c=J.jvxl.readers.XmlReader.getXmlAttrib(b,"baseColor");this.jvxlData.baseColor=0<c.length?c:null;for(a=0;a<this.jvxlData.nVertexColors;a++){var d=this.xr.getXmlData("jvxlColorMap",b,!0,!1),e=J.jvxl.readers.XmlReader.getXmlAttrib(d,"color"),h=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlColorMap",d,!1,!1));this.jvxlData.vertexColorMap.put(e,h)}}}catch(g){if(T(g,Exception))return JU.Logger.error(g.toString()),
!1;throw g;}return!0},"~B");m(c$,"readParameters",function(){var a=this.xr.getXmlData("jvxlFileTitle",null,!1,!1);this.jvxlFileHeaderBuffer=JU.SB.newS(a);this.xr.toTag("jvxlVolumeData");a=this.tempDataXml=this.xr.getXmlData("jvxlVolumeData",null,!0,!1);this.volumetricOrigin.setT(this.xr.getXmlPoint(a,"origin"));this.isAngstroms=!0;this.readVector(0);this.readVector(1);this.readVector(2);this.line=this.xr.toTag("jvxlSurfaceSet");this.nSurfaces=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(this.line,
"count"));JU.Logger.info("jvxl file surfaces: "+this.nSurfaces);JU.Logger.info("using default edge fraction base and range");JU.Logger.info("using default color fraction base and range");this.cJvxlEdgeNaN=String.fromCharCode(this.edgeFractionBase+this.edgeFractionRange)});e(c$,"readVector",function(a){var b=this.xr.getXmlData("jvxlVolumeVector",this.tempDataXml,!0,!0);this.tempDataXml=this.tempDataXml.substring(this.tempDataXml.indexOf(b)+b.length);var c=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,
"count"));-2147483648==c&&(this.vertexDataOnly=!0);this.voxelCounts[a]=0>c?0:c;this.volumetricVectors[a].setT(this.xr.getXmlPoint(b,"vector"));this.isAnisotropic&&this.setVectorAnisotropy(this.volumetricVectors[a])},"~N");m(c$,"gotoData",function(a,b){0<a&&JU.Logger.info("skipping "+a+" data sets, "+b+" points each");this.vertexDataOnly=this.jvxlData.vertexDataOnly=0==b;for(var c=0;c<a;c++)this.jvxlSkipData(b,!0);this.xr.toTag("jvxlSurface");this.jvxlReadSurfaceInfo()},"~N,~N");e(c$,"jvxlSkipData",
function(){this.rd();this.xr.skipTag("jvxlSurface")},"~N,~B");e(c$,"jvxlReadSurfaceInfo",function(){var a,b=this.xr.getXmlData("jvxlSurfaceInfo",null,!0,!0);this.isXLowToHigh=J.jvxl.readers.XmlReader.getXmlAttrib(b,"isXLowToHigh").equals("true");this.jvxlCutoff=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"cutoff"));Float.isNaN(this.jvxlCutoff)||JU.Logger.info("JVXL read: cutoff "+this.jvxlCutoff);var c=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nContourData"));this.haveContourData=
0<c;this.params.isContoured=J.jvxl.readers.XmlReader.getXmlAttrib(b,"contoured").equals("true");if(this.params.isContoured){var d=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nContours"));0>=d?d=0:(0>this.params.thisContour&&(this.params.thisContour=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"thisContour"))),a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"contourValues"),0<a.length&&(a=a.$replace("["," ").$replace("]"," "),this.jvxlData.contourValues=this.params.contoursDiscrete=
this.parseFloatArrayStr(a),JU.Logger.info("JVXL read: contourValues "+JU.Escape.eAF(this.jvxlData.contourValues))),a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"contourColors"),0<a.length&&(this.jvxlData.contourColixes=this.params.contourColixes=JU.C.getColixArray(a),this.jvxlData.contourColors=JU.C.getHexCodes(this.jvxlData.contourColixes),JU.Logger.info("JVXL read: contourColixes "+JU.C.getHexCodes(this.jvxlData.contourColixes))),this.params.contourFromZero=J.jvxl.readers.XmlReader.getXmlAttrib(b,
"contourFromZero").equals("true"));this.params.nContours=this.haveContourData?c:d}this.jvxlData.nVertexColors=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nVertexColors"));this.params.isBicolorMap=J.jvxl.readers.XmlReader.getXmlAttrib(b,"bicolorMap").equals("true");this.params.isBicolorMap&&(a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"colorPositive"),0<a.length&&(-2147483648==this.params.colorRgb&&-16776961==this.params.colorPos)&&(this.params.colorPos=JU.CU.getArgbFromString(a)),a=J.jvxl.readers.XmlReader.getXmlAttrib(b,
"colorNegative"),0<a.length&&(-2147483648==this.params.colorRgb&&-65536==this.params.colorNeg)&&(this.params.colorNeg=JU.CU.getArgbFromString(a)));if(this.params.isBicolorMap||this.params.colorBySign)this.jvxlCutoff=0;this.jvxlDataIsColorMapped=(-2147483648==this.params.colorRgb||2147483647==this.params.colorRgb)&&(this.params.isBicolorMap||J.jvxl.readers.XmlReader.getXmlAttrib(b,"colorMapped").equals("true"));this.jvxlData.isJvxlPrecisionColor=J.jvxl.readers.XmlReader.getXmlAttrib(b,"precisionColor").equals("true");
this.jvxlData.jvxlDataIsColorDensity=this.params.colorDensity=-2147483648==this.params.colorRgb&&J.jvxl.readers.XmlReader.getXmlAttrib(b,"colorDensity").equals("true");this.jvxlData.jvxlDataIsColorDensity&&Float.isNaN(this.params.pointSize)&&(a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"pointSize"),0<a.length&&(this.jvxlData.pointSize=this.params.pointSize=this.parseFloatStr(a)));a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"allowVolumeRender");this.jvxlData.allowVolumeRender=this.params.allowVolumeRender=
0==a.length||a.equalsIgnoreCase("true");a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"plane");if(0<=a.indexOf("{")){this.params.thePlane=null;this.params.mapLattice=null;try{this.params.thePlane=JU.Escape.uP(a),a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"maplattice"),JU.Logger.info("JVXL read: plane "+this.params.thePlane),0<=a.indexOf("{")&&(this.params.mapLattice=JU.Escape.uP(a),JU.Logger.info("JVXL read: mapLattice "+this.params.mapLattice)),0==this.params.scale3d&&(this.params.scale3d=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,
"scale3d"))),Float.isNaN(this.params.scale3d)&&(this.params.scale3d=0)}catch(e){if(T(e,Exception))null==this.params.thePlane?(JU.Logger.error("JVXL Error reading plane definition -- setting to 0 0 1 0  (z=0)"),this.params.thePlane=JU.P4.new4(0,0,1,0)):JU.Logger.error("JVXL Error reading mapLattice definition -- ignored");else throw e;}this.edgeDataCount=this.surfaceDataCount=0}else this.params.thePlane=null,this.surfaceDataCount=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nSurfaceInts")),
this.edgeDataCount=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nBytesUncompressedEdgeData")),a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"fixedLattice"),0<=a.indexOf("{")&&(this.jvxlData.fixedLattice=JU.Escape.uP(a));this.excludedVertexCount=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nExcludedVertexes"));this.excludedTriangleCount=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nExcludedTriangles"));this.invalidatedVertexCount=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,
"nInvalidatedVertexes"));a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"slabInfo");0<a.length&&(this.jvxlData.slabInfo=a);this.colorDataCount=Math.max(0,this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"nBytesUncompressedColorData")));this.jvxlDataIs2dContour=null!=this.params.thePlane&&this.jvxlDataIsColorMapped;this.jvxlData.color=J.jvxl.readers.XmlReader.getXmlAttrib(b,"color");if(0==this.jvxlData.color.length||0<=this.jvxlData.color.indexOf("null"))this.jvxlData.color="orange";this.jvxlData.translucency=
this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"translucency"));Float.isNaN(this.jvxlData.translucency)&&(this.jvxlData.translucency=0);a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"meshColor");0<a.length&&(this.jvxlData.meshColor=a);a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"rendering");0<a.length&&(this.jvxlData.rendering=a);this.jvxlData.colorScheme=J.jvxl.readers.XmlReader.getXmlAttrib(b,"colorScheme");0==this.jvxlData.colorScheme.length&&(this.jvxlData.colorScheme=null);0>this.jvxlData.thisSet&&
(a=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"set")),0<a&&(this.jvxlData.thisSet=a-1));this.jvxlData.slabValue=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"slabValue"));this.jvxlData.isSlabbable=J.jvxl.readers.XmlReader.getXmlAttrib(b,"slabbable").equalsIgnoreCase("true");this.jvxlData.diameter=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"diameter"));-2147483648==this.jvxlData.diameter&&(this.jvxlData.diameter=0);this.jvxlDataIs2dContour&&(this.params.isContoured=
!0);this.params.colorBySign&&(this.params.isBicolorMap=!0);a=J.jvxl.readers.XmlReader.getXmlAttrib(b,"insideOut").equals("true");var h=d=c=NaN,g=NaN;this.jvxlDataIsColorMapped&&(c=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"dataMinimum")),d=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"dataMaximum")),h=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"valueMappedToRed")),g=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(b,"valueMappedToBlue")),Float.isNaN(c)&&
(c=h=-1,d=g=1));this.jvxlSetColorRanges(c,d,h,g,a)});e(c$,"jvxlSetColorRanges",function(a,b,c,d,e){this.jvxlDataIsColorMapped&&(!Float.isNaN(a)&&!Float.isNaN(b)&&(0==b&&0==a&&(a=-1,b=1),this.params.mappedDataMin=a,this.params.mappedDataMax=b,JU.Logger.info("JVXL read: data_min/max "+this.params.mappedDataMin+"/"+this.params.mappedDataMax)),this.params.rangeDefined||(!Float.isNaN(c)&&!Float.isNaN(d)?(0==c&&0==d&&(c=-1,d=1),this.params.valueMappedToRed=Math.min(c,d),this.params.valueMappedToBlue=Math.max(c,
d),this.params.isColorReversed=c>d):(this.params.valueMappedToRed=0,this.params.valueMappedToBlue=1),this.params.rangeDefined=!0),JU.Logger.info("JVXL read: color red/blue: "+this.params.valueMappedToRed+"/"+this.params.valueMappedToBlue));this.jvxlData.valueMappedToRed=this.params.valueMappedToRed;this.jvxlData.valueMappedToBlue=this.params.valueMappedToBlue;this.jvxlData.mappedDataMin=this.params.mappedDataMin;this.jvxlData.mappedDataMax=this.params.mappedDataMax;this.jvxlData.isColorReversed=this.params.isColorReversed;
this.jvxlData.insideOut=e;this.params.insideOut&&(this.jvxlData.insideOut=!this.jvxlData.insideOut);this.params.insideOut=this.jvxlData.insideOut},"~N,~N,~N,~N,~B");m(c$,"readSurfaceData",function(){this.thisInside=!this.params.isContoured;this.readSurfaceDataXML()||(this.tempDataXml=this.xr.getXmlData("jvxlEdgeData",null,!0,!1),this.bsVoxelBitSet=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlEdgeData",this.tempDataXml,!1,!1)),this.readSurfaceDataJXR())},"~B");e(c$,"readSurfaceDataXML",
function(){return this.vertexDataOnly?(this.getEncodedVertexData(),!0):null!=this.params.thePlane?(this.volumeData.setDataDistanceToPlane(this.params.thePlane),this.setVolumeDataV(this.volumeData),this.params.cutoff=0,this.jvxlData.setSurfaceInfo(this.params.thePlane,this.params.mapLattice,0,""),this.jvxlData.scale3d=this.params.scale3d,!0):!1});e(c$,"readSurfaceDataJXR",function(){this.readSurfaceDataVFR(!1);this.volumeData.setMappingPlane(null)});e(c$,"jvxlReadFractionData",function(a){var b;try{if(a.equals("edge"))b=
J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(this.tempDataXml,"data"));else{var c=this.xr.getXmlData("jvxlColorData",null,!0,!1);this.jvxlData.isJvxlPrecisionColor=J.jvxl.readers.JvxlXmlReader.getEncoding(c).endsWith("2");b=J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(c,"data"))}}catch(d){if(T(d,Exception))throw JU.Logger.error("Error reading "+a+" data "+d),new NullPointerException;throw d;}return b},"~S,~N");m(c$,"getVoxelBitSet",
function(a){if(null!=this.bsVoxelBitSet)return this.bsVoxelBitSet;var b=new JU.BS,c=0;if(0>=this.surfaceDataCount)return b;for(var d=0;c<a;){d=this.parseInt();if(-2147483648==d&&(this.rd(),null==this.line||-2147483648==(d=this.parseIntStr(this.line))))this.endOfData||JU.Logger.error("end of file in JvxlReader? line="+this.line),this.endOfData=!0,d=1E4;this.thisInside=!this.thisInside;++this.jvxlNSurfaceInts;this.thisInside&&b.setBits(c,c+d);c+=d}return b},"~N");m(c$,"getSurfacePointAndFraction",function(a,
b,c,d,e,h,g,j,l,k,p,m,q){if(0>=this.edgeDataCount)return this.getSPFv(a,b,c,d,e,h,g,j,l,k,p,m,q);q.scaleAdd2(m[0]=this.jvxlGetNextFraction(this.edgeFractionBase,this.edgeFractionRange,0.5),h,e);Float.isNaN(this.valueMin)&&this.setValueMinMax();return 0==this.valueCount||this.includeValueNaN&&Float.isNaN(m[0])?m[0]:this.getNextValue()},"~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3");e(c$,"getNextValue",function(){for(var a=NaN;this.colorPtr<this.valueCount&&Float.isNaN(a);){a=this.jvxlData.isJvxlPrecisionColor?
J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(this.jvxlColorDataRead.charCodeAt(this.colorPtr),this.jvxlColorDataRead.charCodeAt(this.colorPtr++ +this.valueCount),this.colorFractionBase,this.colorFractionRange):J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(this.jvxlColorDataRead.charCodeAt(this.colorPtr++),this.colorFractionBase,this.colorFractionRange,0.5);break}return this.valueMin+a*this.valueRange});e(c$,"setValueMinMax",function(){this.valueCount=this.jvxlColorDataRead.length;this.jvxlData.isJvxlPrecisionColor&&
(this.valueCount/=2);this.includeValueNaN=this.valueCount!=this.jvxlEdgeDataRead.length;this.valueMin=!this.jvxlData.isJvxlPrecisionColor?this.params.valueMappedToRed:3.4028235E38==this.params.mappedDataMin?0:this.params.mappedDataMin;this.valueRange=(!this.jvxlData.isJvxlPrecisionColor?this.params.valueMappedToBlue:3.4028235E38==this.params.mappedDataMin?1:this.params.mappedDataMax)-this.valueMin;this.haveReadColorData=!0});e(c$,"jvxlGetNextFraction",function(a,b,c){this.fractionPtr>=this.strFractionTemp.length&&
(this.endOfData||JU.Logger.error("end of file reading compressed fraction data"),this.endOfData=!0,this.strFractionTemp=""+String.fromCharCode(a),this.fractionPtr=0);return J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(this.strFractionTemp.charCodeAt(this.fractionPtr++),a,b,c)},"~N,~N,~N");m(c$,"readColorData",function(){if(!this.jvxlDataIsColorMapped)return"";var a=this.jvxlData.vertexCount=this.meshData.vc,b=this.meshData.vcs,c=this.meshData.vvs;if("none".equals(this.jvxlColorEncodingRead)){this.jvxlData.vertexColors=
G(a,0);for(var d=G(1,0),c=JU.PT.parseIntNext(this.jvxlColorDataRead,d),c=Math.min(c,a),a=JU.PT.getTokens(this.jvxlColorDataRead.substring(d[0])),e=!1,h=this.jvxlData.translucency,g=0,d=0;d<c;d++)try{var j=J.jvxl.readers.JvxlXmlReader.getColor(a[d]);0==j?j=g:g=j;b[d]=JU.C.getColixTranslucent(this.jvxlData.vertexColors[d]=j);JU.C.isColixTranslucent(b[d])?e=!0:0!=h&&(b[d]=JU.C.getColixTranslucent3(b[d],!0,h))}catch(l){if(T(l,Exception))JU.Logger.info("JvxlXmlReader: Cannot interpret color code: "+a[d]);
else throw l;}e&&0==h&&(this.jvxlData.translucency=0.5);return"-"}null==this.params.colorEncoder&&(this.params.colorEncoder=new JU.ColorEncoder(null,null));this.params.colorEncoder.setColorScheme(null,!1);this.params.colorEncoder.setRange(this.params.valueMappedToRed,this.params.valueMappedToBlue,this.params.isColorReversed);JU.Logger.info("JVXL reading color data mapped min/max: "+this.params.mappedDataMin+"/"+this.params.mappedDataMax+" for "+a+" vertices. using encoding keys "+this.colorFractionBase+
" "+this.colorFractionRange);JU.Logger.info("mapping red--\x3eblue for "+this.params.valueMappedToRed+" to "+this.params.valueMappedToBlue+" colorPrecision:"+this.jvxlData.isJvxlPrecisionColor);(g=Float.isNaN(this.valueMin))&&this.setValueMinMax();var k=3.4028235E38,p=-3.4028235E38;if(null==b||b.length<a)this.meshData.vcs=b=Y(a,0);e=j=0;this.params.colorBySign&&(e=JU.C.getColix(this.params.isColorReversed?this.params.colorNeg:this.params.colorPos),j=JU.C.getColix(this.params.isColorReversed?this.params.colorPos:
this.params.colorNeg));for(var h=this.meshData.vertexIncrement,m=3.4028235E38==this.params.mappedDataMin,d=0;d<a;d+=h){var q;q=g?c[d]=this.getNextValue():c[d];m&&(q<k&&(k=q),q>p&&(p=q))}m&&(this.params.mappedDataMin=k,this.params.mappedDataMax=p);if(null!=this.jvxlData.colorScheme)for(d=0;d<a;d+=h)q=c[d],null!=this.marchingSquares&&this.params.isContoured?this.marchingSquares.setContourData(d,q):(g=!this.params.colorBySign?this.params.colorEncoder.getColorIndex(q):(this.params.isColorReversed?0<q:
0>=q)?j:e,b[d]=JU.C.getColixTranslucent3(g,!0,this.jvxlData.translucency));return this.jvxlColorDataRead+"\n"});c$.getColor=e(c$,"getColor",function(a){var b=0;try{switch(a.charAt(0)){case "[":b=JU.CU.getArgbFromString(a);break;case "0":b=JU.PT.parseIntRadix(a.substring(2),16);break;default:b=JU.PT.parseIntRadix(a,10)}}catch(c){if(!T(c,Exception))throw c;}return b},"~S");e(c$,"getEncodedVertexData",function(){var a=this.xr.getXmlData("jvxlSurfaceData",null,!0,!1);this.jvxlDecodeVertexData(this.xr.getXmlData("jvxlVertexData",
a,!0,!1),!1);var b=this.xr.getXmlData("jvxlTriangleData",a,!0,!1),c=this.xr.getXmlData("jvxlTriangleEdgeData",a,!0,!1),d=this.xr.getXmlData("jvxlPolygonColorData",a,!1,!1);this.jvxlDecodeTriangleData(b,c,d);a=this.xr.getXmlData("jvxlColorData",a,!0,!1);this.jvxlColorEncodingRead=J.jvxl.readers.JvxlXmlReader.getEncoding(a);this.jvxlData.isJvxlPrecisionColor=this.jvxlColorEncodingRead.endsWith("2");a=this.getData(a,"jvxlColorData");this.jvxlColorDataRead=this.jvxlColorEncodingRead.equals("none")?a:
J.jvxl.data.JvxlCoder.jvxlDecompressString(a);this.jvxlDataIsColorMapped=(-2147483648==this.params.colorRgb||2147483647==this.params.colorRgb)&&0<this.jvxlColorDataRead.length;this.haveContourData&&this.jvxlDecodeContourData(this.jvxlData,this.xr.getXmlData("jvxlContourData",null,!1,!1))});e(c$,"getData",function(a,b){var c=J.jvxl.readers.XmlReader.getXmlAttrib(a,"data");0==c.length&&(c=this.xr.getXmlData(b,a,!1,!1));return c},"~S,~S");c$.getEncoding=e(c$,"getEncoding",function(a){if(0<J.jvxl.readers.XmlReader.getXmlAttrib(a,
"len").length)return"";a=J.jvxl.readers.XmlReader.getXmlAttrib(a,"encoding");return 0==a.length?"none":a},"~S");e(c$,"jvxlDecodeVertexData",function(a,b){var c=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(a,"count"));b||JU.Logger.info("Reading "+c+" vertices");var d=3*c,e=b?Array(c):null,h,g=J.jvxl.readers.XmlReader.getXmlAttrib(a,"data"),j=J.jvxl.readers.JvxlXmlReader.getEncoding(a);if("none".equals(j)){0==g.length&&(g=this.xr.getXmlData("jvxlVertexData",a,!1,!1));d=JU.PT.parseFloatArray(g);
d[0]!=3*c&&JU.Logger.info("JvxlXmlReader: vertexData count="+u(d[0])+"; expected "+3*c);g=0;for(j=1;g<c;g++){var l=JU.P3.new3(d[j++],d[j++],d[j++]);b?e[g]=l:this.addVertexCopy(l,0,g,!1)}}else{var k=this.xr.getXmlPoint(a,"min"),p=this.xr.getXmlPoint(a,"max");p.sub(k);var m=this.jvxlData.colorFractionBase,q=this.jvxlData.colorFractionRange,s=J.jvxl.data.JvxlCoder.jvxlDecompressString(g);0==s.length&&(s=this.xr.getXmlData("jvxlVertexData",a,!1,!1));g=0;for(j=-1;g<c;g++)l=new JU.P3,h=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charCodeAt(++j),
s.charCodeAt(j+d),m,q),l.x=k.x+h*p.x,h=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charCodeAt(++j),s.charCodeAt(j+d),m,q),l.y=k.y+h*p.y,h=J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charCodeAt(++j),s.charCodeAt(j+d),m,q),l.z=k.z+h*p.z,b?e[g]=l:this.addVertexCopy(l,0,g,!1)}return e},"~S,~B");e(c$,"jvxlDecodeTriangleData",function(a,b,c){var d=this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(a,"count"));if(!(0>d)){var e=G(1,0),h=null==c?-1:1,g=0;JU.Logger.info("Reading "+d+" triangles");
var j=J.jvxl.readers.JvxlXmlReader.getEncoding(a);a=this.getData(a,"jvxlTriangleData");b=this.getData(b,"jvxlTriangleEdgeData");var l=G(3,0),k=G(1,0),p=null,m=7,q=!"none".equals(j);if(q)a=J.jvxl.data.JvxlCoder.jvxlDecompressString(a),b=J.jvxl.data.JvxlCoder.jvxlDecompressString(b).trim(),j=b.length==d;else{var s=JU.PT.parseIntNext(a,k);(j=0<b.length)?(p=G(1,0),JU.PT.parseIntNext(b,p)):0<s&&JU.Logger.info("JvxlXmlReader: jvxlTriangleEdgeData count="+s+"; expected "+d)}for(var w=s=0,u=0,A=-1;s<d;){if(q){var C=
a.charAt(++A);switch(C){case "!":C=0;break;case "+":case ".":case " ":case "\n":case "\r":case "\t":case ",":continue;case "-":case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":k[0]=A;C=JU.PT.parseIntNext(a,k);A=k[0]-1;break;default:C=C.charCodeAt(0)-92}w+=C}else w=JU.PT.parseIntNext(a,k)-1;l[u]=w;if(3==++u){u=0;if(j&&(m=null==p?b.charCodeAt(s)-48:JU.PT.parseIntNext(b,p),0>m||7<m))m=7;0==--h&&(h=JU.PT.parseIntNext(c,e),C=JU.PT.parseIntNext(c,e),-2147483648==
C?h=0:g=C|4278190080);this.addTriangleCheck(l[0],l[1],l[2],m,g,!1,g);s++}}}},"~S,~S,~S");e(c$,"jvxlDecodeContourData",function(a,b){var c=new JU.Lst,d=new JU.SB,e=new JU.SB,h=-1;a.vContours=null;if(null!=b){for(;0<=(h=b.indexOf("<jvxlContour",h+1));){var g=new JU.Lst,j=this.xr.getXmlData("jvxlContour",b.substring(h),!0,!1),l=this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(j,"value"));d.append(" ").appendF(l);var k=J.jvxl.readers.JvxlXmlReader.getColor(J.jvxl.readers.XmlReader.getXmlAttrib(j,
"color")),p=JU.C.getColix(k);e.append(" ").append(JU.Escape.escapeColor(k));var m=J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(j,"data")),q=J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlContour",j,!1,!1)),j=q.length();J.shapesurface.IsosurfaceMesh.setContourVector(g,j,q,l,p,k,JU.SB.newS(m));c.addLast(g)}j=c.size();if(0<j){a.vContours=JU.AU.createArrayOfArrayList(j);a.contourColixes=this.params.contourColixes=Y(j,0);a.contourValues=this.params.contoursDiscrete=
A(j,0);for(h=0;h<j;h++)a.vContours[h]=c.get(h),a.contourValues[h]=a.vContours[h].get(2).floatValue(),a.contourColixes[h]=a.vContours[h].get(3)[0];a.contourColors=JU.C.getHexCodes(a.contourColixes);JU.Logger.info("JVXL read: "+j+" discrete contours");JU.Logger.info("JVXL read: contour values: "+d);JU.Logger.info("JVXL read: contour colors: "+e)}}},"J.jvxl.data.JvxlData,~S");m(c$,"postProcessVertices",function(){var a=this.params.bsExcluded[1];null!=a&&(null!=this.meshDataServer&&this.meshDataServer.fillMeshData(this.meshData,
1,null),this.meshData.invalidateVertices(a),null!=this.meshDataServer&&(this.meshDataServer.fillMeshData(this.meshData,4,null),this.meshData=new J.jvxl.data.MeshData),this.updateTriangles())})});H("J.rendersurface");K(["J.render.MeshRenderer","JU.P3","$.P3i"],"J.rendersurface.IsosurfaceRenderer",["java.lang.Boolean","$.Float","JU.V3","JU.C","$.Normix"],function(){c$=O(function(){this.isBicolorMap=this.iHideBackground=!1;this.nError=this.backgroundColix=0;this.isosurface=this.imesh=this.vertexValues=
null;this.showNumbers=this.iShowNormals=this.isNavigationMode=!1;this.showKey=null;this.hasColorRange=!1;this.meshScale=-1;this.globalSlabValue=this.mySlabValue=0;this.ptTempi=this.ptTemp=null;M(this,arguments)},J.rendersurface,"IsosurfaceRenderer",J.render.MeshRenderer);V(c$,function(){this.ptTemp=new JU.P3;this.ptTempi=new JU.P3i});m(c$,"render",function(){return this.renderIso()});e(c$,"renderIso",function(){this.setGlobals();for(var a=this.isosurface.meshCount;0<=--a;)if(this.mesh=this.imesh=
this.isosurface.meshes[a],null==this.imesh.connections||this.vwr.ms.at[this.imesh.connections[0]].checkVisible())this.hasColorRange=!1,this.renderMeshSlab()&&(this.renderInfo(),this.isExport&&this.isGhostPass&&(this.exportPass=1,this.renderMeshSlab(),this.exportPass=2));return this.needTranslucent});e(c$,"setGlobals",function(){this.needTranslucent=!1;this.iShowNormals=this.vwr.getTestFlag(4);this.showNumbers=this.vwr.getTestFlag(3);this.isosurface=this.shape;this.exportPass=this.isExport?2:0;this.isNavigationMode=
this.vwr.getBoolean(603979887);this.showKey=this.vwr.getBoolean(603979869)?Boolean.TRUE:null;this.isosurface.keyXy=null;this.meshScale=-1;this.globalSlabValue=this.vwr.gdata.slab;this.mySlabValue=this.isNavigationMode?u(this.tm.getNavigationOffset().z):2147483647});e(c$,"renderInfo",function(){if(!this.isExport&&this.hasColorRange&&!(null==this.imesh.colorEncoder||Boolean.TRUE!==this.showKey)){this.showKey=Boolean.FALSE;var a=null,b=null,c=null,d=0,e=0;if(this.imesh.showContourLines)if(c=this.imesh.getContours(),
null==c){b=this.imesh.jvxlData.contourColixes;if(null==b)return;d=b.length}else d=c.length,e=1;else a=this.imesh.colorEncoder.getColorSchemeArray(this.imesh.colorEncoder.currentPalette),d=null==a?0:a.length,e=2;if(!(2>d)){var h=this.g3d.isAntialiased()?2:1,g=this.vwr.getScreenHeight()*h,j=C(C(g/2)/(d-1)),g=3*C(g/4)-j,l=10*h,k=20*h;this.isosurface.keyXy=[C(l/h),0,C((l+k)/h),C((g+j)/h),C(j/h)];for(var m=0;m<d;m++,g-=j){switch(e){case 0:if(!this.g3d.setC(b[m]))return;break;case 1:if(!this.g3d.setC(c[m].get(3)[0]))return;
break;case 2:this.vwr.gdata.setColor(a[m])}this.g3d.fillRect(l,g,5,-2147483648,k,j)}this.isosurface.keyXy[1]=C((g+j)/h)}}});e(c$,"renderMeshSlab",function(){this.volumeRender=this.imesh.jvxlData.colorDensity&&this.imesh.jvxlData.allowVolumeRender;var a=this.mySlabValue;this.frontOnly=this.mesh.frontOnly||26==this.shapeID;if(!this.isNavigationMode&&(this.meshSlabValue=this.imesh.jvxlData.slabValue,-2147483648!=this.meshSlabValue&&this.imesh.jvxlData.isSlabbable)){for(var b=this.imesh.jvxlData.boundingBox,
a=3.4028235E38,c=1.4E-45,d=b.length;0<=--d;)this.pt2f.setT(b[d]),this.tm.transformPt3f(this.pt2f,this.pt2f),this.pt2f.z<a&&(a=this.pt2f.z),this.pt2f.z>c&&(c=this.pt2f.z);a=Math.round(a+(c-a)*(100-this.meshSlabValue)/100);this.frontOnly=(new Boolean(this.frontOnly&100<=this.meshSlabValue)).valueOf()}b=this.vwr.gdata.translucentCoverOnly;this.vwr.gdata.translucentCoverOnly=this.frontOnly||!this.vwr.getBoolean(603979967);this.thePlane=this.imesh.jvxlData.jvxlPlane;this.vertexValues=this.mesh.vvs;2147483647!=
a&&this.imesh.jvxlData.isSlabbable?(this.g3d.setSlab(a),a=this.renderMesh(this.mesh),this.g3d.setSlab(this.globalSlabValue)):a=this.renderMesh(this.mesh);this.vwr.gdata.translucentCoverOnly=b;return a});m(c$,"render2",function(a){if(this.volumeRender)this.renderPoints();else{switch(this.imesh.dataType){case 70:this.renderLonePair(!1);return;case 71:this.renderLonePair(!0);return}this.isBicolorMap=this.imesh.jvxlData.isBicolorMap;this.render2b(a);this.g3d.setC(4)&&this.imesh.showContourLines&&this.renderContourLines()}},
"~B");e(c$,"renderLonePair",function(a){this.pt2f.setT(this.vertices[1]);this.tm.transformPt3f(this.pt2f,this.pt2f);var b=u(this.vwr.tm.scaleToScreen(u(this.pt2f.z),100));1>b&&(b=1);if(!a){var c=new JU.V3;a=new JU.V3;this.pt1f.setT(this.vertices[0]);this.tm.transformPt3f(this.pt1f,this.pt1f);c.sub2(this.pt2f,this.pt1f);a.set(c.x,c.y,c.z+1);a.cross(a,c);a.normalize();c=this.vwr.tm.scaleToScreen(u(this.pt1f.z),100);a.scale(c);this.pt1f.add2(this.pt2f,a);this.pt2f.sub(a);this.screens[0].set(Math.round(this.pt1f.x),
Math.round(this.pt1f.y),Math.round(this.pt1f.z));this.g3d.fillSphereI(b,this.screens[0])}this.screens[1].set(Math.round(this.pt2f.x),Math.round(this.pt2f.y),Math.round(this.pt2f.z));this.g3d.fillSphereI(b,this.screens[1])},"~B");e(c$,"renderContourLines",function(){var a=this.imesh.getContours();if(null==a)null!=this.imesh.jvxlData.contourValues&&(this.hasColorRange=!0);else{this.hasColorRange=0==this.mesh.meshColix;for(var b=a.length;0<=--b;){var c=a[b];if(!(6>c.size())){this.colix=0==this.mesh.meshColix?
c.get(3)[0]:this.mesh.meshColix;if(!this.g3d.setC(this.colix))break;for(var d=c.size()-1,e=6;e<d;e++){var h=c.get(e),g=c.get(++e);this.tm.transformPtScr(h,this.pt1i);this.tm.transformPtScr(g,this.pt2i);if(Float.isNaN(h.x)||Float.isNaN(g.x))break;this.pt1i.z-=2;this.pt2i.z-=2;this.g3d.drawLineAB(this.pt1i,this.pt2i)}}}}});m(c$,"renderPoints",function(){try{this.volumeRender&&this.g3d.volumeRender(!0);var a=(this.volumeRender||0==this.mesh.pc)&&this.selectedPolyOnly,b=this.imesh.vertexIncrement,c;0>=
this.mesh.diameter?(c=this.vwr.getInt(553648144),this.frontOnly=!1):c=C(this.vwr.getScreenDim()/(this.volumeRender?50:100));var d=Math.round(Float.isNaN(this.mesh.volumeRenderPointSize)?150:1E3*this.mesh.volumeRenderPointSize);1>c&&(c=1);var e=this.showNumbers?C(this.vwr.getScreenWidth()/2):0,h=this.showNumbers?C(this.vwr.getScreenHeight()/2):0;this.showNumbers&&this.vwr.gdata.setFontFid(this.vwr.gdata.getFontFidFS("Monospaced",24));for(var g=!this.imesh.hasGridPoints||0>this.imesh.firstRealVertex?
0:this.imesh.firstRealVertex;g<this.vertexCount;g+=b)if(!(null!=this.vertexValues&&Float.isNaN(this.vertexValues[g])||this.frontOnly&&0>this.transformedVectors[this.normixes[g]].z||0<=this.imesh.jvxlData.thisSet&&this.mesh.vertexSets[g]!=this.imesh.jvxlData.thisSet||!this.mesh.isColorSolid&&null!=this.mesh.vcs&&!this.setColix(this.mesh.vcs[g])||this.haveBsDisplay&&!this.mesh.bsDisplay.get(g)||a&&!this.bsPolygons.get(g))){this.hasColorRange=!0;if(this.showNumbers&&10<this.screens[g].z&&150>Math.abs(this.screens[g].x-
e)&&150>Math.abs(this.screens[g].y-h)){var j=g+(this.mesh.isColorSolid?"":" "+this.mesh.vvs[g]);this.g3d.setC(4);this.g3d.drawStringNoSlab(j,null,this.screens[g].x,this.screens[g].y,this.screens[g].z-30,0)}this.volumeRender?(c=u(this.vwr.tm.scaleToScreen(this.screens[g].z,d)),1>c&&(c=1),this.g3d.volumeRender4(c,this.screens[g].x,this.screens[g].y,this.screens[g].z)):this.g3d.fillSphereI(c,this.screens[g])}if(3==b){this.g3d.setC(this.isTranslucent?JU.C.getColixTranslucent3(12,!0,0.5):12);for(g=1;g<
this.vertexCount;g+=3)this.g3d.fillCylinder(3,C(c/4),this.screens[g],this.screens[g+1]);this.g3d.setC(this.isTranslucent?JU.C.getColixTranslucent3(21,!0,0.5):21);for(g=1;g<this.vertexCount;g+=3)this.g3d.fillSphereI(c,this.screens[g]);this.g3d.setC(this.isTranslucent?JU.C.getColixTranslucent3(7,!0,0.5):7);for(g=2;g<this.vertexCount;g+=3)this.g3d.fillSphereI(c,this.screens[g])}}catch(l){}this.volumeRender&&this.g3d.volumeRender(!1)});m(c$,"renderTriangles",function(a,b,c){this.g3d.addRenderer(1073742182);
var d=this.mesh.pis;this.colix=this.isGhostPass?this.mesh.slabColix:!a&&0!=this.mesh.meshColix?this.mesh.meshColix:this.mesh.colix;var e=!a&&0!=this.mesh.meshColix?null:this.mesh.vcs;this.isTranslucentInherit&&(this.colix=JU.C.copyColixTranslucency(this.mesh.slabColix,this.mesh.colix));this.g3d.setC(this.colix);c&&(this.frontOnly&&a&&(this.frontOnly=!1),this.bsPolygonsToExport.clearAll());1==this.exportType&&(this.frontOnly=!1);var h=this.isGhostPass&&!this.isBicolorMap||null==e||this.mesh.isColorSolid,
g=this.isGhostPass&&!this.isBicolorMap||null==e||!a&&0!=this.mesh.meshColix,j=this.colix;null!=this.imesh.jvxlData.jvxlPlane&&(!h&&!a&&this.mesh.fillTriangles)&&(h=!0,j=4);var l=h&&null!=this.mesh.pcs;l&&(!a&&this.mesh.fillTriangles)&&(l=!1);var k=this.imesh.jvxlData.contourColixes;this.hasColorRange=!h&&!this.isBicolorMap;var m;0>=this.mesh.diameter?(m=0>this.meshScale?this.meshScale=this.vwr.getInt(553648151):this.meshScale,this.g3d.isAntialiased()&&(m*=2)):m=C(this.vwr.getScreenDim()/100);1>m&&
(m=1);for(var v=this.mesh.pc;0<=--v;){var q=d[v];if(!(null==q||this.selectedPolyOnly&&!this.bsPolygons.get(v))){var s=q[0],w=q[1],u=q[2];if(!(0<=this.imesh.jvxlData.thisSet&&null!=this.mesh.vertexSets&&this.mesh.vertexSets[s]!=this.imesh.jvxlData.thisSet)&&(!this.haveBsDisplay||this.mesh.bsDisplay.get(s)&&this.mesh.bsDisplay.get(w)&&this.mesh.bsDisplay.get(u))){var A=this.normixes[s],G=this.normixes[w],H=this.normixes[u],z=this.checkNormals(A,G,H);if(!(a&&0==z)){var B,D,I;if(h){if(l&&v<this.mesh.pcs.length){B=
this.mesh.pcs[v];if(0==B)continue;j=B}b&&(j=Math.round(10*Math.random())+5);B=D=I=j}else if(B=e[s],D=e[w],I=e[u],this.isBicolorMap){if(B!=D||D!=I)continue;this.isGhostPass&&(B=D=I=JU.C.copyColixTranslucency(this.mesh.slabColix,B))}if(a)c?this.bsPolygonsToExport.set(v):(w==u?(this.setColix(B),s==w?this.g3d.fillSphereI(m,this.screens[s]):this.g3d.fillCylinder(3,m,this.screens[s],this.screens[w])):this.mesh.colorsExplicit?(this.vwr.gdata.setColor(q[4]),B=JU.C.copyColixTranslucency(this.mesh.colix,2047),
this.g3d.setC(B),this.g3d.fillTriangle3CN(this.screens[s],B,A,this.screens[w],B,G,this.screens[u],B,H)):(this.isTranslucentInherit&&null!=e&&(B=JU.C.copyColixTranslucency(this.mesh.slabColix,e[s]),D=JU.C.copyColixTranslucency(this.mesh.slabColix,e[w]),I=JU.C.copyColixTranslucency(this.mesh.slabColix,e[u])),this.g3d.fillTriangle3CN(this.screens[s],B,A,this.screens[w],D,G,this.screens[u],I,H)),this.iShowNormals&&this.renderNormals());else if(z&=q[3],0!=z){b&&(z=7);this.pt1i.setT(this.screens[s]);this.pt2i.setT(this.screens[w]);
this.pt3i.setT(this.screens[u]);this.pt1i.z-=2;this.pt2i.z-=2;this.pt3i.z-=2;if(!g)if(l)this.g3d.setC(this.mesh.fillTriangles?4:k[q[4]%k.length]);else{this.drawTriangle(this.pt1i,B,this.pt2i,D,this.pt3i,I,z,m);continue}this.drawTriangle(this.pt1i,j,this.pt2i,j,this.pt3i,j,z,m)}}}}}c&&this.exportSurface(h?j:0)},"~B,~B,~B");e(c$,"renderNormals",function(){if(this.g3d.setC(JU.C.copyColixTranslucency(this.mesh.colix,8))){this.vwr.gdata.setFontFid(this.vwr.gdata.getFontFidFS("Monospaced",24));for(var a=
JU.Normix.getVertexVectors(),b=this.vertexCount;0<=--b;)if(!(null!=this.vertexValues&&Float.isNaN(this.vertexValues[b]))&&!(100<b)){this.ptTemp.setT(this.vertices[b]);var c=this.mesh.normixes[b];0<=c&&(this.ptTemp.scaleAdd2(3,a[c],this.ptTemp),this.tm.transformPtScr(this.ptTemp,this.ptTempi),this.g3d.drawLineAB(this.screens[b],this.ptTempi))}}})})})(Clazz,Clazz.newLongArray,Clazz.doubleToByte,Clazz.doubleToInt,Clazz.doubleToLong,Clazz.declarePackage,Clazz.instanceOf,Clazz.load,Clazz.instantialize,
Clazz.decorateAsClass,Clazz.floatToInt,Clazz.floatToLong,Clazz.makeConstructor,Clazz.defineEnumConstant,Clazz.exceptionOf,Clazz.newIntArray,Clazz.defineStatics,Clazz.newFloatArray,Clazz.declareType,Clazz.prepareFields,Clazz.superConstructor,Clazz.newByteArray,Clazz.declareInterface,Clazz.p0p,Clazz.pu$h,Clazz.newShortArray,Clazz.innerTypeInstance,Clazz.isClassDefined,Clazz.prepareCallback,Clazz.newArray,Clazz.castNullAs,Clazz.floatToShort,Clazz.superCall,Clazz.decorateAsType,Clazz.newBooleanArray,
Clazz.newCharArray,Clazz.implementOf,Clazz.newDoubleArray,Clazz.overrideConstructor,Clazz.clone,Clazz.doubleToShort,Clazz.getInheritedLevel,Clazz.getParamsType,Clazz.isAF,Clazz.isAI,Clazz.isAS,Clazz.isASS,Clazz.isAP,Clazz.isAFloat,Clazz.isAII,Clazz.isAFF,Clazz.isAFFF,Clazz.tryToSearchAndExecute,Clazz.getStackTrace,Clazz.inheritArgs,Clazz.alert,Clazz.defineMethod,Clazz.overrideMethod,Clazz.declareAnonymous,Clazz.cloneFinals);
