layaair-js
Version:
An open source HTML5 engine. Edition JavaScript.
2 lines • 63.2 kB
JavaScript
!function(t,i,e){var a=(e.un,e.uns,e["static"]),s=e["class"],r=e.getset,n=e.__newvec,h=laya.utils.Browser,l=laya.utils.Byte,o=(laya.events.Event,laya.events.EventDispatcher),u=laya.display.Graphics,c=laya.utils.Handler,_=laya.net.Loader,p=laya.maths.MathUtil,d=laya.maths.Matrix,f=laya.renders.Render,m=laya.utils.RunDriver,x=laya.display.Sprite,y=laya.utils.Stat,g=laya.resource.Texture,M=laya.net.URL,v=(function(){function t(){}return s(t,"laya.ani.AnimationState"),t.stopped=0,t.paused=1,t.playing=2,t}(),function(){function t(){this.name=null,this.root=null,this.parentBone=null,this.length=10,this.transform=null,this.inheritScale=!0,this.inheritRotation=!0,this.rotation=NaN,this.resultRotation=NaN,this._tempMatrix=null,this._sprite=null,this.resultTransform=new O,this.resultMatrix=new d,this._children=[]}s(t,"laya.ani.bone.Bone");var i=t.prototype;return i.setTempMatrix=function(t){this._tempMatrix=t;var i,e=0,a=0;for(e=0,a=this._children.length;a>e;e++)i=this._children[e],i.setTempMatrix(this._tempMatrix)},i.update=function(t){this.rotation=this.transform.skX;var i;if(t)i=this.resultTransform.getMatrix(),d.mul(i,t,this.resultMatrix),this.resultRotation=this.rotation;else if(this.resultRotation=this.rotation+this.parentBone.resultRotation,this.parentBone)if(this.inheritRotation&&this.inheritScale)i=this.resultTransform.getMatrix(),d.mul(i,this.parentBone.resultMatrix,this.resultMatrix);else{var e=this.parentBone,a=NaN,s=NaN,r=NaN,n=this.parentBone.resultMatrix,h=n.a*this.transform.x+n.c*this.transform.y+n.tx,l=n.b*this.transform.x+n.d*this.transform.y+n.ty,o=new d;this.inheritRotation?(a=Math.atan2(e.resultMatrix.b,e.resultMatrix.a),s=Math.cos(a),r=Math.sin(a),o.setTo(s,r,-r,s,0,0),d.mul(this._tempMatrix,o,d.TEMP),d.TEMP.copyTo(o),i=this.resultTransform.getMatrix(),d.mul(i,o,this.resultMatrix),this.resultMatrix.tx=h,this.resultMatrix.ty=l):this.inheritScale?(i=this.resultTransform.getMatrix(),d.TEMP.identity(),d.TEMP.d=-1,d.mul(i,d.TEMP,this.resultMatrix),this.resultMatrix.tx=h,this.resultMatrix.ty=l):(i=this.resultTransform.getMatrix(),d.TEMP.identity(),d.TEMP.d=-1,d.mul(i,d.TEMP,this.resultMatrix),this.resultMatrix.tx=h,this.resultMatrix.ty=l)}else i=this.resultTransform.getMatrix(),i.copyTo(this.resultMatrix);var u,c=0,_=0;for(c=0,_=this._children.length;_>c;c++)u=this._children[c],u.update()},i.updateChild=function(){var t,i=0,e=0;for(i=0,e=this._children.length;e>i;i++)t=this._children[i],t.update()},i.updateDraw=function(t,i){this._sprite?(this._sprite.x=t+this.resultMatrix.tx,this._sprite.y=i+this.resultMatrix.ty):(this._sprite=new x,this._sprite.graphics.drawCircle(0,0,5,"#ff0000"),this._sprite.graphics.fillText(this.name,0,0,"20px Arial","#00ff00","center"),e.stage.addChild(this._sprite),this._sprite.x=t+this.resultMatrix.tx,this._sprite.y=i+this.resultMatrix.ty);var a,s=0,r=0;for(s=0,r=this._children.length;r>s;s++)a=this._children[s],a.updateDraw(t,i)},i.addChild=function(t){this._children.push(t),t.parentBone=this},i.findBone=function(t){if(this.name==t)return this;var i,e,a=0,s=0;for(a=0,s=this._children.length;s>a;a++)if(i=this._children[a],e=i.findBone(t))return e;return null},i.localToWorld=function(t){var i=t[0],e=t[1];t[0]=i*this.resultMatrix.a+e*this.resultMatrix.c+this.resultMatrix.tx,t[1]=i*this.resultMatrix.b+e*this.resultMatrix.d+this.resultMatrix.ty},t}()),D=function(){function t(){this.name=null,this.parent=null,this.attachmentName=null,this.srcDisplayIndex=-1,this.type="src",this.templet=null,this.currSlotData=null,this.currTexture=null,this.currDisplayData=null,this.displayIndex=-1,this._diyTexture=null,this._parentMatrix=null,this._resultMatrix=null,this._skinSprite=null,this.deformData=null}s(t,"laya.ani.bone.BoneSlot");var i=t.prototype;return i.showSlotData=function(t){this.currSlotData=t,this.displayIndex=this.srcDisplayIndex,this.currDisplayData=null,this.currTexture=null},i.showDisplayByName=function(t){this.currSlotData&&this.showDisplayByIndex(this.currSlotData.getDisplayByName(t))},i.showDisplayByIndex=function(t){if(this.currSlotData&&t>-1&&t<this.currSlotData.displayArr.length){if(this.displayIndex=t,this.currDisplayData=this.currSlotData.displayArr[t],this.currDisplayData){var i=this.currDisplayData.name;this.currTexture=this.templet.getTexture(i),this.currTexture&&f.isWebGL&&0==this.currDisplayData.type&&this.currDisplayData.uvs&&(this.currTexture=this.currDisplayData.createTexture(this.currTexture))}}else this.displayIndex=-1,this.currDisplayData=null,this.currTexture=null},i.replaceSkin=function(t){this._diyTexture=t},i.setParentMatrix=function(t){this._parentMatrix=t},i.draw=function(t,i,e,a){if(void 0===e&&(e=!1),void 0===a&&(a=1),(null!=this._diyTexture||null!=this.currTexture)&&null!=this.currDisplayData||this.currDisplayData&&3==this.currDisplayData.type){var s=this.currTexture;this._diyTexture&&(s=this._diyTexture);var r;switch(this.currDisplayData.type){case 0:if(t){var n=this.getDisplayMatrix();if(this._parentMatrix){var h=!1;if(n){d.mul(n,this._parentMatrix,d.TEMP);var l;if(e?(null==this._resultMatrix&&(this._resultMatrix=new d),l=this._resultMatrix):l=new d,!f.isWebGL&&this.currDisplayData.uvs||f.isWebGL&&this._diyTexture){var o=new d(1,0,0,1);this.currDisplayData.uvs[1]>this.currDisplayData.uvs[5]&&(o.d=-1),this.currDisplayData.uvs[0]>this.currDisplayData.uvs[4]&&this.currDisplayData.uvs[1]>this.currDisplayData.uvs[5]&&(h=!0,o.rotate(-Math.PI/2)),d.mul(o,d.TEMP,l)}else d.TEMP.copyTo(l);h?t.drawTexture(s,-this.currDisplayData.height/2,-this.currDisplayData.width/2,this.currDisplayData.height,this.currDisplayData.width,l):t.drawTexture(s,-this.currDisplayData.width/2,-this.currDisplayData.height/2,this.currDisplayData.width,this.currDisplayData.height,l)}}}break;case 1:if(e?(null==this._skinSprite&&(this._skinSprite=m.skinAniSprite()),r=this._skinSprite):r=m.skinAniSprite(),null==r)return;var u=[],c=[],_=1,p=1,x=1,y=1;if(null==this.currDisplayData.bones){var g=this.currDisplayData.weights;this.deformData&&(g=this.deformData);for(var M=0,v=0;M<g.length&&v<this.currDisplayData.uvs.length;){var D=g[M++],I=g[M++];u.push(D,I,this.currDisplayData.uvs[v++],this.currDisplayData.uvs[v++],_,p,x,y)}var A=this.currDisplayData.triangles.length/3;for(M=0;A>M;M++)c.push(this.currDisplayData.triangles[3*M]),c.push(this.currDisplayData.triangles[3*M+1]),c.push(this.currDisplayData.triangles[3*M+2]);r.init(this.currTexture,u,c);var N=this.getDisplayMatrix();if(this._parentMatrix&&N){d.mul(N,this._parentMatrix,d.TEMP);var b;e?(null==this._resultMatrix&&(this._resultMatrix=new d),b=this._resultMatrix):b=new d,d.TEMP.copyTo(b),r.transform=b}}else this.skinMesh(i,r,a);t.drawSkin(r);break;case 2:if(e?(null==this._skinSprite&&(this._skinSprite=m.skinAniSprite()),r=this._skinSprite):r=m.skinAniSprite(),null==r)return;this.skinMesh(i,r,a),t.drawSkin(r);break;case 3:}}},i.skinMesh=function(t,i,e){var a,s=this.currDisplayData.bones,r=this.currDisplayData.uvs,n=this.currDisplayData.weights,h=this.currDisplayData.triangles,l=[],o=[],u=0,c=0,_=0,p=NaN,d=NaN,f=0,m=0,x=[],y=0,g=0,M=0,v=1,D=1,I=1,A=e;if(this.deformData&&this.deformData.length>0){var N=0;for(y=0,M=s.length;M>y;){for(_=s[y++]+y,u=0,c=0;_>y;y++)a=t[s[y]],p=n[f]+this.deformData[N++],d=n[f+1]+this.deformData[N++],m=n[f+2],u+=(p*a.a+d*a.c+a.tx)*m,c+=(p*a.b+d*a.d+a.ty)*m,f+=3;x.push(u,c)}}else for(y=0,M=s.length;M>y;){for(_=s[y++]+y,u=0,c=0;_>y;y++)a=t[s[y]],p=n[f],d=n[f+1],m=n[f+2],u+=(p*a.a+d*a.c+a.tx)*m,c+=(p*a.b+d*a.d+a.ty)*m,f+=3;x.push(u,c)}for(y=0,g=0;y<x.length&&g<r.length;)u=x[y++],c=x[y++],l.push(u,c,r[g++],r[g++],v,D,I,A);for(y=0,M=h.length;M>y;y++)o.push(h[y]);i.init(this.currTexture,l,o)},i.drawBonePoint=function(t){t&&this._parentMatrix&&t.drawCircle(this._parentMatrix.tx,this._parentMatrix.ty,5,"#ff0000")},i.getDisplayMatrix=function(){return this.currDisplayData?this.currDisplayData.transform.getMatrix():null},i.getMatrix=function(){return this._resultMatrix},i.copy=function(){var i=new t;return i.type="copy",i.name=this.name,i.attachmentName=this.attachmentName,i.srcDisplayIndex=this.srcDisplayIndex,i.parent=this.parent,i.displayIndex=this.displayIndex,i.templet=this.templet,i.currSlotData=this.currSlotData,i.currTexture=this.currTexture,i.currDisplayData=this.currDisplayData,i},t}(),I=function(){function t(){this.deformSlotDataList=[]}return s(t,"laya.ani.bone.DeformAniData"),t}(),A=function(){function t(){this.deformSlotDisplayList=[]}return s(t,"laya.ani.bone.DeformSlotData"),t}(),N=function(){function t(){this.boneSlot=null,this.slotIndex=-1,this.attachment=null,this.deformData=null,this.frameIndex=0,this.timeList=[],this.vectices=[]}s(t,"laya.ani.bone.DeformSlotDisplayData");var i=t.prototype;return i.binarySearch1=function(t,i){var e=0,a=t.length-2;if(0==a)return 1;for(var s=a>>>1;;){if(t[Math.floor(s+1)]<=i?e=s+1:a=s,e==a)return e+1;s=e+a>>>1}return 0},i.apply=function(t,i,e){if(void 0===e&&(e=1),!(this.timeList.length<=0)){var a=0,s=this.timeList[0];if(!(s>t)){var r=this.vectices[0].length,n=[],h=this.binarySearch1(this.timeList,t);if(this.frameIndex=h,t>=this.timeList[this.timeList.length-1]){var l=this.vectices[this.vectices.length-1];if(1>e)for(a=0;r>a;a++)n[a]+=(l[a]-n[a])*e;else for(a=0;r>a;a++)n[a]=l[a];return void(this.deformData=n)}var o=this.vectices[this.frameIndex-1],u=this.vectices[this.frameIndex],c=this.timeList[this.frameIndex],_=1-(t-c)/(this.timeList[this.frameIndex-1]-c),p=NaN;if(1>e)for(a=0;r>a;a++)p=o[a],n[a]+=(p+(u[a]-p)*_-n[a])*e;else for(a=0;r>a;a++)p=o[a],n[a]=p+(u[a]-p)*_;this.deformData=n}}},t}(),b=function(){function t(){this.time=NaN,this.drawOrder=[]}return s(t,"laya.ani.bone.DrawOrderData"),t}(),T=function(){function t(){this.name=null,this.intValue=0,this.floatValue=NaN,this.stringValue=null,this.time=NaN}return s(t,"laya.ani.bone.EventData"),t}(),F=function(){function t(t,i){this._targetBone=null,this._bones=null,this._data=null,this.name=null,this.mix=NaN,this.bendDirection=NaN,this._data=t,this._targetBone=i[t.targetBoneIndex],null==this._bones&&(this._bones=[]),this._bones.length=0;for(var e=0,a=t.boneIndexs.length;a>e;e++)this._bones.push(i[t.boneIndexs[e]]);this.name=t.name,this.mix=t.mix,this.bendDirection=t.bendDirection}s(t,"laya.ani.bone.IkConstraint");var i=t.prototype;return i.apply=function(){switch(this._bones.length){case 1:this._applyIk1(this._bones[0],this._targetBone.resultMatrix.tx,this._targetBone.resultMatrix.ty,this.mix);break;case 2:this._applyIk2(this._bones[0],this._bones[1],this._targetBone.resultMatrix.tx,this._targetBone.resultMatrix.ty,this.bendDirection,this.mix)}},i._applyIk1=function(i,e,a,s){var r=i.parentBone,n=1/(r.resultMatrix.a*r.resultMatrix.d-r.resultMatrix.b*r.resultMatrix.c),h=e-r.resultMatrix.tx,l=a-r.resultMatrix.ty,o=(h*r.resultMatrix.d-l*r.resultMatrix.c)*n-i.transform.x,u=(l*r.resultMatrix.a-h*r.resultMatrix.b)*n-i.transform.y,c=Math.atan2(u,o)*t.radDeg-0-i.transform.skX;i.transform.scX<0&&(c+=180),c>180?c-=360:-180>c&&(c+=360),i.transform.skX=i.transform.skY=i.transform.skX+c*s,i.update()},i._applyIk2=function(i,e,a,s,r,n){if(0!=n){var h=i.resultTransform.x,l=i.resultTransform.y,o=i.transform.scX,u=i.transform.scY,c=e.transform.scX,_=0,p=0,d=0;0>o?(o=-o,_=180,d=-1):(_=0,d=1),0>u&&(u=-u,d=-d),0>c?(c=-c,p=180):p=0;var f=e.resultTransform.x,m=NaN,x=NaN,y=NaN,g=i.resultMatrix.a,M=i.resultMatrix.c,v=i.resultMatrix.b,D=i.resultMatrix.d,I=Math.abs(o-u)<=1e-4;I?(m=e.resultTransform.y,x=g*f+M*m+i.resultMatrix.tx,y=v*f+D*m+i.resultMatrix.ty):(m=0,x=g*f+i.resultMatrix.tx,y=v*f+i.resultMatrix.ty);var A=i.parentBone;g=A.resultMatrix.a,M=A.resultMatrix.c,v=A.resultMatrix.b,D=A.resultMatrix.d;var N=1/(g*D-M*v),b=a-A.resultMatrix.tx,T=s-A.resultMatrix.ty,F=(b*D-T*M)*N-h,S=(T*g-b*v)*N-l;b=x-A.resultMatrix.tx,T=y-A.resultMatrix.ty;var C=(b*D-T*M)*N-h,w=(T*g-b*v)*N-l,k=Math.sqrt(C*C+w*w),P=e.length*c,L=NaN,B=NaN;if(I){P*=o;var U=(F*F+S*S-k*k-P*P)/(2*k*P);-1>U?U=-1:U>1&&(U=1),B=Math.acos(U)*r,g=k+P*U,M=P*Math.sin(B),L=Math.atan2(S*g-F*M,F*g+S*M)}else{g=o*P,M=u*P;var O=g*g,R=M*M,Y=F*F+S*S,E=Math.atan2(S,F);v=R*k*k+O*Y-O*R;var X=-2*R*k,V=R-O;if(D=X*X-4*V*v,D>0){var W=Math.sqrt(D);0>X&&(W=-W),W=-(X+W)/2;var K=W/V,q=v/W,G=Math.abs(K)<Math.abs(q)?K:q;Y>=G*G&&(T=Math.sqrt(Y-G*G)*r,L=E-Math.atan2(T,G),B=Math.atan2(T/u,(G-k)/o))}var H=0,z=Number.MAX_VALUE,Q=0,Z=0,$=0,j=0,J=0,tt=0;b=k+g,D=b*b,D>j&&($=0,j=D,J=b),b=k-g,D=b*b,z>D&&(H=Math.PI,z=D,Q=b);var it=Math.acos(-g*k/(O-R));b=g*Math.cos(it)+k,T=M*Math.sin(it),D=b*b+T*T,z>D&&(H=it,z=D,Q=b,Z=T),D>j&&($=it,j=D,J=b,tt=T),(z+j)/2>=Y?(L=E-Math.atan2(Z*r,Q),B=H*r):(L=E-Math.atan2(tt*r,J),B=$*r)}var et=Math.atan2(m,f)*d,at=i.resultTransform.skX;L=(L-et)*t.radDeg+_-at,L>180?L-=360:-180>L&&(L+=360),i.resultTransform.x=h,i.resultTransform.y=l,i.resultTransform.skX=i.resultTransform.skY=at+L*n,at=e.resultTransform.skX,at%=360,B=((B+et)*t.radDeg-0)*d+p-at,B>180?B-=360:-180>B&&(B+=360),e.resultTransform.x=f,e.resultTransform.y=m,e.resultTransform.skX=e.resultTransform.skY=e.resultTransform.skY+B*n,i.update()}},a(t,["radDeg",function(){return this.radDeg=180/Math.PI},"degRad",function(){return this.degRad=Math.PI/180}]),t}(),S=function(){function t(){this.name=null,this.targetBoneName=null,this.bendDirection=1,this.mix=1,this.targetBoneIndex=-1,this.boneNames=[],this.boneIndexs=[]}return s(t,"laya.ani.bone.IkConstraintData"),t}(),C=function(){function t(t,i){this.target=null,this.data=null,this.bones=null,this.position=NaN,this.spacing=NaN,this.rotateMix=NaN,this.translateMix=NaN,this._debugKey=!1,this._spaces=null,this._segments=[],this._curves=[],this.data=t,this.position=t.position,this.spacing=t.spacing,this.rotateMix=t.rotateMix,this.translateMix=t.translateMix,this.bones=[];for(var e=this.data.bones,a=0,s=e.length;s>a;a++)this.bones.push(i[e[a]])}s(t,"laya.ani.bone.PathConstraint");var i=t.prototype;return i.apply=function(t,i){var e=this.translateMix,a=this.translateMix,s=a>0,r=this.data.spacingMode,n="length"==r,h=this.data.rotateMode,l="tangent"==h,o="chainScale"==h,u=[],c=this.bones.length,_=l?c:c+1,p=[];this._spaces=p,p[0]=this.position;var d=this.spacing;if(o||n)for(var f=0,m=_-1;m>f;){var x=this.bones[f],y=x.length,g=y*x.transform.getMatrix().a,M=y*x.transform.getMatrix().c;y=Math.sqrt(g*g+M*M),o&&(u[f]=y),p[++f]=n?Math.max(0,y+d):d}else for(f=1;_>f;f++)p[f]=d;var v=this.computeWorldPositions(this.target,t,i,_,l,"percent"==this.data.positionMode,"percent"==r);if(this._debugKey){for(f=0;f<v.length;f++)i.drawCircle(v[f++],v[f++],5,"#00ff00");var D=[];for(f=0;f<v.length;f++)D.push(v[f++],v[f++]);i.drawLines(0,0,D,"#ff0000")}var I=v[0],A=v[1],N=this.data.offsetRotation,b="chain"==h&&0==N,T=NaN;for(f=0,T=3;c>f;f++,T+=3){x=this.bones[f],x.resultMatrix.tx+=(I-x.resultMatrix.tx)*e,x.resultMatrix.ty+=(A-x.resultMatrix.ty)*e,g=v[T],M=v[T+1];var F=g-I,S=M-A;if(o&&(y=u[f],0!=y)){var C=(Math.sqrt(F*F+S*S)/y-1)*a+1;x.resultMatrix.a*=C,x.resultMatrix.c*=C}if(I=g,A=M,s){var w=x.resultMatrix.a,k=x.resultMatrix.b,P=x.resultMatrix.c,L=x.resultMatrix.d,B=NaN,U=NaN,O=NaN;B=l?v[T-1]:0==p[f+1]?v[T+2]:Math.atan2(S,F),B-=Math.atan2(P,w)-N/180*Math.PI,b&&(U=Math.cos(B),O=Math.sin(B),y=x.length,I+=(y*(U*w-O*P)-F)*a,A+=(y*(O*w+U*P)-S)*a),B>Math.PI?B-=2*Math.PI:B<-Math.PI&&(B+=2*Math.PI),B*=a,U=Math.cos(B),O=Math.sin(B),x.resultMatrix.a=U*w-O*P,x.resultMatrix.c=U*k-O*L,x.resultMatrix.b=O*w+U*P,x.resultMatrix.d=O*k+U*L}}},i.computeWorldVertices2=function(t,i,e,a,s,r){var n,h=t.currDisplayData.bones,l=t.currDisplayData.weights,o=(t.currDisplayData.triangles,0),u=0,c=0,_=0,p=0,d=0,f=0,m=0,x=0,y=0;for(o=0;e>o;o+=2)_=h[u],u+=_+1,c+=_;var g=i;for(p=r,d=3*c;a>p;p+=2){for(f=0,m=0,_=h[u++],_+=u;_>u;u++,d+=3){n=g[h[u]].resultMatrix,x=l[d],y=l[d+1];var M=l[d+2];f+=(x*n.a+y*n.c+n.tx)*M,m+=(x*n.b+y*n.d+n.ty)*M}s[p]=f,s[p+1]=m}},i.computeWorldPositions=function(t,i,e,a,s,r,n){var h=(t.currDisplayData.bones,t.currDisplayData.weights,t.currDisplayData.triangles,[]),l=0,o=t.currDisplayData.verLen,u=this.position,c=this._spaces,_=[],p=[],d=!1,f=o/6,m=-1,x=NaN,y=0,g=0,M=NaN,v=NaN,D=NaN,I=NaN;if(d)o+=2,_[o-2]=_[0],_[o-1]=_[1];else{if(f--,o-=4,this.computeWorldVertices2(t,i,2,o,h,0),this._debugKey)for(l=0;l<h.length;)e.drawCircle(h[l++],h[l++],10,"#ff0000");_=h}this._curves.length=f;var A=this._curves;x=0;var N=_[0],b=_[1],T=0,F=0,S=0,C=0,w=0,k=0,P=NaN,L=NaN,B=NaN,U=NaN,O=NaN,R=NaN,Y=NaN,E=NaN,X=0;for(l=0,X=2;f>l;l++,X+=6)T=_[X],F=_[X+1],S=_[X+2],C=_[X+3],w=_[X+4],k=_[X+5],P=.1875*(N-2*T+S),L=.1875*(b-2*F+C),B=.09375*(3*(T-S)-N+w),U=.09375*(3*(F-C)-b+k),O=2*P+B,R=2*L+U,Y=.75*(T-N)+P+.16666667*B,E=.75*(F-b)+L+.16666667*U,x+=Math.sqrt(Y*Y+E*E),Y+=O,E+=R,O+=B,R+=U,x+=Math.sqrt(Y*Y+E*E),Y+=O,E+=R,x+=Math.sqrt(Y*Y+E*E),Y+=O+B,E+=R+U,x+=Math.sqrt(Y*Y+E*E),A[l]=x,N=w,b=k;if(r&&(u*=x),n)for(l=0;a>l;l++)c[l]*=x;var V=this._segments,W=0,K=0;for(l=0,y=0,g=0,K=0;a>l;l++,y+=3){if(v=c[l],u+=v,M=u,d)M%=x,0>M&&(M+=x),g=0;else{if(0>M){this.addBeforePosition(M,_,0,p,y);continue}if(M>x){this.addAfterPosition(M-x,_,o-4,p,y);continue}}for(;;g++)if(I=A[g],!(M>I)){0==g?M/=I:(D=A[g-1],M=(M-D)/(I-D));break}if(g!=m){m=g;var q=6*g;for(N=_[q],b=_[q+1],T=_[q+2],F=_[q+3],S=_[q+4],C=_[q+5],w=_[q+6],k=_[q+7],P=.03*(N-2*T+S),L=.03*(b-2*F+C),B=.006*(3*(T-S)-N+w),U=.006*(3*(F-C)-b+k),O=2*P+B,R=2*L+U,Y=.3*(T-N)+P+.16666667*B,E=.3*(F-b)+L+.16666667*U,W=Math.sqrt(Y*Y+E*E),V[0]=W,q=1;8>q;q++)Y+=O,E+=R,O+=B,R+=U,W+=Math.sqrt(Y*Y+E*E),V[q]=W;Y+=O,E+=R,W+=Math.sqrt(Y*Y+E*E),V[8]=W,Y+=O+B,E+=R+U,W+=Math.sqrt(Y*Y+E*E),V[9]=W,K=0}for(M*=W;;K++)if(I=V[K],!(M>I)){0==K?M/=I:(D=V[K-1],M=K+(M-D)/(I-D));break}this.addCurvePosition(.1*M,N,b,T,F,S,C,w,k,p,y,s||l>0&&0==v)}return p},i.addBeforePosition=function(t,i,e,a,s){var r=i[e],n=i[e+1],h=i[e+2]-r,l=i[e+3]-n,o=Math.atan2(l,h);a[s]=r+t*Math.cos(o),a[s+1]=n+t*Math.sin(o),a[s+2]=o},i.addAfterPosition=function(t,i,e,a,s){var r=i[e+2],n=i[e+3],h=r-i[e],l=n-i[e+1],o=Math.atan2(l,h);a[s]=r+t*Math.cos(o),a[s+1]=n+t*Math.sin(o),a[s+2]=o},i.addCurvePosition=function(t,i,e,a,s,r,n,h,l,o,u,c){0==t&&(t=1e-4);var _=t*t,p=_*t,d=1-t,f=d*d,m=f*d,x=d*t,y=3*x,g=d*y,M=y*t,v=i*m+a*g+r*M+h*p,D=e*m+s*g+n*M+l*p;o[u]=v,o[u+1]=D,c?o[u+2]=Math.atan2(D-(e*f+s*x*2+n*_),v-(i*f+a*x*2+r*_)):o[u+2]=0},t.NONE=-1,t.BEFORE=-2,t.AFTER=-3,t}(),w=function(){function t(){this.name=null,this.target=null,this.positionMode=null,this.spacingMode=null,this.rotateMode=null,this.offsetRotation=NaN,this.position=NaN,this.spacing=NaN,this.rotateMix=NaN,this.translateMix=NaN,this.bones=[]}return s(t,"laya.ani.bone.PathConstraintData"),t}(),k=function(){function t(){this.name=null,this.slotArr=[]}return s(t,"laya.ani.bone.SkinData"),t}(),P=function(){function t(){this.name=null,this.attachmentName=null,this.type=0,this.transform=null,this.width=NaN,this.height=NaN,this.texture=null,this.bones=null,this.uvs=null,this.weights=null,this.triangles=null,this.vertices=null,this.lengths=null,this.verLen=0}s(t,"laya.ani.bone.SkinSlotDisplayData");var i=t.prototype;return i.createTexture=function(t){return this.texture?this.texture:(this.texture=new g(t.bitmap,this.uvs),this.uvs[0]>this.uvs[4]&&this.uvs[1]>this.uvs[5]?(this.texture.width=t.height,this.texture.height=t.width,this.texture.offsetX=-t.offsetX,this.texture.offsetY=-t.offsetY,this.texture.sourceWidth=t.sourceHeight,this.texture.sourceHeight=t.sourceWidth):(this.texture.width=t.width,this.texture.height=t.height,this.texture.offsetX=-t.offsetX,this.texture.offsetY=-t.offsetY,this.texture.sourceWidth=t.sourceWidth,this.texture.sourceHeight=t.sourceHeight),this.texture)},i.destory=function(){this.texture&&this.texture.destroy()},t}(),L=function(){function t(){this.name=null,this.displayArr=[]}s(t,"laya.ani.bone.SlotData");var i=t.prototype;return i.getDisplayByName=function(t){for(var i,e=0,a=this.displayArr.length;a>e;e++)if(i=this.displayArr[e],i.attachmentName==t)return e;return-1},t}(),B=function(){function t(t,i){this._data=null,this._bones=null,this.target=null,this.rotateMix=NaN,this.translateMix=NaN,this.scaleMix=NaN,this.shearMix=NaN,this._temp=n(2,0),this._data=t,null==this._bones&&(this._bones=[]),this.target=i[t.targetIndex];var e=0,a=0;for(e=0,a=t.boneIndexs.length;a>e;e++)this._bones.push(i[t.boneIndexs[e]]);this.rotateMix=t.rotateMix,this.translateMix=t.translateMix,this.scaleMix=t.scaleMix,this.shearMix=t.shearMix}s(t,"laya.ani.bone.TfConstraint");var i=t.prototype;return i.apply=function(){for(var t,i=this.target.resultMatrix.a,e=this.target.resultMatrix.b,a=this.target.resultMatrix.c,s=this.target.resultMatrix.d,r=0,n=this._bones.length;n>r;r++){if(t=this._bones[r],this.rotateMix>0){var h=t.resultMatrix.a,l=t.resultMatrix.b,o=t.resultMatrix.c,u=t.resultMatrix.d,c=Math.atan2(a,i)-Math.atan2(o,h)+this._data.offsetRotation*Math.PI/180;c>Math.PI?c-=2*Math.PI:c<-Math.PI&&(c+=2*Math.PI),c*=this.rotateMix;var _=Math.cos(c),p=Math.sin(c);t.resultMatrix.a=_*h-p*o,t.resultMatrix.b=_*l-p*u,t.resultMatrix.c=p*h+_*o,t.resultMatrix.d=p*l+_*u}if(this.translateMix&&(this._temp[0]=this._data.offsetX,this._temp[1]=this._data.offsetY,this.target.localToWorld(this._temp),t.resultMatrix.tx+=(this._temp[0]-t.resultMatrix.tx)*this.translateMix,t.resultMatrix.ty+=(this._temp[1]-t.resultMatrix.ty)*this.translateMix,t.updateChild()),this.scaleMix>0){var d=Math.sqrt(t.resultMatrix.a*t.resultMatrix.a+t.resultMatrix.c*t.resultMatrix.c),f=Math.sqrt(i*i+a*a),m=d>1e-5?(d+(f-d+this._data.offsetScaleX)*this.scaleMix)/d:0;t.resultMatrix.a*=m,t.resultMatrix.c*=m,d=Math.sqrt(t.resultMatrix.b*t.resultMatrix.b+t.resultMatrix.d*t.resultMatrix.d),f=Math.sqrt(e*e+s*s),m=d>1e-5?(d+(f-d+this._data.offsetScaleY)*this.scaleMix)/d:0,t.resultMatrix.b*=m,t.resultMatrix.d*=m}if(this.shearMix>0){l=t.resultMatrix.b,u=t.resultMatrix.d;var x=Math.atan2(u,l);c=Math.atan2(s,e)-Math.atan2(a,i)-(x-Math.atan2(t.resultMatrix.c,t.resultMatrix.a)),c>Math.PI?c-=2*Math.PI:c<-Math.PI&&(c+=2*Math.PI),c=x+(c+this._data.offsetShearY*Math.PI/180)*this.shearMix,m=Math.sqrt(l*l+u*u),t.resultMatrix.b=Math.cos(c)*m,t.resultMatrix.d=Math.sin(c)*m}}},t}(),U=function(){function t(){this.name=null,this.targetIndex=0,this.rotateMix=NaN,this.translateMix=NaN,this.scaleMix=NaN,this.shearMix=NaN,this.offsetRotation=NaN,this.offsetX=NaN,this.offsetY=NaN,this.offsetScaleX=NaN,this.offsetScaleY=NaN,this.offsetShearY=NaN,this.boneIndexs=[]}return s(t,"laya.ani.bone.TfConstraintData"),t}(),O=function(){function t(){this.skX=0,this.skY=0,this.scX=1,this.scY=1,this.x=0,this.y=0,this.mMatrix=null}s(t,"laya.ani.bone.Transform");var i=t.prototype;return i.initData=function(t){void 0!=t.x&&(this.x=t.x),void 0!=t.y&&(this.y=t.y),void 0!=t.skX&&(this.skX=t.skX),void 0!=t.skY&&(this.skY=t.skY),void 0!=t.scX&&(this.scX=t.scX),void 0!=t.scY&&(this.scY=t.scY)},i.getMatrix=function(){var t;if(t=this.mMatrix?this.mMatrix:this.mMatrix=new d,t.a=Math.cos(this.skY),0!=this.skX||0!=this.skY){var i=this.skX*Math.PI/180,e=Math.cos(i),a=Math.sin(i);t.setTo(this.scX*e,this.scX*a,this.scY*-a,this.scY*e,this.x,this.y)}else t.setTo(this.scX,this.skX,this.skY,this.scY,this.x,this.y);return t},t}(),R=function(t){function i(){this._templet=null,this._currentTime=NaN,this._currentFrameTime=NaN,this._playStart=NaN,this._playEnd=NaN,this._playDuration=NaN,this._overallDuration=NaN,this._stopWhenCircleFinish=!1,this._elapsedPlaybackTime=NaN,this._startUpdateLoopCount=NaN,this._currentAnimationClipIndex=0,this._currentKeyframeIndex=0,this._paused=!1,this._cacheFrameRate=0,this._cacheFrameRateInterval=NaN,this._cachePlayRate=NaN,this._fullFrames=null,this.isCache=!0,this.playbackRate=1,this.returnToZeroStopped=!0,i.__super.call(this),this._currentAnimationClipIndex=-1,this._currentKeyframeIndex=-1,this._currentTime=0,this._overallDuration=Number.MAX_VALUE,this._stopWhenCircleFinish=!1,this._elapsedPlaybackTime=0,this._startUpdateLoopCount=-1,this._cachePlayRate=1,this.cacheFrameRate=60}s(i,"laya.ani.AnimationPlayer",t);var e=i.prototype;return e._onTempletLoadedComputeFullKeyframeIndices=function(t,i,e){this._templet===e&&this._cachePlayRate===t&&this._cacheFrameRate===i&&this._computeFullKeyframeIndices()},e._computeFullKeyframeIndices=function(){for(var t=this._fullFrames=[],i=this._templet,e=this._cacheFrameRateInterval*this._cachePlayRate,a=0,s=i.getAnimationCount();s>a;a++){for(var r=[],n=0,h=i.getAnimation(a).nodes.length;h>n;n++){for(var l=i.getAnimation(a).nodes[n],o=Math.floor(l.playTime/e),u=new Uint16Array(o+1),c=-1,_=0,p=l.keyFrame.length;p>_;_++){var d=l.keyFrame[_],f=d.startTime,m=f+d.duration+e;do{for(var x=Math.floor(f/e+.5),y=c+1;x>y;y++)u[y]=_;c=x,u[x]=_,f+=e}while(m>=f)}r.push(u)}t.push(r)}this.event("cacheframeindexchanged",this)},e._calculatePlayDuration=function(){if(0!==this.state){var t=this._templet.getAniDuration(this._currentAnimationClipIndex);if(0===this._playEnd&&(this._playEnd=t),Math.floor(this._playEnd)>t)throw new Error("AnimationPlayer:playEnd must less than original Duration.");this._playDuration=this._playEnd-this._playStart}},e.play=function(t,i,e,a,s){if(void 0===t&&(t=0),void 0===i&&(i=1),void 0===e&&(e=2147483647),void 0===a&&(a=0),void 0===s&&(s=0),!this._templet)throw new Error("AnimationPlayer:templet must not be null,maybe you need to set url.");if(0>e||0>a||0>s)throw new Error("AnimationPlayer:overallDuration,playStart and playEnd must large than zero.");if(0!==s&&a>s)throw new Error("AnimationPlayer:start must less than end.");this._currentTime=0,this._currentFrameTime=0,this._elapsedPlaybackTime=0,this.playbackRate=i,this._overallDuration=e,this._playStart=a,this._playEnd=s,this._paused=!1,this._currentAnimationClipIndex=t,this._currentKeyframeIndex=0,this._startUpdateLoopCount=y.loopCount,this.event("played"),this._templet.loaded?this._calculatePlayDuration():this._templet.once("loaded",this,this._calculatePlayDuration),this.update(0)},e.playByFrame=function(t,i,e,a,s,r){void 0===t&&(t=0),void 0===i&&(i=1),void 0===e&&(e=9007199254740991),void 0===a&&(a=0),void 0===s&&(s=0),void 0===r&&(r=30);var n=1e3/r;this.play(t,i,e,a*n,s*n)},e.stop=function(t){void 0===t&&(t=!0),t?(this._currentAnimationClipIndex=this._currentKeyframeIndex=-1,this.event("stopped")):this._stopWhenCircleFinish=!0},e.update=function(t){if(-1!==this._currentAnimationClipIndex&&!this._paused&&this._templet&&this._templet.loaded){var i=this._cacheFrameRateInterval*this._cachePlayRate,e=0;this._startUpdateLoopCount!==y.loopCount&&(e=t*this.playbackRate,this._elapsedPlaybackTime+=e);var a=this.playDuration;if(0!==this._overallDuration&&this._elapsedPlaybackTime>=this._overallDuration||0===this._overallDuration&&this._elapsedPlaybackTime>=a)return this._currentAnimationClipIndex=this._currentKeyframeIndex=-1,void this.event("stopped");if(e+=this._currentTime,a>0){for(;e>=a;){if(this._stopWhenCircleFinish)return this._currentAnimationClipIndex=this._currentKeyframeIndex=-1,this._stopWhenCircleFinish=!1,void this.event("stopped");e-=a,this.event("complete")}this._currentTime=e,this._currentKeyframeIndex=Math.floor(this.currentPlayTime/i),this._currentFrameTime=this._currentKeyframeIndex*i}else{if(this._stopWhenCircleFinish)return this._currentAnimationClipIndex=this._currentKeyframeIndex=-1,this._stopWhenCircleFinish=!1,void this.event("stopped");this._currentTime=this._currentFrameTime=this._currentKeyframeIndex=0,this.event("complete")}}},r(0,e,"playEnd",function(){return this._playEnd}),r(0,e,"templet",function(){return this._templet},function(t){0===!this.state&&this.stop(!0),this._templet!==t&&(this._templet=t,t.loaded?this._computeFullKeyframeIndices():t.once("loaded",this,this._onTempletLoadedComputeFullKeyframeIndices,[this._cachePlayRate,this._cacheFrameRate]))}),r(0,e,"playStart",function(){return this._playStart}),r(0,e,"playDuration",function(){return this._playDuration}),r(0,e,"state",function(){return-1===this._currentAnimationClipIndex?0:this._paused?1:2}),r(0,e,"currentKeyframeIndex",function(){return this._currentKeyframeIndex}),r(0,e,"overallDuration",function(){return this._overallDuration}),r(0,e,"currentFrameTime",function(){return this._currentFrameTime}),r(0,e,"currentAnimationClipIndex",function(){return this._currentAnimationClipIndex}),r(0,e,"currentPlayTime",function(){return this._currentTime+this._playStart}),r(0,e,"cachePlayRate",function(){return this._cachePlayRate},function(t){this._cachePlayRate!==t&&(this._cachePlayRate=t,this._templet&&(this._templet.loaded?this._computeFullKeyframeIndices():this._templet.once("loaded",this,this._onTempletLoadedComputeFullKeyframeIndices,[t,this._cacheFrameRate])))}),r(0,e,"cacheFrameRate",function(){return this._cacheFrameRate},function(t){this._cacheFrameRate!==t&&(this._cacheFrameRate=t,this._cacheFrameRateInterval=1e3/this._cacheFrameRate,this._templet&&(this._templet.loaded?this._computeFullKeyframeIndices():this._templet.once("loaded",this,this._onTempletLoadedComputeFullKeyframeIndices,[this._cachePlayRate,t])))}),r(0,e,"currentTime",null,function(t){if(-1!==this._currentAnimationClipIndex&&this._templet&&this._templet.loaded){if(t<this._playStart||t>this._playEnd)throw new Error("AnimationPlayer:value must large than playStartTime,small than playEndTime.");this._startUpdateLoopCount=y.loopCount;var i=this._cacheFrameRateInterval*this._cachePlayRate;this._currentTime=t,this._currentKeyframeIndex=Math.floor(this.currentPlayTime/i),this._currentFrameTime=this._currentKeyframeIndex*i}}),r(0,e,"paused",function(){return this._paused},function(t){this._paused=t,t&&this.event("paused")}),r(0,e,"cacheFrameRateInterval",function(){return this._cacheFrameRateInterval}),i}(o),Y=function(t){function i(){this._aniMap={},this.unfixedLastAniIndex=-1,this._loaded=!1,i.__super.call(this),this._anis=new Array}s(i,"laya.ani.KeyframesAniTemplet",t);var e=i.prototype;return e.parse=function(t){var e=0,a=0,s=0,r=0,n=0,h=new l(t);this._aniVersion=h.readUTFString();var o,u=(h.readUTFString(),h.readUTFString().split("\n")),c=h.getUint8(),_=h.getUint32(),p=h.getUint32();_>0&&(o=t.slice(_,p));var d=new l(o);for(p>0&&(this._publicExtData=t.slice(p,t.byteLength)),this._useParent=!!h.getUint8(),this._anis.length=c,e=0;c>e;e++){var f=this._anis[e]={};f.nodes=new Array;var m=f.name=u[h.getUint16()];this._aniMap[m]=e,f.bone3DMap={},f.playTime=h.getFloat32();var x=f.nodes.length=h.getUint8();for(f.totalKeyframesLength=0,a=0;x>a;a++){var y=f.nodes[a]={};y.childs=[];var g=h.getInt16();g>=0&&(y.name=u[g],f.bone3DMap[y.name]=a),y.keyFrame=new Array,y.parentIndex=h.getInt16(),-1==y.parentIndex?y.parent=null:y.parent=f.nodes[y.parentIndex];var M=!!h.getUint8(),v=h.getUint32();d.pos=v;var D=y.keyframeWidth=d.getUint16();if(f.totalKeyframesLength+=D,M)for(y.interpolationMethod=[],y.interpolationMethod.length=D,s=0;D>s;s++)y.interpolationMethod[s]=i.interpolation[d.getUint8()];null!=y.parent&&y.parent.childs.push(y);var I=h.getUint16();I>0&&(y.extenData=t.slice(h.pos,h.pos+I),h.pos+=I);var A=h.getUint16();y.keyFrame.length=A;var N=0;for(s=0,r=A;r>s;s++){var b=y.keyFrame[s]={};for(b.duration=h.getFloat32(),b.startTime=N,b.data=new Float32Array(D),b.dData=new Float32Array(D),b.nextData=new Float32Array(D),n=0;D>n;n++)b.data[n]=h.getFloat32(),b.data[n]>-1e-8&&b.data[n]<1e-8&&(b.data[n]=0);N+=b.duration}y.playTime=f.playTime,this._calculateKeyFrame(y,A,D)}}this._loaded=!0,this.event("loaded",this)},e._calculateKeyFrame=function(t,i,e){var a=t.keyFrame;a[i]=a[0];for(var s=0;i>s;s++)for(var r=a[s],n=0;e>n;n++)r.dData[n]=0===r.duration?0:(a[s+1].data[n]-r.data[n])/r.duration,r.nextData[n]=a[s+1].data[n];a.length--},e.getAnimationCount=function(){return this._anis.length},e.getAnimation=function(t){return this._anis[t]},e.getAniDuration=function(t){return this._anis[t].playTime},e.getNodes=function(t){return this._anis[t].nodes},e.getNodeIndexWithName=function(t,i){return this._anis[t].bone3DMap[i]},e.getNodeCount=function(t){return this._anis[t].nodes.length},e.getTotalkeyframesLength=function(t){return this._anis[t].totalKeyframesLength},e.getPublicExtData=function(){return this._publicExtData},e.getAnimationDataWithCache=function(t,i,e,a){var s=i[e];if(s){var r=s[t];return r?r[a]:null}return null},e.setAnimationDataWithCache=function(t,i,e,a,s){var r=i[e]||(i[e]={}),n=r[t]||(r[t]=[]);n[a]=s;
},e.getOriginalData=function(t,i,e,a,s){for(var r=this._anis[t],n=r.nodes,h=0,l=0,o=n.length,u=0;o>l;l++){var c,_=n[l];c=_.keyFrame[e[l][a]],_.dataOffset=u;var p=s-c.startTime;for(h=0;h<_.keyframeWidth;)h+=_.interpolationMethod[h](_,h,i,u+h,c.data,p,c.dData,c.duration,c.nextData);u+=_.keyframeWidth}},e.getNodesCurrentFrameIndex=function(t,i){var e=this._anis[t],a=e.nodes;t!==this.unfixedLastAniIndex&&(this.unfixedCurrentFrameIndexes=new Uint32Array(a.length),this.unfixedCurrentTimes=new Float32Array(a.length),this.unfixedLastAniIndex=t);for(var s=0,r=a.length;r>s;s++){var n=a[s];for(i<this.unfixedCurrentTimes[s]&&(this.unfixedCurrentFrameIndexes[s]=0),this.unfixedCurrentTimes[s]=i;this.unfixedCurrentFrameIndexes[s]<n.keyFrame.length&&!(n.keyFrame[this.unfixedCurrentFrameIndexes[s]].startTime>this.unfixedCurrentTimes[s]);)this.unfixedCurrentFrameIndexes[s]++;this.unfixedCurrentFrameIndexes[s]--}return this.unfixedCurrentFrameIndexes},e.getOriginalDataUnfixedRate=function(t,i,e){var a=this._anis[t],s=a.nodes;t!==this.unfixedLastAniIndex&&(this.unfixedCurrentFrameIndexes=new Uint32Array(s.length),this.unfixedCurrentTimes=new Float32Array(s.length),this.unfixedKeyframes=n(s.length),this.unfixedLastAniIndex=t);for(var r=0,h=0,l=s.length,o=0;l>h;h++){var u=s[h];for(e<this.unfixedCurrentTimes[h]&&(this.unfixedCurrentFrameIndexes[h]=0),this.unfixedCurrentTimes[h]=e;this.unfixedCurrentFrameIndexes[h]<u.keyFrame.length&&!(u.keyFrame[this.unfixedCurrentFrameIndexes[h]].startTime>this.unfixedCurrentTimes[h]);)this.unfixedKeyframes[h]=u.keyFrame[this.unfixedCurrentFrameIndexes[h]],this.unfixedCurrentFrameIndexes[h]++;var c=this.unfixedKeyframes[h];u.dataOffset=o;var _=e-c.startTime;for(r=0;r<u.keyframeWidth;)r+=u.interpolationMethod[r](u,r,i,o+r,c.data,_,c.dData,c.duration,c.nextData);o+=u.keyframeWidth}},r(0,e,"loaded",function(){return this._loaded}),i._LinearInterpolation_0=function(t,i,e,a,s,r,n,h,l){return e[a]=s[i]+r*n[i],1},i._QuaternionInterpolation_1=function(t,i,e,a,s,r,n,h,l){var o=0===h?0:r/h;return p.slerpQuaternionArray(s,i,l,i,o,e,a),4},i._AngleInterpolation_2=function(t,i,e,a,s,r,n,h,l){return 0},i._RadiansInterpolation_3=function(t,i,e,a,s,r,n,h,l){return 0},i._Matrix4x4Interpolation_4=function(t,i,e,a,s,r,n,h,l){for(var o=0;16>o;o++,i++)e[a+o]=s[i]+r*n[i];return 16},i._NoInterpolation_5=function(t,i,e,a,s,r,n,h,l){return e[a]=s[i],1},i._uniqueIDCounter=1,i.interpolation=[i._LinearInterpolation_0,i._QuaternionInterpolation_1,i._AngleInterpolation_2,i._RadiansInterpolation_3,i._Matrix4x4Interpolation_4,i._NoInterpolation_5],i.LAYA_ANIMATION_VISION="LAYAANIMATION:1.0.5",i}(o),E=function(t){function i(){i.__super.call(this)}s(i,"laya.ani.GraphicsAni",t);var e=i.prototype;return e.drawSkin=function(t){var i=[t];this._saveToCmd(f._context._drawSkin,i)},i}(u),X=function(t){function i(){this._mainTexture=null,this._textureJson=null,this._graphicsCache=[],this.srcBoneMatrixArr=[],this.ikArr=[],this.tfArr=[],this.pathArr=[],this.boneSlotDic={},this.bindBoneBoneSlotDic={},this.boneSlotArray=[],this.skinDataArray=[],this.skinDic={},this.subTextureDic={},this.isParseFail=!1,this.url=null,this.yReverseMatrix=null,this.drawOrderAniArr=[],this.eventAniArr=[],this.attachmentNames=null,this.deformAniArr=[],this._rate=60,this.aniSectionDic={},this._skBufferUrl=null,this._textureDic={},this._loadList=null,this._path=null,this.mRootBone=null,i.__super.call(this),this.skinSlotDisplayDataArr=[],this.mBoneArr=[]}s(i,"laya.ani.bone.Templet",t);var a=i.prototype;return a.loadAni=function(t){this._skBufferUrl=t,e.loader.load(t,c.create(this,this.onComplete),null,"arraybuffer")},a.onComplete=function(t){var i=_.getRes(this._skBufferUrl);this._path=this._skBufferUrl.slice(0,this._skBufferUrl.lastIndexOf("/"))+"/",this.parseData(null,i)},a.parseData=function(t,i,e){void 0===e&&(e=60),this._mainTexture=t,this._mainTexture&&f.isWebGL&&t.bitmap&&(t.bitmap.enableMerageInAtlas=!1),this._rate=e,this.parse(i)},a.buildArmature=function(t){return void 0===t&&(t=0),new V(this,t)},a.parse=function(i){t.prototype.parse.call(this,i),this._aniVersion!=Y.LAYA_ANIMATION_VISION&&"LAYAANIMATION:1.0.4"!=this._aniVersion&&"LAYAANIMATION:1.0.3"!=this._aniVersion&&"LAYAANIMATION:1.0.2"!=this._aniVersion&&(console.log("[Error] 版本不一致,请使用IDE版本(1.3.0)重新导出"),this._loaded=!1),this._loaded?this._mainTexture?this._parsePublicExtData():this._parseTexturePath():(this.event("error",this),this.isParseFail=!0)},a._parseTexturePath=function(){var t=0;this._loadList=[];var i,a=new l(this.getPublicExtData()),s=0,r=0,n=0,h=0,o=0,u=0,_=0,p=0,d=0,f=a.getUint8(),m=a.readUTFString(),x=m.split("\n");for(t=0;f>t;t++)i=this._path+x[2*t],m=x[2*t+1],s=a.getFloat32(),r=a.getFloat32(),n=a.getFloat32(),h=a.getFloat32(),d=a.getFloat32(),o=isNaN(d)?0:d,d=a.getFloat32(),u=isNaN(d)?0:d,d=a.getFloat32(),_=isNaN(d)?n:d,d=a.getFloat32(),p=isNaN(d)?h:d,-1==this._loadList.indexOf(i)&&this._loadList.push(i);e.loader.load(this._loadList,c.create(this,this._textureComplete))},a._textureComplete=function(){for(var t,i,e=0,a=this._loadList.length;a>e;e++)i=this._loadList[e],t=this._textureDic[i]=_.getRes(i),f.isWebGL&&t&&t.bitmap&&(t.bitmap.enableMerageInAtlas=!1);this._parsePublicExtData()},a._parsePublicExtData=function(){var t=0,i=0,e=0,a=0,s=0;for(t=0,s=this.getAnimationCount();s>t;t++)this._graphicsCache.push([]);var r,n,h=new l(this.getPublicExtData()),o=0,u=0,c=0,_=0,p=0,f=0,m=0,x=0,y=0,M=h.getUint8(),F=h.readUTFString(),C=F.split("\n");for(t=0;M>t;t++)r=this._mainTexture,n=this._path+C[2*t],F=C[2*t+1],null==this._mainTexture&&(r=this._textureDic[n]),o=h.getFloat32(),u=h.getFloat32(),c=h.getFloat32(),_=h.getFloat32(),y=h.getFloat32(),p=isNaN(y)?0:y,y=h.getFloat32(),f=isNaN(y)?0:y,y=h.getFloat32(),m=isNaN(y)?c:y,y=h.getFloat32(),x=isNaN(y)?_:y,this.subTextureDic[F]=g.create(r,o,u,c,_,-p,-f,m,x);"LAYAANIMATION:1.0.3"!=this._aniVersion&&"LAYAANIMATION:1.0.4"!=this._aniVersion&&"LAYAANIMATION:1.0.5"!=this._aniVersion||(this._mainTexture=r);var B,R=h.getUint16();for(t=0;R>t;t++)B=[],B.push(h.getUint16()),B.push(h.getUint16()),B.push(h.getUint16()),"LAYAANIMATION:1.0.3"!=this._aniVersion&&"LAYAANIMATION:1.0.4"!=this._aniVersion&&"LAYAANIMATION:1.0.5"!=this._aniVersion||B.push(h.getUint16()),this.aniSectionDic[t]=B;var Y,E,X,V,W,K=h.getInt16(),q={};for(t=0;K>t;t++)Y=new v,0==t?W=Y:Y.root=W,X=h.readUTFString(),V=h.readUTFString(),Y.length=h.getFloat32(),"LAYAANIMATION:1.0.3"!=this._aniVersion&&"LAYAANIMATION:1.0.4"!=this._aniVersion&&"LAYAANIMATION:1.0.5"!=this._aniVersion||(1==h.getByte()&&(Y.inheritRotation=!1),1==h.getByte()&&(Y.inheritScale=!1)),Y.name=X,V&&(E=q[V],E?E.addChild(Y):this.mRootBone=Y),q[X]=Y,this.mBoneArr.push(Y);var G,H=h.getUint16(),z=h.getUint16(),Q=Math.floor(z/H),Z=this.srcBoneMatrixArr;for(t=0;Q>t;t++)G=new O,G.scX=h.getFloat32(),G.skX=h.getFloat32(),G.skY=h.getFloat32(),G.scY=h.getFloat32(),G.x=h.getFloat32(),G.y=h.getFloat32(),Z.push(G),Y=this.mBoneArr[t],Y.transform=G;var $,j=h.getUint16(),J=0;for(t=0;j>t;t++){for($=new S,J=h.getUint16(),i=0;J>i;i++)$.boneNames.push(h.readUTFString()),$.boneIndexs.push(h.getInt16());$.name=h.readUTFString(),$.targetBoneName=h.readUTFString(),$.targetBoneIndex=h.getInt16(),$.bendDirection=h.getFloat32(),$.mix=h.getFloat32(),this.ikArr.push($)}if("LAYAANIMATION:1.0.3"==this._aniVersion||"LAYAANIMATION:1.0.4"==this._aniVersion||"LAYAANIMATION:1.0.5"==this._aniVersion){var tt,it=h.getUint16(),et=0;for(t=0;it>t;t++){for(tt=new U,et=h.getUint16(),i=0;et>i;i++)tt.boneIndexs.push(h.getInt16());tt.name=h.getUTFString(),tt.targetIndex=h.getInt16(),tt.rotateMix=h.getFloat32(),tt.translateMix=h.getFloat32(),tt.scaleMix=h.getFloat32(),tt.shearMix=h.getFloat32(),tt.offsetRotation=h.getFloat32(),tt.offsetX=h.getFloat32(),tt.offsetY=h.getFloat32(),tt.offsetScaleX=h.getFloat32(),tt.offsetScaleY=h.getFloat32(),tt.offsetShearY=h.getFloat32(),this.tfArr.push(tt)}var at,st=h.getUint16(),rt=0;for(t=0;st>t;t++){for(at=new w,at.name=h.readUTFString(),rt=h.getUint16(),i=0;rt>i;i++)at.bones.push(h.getInt16());at.target=h.readUTFString(),at.positionMode=h.readUTFString(),at.spacingMode=h.readUTFString(),at.rotateMode=h.readUTFString(),at.offsetRotation=h.getFloat32(),at.position=h.getFloat32(),at.spacing=h.getFloat32(),at.rotateMix=h.getFloat32(),at.translateMix=h.getFloat32(),this.pathArr.push(at)}if("LAYAANIMATION:1.0.4"==this._aniVersion||"LAYAANIMATION:1.0.5"==this._aniVersion){var nt,ht,lt,ot,ut,ct=0,_t=0,pt=0,dt=0,ft=NaN,mt=0,xt=h.getInt16();for(t=0;xt>t;t++)for(ht=new I,this.deformAniArr.push(ht),ct=h.getInt16(),i=0;ct>i;i++)for(lt=new A,ht.deformSlotDataList.push(lt),_t=h.getInt16(),e=0;_t>e;e++)for(ot=new N,lt.deformSlotDisplayList.push(ot),ot.slotIndex=pt=h.getInt16(),ot.attachment=nt=h.getUTFString(),dt=h.getInt16(),a=0;dt>a;a++)for(ft=h.getFloat32(),ot.timeList.push(ft),ut=[],ot.vectices.push(ut),mt=h.getInt16(),s=0;mt>s;s++)ut.push(h.getFloat32());var yt,gt,Mt=h.getInt16(),vt=0,Dt=0;for(t=0;Mt>t;t++){for(vt=h.getInt16(),yt=[],i=0;vt>i;i++){for(gt=new b,gt.time=h.getFloat32(),Dt=h.getInt16(),e=0;Dt>e;e++)gt.drawOrder.push(h.getInt16());yt.push(gt)}this.drawOrderAniArr.push(yt)}}var It,At,Nt=h.getInt16(),bt=0;for(t=0;Nt>t;t++){for(bt=h.getInt16(),It=[],i=0;bt>i;i++)At=new T,At.name=h.getUTFString(),At.intValue=h.getInt32(),At.floatValue=h.getFloat32(),At.stringValue=h.getUTFString(),At.time=h.getFloat32(),It.push(At);this.eventAniArr.push(It)}}if("LAYAANIMATION:1.0.5"==this._aniVersion){this.attachmentNames=[];var Tt=h.getInt16();for(t=0;Tt>t;t++)this.attachmentNames.push(h.getUTFString())}var Ft,St,Ct=h.getInt16();for(t=0;Ct>t;t++)Ft=new D,Ft.name=h.readUTFString(),Ft.parent=h.readUTFString(),Ft.attachmentName=h.readUTFString(),Ft.srcDisplayIndex=Ft.displayIndex=h.getInt16(),Ft.templet=this,this.boneSlotDic[Ft.name]=Ft,St=this.bindBoneBoneSlotDic[Ft.parent],null==St&&(this.bindBoneBoneSlotDic[Ft.parent]=St=[]),St.push(Ft),this.boneSlotArray.push(Ft);var wt,kt,Pt,Lt=h.readUTFString(),Bt=Lt.split("\n"),Ut=0,Ot=h.getUint8(),Rt=0,Yt=0,Et=0,Xt=0,Vt=0,Wt=0,Kt=0;for(t=0;Ot>t;t++){for(wt=new k,wt.name=Bt[Ut++],Rt=h.getUint8(),i=0;Rt>i;i++){for(kt=new L,kt.name=Bt[Ut++],Ft=this.boneSlotDic[kt.name],Yt=h.getUint8(),e=0;Yt>e;e++){if(Pt=new P,this.skinSlotDisplayDataArr.push(Pt),Pt.name=Bt[Ut++],Pt.attachmentName=Bt[Ut++],Pt.transform=new O,Pt.transform.scX=h.getFloat32(),Pt.transform.skX=h.getFloat32(),Pt.transform.skY=h.getFloat32(),Pt.transform.scY=h.getFloat32(),Pt.transform.x=h.getFloat32(),Pt.transform.y=h.getFloat32(),kt.displayArr.push(Pt),Pt.width=h.getFloat32(),Pt.height=h.getFloat32(),Pt.type=h.getUint8(),"LAYAANIMATION:1.0.3"!=this._aniVersion&&"LAYAANIMATION:1.0.4"!=this._aniVersion&&"LAYAANIMATION:1.0.5"!=this._aniVersion||(Pt.verLen=h.getUint16()),K=h.getUint16(),K>0)for(Pt.bones=[],a=0;K>a;a++){var qt=h.getUint16();Pt.bones.push(qt)}if(Et=h.getUint16(),Et>0)for(Pt.uvs=[],a=0;Et>a;a++)Pt.uvs.push(h.getFloat32());if(Xt=h.getUint16(),Xt>0)for(Pt.weights=[],a=0;Xt>a;a++)Pt.weights.push(h.getFloat32());if(Vt=h.getUint16(),Vt>0)for(Pt.triangles=[],a=0;Vt>a;a++)Pt.triangles.push(h.getUint16());if(Wt=h.getUint16(),Wt>0)for(Pt.vertices=[],a=0;Wt>a;a++)Pt.vertices.push(h.getFloat32());if(("LAYAANIMATION:1.0.3"==this._aniVersion||"LAYAANIMATION:1.0.4"==this._aniVersion||"LAYAANIMATION:1.0.5"==this._aniVersion)&&(Kt=h.getUint16(),Kt>0))for(Pt.lengths=[],a=0;Kt>a;a++)Pt.lengths.push(h.getFloat32())}wt.slotArr.push(kt)}this.skinDic[wt.name]=wt,this.skinDataArray.push(wt)}var Gt=h.getUint8();1==Gt?(this.yReverseMatrix=new d(1,0,0,-1,0,0),W&&W.setTempMatrix(this.yReverseMatrix)):W&&W.setTempMatrix(new d),this.showSkinByIndex(this.boneSlotDic,0),this.event("complete",this)},a.getTexture=function(t){var i=this.subTextureDic[t];return null==i?this._mainTexture:i},a.showSkinByIndex=function(t,i){if(0>i&&i>=this.skinDataArray.length)return!1;var e,a,s=0,r=0,n=this.skinDataArray[i];if(n){for(s=0,r=n.slotArr.length;r>s;s++)a=n.slotArr[s],a&&(e=t[a.name],e&&(e.showSlotData(a),"null"!=e.attachmentName?e.showDisplayByName(e.attachmentName):e.showDisplayByIndex(e.displayIndex)));return!0}return!1},a.getSkinIndexByName=function(t){for(var i,e=0,a=this.skinDataArray.length;a>e;e++)if(i=this.skinDataArray[e],i.name==t)return e;return-1},a.getGrahicsDataWithCache=function(t,i){return this._graphicsCache[t][i]},a.setGrahicsDataWithCache=function(t,i,e){this._graphicsCache[t][i]=e},a.destroy=function(){var t;for(var e in this.subTextureDic)t=this.subTextureDic[e],t.destroy();var e;for(e in this._textureDic)t=this._textureDic[e],t.destroy();for(var a,s=0,r=this.skinSlotDisplayDataArr.length;r>s;s++)a=this.skinSlotDisplayDataArr[s],a.destory();this.skinSlotDisplayDataArr.length=0,this.url&&delete i.TEMPLET_DICTIONARY[this.url]},a.getAniNameByIndex=function(t){var i=this.getAnimation(t);return i?i.name:null},r(0,a,"rate",function(){return this._rate}),i.TEMPLET_DICTIONARY=null,i}(Y),V=function(t){function i(t,e){this._templet=null,this._player=null,this._curOriginalData=null,this._boneMatrixArray=[],this._lastTime=0,this._currAniName=null,this._currAniIndex=-1,this._pause=!0,this._aniClipIndex=-1,this._clipIndex=-1,this._skinIndex=0,this._aniMode=0,this._graphicsCache=null,this._boneSlotDic=null,this._bindBoneBoneSlotDic=null,this._boneSlotArray=null,this._index=-1,this._total=-1,this._indexControl=!1,this._aniPath=null,this._texturePath=null,this._complete=null,this._loadAniMode=0,this._yReverseMatrix=null,this._ikArr=null,this._tfArr=null,this._pathDic=null,this._rootBone=null,this._boneList=null,this._aniSectionDic=null,this._eventIndex=0,this._drawOrderIndex=0,this._drawOrder=null,this._lastAniClipIndex=-1,i.__super.call(this),void 0===e&&(e=0),t&&this.init(t,e)}s(i,"laya.ani.bone.Skeleton",t);var a=i.prototype;return a.init=function(t,i){void 0===i&&(i=0);var e=0,a=0;if(1==i)for(this._graphicsCache=[],e=0,a=t.getAnimationCount();a>e;e++)this._graphicsCache.push([]);if(this._yReverseMatrix=t.yReverseMatrix,this._aniMode=i,this._templet=t,this._player=new R,this._player.cacheFrameRate=t.rate,this._player.templet=t,this._player.play(),this._parseSrcBoneMatrix(),this._boneList=t.mBoneArr,this._rootBone=t.mRootBone,this._aniSectionDic=t.aniSectionDic,t.ikArr.length>0)for(this._ikArr=[],e=0,a=t.ikArr.length;a>e;e++)this._ikArr.push(new F(t.ikArr[e],this._boneList));if(t.pathArr.length>0){var s,r;null==this._pathDic&&(this._pathDic={});var n;for(e=0,a=t.pathArr.length;a>e;e++)s=t.pathArr[e],r=new C(s,this._boneList),n=this._boneSlotDic[s.name],n&&(r=new C(s,this._boneList),r.target=n),this._pathDic[s.name]=r}if(t.tfArr.length>0)for(this._tfArr=[],e=0,a=t.tfArr.length;a>e;e++)this._tfArr.push(new B(t.tfArr[e],this._boneList));this._player.on("played",this,this._onPlay),this._player.on("stopped",this,this._onStop),this._player.on("paused",this,this._onPause)},a.load=function(t,i,a){void 0===a&&(a=0),this._aniPath=t,this._complete=i,this._loadAniMode=a,this._texturePath=t.replace(".sk",".png").replace(".bin",".png"),e.loader.load([{url:t,type:"arraybuffer"},{url:this._texturePath,type:"image"}],c.create(this,this._onLoaded))},a._onLoaded=function(){var t=_.getRes(this._texturePath),i=_.getRes(this._aniPath);if(null!=t&&null!=i){null==X.TEMPLET_DICTIONARY&&(X.TEMPLET_DICTIONARY={});var e;e=X.TEMPLET_DICTIONARY[this._aniPath],e?e.isParseFail?this._parseFail():this._parseComplete():(e=new X,e.url=this._aniPath,X.TEMPLET_DICTIONARY[this._aniPath]=e,e.on("complete",this,this._parseComplete),e.on("error",this,this._parseFail),e.parseData(t,i,60))}},a._parseComplete=function(){var t=X.TEMPLET_DICTIONARY[this._aniPath];t&&(this.init(t,this._loadAniMode),this.play(0,!0)),this._complete&&this._complete.runWith(this)},a._parseFail=function(){console.log("[Error]:"+this._aniPath+"解析失败")},a._onPlay=function(){this.event("played")},a._onStop=function(){var t,i=this._templet.eventAniArr,e=i[this._aniClipIndex];if(e&&this._eventIndex<e.length)for(;this._eventIndex<e.length;this._eventIndex++)t=e[this._eventIndex],t.time>=this._player.playStart&&t.time<=this._player.playEnd&&this.event("label",t);this._eventIndex=0,this._drawOrder=null,this.event("stopped")},a._onPause=function(){this.event("paused")},a._parseSrcBoneMatrix=function(){var t=0,i=0;for(i=this._templet.srcBoneMatrixArr.length,t=0;i>t;t++)this._boneMatrixArray.push(new d);if(0==this._aniMode)this._boneSlotDic=this._templet.boneSlotDic,this._bindBoneBoneSlotDic=this._templet.bindBoneBoneSlotDic,this._boneSlotArray=this._templet.boneSlotArray;else{null==this._boneSlotDic&&(this._boneSlotDic={}),null==this._bindBoneBoneSlotDic&&(this._bindBoneBoneSlotDic={}),null==this._boneSlotArray&&(this._boneSlotArray=[]);var e,a,s=this._templet.boneSlotArray;for(t=0,i=s.length;i>t;t++)e=s[t],a=this._bindBoneBoneSlotDic[e.parent],null==a&&(this._bindBoneBoneSlotDic[e.parent]=a=[]),this._boneSlotDic[e.name]=e=e.copy(),a.push(e),this._boneSlotArray.push(e)}},a._update=function(t){if(void 0===t&&(t=!0),!(this._pause||t&&this._indexControl)){var i=e.timer.currTimer;t&&this._player.update(i-this._lastTime),this._lastTime=i,this._aniClipIndex=this._player.currentAnimationClipIndex,this._clipIndex=this._player.currentKeyframeIndex;var a,s=this._templet.eventAniArr,r=s[this._aniClipIndex];if(r&&this._eventIndex<r.length&&(a=r[this._eventIndex],a.time>=this._player.playStart&&a.time<=this._player.playEnd&&this._player.currentPlayTime>=a.time&&(this.event("label",a),this._eventIndex++)),-1!=this._aniClipIndex){var n;if(0==this._aniMode){if(n=this._templet.getGrahicsDataWithCache(this._aniClipIndex,this._clipIndex))return void(this.graphics!=n&&(this.graphics=n))}else if(1==this._aniMode&&(n=this._getGrahicsDataWithCache(this._aniClipIndex,this._clipIndex)))return void(this.graphics!=n&&(this.graphics=n));this._createGraphics()}}},a._createGraphics=function(){var t,i=this._templet.drawOrderAniArr,e=i[this._aniClipIndex];if(e&&e.length>0)for(this._drawOrderIndex=0,t=e[this._drawOrderIndex];this._player.currentPlayTime>=t.time&&(this._drawOrder=t.drawOrder,this._drawOrderIndex++,!(this._drawOrderIndex>=e.length))