Interactivity Added

-Interaction Manager added to pixi.js to enable mouse and touch
interactivity.

- Interactive example added to examples folder

- docs updated

- build file updated
This commit is contained in:
Mat Groves 2013-03-20 20:21:27 +00:00
parent 9a0cd873b5
commit f5cc062922
63 changed files with 4844 additions and 280 deletions

View file

@ -86,4 +86,8 @@ last 2 examples and allowing us to share the source code :)
}
```
<<<<<<< HEAD
This content is released under the (http://opensource.org/licenses/MIT) MIT License.
=======
This content is released under the (http://opensource.org/licenses/MIT) MIT License.
>>>>>>> Interactivity Added

View file

@ -1,114 +1,128 @@
var PIXI=PIXI||{};PIXI.Point=function(b,c){this.x=b?b:0;this.y=c?c:0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(b,c,f,e){this.x=b?b:0;this.y=c?c:0;this.width=f?f:0;this.height=e?e:0};PIXI.Rectangle.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)};PIXI.Rectangle.constructor=PIXI.Rectangle;window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b){window.setTimeout(b,1E3/60)}}();function HEXtoRGB(b){return[(b>>16&255)/255,(b>>8&255)/255,(b&255)/255]}
"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var b=Array.prototype.slice;return function(c){function f(){var h=g.concat(b.call(arguments));e.apply(this instanceof f?this:c,h)}var e=this,g=b.call(arguments,1);if("function"!=typeof e)throw new TypeError;f.prototype=function j(b){b&&(j.prototype=b);if(!(this instanceof j))return new j}(e.prototype);return f}}());
var AjaxRequest=function(){var b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(window.ActiveXObject)for(var c=0;c<b.length;c++)try{return new ActiveXObject(b[c])}catch(f){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};PIXI.EventTarget=function(){var b={};this.addEventListener=function(c,f){void 0===b[c]&&(b[c]=[]);-1===b[c].indexOf(f)&&b[c].push(f)};this.dispatchEvent=function(c){for(var f in b[c.type])b[c.type][f](c)};this.removeEventListener=function(c,f){var e=b[c].indexOf(f);-1!==e&&b[c].splice(e,1)}};(function(b,c){"object"===typeof exports?module.exports=c(global):"function"===typeof define&&define.amd?define([],function(){return c(b)}):c(b)})(this,function(b){function c(a){return j=a}function f(){return j="undefined"!==typeof Float32Array?Float32Array:Array}var e={};if("undefined"!=typeof Float32Array){var g=new Float32Array(1),h=new Int32Array(g.buffer);e.invsqrt=function(a){g[0]=a;h[0]=1597463007-(h[0]>>1);var d=g[0];return d*(1.5-0.5*a*d*d)}}else e.invsqrt=function(a){return 1/Math.sqrt(a)};
var j=null;f();var n={create:function(a){var d=new j(3);a?(d[0]=a[0],d[1]=a[1],d[2]=a[2]):d[0]=d[1]=d[2]=0;return d},createFrom:function(a,d,l){var b=new j(3);b[0]=a;b[1]=d;b[2]=l;return b},set:function(a,d){d[0]=a[0];d[1]=a[1];d[2]=a[2];return d},equal:function(a,d){return a===d||1E-6>Math.abs(a[0]-d[0])&&1E-6>Math.abs(a[1]-d[1])&&1E-6>Math.abs(a[2]-d[2])},add:function(a,d,l){if(!l||a===l)return a[0]+=d[0],a[1]+=d[1],a[2]+=d[2],a;l[0]=a[0]+d[0];l[1]=a[1]+d[1];l[2]=a[2]+d[2];return l},subtract:function(a,
d,l){if(!l||a===l)return a[0]-=d[0],a[1]-=d[1],a[2]-=d[2],a;l[0]=a[0]-d[0];l[1]=a[1]-d[1];l[2]=a[2]-d[2];return l},multiply:function(a,d,l){if(!l||a===l)return a[0]*=d[0],a[1]*=d[1],a[2]*=d[2],a;l[0]=a[0]*d[0];l[1]=a[1]*d[1];l[2]=a[2]*d[2];return l},negate:function(a,d){d||(d=a);d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];return d},scale:function(a,d,l){if(!l||a===l)return a[0]*=d,a[1]*=d,a[2]*=d,a;l[0]=a[0]*d;l[1]=a[1]*d;l[2]=a[2]*d;return l},normalize:function(a,d){d||(d=a);var l=a[0],b=a[1],c=a[2],e=Math.sqrt(l*
l+b*b+c*c);if(!e)return d[0]=0,d[1]=0,d[2]=0,d;if(1===e)return d[0]=l,d[1]=b,d[2]=c,d;e=1/e;d[0]=l*e;d[1]=b*e;d[2]=c*e;return d},cross:function(a,d,l){l||(l=a);var b=a[0],c=a[1];a=a[2];var e=d[0],k=d[1];d=d[2];l[0]=c*d-a*k;l[1]=a*e-b*d;l[2]=b*k-c*e;return l},length:function(a){var d=a[0],l=a[1];a=a[2];return Math.sqrt(d*d+l*l+a*a)},squaredLength:function(a){var d=a[0],l=a[1];a=a[2];return d*d+l*l+a*a},dot:function(a,d){return a[0]*d[0]+a[1]*d[1]+a[2]*d[2]},direction:function(a,d,l){l||(l=a);var b=
a[0]-d[0],c=a[1]-d[1];a=a[2]-d[2];d=Math.sqrt(b*b+c*c+a*a);if(!d)return l[0]=0,l[1]=0,l[2]=0,l;d=1/d;l[0]=b*d;l[1]=c*d;l[2]=a*d;return l},lerp:function(a,d,l,b){b||(b=a);b[0]=a[0]+l*(d[0]-a[0]);b[1]=a[1]+l*(d[1]-a[1]);b[2]=a[2]+l*(d[2]-a[2]);return b},dist:function(a,d){var l=d[0]-a[0],b=d[1]-a[1],c=d[2]-a[2];return Math.sqrt(l*l+b*b+c*c)}},q=null,p=new j(4);n.unproject=function(a,d,l,b,c){c||(c=a);q||(q=u.create());var e=q;p[0]=2*(a[0]-b[0])/b[2]-1;p[1]=2*(a[1]-b[1])/b[3]-1;p[2]=2*a[2]-1;p[3]=1;
u.multiply(l,d,e);if(!u.inverse(e))return null;u.multiplyVec4(e,p);if(0===p[3])return null;c[0]=p[0]/p[3];c[1]=p[1]/p[3];c[2]=p[2]/p[3];return c};var C=n.createFrom(1,0,0),D=n.createFrom(0,1,0),s=n.createFrom(0,0,1),x=n.create();n.rotationTo=function(a,d,l){l||(l=m.create());var b=n.dot(a,d);if(1<=b)m.set(E,l);else if(-0.999999>b)n.cross(C,a,x),1E-6>n.length(x)&&n.cross(D,a,x),1E-6>n.length(x)&&n.cross(s,a,x),n.normalize(x),m.fromAngleAxis(Math.PI,x,l);else{var b=Math.sqrt(2*(1+b)),c=1/b;n.cross(a,
d,x);l[0]=x[0]*c;l[1]=x[1]*c;l[2]=x[2]*c;l[3]=0.5*b;m.normalize(l)}1<l[3]?l[3]=1:-1>l[3]&&(l[3]=-1);return l};n.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+"]"};var y={create:function(a){var d=new j(9);a?(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3],d[4]=a[4],d[5]=a[5],d[6]=a[6],d[7]=a[7],d[8]=a[8]):d[0]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=0;return d},createFrom:function(a,d,l,b,c,e,k,f,G){var t=new j(9);t[0]=a;t[1]=d;t[2]=l;t[3]=b;t[4]=c;t[5]=e;t[6]=k;t[7]=f;t[8]=G;return t},determinant:function(a){var d=
a[3],l=a[4],b=a[5],c=a[6],e=a[7],k=a[8];return a[0]*(k*l-b*e)+a[1]*(-k*d+b*c)+a[2]*(e*d-l*c)},inverse:function(a,d){var l=a[0],b=a[1],c=a[2],e=a[3],k=a[4],f=a[5],G=a[6],t=a[7],g=a[8],h=g*k-f*t,j=-g*e+f*G,m=t*e-k*G,r=l*h+b*j+c*m;if(!r)return null;r=1/r;d||(d=y.create());d[0]=h*r;d[1]=(-g*b+c*t)*r;d[2]=(f*b-c*k)*r;d[3]=j*r;d[4]=(g*l-c*G)*r;d[5]=(-f*l+c*e)*r;d[6]=m*r;d[7]=(-t*l+b*G)*r;d[8]=(k*l-b*e)*r;return d},multiply:function(a,d,l){l||(l=a);var b=a[0],c=a[1],e=a[2],k=a[3],f=a[4],G=a[5],t=a[6],g=
a[7];a=a[8];var h=d[0],j=d[1],m=d[2],r=d[3],n=d[4],v=d[5],p=d[6],w=d[7];d=d[8];l[0]=h*b+j*k+m*t;l[1]=h*c+j*f+m*g;l[2]=h*e+j*G+m*a;l[3]=r*b+n*k+v*t;l[4]=r*c+n*f+v*g;l[5]=r*e+n*G+v*a;l[6]=p*b+w*k+d*t;l[7]=p*c+w*f+d*g;l[8]=p*e+w*G+d*a;return l},multiplyVec2:function(a,d,l){l||(l=d);var b=d[0];d=d[1];l[0]=b*a[0]+d*a[3]+a[6];l[1]=b*a[1]+d*a[4]+a[7];return l},multiplyVec3:function(a,d,l){l||(l=d);var b=d[0],c=d[1];d=d[2];l[0]=b*a[0]+c*a[3]+d*a[6];l[1]=b*a[1]+c*a[4]+d*a[7];l[2]=b*a[2]+c*a[5]+d*a[8];return l},
set:function(a,d){d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];d[4]=a[4];d[5]=a[5];d[6]=a[6];d[7]=a[7];d[8]=a[8];return d},equal:function(a,d){return a===d||1E-6>Math.abs(a[0]-d[0])&&1E-6>Math.abs(a[1]-d[1])&&1E-6>Math.abs(a[2]-d[2])&&1E-6>Math.abs(a[3]-d[3])&&1E-6>Math.abs(a[4]-d[4])&&1E-6>Math.abs(a[5]-d[5])&&1E-6>Math.abs(a[6]-d[6])&&1E-6>Math.abs(a[7]-d[7])&&1E-6>Math.abs(a[8]-d[8])},identity:function(a){a||(a=y.create());a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a},transpose:function(a,
d){if(!d||a===d){var l=a[1],b=a[2],c=a[5];a[1]=a[3];a[2]=a[6];a[3]=l;a[5]=a[7];a[6]=b;a[7]=c;return a}d[0]=a[0];d[1]=a[3];d[2]=a[6];d[3]=a[1];d[4]=a[4];d[5]=a[7];d[6]=a[2];d[7]=a[5];d[8]=a[8];return d},toMat4:function(a,d){d||(d=u.create());d[15]=1;d[14]=0;d[13]=0;d[12]=0;d[11]=0;d[10]=a[8];d[9]=a[7];d[8]=a[6];d[7]=0;d[6]=a[5];d[5]=a[4];d[4]=a[3];d[3]=0;d[2]=a[2];d[1]=a[1];d[0]=a[0];return d},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+
a[8]+"]"}},u={create:function(a){var d=new j(16);a&&(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3],d[4]=a[4],d[5]=a[5],d[6]=a[6],d[7]=a[7],d[8]=a[8],d[9]=a[9],d[10]=a[10],d[11]=a[11],d[12]=a[12],d[13]=a[13],d[14]=a[14],d[15]=a[15]);return d},createFrom:function(a,d,l,b,c,e,k,f,G,t,g,h,m,n,r,p){var v=new j(16);v[0]=a;v[1]=d;v[2]=l;v[3]=b;v[4]=c;v[5]=e;v[6]=k;v[7]=f;v[8]=G;v[9]=t;v[10]=g;v[11]=h;v[12]=m;v[13]=n;v[14]=r;v[15]=p;return v},set:function(a,d){d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];d[4]=a[4];
d[5]=a[5];d[6]=a[6];d[7]=a[7];d[8]=a[8];d[9]=a[9];d[10]=a[10];d[11]=a[11];d[12]=a[12];d[13]=a[13];d[14]=a[14];d[15]=a[15];return d},equal:function(a,d){return a===d||1E-6>Math.abs(a[0]-d[0])&&1E-6>Math.abs(a[1]-d[1])&&1E-6>Math.abs(a[2]-d[2])&&1E-6>Math.abs(a[3]-d[3])&&1E-6>Math.abs(a[4]-d[4])&&1E-6>Math.abs(a[5]-d[5])&&1E-6>Math.abs(a[6]-d[6])&&1E-6>Math.abs(a[7]-d[7])&&1E-6>Math.abs(a[8]-d[8])&&1E-6>Math.abs(a[9]-d[9])&&1E-6>Math.abs(a[10]-d[10])&&1E-6>Math.abs(a[11]-d[11])&&1E-6>Math.abs(a[12]-
d[12])&&1E-6>Math.abs(a[13]-d[13])&&1E-6>Math.abs(a[14]-d[14])&&1E-6>Math.abs(a[15]-d[15])},identity:function(a){a||(a=u.create());a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a},transpose:function(a,d){if(!d||a===d){var l=a[1],b=a[2],c=a[3],e=a[6],k=a[7],f=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=l;a[6]=a[9];a[7]=a[13];a[8]=b;a[9]=e;a[11]=a[14];a[12]=c;a[13]=k;a[14]=f;return a}d[0]=a[0];d[1]=a[4];d[2]=a[8];d[3]=a[12];
d[4]=a[1];d[5]=a[5];d[6]=a[9];d[7]=a[13];d[8]=a[2];d[9]=a[6];d[10]=a[10];d[11]=a[14];d[12]=a[3];d[13]=a[7];d[14]=a[11];d[15]=a[15];return d},determinant:function(a){var d=a[0],l=a[1],b=a[2],c=a[3],e=a[4],k=a[5],f=a[6],g=a[7],t=a[8],h=a[9],j=a[10],m=a[11],n=a[12],r=a[13],p=a[14];a=a[15];return n*h*f*c-t*r*f*c-n*k*j*c+e*r*j*c+t*k*p*c-e*h*p*c-n*h*b*g+t*r*b*g+n*l*j*g-d*r*j*g-t*l*p*g+d*h*p*g+n*k*b*m-e*r*b*m-n*l*f*m+d*r*f*m+e*l*p*m-d*k*p*m-t*k*b*a+e*h*b*a+t*l*f*a-d*h*f*a-e*l*j*a+d*k*j*a},inverse:function(a,
d){d||(d=a);var b=a[0],c=a[1],e=a[2],f=a[3],k=a[4],g=a[5],h=a[6],t=a[7],j=a[8],m=a[9],n=a[10],p=a[11],r=a[12],s=a[13],v=a[14],u=a[15],w=b*g-c*k,H=b*h-e*k,z=b*t-f*k,A=c*h-e*g,q=c*t-f*g,x=e*t-f*h,y=j*s-m*r,B=j*v-n*r,C=j*u-p*r,D=m*v-n*s,E=m*u-p*s,I=n*u-p*v,F=w*I-H*E+z*D+A*C-q*B+x*y;if(!F)return null;F=1/F;d[0]=(g*I-h*E+t*D)*F;d[1]=(-c*I+e*E-f*D)*F;d[2]=(s*x-v*q+u*A)*F;d[3]=(-m*x+n*q-p*A)*F;d[4]=(-k*I+h*C-t*B)*F;d[5]=(b*I-e*C+f*B)*F;d[6]=(-r*x+v*z-u*H)*F;d[7]=(j*x-n*z+p*H)*F;d[8]=(k*E-g*C+t*y)*F;d[9]=
(-b*E+c*C-f*y)*F;d[10]=(r*q-s*z+u*w)*F;d[11]=(-j*q+m*z-p*w)*F;d[12]=(-k*D+g*B-h*y)*F;d[13]=(b*D-c*B+e*y)*F;d[14]=(-r*A+s*H-v*w)*F;d[15]=(j*A-m*H+n*w)*F;return d},toRotationMat:function(a,d){d||(d=u.create());d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];d[4]=a[4];d[5]=a[5];d[6]=a[6];d[7]=a[7];d[8]=a[8];d[9]=a[9];d[10]=a[10];d[11]=a[11];d[12]=0;d[13]=0;d[14]=0;d[15]=1;return d},toMat3:function(a,d){d||(d=y.create());d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[4];d[4]=a[5];d[5]=a[6];d[6]=a[8];d[7]=a[9];d[8]=a[10];
return d},toInverseMat3:function(a,d){var b=a[0],c=a[1],e=a[2],f=a[4],k=a[5],g=a[6],h=a[8],t=a[9],j=a[10],m=j*k-g*t,n=-j*f+g*h,p=t*f-k*h,r=b*m+c*n+e*p;if(!r)return null;r=1/r;d||(d=y.create());d[0]=m*r;d[1]=(-j*c+e*t)*r;d[2]=(g*c-e*k)*r;d[3]=n*r;d[4]=(j*b-e*h)*r;d[5]=(-g*b+e*f)*r;d[6]=p*r;d[7]=(-t*b+c*h)*r;d[8]=(k*b-c*f)*r;return d},multiply:function(a,d,b){b||(b=a);var c=a[0],e=a[1],f=a[2],k=a[3],g=a[4],h=a[5],t=a[6],j=a[7],m=a[8],n=a[9],p=a[10],r=a[11],s=a[12],v=a[13],u=a[14];a=a[15];var w=d[0],
q=d[1],z=d[2],A=d[3];b[0]=w*c+q*g+z*m+A*s;b[1]=w*e+q*h+z*n+A*v;b[2]=w*f+q*t+z*p+A*u;b[3]=w*k+q*j+z*r+A*a;w=d[4];q=d[5];z=d[6];A=d[7];b[4]=w*c+q*g+z*m+A*s;b[5]=w*e+q*h+z*n+A*v;b[6]=w*f+q*t+z*p+A*u;b[7]=w*k+q*j+z*r+A*a;w=d[8];q=d[9];z=d[10];A=d[11];b[8]=w*c+q*g+z*m+A*s;b[9]=w*e+q*h+z*n+A*v;b[10]=w*f+q*t+z*p+A*u;b[11]=w*k+q*j+z*r+A*a;w=d[12];q=d[13];z=d[14];A=d[15];b[12]=w*c+q*g+z*m+A*s;b[13]=w*e+q*h+z*n+A*v;b[14]=w*f+q*t+z*p+A*u;b[15]=w*k+q*j+z*r+A*a;return b},multiplyVec3:function(a,d,b){b||(b=d);
var c=d[0],e=d[1];d=d[2];b[0]=a[0]*c+a[4]*e+a[8]*d+a[12];b[1]=a[1]*c+a[5]*e+a[9]*d+a[13];b[2]=a[2]*c+a[6]*e+a[10]*d+a[14];return b},multiplyVec4:function(a,d,b){b||(b=d);var c=d[0],e=d[1],f=d[2];d=d[3];b[0]=a[0]*c+a[4]*e+a[8]*f+a[12]*d;b[1]=a[1]*c+a[5]*e+a[9]*f+a[13]*d;b[2]=a[2]*c+a[6]*e+a[10]*f+a[14]*d;b[3]=a[3]*c+a[7]*e+a[11]*f+a[15]*d;return b},translate:function(a,d,b){var c=d[0],e=d[1];d=d[2];var f,k,g,h,j,m,n,p,q,r,s,v;if(!b||a===b)return a[12]=a[0]*c+a[4]*e+a[8]*d+a[12],a[13]=a[1]*c+a[5]*e+
a[9]*d+a[13],a[14]=a[2]*c+a[6]*e+a[10]*d+a[14],a[15]=a[3]*c+a[7]*e+a[11]*d+a[15],a;f=a[0];k=a[1];g=a[2];h=a[3];j=a[4];m=a[5];n=a[6];p=a[7];q=a[8];r=a[9];s=a[10];v=a[11];b[0]=f;b[1]=k;b[2]=g;b[3]=h;b[4]=j;b[5]=m;b[6]=n;b[7]=p;b[8]=q;b[9]=r;b[10]=s;b[11]=v;b[12]=f*c+j*e+q*d+a[12];b[13]=k*c+m*e+r*d+a[13];b[14]=g*c+n*e+s*d+a[14];b[15]=h*c+p*e+v*d+a[15];return b},scale:function(a,d,b){var c=d[0],e=d[1];d=d[2];if(!b||a===b)return a[0]*=c,a[1]*=c,a[2]*=c,a[3]*=c,a[4]*=e,a[5]*=e,a[6]*=e,a[7]*=e,a[8]*=d,a[9]*=
d,a[10]*=d,a[11]*=d,a;b[0]=a[0]*c;b[1]=a[1]*c;b[2]=a[2]*c;b[3]=a[3]*c;b[4]=a[4]*e;b[5]=a[5]*e;b[6]=a[6]*e;b[7]=a[7]*e;b[8]=a[8]*d;b[9]=a[9]*d;b[10]=a[10]*d;b[11]=a[11]*d;b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b},rotate:function(a,d,b,c){var e=b[0],f=b[1];b=b[2];var k=Math.sqrt(e*e+f*f+b*b),g,h,j,m,n,p,q,r,s,v,u,w,x,z,A,y,B,C,D,E;if(!k)return null;1!==k&&(k=1/k,e*=k,f*=k,b*=k);g=Math.sin(d);h=Math.cos(d);j=1-h;d=a[0];k=a[1];m=a[2];n=a[3];p=a[4];q=a[5];r=a[6];s=a[7];v=a[8];u=a[9];w=
a[10];x=a[11];z=e*e*j+h;A=f*e*j+b*g;y=b*e*j-f*g;B=e*f*j-b*g;C=f*f*j+h;D=b*f*j+e*g;E=e*b*j+f*g;e=f*b*j-e*g;f=b*b*j+h;c?a!==c&&(c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=d*z+p*A+v*y;c[1]=k*z+q*A+u*y;c[2]=m*z+r*A+w*y;c[3]=n*z+s*A+x*y;c[4]=d*B+p*C+v*D;c[5]=k*B+q*C+u*D;c[6]=m*B+r*C+w*D;c[7]=n*B+s*C+x*D;c[8]=d*E+p*e+v*f;c[9]=k*E+q*e+u*f;c[10]=m*E+r*e+w*f;c[11]=n*E+s*e+x*f;return c},rotateX:function(a,d,b){var c=Math.sin(d);d=Math.cos(d);var e=a[4],f=a[5],k=a[6],g=a[7],h=a[8],j=a[9],m=a[10],
n=a[11];b?a!==b&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]):b=a;b[4]=e*d+h*c;b[5]=f*d+j*c;b[6]=k*d+m*c;b[7]=g*d+n*c;b[8]=e*-c+h*d;b[9]=f*-c+j*d;b[10]=k*-c+m*d;b[11]=g*-c+n*d;return b},rotateY:function(a,d,b){var c=Math.sin(d);d=Math.cos(d);var e=a[0],f=a[1],k=a[2],g=a[3],h=a[8],j=a[9],m=a[10],n=a[11];b?a!==b&&(b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]):b=a;b[0]=e*d+h*-c;b[1]=f*d+j*-c;b[2]=k*d+m*-c;b[3]=g*
d+n*-c;b[8]=e*c+h*d;b[9]=f*c+j*d;b[10]=k*c+m*d;b[11]=g*c+n*d;return b},rotateZ:function(a,d,b){var c=Math.sin(d);d=Math.cos(d);var e=a[0],f=a[1],k=a[2],g=a[3],h=a[4],j=a[5],m=a[6],n=a[7];b?a!==b&&(b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]):b=a;b[0]=e*d+h*c;b[1]=f*d+j*c;b[2]=k*d+m*c;b[3]=g*d+n*c;b[4]=e*-c+h*d;b[5]=f*-c+j*d;b[6]=k*-c+m*d;b[7]=g*-c+n*d;return b},frustum:function(a,d,b,c,e,f,k){k||(k=u.create());var g=d-a,h=c-b,j=f-e;k[0]=2*e/g;k[1]=0;
k[2]=0;k[3]=0;k[4]=0;k[5]=2*e/h;k[6]=0;k[7]=0;k[8]=(d+a)/g;k[9]=(c+b)/h;k[10]=-(f+e)/j;k[11]=-1;k[12]=0;k[13]=0;k[14]=-(2*f*e)/j;k[15]=0;return k},perspective:function(a,d,b,c,e){a=b*Math.tan(a*Math.PI/360);d*=a;return u.frustum(-d,d,-a,a,b,c,e)},ortho:function(a,d,b,c,e,f,k){k||(k=u.create());var g=d-a,h=c-b,j=f-e;k[0]=2/g;k[1]=0;k[2]=0;k[3]=0;k[4]=0;k[5]=2/h;k[6]=0;k[7]=0;k[8]=0;k[9]=0;k[10]=-2/j;k[11]=0;k[12]=-(a+d)/g;k[13]=-(c+b)/h;k[14]=-(f+e)/j;k[15]=1;return k},lookAt:function(a,d,b,c){c||
(c=u.create());var e,f,k,g,h,j,m,n,p=a[0],q=a[1];a=a[2];k=b[0];g=b[1];f=b[2];m=d[0];b=d[1];e=d[2];if(p===m&&q===b&&a===e)return u.identity(c);d=p-m;b=q-b;m=a-e;n=1/Math.sqrt(d*d+b*b+m*m);d*=n;b*=n;m*=n;e=g*m-f*b;f=f*d-k*m;k=k*b-g*d;(n=Math.sqrt(e*e+f*f+k*k))?(n=1/n,e*=n,f*=n,k*=n):k=f=e=0;g=b*k-m*f;h=m*e-d*k;j=d*f-b*e;(n=Math.sqrt(g*g+h*h+j*j))?(n=1/n,g*=n,h*=n,j*=n):j=h=g=0;c[0]=e;c[1]=g;c[2]=d;c[3]=0;c[4]=f;c[5]=h;c[6]=b;c[7]=0;c[8]=k;c[9]=j;c[10]=m;c[11]=0;c[12]=-(e*p+f*q+k*a);c[13]=-(g*p+h*q+
j*a);c[14]=-(d*p+b*q+m*a);c[15]=1;return c},fromRotationTranslation:function(a,d,b){b||(b=u.create());var c=a[0],e=a[1],f=a[2],k=a[3],g=c+c,h=e+e,j=f+f;a=c*g;var m=c*h,c=c*j,n=e*h,e=e*j,f=f*j,g=k*g,h=k*h,k=k*j;b[0]=1-(n+f);b[1]=m+k;b[2]=c-h;b[3]=0;b[4]=m-k;b[5]=1-(a+f);b[6]=e+g;b[7]=0;b[8]=c+h;b[9]=e-g;b[10]=1-(a+n);b[11]=0;b[12]=d[0];b[13]=d[1];b[14]=d[2];b[15]=1;return b},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+
a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+"]"}},m={create:function(a){var d=new j(4);a?(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3]):d[0]=d[1]=d[2]=d[3]=0;return d},createFrom:function(a,d,b,c){var e=new j(4);e[0]=a;e[1]=d;e[2]=b;e[3]=c;return e},set:function(a,d){d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];return d},equal:function(a,d){return a===d||1E-6>Math.abs(a[0]-d[0])&&1E-6>Math.abs(a[1]-d[1])&&1E-6>Math.abs(a[2]-d[2])&&1E-6>Math.abs(a[3]-d[3])},identity:function(a){a||(a=m.create());
a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a}},E=m.identity();m.calculateW=function(a,d){var b=a[0],c=a[1],e=a[2];if(!d||a===d)return a[3]=-Math.sqrt(Math.abs(1-b*b-c*c-e*e)),a;d[0]=b;d[1]=c;d[2]=e;d[3]=-Math.sqrt(Math.abs(1-b*b-c*c-e*e));return d};m.dot=function(a,d){return a[0]*d[0]+a[1]*d[1]+a[2]*d[2]+a[3]*d[3]};m.inverse=function(a,d){var b=a[0],c=a[1],e=a[2],f=a[3],b=(b=b*b+c*c+e*e+f*f)?1/b:0;if(!d||a===d)return a[0]*=-b,a[1]*=-b,a[2]*=-b,a[3]*=b,a;d[0]=-a[0]*b;d[1]=-a[1]*b;d[2]=-a[2]*b;d[3]=a[3]*b;
return d};m.conjugate=function(a,d){if(!d||a===d)return a[0]*=-1,a[1]*=-1,a[2]*=-1,a;d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];d[3]=a[3];return d};m.length=function(a){var d=a[0],b=a[1],c=a[2];a=a[3];return Math.sqrt(d*d+b*b+c*c+a*a)};m.normalize=function(a,d){d||(d=a);var b=a[0],c=a[1],e=a[2],f=a[3],k=Math.sqrt(b*b+c*c+e*e+f*f);if(0===k)return d[0]=0,d[1]=0,d[2]=0,d[3]=0,d;k=1/k;d[0]=b*k;d[1]=c*k;d[2]=e*k;d[3]=f*k;return d};m.add=function(a,d,b){if(!b||a===b)return a[0]+=d[0],a[1]+=d[1],a[2]+=d[2],a[3]+=
d[3],a;b[0]=a[0]+d[0];b[1]=a[1]+d[1];b[2]=a[2]+d[2];b[3]=a[3]+d[3];return b};m.multiply=function(a,d,b){b||(b=a);var c=a[0],e=a[1],f=a[2];a=a[3];var k=d[0],g=d[1],h=d[2];d=d[3];b[0]=c*d+a*k+e*h-f*g;b[1]=e*d+a*g+f*k-c*h;b[2]=f*d+a*h+c*g-e*k;b[3]=a*d-c*k-e*g-f*h;return b};m.multiplyVec3=function(a,d,b){b||(b=d);var c=d[0],e=d[1],f=d[2];d=a[0];var k=a[1],g=a[2];a=a[3];var h=a*c+k*f-g*e,j=a*e+g*c-d*f,m=a*f+d*e-k*c,c=-d*c-k*e-g*f;b[0]=h*a+c*-d+j*-g-m*-k;b[1]=j*a+c*-k+m*-d-h*-g;b[2]=m*a+c*-g+h*-k-j*-d;
return b};m.scale=function(a,d,b){if(!b||a===b)return a[0]*=d,a[1]*=d,a[2]*=d,a[3]*=d,a;b[0]=a[0]*d;b[1]=a[1]*d;b[2]=a[2]*d;b[3]=a[3]*d;return b};m.toMat3=function(a,d){d||(d=y.create());var b=a[0],c=a[1],e=a[2],f=a[3],k=b+b,g=c+c,h=e+e,j=b*k,m=b*g,b=b*h,n=c*g,c=c*h,e=e*h,k=f*k,g=f*g,f=f*h;d[0]=1-(n+e);d[1]=m+f;d[2]=b-g;d[3]=m-f;d[4]=1-(j+e);d[5]=c+k;d[6]=b+g;d[7]=c-k;d[8]=1-(j+n);return d};m.toMat4=function(a,d){d||(d=u.create());var b=a[0],c=a[1],e=a[2],f=a[3],g=b+b,h=c+c,j=e+e,m=b*g,n=b*h,b=b*
j,p=c*h,c=c*j,e=e*j,g=f*g,h=f*h,f=f*j;d[0]=1-(p+e);d[1]=n+f;d[2]=b-h;d[3]=0;d[4]=n-f;d[5]=1-(m+e);d[6]=c+g;d[7]=0;d[8]=b+h;d[9]=c-g;d[10]=1-(m+p);d[11]=0;d[12]=0;d[13]=0;d[14]=0;d[15]=1;return d};m.slerp=function(a,d,b,c){c||(c=a);var e=a[0]*d[0]+a[1]*d[1]+a[2]*d[2]+a[3]*d[3],f,g;if(1<=Math.abs(e))return c!==a&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]),c;f=Math.acos(e);g=Math.sqrt(1-e*e);if(0.0010>Math.abs(g))return c[0]=0.5*a[0]+0.5*d[0],c[1]=0.5*a[1]+0.5*d[1],c[2]=0.5*a[2]+0.5*d[2],c[3]=0.5*a[3]+
0.5*d[3],c;e=Math.sin((1-b)*f)/g;b=Math.sin(b*f)/g;c[0]=a[0]*e+d[0]*b;c[1]=a[1]*e+d[1]*b;c[2]=a[2]*e+d[2]*b;c[3]=a[3]*e+d[3]*b;return c};m.fromRotationMatrix=function(a,d){d||(d=m.create());var b=a[0]+a[4]+a[8],c;if(0<b)c=Math.sqrt(b+1),d[3]=0.5*c,c=0.5/c,d[0]=(a[7]-a[5])*c,d[1]=(a[2]-a[6])*c,d[2]=(a[3]-a[1])*c;else{c=m.fromRotationMatrix.s_iNext=m.fromRotationMatrix.s_iNext||[1,2,0];b=0;a[4]>a[0]&&(b=1);a[8]>a[3*b+b]&&(b=2);var e=c[b],f=c[e];c=Math.sqrt(a[3*b+b]-a[3*e+e]-a[3*f+f]+1);d[b]=0.5*c;c=
0.5/c;d[3]=(a[3*f+e]-a[3*e+f])*c;d[e]=(a[3*e+b]+a[3*b+e])*c;d[f]=(a[3*f+b]+a[3*b+f])*c}return d};y.toQuat4=m.fromRotationMatrix;var B=y.create();m.fromAxes=function(a,b,c,e){B[0]=b[0];B[3]=b[1];B[6]=b[2];B[1]=c[0];B[4]=c[1];B[7]=c[2];B[2]=a[0];B[5]=a[1];B[8]=a[2];return m.fromRotationMatrix(B,e)};m.identity=function(a){a||(a=m.create());a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a};m.fromAngleAxis=function(a,b,c){c||(c=m.create());a*=0.5;var e=Math.sin(a);c[3]=Math.cos(a);c[0]=e*b[0];c[1]=e*b[1];c[2]=e*b[2];
return c};m.toAngleAxis=function(a,b){b||(b=a);var c=a[0]*a[0]+a[1]*a[1]+a[2]*a[2];0<c?(b[3]=2*Math.acos(a[3]),c=e.invsqrt(c),b[0]=a[0]*c,b[1]=a[1]*c,b[2]=a[2]*c):(b[3]=0,b[0]=1,b[1]=0,b[2]=0);return b};m.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"};var K={create:function(a){var b=new j(2);a?(b[0]=a[0],b[1]=a[1]):(b[0]=0,b[1]=0);return b},createFrom:function(a,b){var c=new j(2);c[0]=a;c[1]=b;return c},add:function(a,b,c){c||(c=b);c[0]=a[0]+b[0];c[1]=a[1]+b[1];return c},subtract:function(a,
b,c){c||(c=b);c[0]=a[0]-b[0];c[1]=a[1]-b[1];return c},multiply:function(a,b,c){c||(c=b);c[0]=a[0]*b[0];c[1]=a[1]*b[1];return c},divide:function(a,b,c){c||(c=b);c[0]=a[0]/b[0];c[1]=a[1]/b[1];return c},scale:function(a,b,c){c||(c=a);c[0]=a[0]*b;c[1]=a[1]*b;return c},dist:function(a,b){var c=b[0]-a[0],e=b[1]-a[1];return Math.sqrt(c*c+e*e)},set:function(a,b){b[0]=a[0];b[1]=a[1];return b},equal:function(a,b){return a===b||1E-6>Math.abs(a[0]-b[0])&&1E-6>Math.abs(a[1]-b[1])},negate:function(a,b){b||(b=a);
b[0]=-a[0];b[1]=-a[1];return b},normalize:function(a,b){b||(b=a);var c=a[0]*a[0]+a[1]*a[1];0<c?(c=Math.sqrt(c),b[0]=a[0]/c,b[1]=a[1]/c):b[0]=b[1]=0;return b},cross:function(a,b,c){a=a[0]*b[1]-a[1]*b[0];if(!c)return a;c[0]=c[1]=0;c[2]=a;return c},length:function(a){var b=a[0];a=a[1];return Math.sqrt(b*b+a*a)},squaredLength:function(a){var b=a[0];a=a[1];return b*b+a*a},dot:function(a,b){return a[0]*b[0]+a[1]*b[1]},direction:function(a,b,c){c||(c=a);var e=a[0]-b[0];a=a[1]-b[1];b=e*e+a*a;if(!b)return c[0]=
0,c[1]=0,c[2]=0,c;b=1/Math.sqrt(b);c[0]=e*b;c[1]=a*b;return c},lerp:function(a,b,c,e){e||(e=a);e[0]=a[0]+c*(b[0]-a[0]);e[1]=a[1]+c*(b[1]-a[1]);return e},str:function(a){return"["+a[0]+", "+a[1]+"]"}},J={create:function(a){var b=new j(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):b[0]=b[1]=b[2]=b[3]=0;return b},createFrom:function(a,b,c,e){var f=new j(4);f[0]=a;f[1]=b;f[2]=c;f[3]=e;return f},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1E-6>
Math.abs(a[0]-b[0])&&1E-6>Math.abs(a[1]-b[1])&&1E-6>Math.abs(a[2]-b[2])&&1E-6>Math.abs(a[3]-b[3])},identity:function(a){a||(a=J.create());a[0]=1;a[1]=0;a[2]=0;a[3]=1;return a},transpose:function(a,b){if(!b||a===b){var c=a[1];a[1]=a[2];a[2]=c;return a}b[0]=a[0];b[1]=a[2];b[2]=a[1];b[3]=a[3];return b},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},inverse:function(a,b){b||(b=a);var c=a[0],e=a[1],f=a[2],g=a[3],h=c*g-f*e;if(!h)return null;h=1/h;b[0]=g*h;b[1]=-e*h;b[2]=-f*h;b[3]=c*h;return b},multiply:function(a,
b,c){c||(c=a);var e=a[0],f=a[1],g=a[2];a=a[3];c[0]=e*b[0]+f*b[2];c[1]=e*b[1]+f*b[3];c[2]=g*b[0]+a*b[2];c[3]=g*b[1]+a*b[3];return c},rotate:function(a,b,c){c||(c=a);var e=a[0],f=a[1],g=a[2];a=a[3];var h=Math.sin(b);b=Math.cos(b);c[0]=e*b+f*h;c[1]=e*-h+f*b;c[2]=g*b+a*h;c[3]=g*-h+a*b;return c},multiplyVec2:function(a,b,c){c||(c=b);var e=b[0];b=b[1];c[0]=e*a[0]+b*a[1];c[1]=e*a[2]+b*a[3];return c},scale:function(a,b,c){c||(c=a);var e=a[1],f=a[2],g=a[3],h=b[0];b=b[1];c[0]=a[0]*h;c[1]=e*b;c[2]=f*h;c[3]=
g*b;return c},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},L={create:function(a){var b=new j(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):(b[0]=0,b[1]=0,b[2]=0,b[3]=0);return b},createFrom:function(a,b,c,e){var f=new j(4);f[0]=a;f[1]=b;f[2]=c;f[3]=e;return f},add:function(a,b,c){c||(c=b);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c},subtract:function(a,b,c){c||(c=b);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c},multiply:function(a,
b,c){c||(c=b);c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]*b[2];c[3]=a[3]*b[3];return c},divide:function(a,b,c){c||(c=b);c[0]=a[0]/b[0];c[1]=a[1]/b[1];c[2]=a[2]/b[2];c[3]=a[3]/b[3];return c},scale:function(a,b,c){c||(c=a);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1E-6>Math.abs(a[0]-b[0])&&1E-6>Math.abs(a[1]-b[1])&&1E-6>Math.abs(a[2]-b[2])&&1E-6>Math.abs(a[3]-b[3])},negate:function(a,b){b||
(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];return b},length:function(a){var b=a[0],c=a[1],e=a[2];a=a[3];return Math.sqrt(b*b+c*c+e*e+a*a)},squaredLength:function(a){var b=a[0],c=a[1],e=a[2];a=a[3];return b*b+c*c+e*e+a*a},lerp:function(a,b,c,e){e||(e=a);e[0]=a[0]+c*(b[0]-a[0]);e[1]=a[1]+c*(b[1]-a[1]);e[2]=a[2]+c*(b[2]-a[2]);e[3]=a[3]+c*(b[3]-a[3]);return e},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}};b&&(b.glMatrixArrayType=j,b.MatrixArray=j,b.setMatrixArrayType=c,b.determineMatrixArrayType=
f,b.glMath=e,b.vec2=K,b.vec3=n,b.vec4=L,b.mat2=J,b.mat3=y,b.mat4=u,b.quat4=m);return{glMatrixArrayType:j,MatrixArray:j,setMatrixArrayType:c,determineMatrixArrayType:f,glMath:e,vec2:K,vec3:n,vec4:L,mat2:J,mat3:y,mat4:u,quat4:m}});PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor \x3d texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor \x3d gl_FragColor * vColor;","}"];
var PIXI=PIXI||{};PIXI.Point=function(a,c){this.x=a?a:0;this.y=c?c:0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(a,c,f,d){this.x=a?a:0;this.y=c?c:0;this.width=f?f:0;this.height=d?d:0};PIXI.Rectangle.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)};PIXI.Rectangle.constructor=PIXI.Rectangle;window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();function HEXtoRGB(a){return[(a>>16&255)/255,(a>>8&255)/255,(a&255)/255]}
"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(c){function f(){var h=g.concat(a.call(arguments));d.apply(this instanceof f?this:c,h)}var d=this,g=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;f.prototype=function j(a){a&&(j.prototype=a);if(!(this instanceof j))return new j}(d.prototype);return f}}());
var AjaxRequest=function(){var a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(window.ActiveXObject)for(var c=0;c<a.length;c++)try{return new ActiveXObject(a[c])}catch(f){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};PIXI.EventTarget=function(){var a={};this.addEventListener=function(c,f){void 0===a[c]&&(a[c]=[]);-1===a[c].indexOf(f)&&a[c].push(f)};this.dispatchEvent=function(c){for(var f in a[c.type])a[c.type][f](c)};this.removeEventListener=function(c,f){var d=a[c].indexOf(f);-1!==d&&a[c].splice(d,1)}};(function(a,c){"object"===typeof exports?module.exports=c(global):"function"===typeof define&&define.amd?define([],function(){return c(a)}):c(a)})(this,function(a){function c(b){return j=b}function f(){return j="undefined"!==typeof Float32Array?Float32Array:Array}var d={};if("undefined"!=typeof Float32Array){var g=new Float32Array(1),h=new Int32Array(g.buffer);d.invsqrt=function(b){g[0]=b;h[0]=1597463007-(h[0]>>1);var e=g[0];return e*(1.5-0.5*b*e*e)}}else d.invsqrt=function(b){return 1/Math.sqrt(b)};
var j=null;f();var k={create:function(b){var e=new j(3);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2]):e[0]=e[1]=e[2]=0;return e},createFrom:function(b,e,a){var c=new j(3);c[0]=b;c[1]=e;c[2]=a;return c},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])},add:function(b,e,a){if(!a||b===a)return b[0]+=e[0],b[1]+=e[1],b[2]+=e[2],b;a[0]=b[0]+e[0];a[1]=b[1]+e[1];a[2]=b[2]+e[2];return a},subtract:function(b,
e,a){if(!a||b===a)return b[0]-=e[0],b[1]-=e[1],b[2]-=e[2],b;a[0]=b[0]-e[0];a[1]=b[1]-e[1];a[2]=b[2]-e[2];return a},multiply:function(b,e,a){if(!a||b===a)return b[0]*=e[0],b[1]*=e[1],b[2]*=e[2],b;a[0]=b[0]*e[0];a[1]=b[1]*e[1];a[2]=b[2]*e[2];return a},negate:function(b,e){e||(e=b);e[0]=-b[0];e[1]=-b[1];e[2]=-b[2];return e},scale:function(b,e,a){if(!a||b===a)return b[0]*=e,b[1]*=e,b[2]*=e,b;a[0]=b[0]*e;a[1]=b[1]*e;a[2]=b[2]*e;return a},normalize:function(b,e){e||(e=b);var a=b[0],c=b[1],p=b[2],d=Math.sqrt(a*
a+c*c+p*p);if(!d)return e[0]=0,e[1]=0,e[2]=0,e;if(1===d)return e[0]=a,e[1]=c,e[2]=p,e;d=1/d;e[0]=a*d;e[1]=c*d;e[2]=p*d;return e},cross:function(b,e,a){a||(a=b);var c=b[0],p=b[1];b=b[2];var d=e[0],f=e[1];e=e[2];a[0]=p*e-b*f;a[1]=b*d-c*e;a[2]=c*f-p*d;return a},length:function(b){var e=b[0],a=b[1];b=b[2];return Math.sqrt(e*e+a*a+b*b)},squaredLength:function(b){var e=b[0],a=b[1];b=b[2];return e*e+a*a+b*b},dot:function(b,e){return b[0]*e[0]+b[1]*e[1]+b[2]*e[2]},direction:function(b,e,a){a||(a=b);var c=
b[0]-e[0],p=b[1]-e[1];b=b[2]-e[2];e=Math.sqrt(c*c+p*p+b*b);if(!e)return a[0]=0,a[1]=0,a[2]=0,a;e=1/e;a[0]=c*e;a[1]=p*e;a[2]=b*e;return a},lerp:function(b,e,a,c){c||(c=b);c[0]=b[0]+a*(e[0]-b[0]);c[1]=b[1]+a*(e[1]-b[1]);c[2]=b[2]+a*(e[2]-b[2]);return c},dist:function(b,e){var a=e[0]-b[0],c=e[1]-b[1],p=e[2]-b[2];return Math.sqrt(a*a+c*c+p*p)}},r=null,n=new j(4);k.unproject=function(b,e,a,c,p){p||(p=b);r||(r=s.create());var d=r;n[0]=2*(b[0]-c[0])/c[2]-1;n[1]=2*(b[1]-c[1])/c[3]-1;n[2]=2*b[2]-1;n[3]=1;
s.multiply(a,e,d);if(!s.inverse(d))return null;s.multiplyVec4(d,n);if(0===n[3])return null;p[0]=n[0]/n[3];p[1]=n[1]/n[3];p[2]=n[2]/n[3];return p};var y=k.createFrom(1,0,0),C=k.createFrom(0,1,0),m=k.createFrom(0,0,1),u=k.create();k.rotationTo=function(b,e,a){a||(a=l.create());var c=k.dot(b,e);if(1<=c)l.set(E,a);else if(-0.999999>c)k.cross(y,b,u),1E-6>k.length(u)&&k.cross(C,b,u),1E-6>k.length(u)&&k.cross(m,b,u),k.normalize(u),l.fromAngleAxis(Math.PI,u,a);else{var c=Math.sqrt(2*(1+c)),p=1/c;k.cross(b,
e,u);a[0]=u[0]*p;a[1]=u[1]*p;a[2]=u[2]*p;a[3]=0.5*c;l.normalize(a)}1<a[3]?a[3]=1:-1>a[3]&&(a[3]=-1);return a};k.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+"]"};var x={create:function(b){var e=new j(9);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8]):e[0]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=0;return e},createFrom:function(b,e,a,c,p,d,f,g,G){var v=new j(9);v[0]=b;v[1]=e;v[2]=a;v[3]=c;v[4]=p;v[5]=d;v[6]=f;v[7]=g;v[8]=G;return v},determinant:function(b){var e=
b[3],a=b[4],c=b[5],p=b[6],d=b[7],f=b[8];return b[0]*(f*a-c*d)+b[1]*(-f*e+c*p)+b[2]*(d*e-a*p)},inverse:function(b,e){var a=b[0],c=b[1],p=b[2],d=b[3],f=b[4],g=b[5],G=b[6],v=b[7],h=b[8],j=h*f-g*v,k=-h*d+g*G,l=v*d-f*G,q=a*j+c*k+p*l;if(!q)return null;q=1/q;e||(e=x.create());e[0]=j*q;e[1]=(-h*c+p*v)*q;e[2]=(g*c-p*f)*q;e[3]=k*q;e[4]=(h*a-p*G)*q;e[5]=(-g*a+p*d)*q;e[6]=l*q;e[7]=(-v*a+c*G)*q;e[8]=(f*a-c*d)*q;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],p=b[1],d=b[2],f=b[3],g=b[4],G=b[5],v=b[6],h=
b[7];b=b[8];var j=e[0],k=e[1],l=e[2],q=e[3],m=e[4],t=e[5],n=e[6],w=e[7];e=e[8];a[0]=j*c+k*f+l*v;a[1]=j*p+k*g+l*h;a[2]=j*d+k*G+l*b;a[3]=q*c+m*f+t*v;a[4]=q*p+m*g+t*h;a[5]=q*d+m*G+t*b;a[6]=n*c+w*f+e*v;a[7]=n*p+w*g+e*h;a[8]=n*d+w*G+e*b;return a},multiplyVec2:function(b,e,a){a||(a=e);var c=e[0];e=e[1];a[0]=c*b[0]+e*b[3]+b[6];a[1]=c*b[1]+e*b[4]+b[7];return a},multiplyVec3:function(b,e,a){a||(a=e);var c=e[0],p=e[1];e=e[2];a[0]=c*b[0]+p*b[3]+e*b[6];a[1]=c*b[1]+p*b[4]+e*b[7];a[2]=c*b[2]+p*b[5]+e*b[8];return a},
set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])},identity:function(b){b||(b=x.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=1;b[5]=0;b[6]=0;b[7]=0;b[8]=1;return b},transpose:function(b,
e){if(!e||b===e){var a=b[1],c=b[2],p=b[5];b[1]=b[3];b[2]=b[6];b[3]=a;b[5]=b[7];b[6]=c;b[7]=p;return b}e[0]=b[0];e[1]=b[3];e[2]=b[6];e[3]=b[1];e[4]=b[4];e[5]=b[7];e[6]=b[2];e[7]=b[5];e[8]=b[8];return e},toMat4:function(b,e){e||(e=s.create());e[15]=1;e[14]=0;e[13]=0;e[12]=0;e[11]=0;e[10]=b[8];e[9]=b[7];e[8]=b[6];e[7]=0;e[6]=b[5];e[5]=b[4];e[4]=b[3];e[3]=0;e[2]=b[2];e[1]=b[1];e[0]=b[0];return e},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+
b[8]+"]"}},s={create:function(b){var e=new j(16);b&&(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8],e[9]=b[9],e[10]=b[10],e[11]=b[11],e[12]=b[12],e[13]=b[13],e[14]=b[14],e[15]=b[15]);return e},createFrom:function(b,e,a,c,p,d,f,g,h,v,N,I,k,l,q,m){var t=new j(16);t[0]=b;t[1]=e;t[2]=a;t[3]=c;t[4]=p;t[5]=d;t[6]=f;t[7]=g;t[8]=h;t[9]=v;t[10]=N;t[11]=I;t[12]=k;t[13]=l;t[14]=q;t[15]=m;return t},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];
e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=b[12];e[13]=b[13];e[14]=b[14];e[15]=b[15];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])&&1E-6>Math.abs(b[9]-e[9])&&1E-6>Math.abs(b[10]-e[10])&&1E-6>Math.abs(b[11]-e[11])&&1E-6>Math.abs(b[12]-
e[12])&&1E-6>Math.abs(b[13]-e[13])&&1E-6>Math.abs(b[14]-e[14])&&1E-6>Math.abs(b[15]-e[15])},identity:function(b){b||(b=s.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},transpose:function(b,e){if(!e||b===e){var a=b[1],c=b[2],p=b[3],d=b[6],f=b[7],g=b[11];b[1]=b[4];b[2]=b[8];b[3]=b[12];b[4]=a;b[6]=b[9];b[7]=b[13];b[8]=c;b[9]=d;b[11]=b[14];b[12]=p;b[13]=f;b[14]=g;return b}e[0]=b[0];e[1]=b[4];e[2]=b[8];e[3]=b[12];
e[4]=b[1];e[5]=b[5];e[6]=b[9];e[7]=b[13];e[8]=b[2];e[9]=b[6];e[10]=b[10];e[11]=b[14];e[12]=b[3];e[13]=b[7];e[14]=b[11];e[15]=b[15];return e},determinant:function(b){var e=b[0],a=b[1],c=b[2],p=b[3],d=b[4],f=b[5],g=b[6],h=b[7],v=b[8],j=b[9],I=b[10],k=b[11],l=b[12],q=b[13],m=b[14];b=b[15];return l*j*g*p-v*q*g*p-l*f*I*p+d*q*I*p+v*f*m*p-d*j*m*p-l*j*c*h+v*q*c*h+l*a*I*h-e*q*I*h-v*a*m*h+e*j*m*h+l*f*c*k-d*q*c*k-l*a*g*k+e*q*g*k+d*a*m*k-e*f*m*k-v*f*c*b+d*j*c*b+v*a*g*b-e*j*g*b-d*a*I*b+e*f*I*b},inverse:function(b,
e){e||(e=b);var a=b[0],c=b[1],p=b[2],d=b[3],f=b[4],g=b[5],h=b[6],v=b[7],j=b[8],k=b[9],l=b[10],m=b[11],q=b[12],n=b[13],t=b[14],r=b[15],w=a*g-c*f,B=a*h-p*f,z=a*v-d*f,A=c*h-p*g,s=c*v-d*g,u=p*v-d*h,x=j*n-k*q,y=j*t-l*q,C=j*r-m*q,D=k*t-l*n,E=k*r-m*n,J=l*r-m*t,F=w*J-B*E+z*D+A*C-s*y+u*x;if(!F)return null;F=1/F;e[0]=(g*J-h*E+v*D)*F;e[1]=(-c*J+p*E-d*D)*F;e[2]=(n*u-t*s+r*A)*F;e[3]=(-k*u+l*s-m*A)*F;e[4]=(-f*J+h*C-v*y)*F;e[5]=(a*J-p*C+d*y)*F;e[6]=(-q*u+t*z-r*B)*F;e[7]=(j*u-l*z+m*B)*F;e[8]=(f*E-g*C+v*x)*F;e[9]=
(-a*E+c*C-d*x)*F;e[10]=(q*s-n*z+r*w)*F;e[11]=(-j*s+k*z-m*w)*F;e[12]=(-f*D+g*y-h*x)*F;e[13]=(a*D-c*y+p*x)*F;e[14]=(-q*A+n*B-t*w)*F;e[15]=(j*A-k*B+l*w)*F;return e},toRotationMat:function(b,e){e||(e=s.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=0;e[13]=0;e[14]=0;e[15]=1;return e},toMat3:function(b,e){e||(e=x.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[4];e[4]=b[5];e[5]=b[6];e[6]=b[8];e[7]=b[9];e[8]=b[10];
return e},toInverseMat3:function(b,e){var a=b[0],c=b[1],d=b[2],f=b[4],H=b[5],g=b[6],h=b[8],j=b[9],k=b[10],l=k*H-g*j,m=-k*f+g*h,n=j*f-H*h,q=a*l+c*m+d*n;if(!q)return null;q=1/q;e||(e=x.create());e[0]=l*q;e[1]=(-k*c+d*j)*q;e[2]=(g*c-d*H)*q;e[3]=m*q;e[4]=(k*a-d*h)*q;e[5]=(-g*a+d*f)*q;e[6]=n*q;e[7]=(-j*a+c*h)*q;e[8]=(H*a-c*f)*q;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],d=b[1],f=b[2],H=b[3],g=b[4],h=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],q=b[11],r=b[12],t=b[13],s=b[14];b=b[15];var w=e[0],
B=e[1],z=e[2],A=e[3];a[0]=w*c+B*g+z*l+A*r;a[1]=w*d+B*h+z*m+A*t;a[2]=w*f+B*j+z*n+A*s;a[3]=w*H+B*k+z*q+A*b;w=e[4];B=e[5];z=e[6];A=e[7];a[4]=w*c+B*g+z*l+A*r;a[5]=w*d+B*h+z*m+A*t;a[6]=w*f+B*j+z*n+A*s;a[7]=w*H+B*k+z*q+A*b;w=e[8];B=e[9];z=e[10];A=e[11];a[8]=w*c+B*g+z*l+A*r;a[9]=w*d+B*h+z*m+A*t;a[10]=w*f+B*j+z*n+A*s;a[11]=w*H+B*k+z*q+A*b;w=e[12];B=e[13];z=e[14];A=e[15];a[12]=w*c+B*g+z*l+A*r;a[13]=w*d+B*h+z*m+A*t;a[14]=w*f+B*j+z*n+A*s;a[15]=w*H+B*k+z*q+A*b;return a},multiplyVec3:function(b,e,a){a||(a=e);
var c=e[0],d=e[1];e=e[2];a[0]=b[0]*c+b[4]*d+b[8]*e+b[12];a[1]=b[1]*c+b[5]*d+b[9]*e+b[13];a[2]=b[2]*c+b[6]*d+b[10]*e+b[14];return a},multiplyVec4:function(b,e,a){a||(a=e);var c=e[0],d=e[1],f=e[2];e=e[3];a[0]=b[0]*c+b[4]*d+b[8]*f+b[12]*e;a[1]=b[1]*c+b[5]*d+b[9]*f+b[13]*e;a[2]=b[2]*c+b[6]*d+b[10]*f+b[14]*e;a[3]=b[3]*c+b[7]*d+b[11]*f+b[15]*e;return a},translate:function(b,e,a){var c=e[0],d=e[1];e=e[2];var f,g,h,j,v,k,l,m,n,q,r,t;if(!a||b===a)return b[12]=b[0]*c+b[4]*d+b[8]*e+b[12],b[13]=b[1]*c+b[5]*d+
b[9]*e+b[13],b[14]=b[2]*c+b[6]*d+b[10]*e+b[14],b[15]=b[3]*c+b[7]*d+b[11]*e+b[15],b;f=b[0];g=b[1];h=b[2];j=b[3];v=b[4];k=b[5];l=b[6];m=b[7];n=b[8];q=b[9];r=b[10];t=b[11];a[0]=f;a[1]=g;a[2]=h;a[3]=j;a[4]=v;a[5]=k;a[6]=l;a[7]=m;a[8]=n;a[9]=q;a[10]=r;a[11]=t;a[12]=f*c+v*d+n*e+b[12];a[13]=g*c+k*d+q*e+b[13];a[14]=h*c+l*d+r*e+b[14];a[15]=j*c+m*d+t*e+b[15];return a},scale:function(b,e,a){var c=e[0],d=e[1];e=e[2];if(!a||b===a)return b[0]*=c,b[1]*=c,b[2]*=c,b[3]*=c,b[4]*=d,b[5]*=d,b[6]*=d,b[7]*=d,b[8]*=e,b[9]*=
e,b[10]*=e,b[11]*=e,b;a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*d;a[5]=b[5]*d;a[6]=b[6]*d;a[7]=b[7]*d;a[8]=b[8]*e;a[9]=b[9]*e;a[10]=b[10]*e;a[11]=b[11]*e;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a},rotate:function(b,e,a,c){var d=a[0],f=a[1];a=a[2];var g=Math.sqrt(d*d+f*f+a*a),h,j,k,l,m,n,r,q,s,t,u,w,B,z,A,x,y,C,D,E;if(!g)return null;1!==g&&(g=1/g,d*=g,f*=g,a*=g);h=Math.sin(e);j=Math.cos(e);k=1-j;e=b[0];g=b[1];l=b[2];m=b[3];n=b[4];r=b[5];q=b[6];s=b[7];t=b[8];u=b[9];w=
b[10];B=b[11];z=d*d*k+j;A=f*d*k+a*h;x=a*d*k-f*h;y=d*f*k-a*h;C=f*f*k+j;D=a*f*k+d*h;E=d*a*k+f*h;d=f*a*k-d*h;f=a*a*k+j;c?b!==c&&(c[12]=b[12],c[13]=b[13],c[14]=b[14],c[15]=b[15]):c=b;c[0]=e*z+n*A+t*x;c[1]=g*z+r*A+u*x;c[2]=l*z+q*A+w*x;c[3]=m*z+s*A+B*x;c[4]=e*y+n*C+t*D;c[5]=g*y+r*C+u*D;c[6]=l*y+q*C+w*D;c[7]=m*y+s*C+B*D;c[8]=e*E+n*d+t*f;c[9]=g*E+r*d+u*f;c[10]=l*E+q*d+w*f;c[11]=m*E+s*d+B*f;return c},rotateX:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[4],f=b[5],g=b[6],h=b[7],j=b[8],k=b[9],l=b[10],
m=b[11];a?b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[4]=d*e+j*c;a[5]=f*e+k*c;a[6]=g*e+l*c;a[7]=h*e+m*c;a[8]=d*-c+j*e;a[9]=f*-c+k*e;a[10]=g*-c+l*e;a[11]=h*-c+m*e;return a},rotateY:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[8],k=b[9],l=b[10],m=b[11];a?b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*-c;a[1]=f*e+k*-c;a[2]=g*e+l*-c;a[3]=h*
e+m*-c;a[8]=d*c+j*e;a[9]=f*c+k*e;a[10]=g*c+l*e;a[11]=h*c+m*e;return a},rotateZ:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[4],k=b[5],l=b[6],m=b[7];a?b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*c;a[1]=f*e+k*c;a[2]=g*e+l*c;a[3]=h*e+m*c;a[4]=d*-c+j*e;a[5]=f*-c+k*e;a[6]=g*-c+l*e;a[7]=h*-c+m*e;return a},frustum:function(b,e,a,c,d,f,g){g||(g=s.create());var h=e-b,j=c-a,k=f-d;g[0]=2*d/h;g[1]=0;
g[2]=0;g[3]=0;g[4]=0;g[5]=2*d/j;g[6]=0;g[7]=0;g[8]=(e+b)/h;g[9]=(c+a)/j;g[10]=-(f+d)/k;g[11]=-1;g[12]=0;g[13]=0;g[14]=-(2*f*d)/k;g[15]=0;return g},perspective:function(b,e,a,c,d){b=a*Math.tan(b*Math.PI/360);e*=b;return s.frustum(-e,e,-b,b,a,c,d)},ortho:function(b,a,c,d,f,g,h){h||(h=s.create());var j=a-b,k=d-c,l=g-f;h[0]=2/j;h[1]=0;h[2]=0;h[3]=0;h[4]=0;h[5]=2/k;h[6]=0;h[7]=0;h[8]=0;h[9]=0;h[10]=-2/l;h[11]=0;h[12]=-(b+a)/j;h[13]=-(d+c)/k;h[14]=-(g+f)/l;h[15]=1;return h},lookAt:function(b,a,c,d){d||
(d=s.create());var f,g,h,j,k,l,m,n,r=b[0],u=b[1];b=b[2];h=c[0];j=c[1];g=c[2];m=a[0];c=a[1];f=a[2];if(r===m&&u===c&&b===f)return s.identity(d);a=r-m;c=u-c;m=b-f;n=1/Math.sqrt(a*a+c*c+m*m);a*=n;c*=n;m*=n;f=j*m-g*c;g=g*a-h*m;h=h*c-j*a;(n=Math.sqrt(f*f+g*g+h*h))?(n=1/n,f*=n,g*=n,h*=n):h=g=f=0;j=c*h-m*g;k=m*f-a*h;l=a*g-c*f;(n=Math.sqrt(j*j+k*k+l*l))?(n=1/n,j*=n,k*=n,l*=n):l=k=j=0;d[0]=f;d[1]=j;d[2]=a;d[3]=0;d[4]=g;d[5]=k;d[6]=c;d[7]=0;d[8]=h;d[9]=l;d[10]=m;d[11]=0;d[12]=-(f*r+g*u+h*b);d[13]=-(j*r+k*u+
l*b);d[14]=-(a*r+c*u+m*b);d[15]=1;return d},fromRotationTranslation:function(b,a,c){c||(c=s.create());var d=b[0],f=b[1],g=b[2],h=b[3],j=d+d,k=f+f,l=g+g;b=d*j;var m=d*k,d=d*l,n=f*k,f=f*l,g=g*l,j=h*j,k=h*k,h=h*l;c[0]=1-(n+g);c[1]=m+h;c[2]=d-k;c[3]=0;c[4]=m-h;c[5]=1-(b+g);c[6]=f+j;c[7]=0;c[8]=d+k;c[9]=f-j;c[10]=1-(b+n);c[11]=0;c[12]=a[0];c[13]=a[1];c[14]=a[2];c[15]=1;return c},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+b[8]+", "+b[9]+", "+
b[10]+", "+b[11]+", "+b[12]+", "+b[13]+", "+b[14]+", "+b[15]+"]"}},l={create:function(b){var a=new j(4);b?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a[0]=a[1]=a[2]=a[3]=0;return a},createFrom:function(b,a,c,d){var f=new j(4);f[0]=b;f[1]=a;f[2]=c;f[3]=d;return f},set:function(b,a){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])&&1E-6>Math.abs(b[2]-a[2])&&1E-6>Math.abs(b[3]-a[3])},identity:function(b){b||(b=l.create());
b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b}},E=l.identity();l.calculateW=function(b,a){var c=b[0],d=b[1],f=b[2];if(!a||b===a)return b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f)),b;a[0]=c;a[1]=d;a[2]=f;a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f));return a};l.dot=function(b,a){return b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3]};l.inverse=function(b,a){var c=b[0],d=b[1],f=b[2],g=b[3],c=(c=c*c+d*d+f*f+g*g)?1/c:0;if(!a||b===a)return b[0]*=-c,b[1]*=-c,b[2]*=-c,b[3]*=c,b;a[0]=-b[0]*c;a[1]=-b[1]*c;a[2]=-b[2]*c;a[3]=b[3]*c;
return a};l.conjugate=function(b,a){if(!a||b===a)return b[0]*=-1,b[1]*=-1,b[2]*=-1,b;a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=b[3];return a};l.length=function(b){var a=b[0],c=b[1],d=b[2];b=b[3];return Math.sqrt(a*a+c*c+d*d+b*b)};l.normalize=function(b,a){a||(a=b);var c=b[0],d=b[1],f=b[2],g=b[3],h=Math.sqrt(c*c+d*d+f*f+g*g);if(0===h)return a[0]=0,a[1]=0,a[2]=0,a[3]=0,a;h=1/h;a[0]=c*h;a[1]=d*h;a[2]=f*h;a[3]=g*h;return a};l.add=function(b,a,c){if(!c||b===c)return b[0]+=a[0],b[1]+=a[1],b[2]+=a[2],b[3]+=
a[3],b;c[0]=b[0]+a[0];c[1]=b[1]+a[1];c[2]=b[2]+a[2];c[3]=b[3]+a[3];return c};l.multiply=function(b,a,c){c||(c=b);var d=b[0],f=b[1],g=b[2];b=b[3];var h=a[0],j=a[1],k=a[2];a=a[3];c[0]=d*a+b*h+f*k-g*j;c[1]=f*a+b*j+g*h-d*k;c[2]=g*a+b*k+d*j-f*h;c[3]=b*a-d*h-f*j-g*k;return c};l.multiplyVec3=function(b,a,c){c||(c=a);var d=a[0],f=a[1],g=a[2];a=b[0];var h=b[1],j=b[2];b=b[3];var k=b*d+h*g-j*f,l=b*f+j*d-a*g,m=b*g+a*f-h*d,d=-a*d-h*f-j*g;c[0]=k*b+d*-a+l*-j-m*-h;c[1]=l*b+d*-h+m*-a-k*-j;c[2]=m*b+d*-j+k*-h-l*-a;
return c};l.scale=function(b,a,c){if(!c||b===c)return b[0]*=a,b[1]*=a,b[2]*=a,b[3]*=a,b;c[0]=b[0]*a;c[1]=b[1]*a;c[2]=b[2]*a;c[3]=b[3]*a;return c};l.toMat3=function(b,a){a||(a=x.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=m-g;a[4]=1-(l+f);a[5]=d+h;a[6]=c+j;a[7]=d-h;a[8]=1-(l+n);return a};l.toMat4=function(b,a){a||(a=s.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*
k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=0;a[4]=m-g;a[5]=1-(l+f);a[6]=d+h;a[7]=0;a[8]=c+j;a[9]=d-h;a[10]=1-(l+n);a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};l.slerp=function(b,a,c,d){d||(d=b);var f=b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3],g,h;if(1<=Math.abs(f))return d!==b&&(d[0]=b[0],d[1]=b[1],d[2]=b[2],d[3]=b[3]),d;g=Math.acos(f);h=Math.sqrt(1-f*f);if(0.0010>Math.abs(h))return d[0]=0.5*b[0]+0.5*a[0],d[1]=0.5*b[1]+0.5*a[1],d[2]=0.5*b[2]+0.5*a[2],d[3]=0.5*b[3]+
0.5*a[3],d;f=Math.sin((1-c)*g)/h;c=Math.sin(c*g)/h;d[0]=b[0]*f+a[0]*c;d[1]=b[1]*f+a[1]*c;d[2]=b[2]*f+a[2]*c;d[3]=b[3]*f+a[3]*c;return d};l.fromRotationMatrix=function(b,a){a||(a=l.create());var c=b[0]+b[4]+b[8],d;if(0<c)d=Math.sqrt(c+1),a[3]=0.5*d,d=0.5/d,a[0]=(b[7]-b[5])*d,a[1]=(b[2]-b[6])*d,a[2]=(b[3]-b[1])*d;else{d=l.fromRotationMatrix.s_iNext=l.fromRotationMatrix.s_iNext||[1,2,0];c=0;b[4]>b[0]&&(c=1);b[8]>b[3*c+c]&&(c=2);var f=d[c],g=d[f];d=Math.sqrt(b[3*c+c]-b[3*f+f]-b[3*g+g]+1);a[c]=0.5*d;d=
0.5/d;a[3]=(b[3*g+f]-b[3*f+g])*d;a[f]=(b[3*f+c]+b[3*c+f])*d;a[g]=(b[3*g+c]+b[3*c+g])*d}return a};x.toQuat4=l.fromRotationMatrix;var D=x.create();l.fromAxes=function(b,a,c,d){D[0]=a[0];D[3]=a[1];D[6]=a[2];D[1]=c[0];D[4]=c[1];D[7]=c[2];D[2]=b[0];D[5]=b[1];D[8]=b[2];return l.fromRotationMatrix(D,d)};l.identity=function(b){b||(b=l.create());b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b};l.fromAngleAxis=function(b,a,c){c||(c=l.create());b*=0.5;var d=Math.sin(b);c[3]=Math.cos(b);c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];
return c};l.toAngleAxis=function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1]+b[2]*b[2];0<c?(a[3]=2*Math.acos(b[3]),c=d.invsqrt(c),a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c):(a[3]=0,a[0]=1,a[1]=0,a[2]=0);return a};l.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+"]"};var L={create:function(b){var a=new j(2);b?(a[0]=b[0],a[1]=b[1]):(a[0]=0,a[1]=0);return a},createFrom:function(b,a){var c=new j(2);c[0]=b;c[1]=a;return c},add:function(b,a,c){c||(c=a);c[0]=b[0]+a[0];c[1]=b[1]+a[1];return c},subtract:function(b,
a,c){c||(c=a);c[0]=b[0]-a[0];c[1]=b[1]-a[1];return c},multiply:function(b,a,c){c||(c=a);c[0]=b[0]*a[0];c[1]=b[1]*a[1];return c},divide:function(b,a,c){c||(c=a);c[0]=b[0]/a[0];c[1]=b[1]/a[1];return c},scale:function(b,a,c){c||(c=b);c[0]=b[0]*a;c[1]=b[1]*a;return c},dist:function(b,a){var c=a[0]-b[0],d=a[1]-b[1];return Math.sqrt(c*c+d*d)},set:function(b,a){a[0]=b[0];a[1]=b[1];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])},negate:function(b,a){a||(a=b);
a[0]=-b[0];a[1]=-b[1];return a},normalize:function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1];0<c?(c=Math.sqrt(c),a[0]=b[0]/c,a[1]=b[1]/c):a[0]=a[1]=0;return a},cross:function(b,a,c){b=b[0]*a[1]-b[1]*a[0];if(!c)return b;c[0]=c[1]=0;c[2]=b;return c},length:function(b){var a=b[0];b=b[1];return Math.sqrt(a*a+b*b)},squaredLength:function(b){var a=b[0];b=b[1];return a*a+b*b},dot:function(b,a){return b[0]*a[0]+b[1]*a[1]},direction:function(b,a,c){c||(c=b);var d=b[0]-a[0];b=b[1]-a[1];a=d*d+b*b;if(!a)return c[0]=
0,c[1]=0,c[2]=0,c;a=1/Math.sqrt(a);c[0]=d*a;c[1]=b*a;return c},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);return f},str:function(a){return"["+a[0]+", "+a[1]+"]"}},K={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):c[0]=c[1]=c[2]=c[3]=0;return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>
Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},identity:function(a){a||(a=K.create());a[0]=1;a[1]=0;a[2]=0;a[3]=1;return a},transpose:function(a,c){if(!c||a===c){var d=a[1];a[1]=a[2];a[2]=d;return a}c[0]=a[0];c[1]=a[2];c[2]=a[1];c[3]=a[3];return c},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},inverse:function(a,c){c||(c=a);var d=a[0],f=a[1],g=a[2],h=a[3],j=d*h-g*f;if(!j)return null;j=1/j;c[0]=h*j;c[1]=-f*j;c[2]=-g*j;c[3]=d*j;return c},multiply:function(a,
c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];d[0]=f*c[0]+g*c[2];d[1]=f*c[1]+g*c[3];d[2]=h*c[0]+a*c[2];d[3]=h*c[1]+a*c[3];return d},rotate:function(a,c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];var j=Math.sin(c);c=Math.cos(c);d[0]=f*c+g*j;d[1]=f*-j+g*c;d[2]=h*c+a*j;d[3]=h*-j+a*c;return d},multiplyVec2:function(a,c,d){d||(d=c);var f=c[0];c=c[1];d[0]=f*a[0]+c*a[1];d[1]=f*a[2]+c*a[3];return d},scale:function(a,c,d){d||(d=a);var f=a[1],g=a[2],h=a[3],j=c[0];c=c[1];d[0]=a[0]*j;d[1]=f*c;d[2]=g*j;d[3]=
h*c;return d},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},M={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):(c[0]=0,c[1]=0,c[2]=0,c[3]=0);return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},add:function(a,c,d){d||(d=c);d[0]=a[0]+c[0];d[1]=a[1]+c[1];d[2]=a[2]+c[2];d[3]=a[3]+c[3];return d},subtract:function(a,c,d){d||(d=c);d[0]=a[0]-c[0];d[1]=a[1]-c[1];d[2]=a[2]-c[2];d[3]=a[3]-c[3];return d},multiply:function(a,
c,d){d||(d=c);d[0]=a[0]*c[0];d[1]=a[1]*c[1];d[2]=a[2]*c[2];d[3]=a[3]*c[3];return d},divide:function(a,c,d){d||(d=c);d[0]=a[0]/c[0];d[1]=a[1]/c[1];d[2]=a[2]/c[2];d[3]=a[3]/c[3];return d},scale:function(a,c,d){d||(d=a);d[0]=a[0]*c;d[1]=a[1]*c;d[2]=a[2]*c;d[3]=a[3]*c;return d},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},negate:function(a,c){c||
(c=a);c[0]=-a[0];c[1]=-a[1];c[2]=-a[2];c[3]=-a[3];return c},length:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return Math.sqrt(c*c+d*d+f*f+a*a)},squaredLength:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return c*c+d*d+f*f+a*a},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);f[2]=a[2]+d*(c[2]-a[2]);f[3]=a[3]+d*(c[3]-a[3]);return f},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}};a&&(a.glMatrixArrayType=j,a.MatrixArray=j,a.setMatrixArrayType=c,a.determineMatrixArrayType=
f,a.glMath=d,a.vec2=L,a.vec3=k,a.vec4=M,a.mat2=K,a.mat3=x,a.mat4=s,a.quat4=l);return{glMatrixArrayType:j,MatrixArray:j,setMatrixArrayType:c,determineMatrixArrayType:f,glMath:d,vec2:L,vec3:k,vec4:M,mat2:K,mat3:x,mat4:s,quat4:l}});PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor \x3d texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor \x3d gl_FragColor * vColor;","}"];
PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position \x3d uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord \x3d aTextureCoord;","vColor \x3d aColor;","}"];
PIXI.CompileVertexShader=function(b,c){for(var f="",e=0;e<c.length;e++)f+=c[e];e=b.createShader(b.VERTEX_SHADER);b.shaderSource(e,f);b.compileShader(e);return!b.getShaderParameter(e,b.COMPILE_STATUS)?(alert(b.getShaderInfoLog(e)),null):e};PIXI.CompileFragmentShader=function(b,c){for(var f="",e=0;e<c.length;e++)f+=c[e];e=b.createShader(b.FRAGMENT_SHADER);b.shaderSource(e,f);b.compileShader(e);return!b.getShaderParameter(e,b.COMPILE_STATUS)?(alert(b.getShaderInfoLog(e)),null):e};PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1);
PIXI.WebGLRenderer=function(b,c){this.width=b?b:800;this.height=c?c:600;this.view=document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.view.background="#FF0000";var f=this;this.view.addEventListener("webglcontextlost",function(b){f.handleContextLost(b)},!1);this.view.addEventListener("webglcontextrestored",function(b){f.handleContextRestored(b)},!1);this.batchs=[];try{this.gl=this.view.getContext("experimental-webgl",{alpha:!1})}catch(e){throw Error(" This browser does not support webGL. Try using the canvas renderer"+
this);}this.initShaders();var g=this.gl;this.batch=new PIXI.WebGLBatch(g);g.disable(g.DEPTH_TEST);g.enable(g.BLEND);g.colorMask(!0,!0,!0,!1);this.projectionMatrix=mat4.create();this.resize(this.width,this.height);this.contextLost=!1};PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer;
PIXI.WebGLRenderer.prototype.initShaders=function(){var b=this.gl,c=PIXI.CompileFragmentShader(b,PIXI.shaderFragmentSrc),f=PIXI.CompileVertexShader(b,PIXI.shaderVertexSrc),e=this.shaderProgram=b.createProgram();b.attachShader(e,f);b.attachShader(e,c);b.linkProgram(e);b.getProgramParameter(e,b.LINK_STATUS)||alert("Could not initialise shaders");b.useProgram(e);e.vertexPositionAttribute=b.getAttribLocation(e,"aVertexPosition");b.enableVertexAttribArray(e.vertexPositionAttribute);e.textureCoordAttribute=
b.getAttribLocation(e,"aTextureCoord");b.enableVertexAttribArray(e.textureCoordAttribute);e.colorAttribute=b.getAttribLocation(e,"aColor");b.enableVertexAttribArray(e.colorAttribute);e.mvMatrixUniform=b.getUniformLocation(e,"uMVMatrix");e.samplerUniform=b.getUniformLocation(e,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(b,c){for(var f=b.children,e=0;e<f.length;e++){var g=f[e],h=g.visible&&c;g.textureChange&&(g.textureChange=!1,h&&(this.removeDisplayObject(g),this.addDisplayObject(g)));g.cacheVisible!=h&&(g.cacheVisible=h,g.cacheVisible?this.addDisplayObject(g):this.removeDisplayObject(g));0<g.children.length&&this.checkVisibility(g,h)}};
PIXI.WebGLRenderer.prototype.render=function(b){if(!this.contextLost){for(var c=0;c<b.__childrenRemoved.length;c++)this.removeDisplayObject(b.__childrenRemoved[c]);for(c=0;c<PIXI.texturesToUpdate.length;c++)this.updateTexture(PIXI.texturesToUpdate[c]);b.__childrenRemoved=[];b.__childrenAdded=[];PIXI.texturesToUpdate=[];this.checkVisibility(b,!0);b.updateTransform();c=this.gl;c.clear(c.COLOR_BUFFER_BIT);c.clearColor(b.backgroundColorSplit[0],b.backgroundColorSplit[1],b.backgroundColorSplit[2],1);c.blendFunc(c.ONE,
c.ONE_MINUS_SRC_ALPHA);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix);for(c=0;c<this.batchs.length;c++)b=this.batchs[c],b instanceof PIXI.WebGLBatch?this.batchs[c].render():b instanceof PIXI.Strip&&b.visible&&this.renderStrip(b)}};
PIXI.WebGLRenderer.prototype.updateTexture=function(b){var c=this.gl;b._glTexture||(b._glTexture=c.createTexture());b.hasLoaded&&(c.bindTexture(c.TEXTURE_2D,b._glTexture),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,b.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,
PIXI.CompileVertexShader=function(a,c){for(var f="",d=0;d<c.length;d++)f+=c[d];d=a.createShader(a.VERTEX_SHADER);a.shaderSource(d,f);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};PIXI.CompileFragmentShader=function(a,c){for(var f="",d=0;d<c.length;d++)f+=c[d];d=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(d,f);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1);
PIXI.WebGLRenderer=function(a,c,f){this.width=a?a:800;this.height=c?c:600;this.view=f?f:document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.view.background="#FF0000";var d=this;this.view.addEventListener("webglcontextlost",function(a){d.handleContextLost(a)},!1);this.view.addEventListener("webglcontextrestored",function(a){d.handleContextRestored(a)},!1);this.batchs=[];try{this.gl=this.view.getContext("experimental-webgl",{alpha:!1})}catch(g){throw Error(" This browser does not support webGL. Try using the canvas renderer"+
this);}this.initShaders();a=this.gl;this.batch=new PIXI.WebGLBatch(a);a.disable(a.DEPTH_TEST);a.enable(a.BLEND);a.colorMask(!0,!0,!0,!1);this.projectionMatrix=mat4.create();this.resize(this.width,this.height);this.contextLost=!1};PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer;
PIXI.WebGLRenderer.prototype.initShaders=function(){var a=this.gl,c=PIXI.CompileFragmentShader(a,PIXI.shaderFragmentSrc),f=PIXI.CompileVertexShader(a,PIXI.shaderVertexSrc),d=this.shaderProgram=a.createProgram();a.attachShader(d,f);a.attachShader(d,c);a.linkProgram(d);a.getProgramParameter(d,a.LINK_STATUS)||alert("Could not initialise shaders");a.useProgram(d);d.vertexPositionAttribute=a.getAttribLocation(d,"aVertexPosition");a.enableVertexAttribArray(d.vertexPositionAttribute);d.textureCoordAttribute=
a.getAttribLocation(d,"aTextureCoord");a.enableVertexAttribArray(d.textureCoordAttribute);d.colorAttribute=a.getAttribLocation(d,"aColor");a.enableVertexAttribArray(d.colorAttribute);d.mvMatrixUniform=a.getUniformLocation(d,"uMVMatrix");d.samplerUniform=a.getUniformLocation(d,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(a,c){for(var f=a.children,d=0;d<f.length;d++){var g=f[d],h=g.visible&&c;g.textureChange&&(g.textureChange=!1,h&&(this.removeDisplayObject(g),this.addDisplayObject(g)));g.cacheVisible!=h&&(g.cacheVisible=h,g.cacheVisible?this.addDisplayObject(g):this.removeDisplayObject(g));0<g.children.length&&this.checkVisibility(g,h)}};
PIXI.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){for(var c=0;c<a.__childrenRemoved.length;c++)this.removeDisplayObject(a.__childrenRemoved[c]);for(c=0;c<PIXI.texturesToUpdate.length;c++)this.updateTexture(PIXI.texturesToUpdate[c]);a.__childrenRemoved=[];a.__childrenAdded=[];PIXI.texturesToUpdate=[];this.checkVisibility(a,!0);a.updateTransform();c=this.gl;c.clear(c.COLOR_BUFFER_BIT);c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1);c.blendFunc(c.ONE,
c.ONE_MINUS_SRC_ALPHA);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix);for(var f,c=0;c<this.batchs.length;c++)f=this.batchs[c],f instanceof PIXI.WebGLBatch?this.batchs[c].render():f instanceof PIXI.Strip&&f.visible&&this.renderStrip(f);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))}};
PIXI.WebGLRenderer.prototype.updateTexture=function(a){var c=this.gl;a._glTexture||(a._glTexture=c.createTexture());a.hasLoaded&&(c.bindTexture(c.TEXTURE_2D,a._glTexture),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,
c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),c.bindTexture(c.TEXTURE_2D,null));this.refreshBatchs=!0};
PIXI.WebGLRenderer.prototype.addDisplayObject=function(b){if(b.stage&&!b.__inWebGL&&(b.batch=null,b.renderable)){b.__inWebGL=!0;var c=b;do{if(0==c.childIndex)c=c.parent;else for(c=c.parent.children[c.childIndex-1];0!=c.children.length;)c=c.children[c.children.length-1];if(c==b.stage)break}while(!c.renderable||!c.__inWebGL);var f=b;do{if(0==f.children.length){for(;f.childIndex==f.parent.children.length-1;)if(f=f.parent,f==b.stage){f=null;break}f&&(f=f.parent.children[f.childIndex+1])}else f=f.children[0];
if(!f)break}while(!f.renderable||!f.__inWebGL);if(b instanceof PIXI.Sprite){var e;if(c instanceof PIXI.Sprite){if((e=c.batch)&&e.texture==b.texture.baseTexture&&e.blendMode==b.blendMode){e.insertAfter(b,c);return}}else e=c;if(f&&f instanceof PIXI.Sprite&&(c=f.batch)){if(c.texture==b.texture.baseTexture&&c.blendMode==b.blendMode){c.insertBefore(b,f);return}if(c==e){f=e.split(f);c=PIXI._getBatch(this.gl);e=this.batchs.indexOf(e);c.init(b);this.batchs.splice(e+1,0,c,f);return}}c=PIXI._getBatch(this.gl);
c.init(b);e?(e=this.batchs.indexOf(e),this.batchs.splice(e+1,0,c)):this.batchs.push(c)}else b instanceof PIXI.Strip&&(this.initStrip(b),this.batchs.push(b));this.batchUpdate=!0}};
PIXI.WebGLRenderer.prototype.removeDisplayObject=function(b){b.cacheVisible=!1;if(b.renderable){b.__inWebGL=!1;var c;if(b instanceof PIXI.Sprite){var f=b.batch;if(!f)return;f.remove(b);0==f.size&&(c=f)}else c=b;c&&(b=this.batchs.indexOf(c),-1!=b&&(!(0==b||b==this.batchs.length-1)&&this.batchs[b-1]instanceof PIXI.WebGLBatch&&this.batchs[b+1]instanceof PIXI.WebGLBatch&&this.batchs[b-1].texture==this.batchs[b+1].texture&&this.batchs[b-1].blendMode==this.batchs[b+1].blendMode?(this.batchs[b-1].merge(this.batchs[b+
1]),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c),PIXI._returnBatch(this.batchs[b+1]),this.batchs.splice(b,2)):(this.batchs.splice(b,1),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c))))}};
PIXI.WebGLRenderer.prototype.resize=function(b,c){this.width=b;this.height=c;this.view.width=b;this.view.height=c;this.gl.viewport(0,0,this.width,this.height);mat4.identity(this.projectionMatrix);mat4.scale(this.projectionMatrix,[2/this.width,-2/this.height,1]);mat4.translate(this.projectionMatrix,[-this.width/2,-this.height/2,0])};
PIXI.WebGLRenderer.prototype.initStrip=function(b){var c=this.gl;b._vertexBuffer=c.createBuffer();b._indexBuffer=c.createBuffer();b._uvBuffer=c.createBuffer();b._colorBuffer=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,b._vertexBuffer);c.bufferData(c.ARRAY_BUFFER,b.verticies,c.DYNAMIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,b._uvBuffer);c.bufferData(c.ARRAY_BUFFER,b.uvs,c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,b._colorBuffer);c.bufferData(c.ARRAY_BUFFER,b.colors,c.STATIC_DRAW);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
b._indexBuffer);c.bufferData(c.ELEMENT_ARRAY_BUFFER,b.indices,c.STATIC_DRAW)};
PIXI.WebGLRenderer.prototype.renderStrip=function(b){var c=this.gl,f=this.shaderProgram,e=mat3.toMat4(b.worldTransform);mat4.transpose(e);mat4.multiply(this.projectionMatrix,e,e);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,e);b.blendMode==PIXI.blendModes.NORMAL?c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA):c.blendFunc(c.ONE,c.ONE_MINUS_SRC_COLOR);b.dirty?(b.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,b._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,b.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.vertexPositionAttribute,
2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,b._uvBuffer),c.bufferData(c.ARRAY_BUFFER,b.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,b.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,b._colorBuffer),c.bufferData(c.ARRAY_BUFFER,b.colors,c.STATIC_DRAW),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,b._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,
b.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,b._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,b.verticies),c.vertexAttribPointer(f.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,b._uvBuffer),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,b.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,b._colorBuffer),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
b._indexBuffer));c.drawElements(c.TRIANGLE_STRIP,b.indices.length,c.UNSIGNED_SHORT,0);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix)};PIXI.WebGLRenderer.prototype.handleContextLost=function(b){b.preventDefault();this.contextLost=!0};
PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0});this.initShaders();for(var b=0;b<PIXI.TextureCache.length;b++)this.updateTexture(PIXI.TextureCache[b]);for(b=0;b<this.batchs.length;b++)this.batchs[b].restoreLostContext(this.gl),this.batchs[b].dirty=!0;PIXI._restoreBatchs(this.gl);this.contextLost=!1};PIXI._batchs=[];PIXI._getBatch=function(b){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(b):PIXI._batchs.pop()};PIXI._returnBatch=function(b){b.clean();PIXI._batchs.push(b)};PIXI._restoreBatchs=function(b){for(var c=0;c<PIXI._batchs.length;c++)PIXI._batchs[c].restoreLostContext(b)};
PIXI.WebGLBatch=function(b){this.gl=b;this.size=0;this.vertexBuffer=b.createBuffer();this.indexBuffer=b.createBuffer();this.uvBuffer=b.createBuffer();this.colorBuffer=b.createBuffer();this.blendMode=PIXI.blendModes.NORMAL;this.dynamicSize=1};PIXI.WebGLBatch.constructor=PIXI.WebGLBatch;PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[];this.uvs=[];this.indices=[];this.colors=[];this.dynamicSize=1;this.last=this.texture=null;this.size=0;this.head;this.tail};
PIXI.WebGLBatch.prototype.restoreLostContext=function(b){this.gl=b;this.vertexBuffer=b.createBuffer();this.indexBuffer=b.createBuffer();this.uvBuffer=b.createBuffer();this.colorBuffer=b.createBuffer()};PIXI.WebGLBatch.prototype.init=function(b){b.batch=this;this.dirty=!0;this.blendMode=b.blendMode;this.texture=b.texture.baseTexture;this.tail=this.head=b;this.size=1;this.growBatch()};
PIXI.WebGLBatch.prototype.insertBefore=function(b,c){this.size++;b.batch=this;this.dirty=!0;var f=c.__prev;c.__prev=b;b.__next=c;f?(b.__prev=f,f.__next=b):this.head=b};PIXI.WebGLBatch.prototype.insertAfter=function(b,c){this.size++;b.batch=this;this.dirty=!0;var f=c.__next;c.__next=b;b.__prev=c;f?(b.__next=f,f.__prev=b):this.tail=b};
PIXI.WebGLBatch.prototype.remove=function(b){this.size--;0==this.size?(b.batch=null,b.__prev=null,b.__next=null):(b.__prev?b.__prev.__next=b.__next:(this.head=b.__next,this.head.__prev=null),b.__next?b.__next.__prev=b.__prev:(this.tail=b.__prev,this.tail.__next=null),b.batch=null,b.__next=null,b.__prev=null,this.dirty=!0)};
PIXI.WebGLBatch.prototype.split=function(b){this.dirty=!0;var c=new PIXI.WebGLBatch(this.gl);c.init(b);c.tail=this.tail;this.tail=b.__prev;this.tail.__next=null;b.__prev=null;for(var f=0;b;)f++,b.batch=c,b=b.__next;c.size=f;this.size-=f;return c};PIXI.WebGLBatch.prototype.merge=function(b){this.dirty=!0;this.tail.__next=b.head;b.head.__prev=this.tail;this.size+=b.size;this.tail=b.tail;for(b=b.head;b;)b.batch=this,b=b.__next};
PIXI.WebGLBatch.prototype.growBatch=function(){var b=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size;this.verticies=new Float32Array(8*this.dynamicSize);b.bindBuffer(b.ARRAY_BUFFER,this.vertexBuffer);b.bufferData(b.ARRAY_BUFFER,this.verticies,b.DYNAMIC_DRAW);this.uvs=new Float32Array(8*this.dynamicSize);b.bindBuffer(b.ARRAY_BUFFER,this.uvBuffer);b.bufferData(b.ARRAY_BUFFER,this.uvs,b.DYNAMIC_DRAW);this.dirtyUVS=!0;this.colors=new Float32Array(4*this.dynamicSize);b.bindBuffer(b.ARRAY_BUFFER,
this.colorBuffer);b.bufferData(b.ARRAY_BUFFER,this.colors,b.DYNAMIC_DRAW);this.dirtyColors=!0;this.indices=new Uint16Array(6*this.dynamicSize);for(var c=this.indices.length/6,f=0;f<c;f++){var e=6*f,g=4*f;this.indices[e+0]=g+0;this.indices[e+1]=g+1;this.indices[e+2]=g+2;this.indices[e+3]=g+0;this.indices[e+4]=g+2;this.indices[e+5]=g+3}b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.indexBuffer);b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)};
PIXI.WebGLBatch.prototype.refresh=function(){this.dynamicSize<this.size&&this.growBatch();for(var b=0,c,f=this.head;f;){c=8*b;var e=f.texture,g=e.frame,h=e.baseTexture.width,e=e.baseTexture.height;this.uvs[c+0]=g.x/h;this.uvs[c+1]=g.y/e;this.uvs[c+2]=(g.x+g.width)/h;this.uvs[c+3]=g.y/e;this.uvs[c+4]=(g.x+g.width)/h;this.uvs[c+5]=(g.y+g.height)/e;this.uvs[c+6]=g.x/h;this.uvs[c+7]=(g.y+g.height)/e;f.updateFrame=!1;colorIndex=4*b;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=f.worldAlpha;f=f.__next;b++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var b,c,f,e,g,h,j,n,q,p,C,D=0,s=this.head;s;)c=s.width,f=s.height,e=s.anchor.x-s.texture.trim.x,g=s.anchor.y-s.texture.trim.y,h=c*(1-e),c*=-e,e=f*(1-g),g=f*-g,f=8*D,b=s.worldTransform,j=b[0],n=b[3],q=b[1],p=b[4],C=b[2],b=b[5],this.verticies[f+0]=j*c+q*g+C,this.verticies[f+1]=p*g+n*c+b,this.verticies[f+2]=j*h+q*g+C,this.verticies[f+3]=p*g+n*h+b,this.verticies[f+4]=j*h+q*e+C,this.verticies[f+5]=p*e+n*h+b,this.verticies[f+6]=j*c+q*e+C,this.verticies[f+
7]=p*e+n*c+b,s.updateFrame&&(this.dirtyUVS=!0,e=s.texture,h=e.frame,c=e.baseTexture.width,e=e.baseTexture.height,this.uvs[f+0]=h.x/c,this.uvs[f+1]=h.y/e,this.uvs[f+2]=(h.x+h.width)/c,this.uvs[f+3]=h.y/e,this.uvs[f+4]=(h.x+h.width)/c,this.uvs[f+5]=(h.y+h.height)/e,this.uvs[f+6]=h.x/c,this.uvs[f+7]=(h.y+h.height)/e,s.updateFrame=!1),s.cacheAlpha!=s.worldAlpha&&(s.cacheAlpha=s.worldAlpha,h=4*D,this.colors[h]=this.colors[h+1]=this.colors[h+2]=this.colors[h+3]=s.worldAlpha,this.dirtyColors=!0),D++,s=s.__next};
PIXI.WebGLBatch.prototype.render=function(){this.dirty&&(this.refresh(),this.dirty=!1);if(0!=this.size){this.update();var b=this.gl;this.blendMode==PIXI.blendModes.NORMAL?b.blendFunc(b.ONE,b.ONE_MINUS_SRC_ALPHA):b.blendFunc(b.ONE,b.ONE_MINUS_SRC_COLOR);var c=PIXI.shaderProgram;b.bindBuffer(b.ARRAY_BUFFER,this.vertexBuffer);b.bufferSubData(b.ARRAY_BUFFER,0,this.verticies);b.vertexAttribPointer(c.vertexPositionAttribute,2,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.uvBuffer);this.dirtyUVS&&(this.dirtyUVS=
!1,b.bufferSubData(b.ARRAY_BUFFER,0,this.uvs));b.vertexAttribPointer(c.textureCoordAttribute,2,b.FLOAT,!1,0,0);b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,this.texture._glTexture);b.bindBuffer(b.ARRAY_BUFFER,this.colorBuffer);this.dirtyColors&&(this.dirtyColors=!1,b.bufferSubData(b.ARRAY_BUFFER,0,this.colors));b.vertexAttribPointer(c.colorAttribute,1,b.FLOAT,!1,0,0);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.indexBuffer);b.drawElements(b.TRIANGLES,6*this.size,b.UNSIGNED_SHORT,0)}};PIXI.CanvasRenderer=function(b,c){this.width=b?b:800;this.height=c?c:600;this.refresh=!0;this.view=document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.count=0;this.context=this.view.getContext("2d")};PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer;
PIXI.CanvasRenderer.prototype.render=function(b){b.__childrenAdded=[];b.__childrenRemoved=[];PIXI.texturesToUpdate=[];this.context.setTransform(1,0,0,1,0,0);b.updateTransform();this.context.setTransform(1,0,0,1,0,0);this.view.style.backgroundColor!=b.backgroundColorString&&(this.view.style.backgroundColor=b.backgroundColorString);this.context.clearRect(0,0,this.width,this.height);this.renderDisplayObject(b)};
PIXI.CanvasRenderer.prototype.resize=function(b,c){this.width=b;this.height=c;this.view.width=b;this.view.height=c};
PIXI.CanvasRenderer.prototype.renderDisplayObject=function(b){var c=b.worldTransform,f=this.context;f.globalCompositeOperation="source-over";if(b.visible){if(b instanceof PIXI.Sprite){var e=b.texture.frame;e&&(f.globalAlpha=b.worldAlpha,f.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),f.drawImage(b.texture.baseTexture.source,e.x,e.y,e.width,e.height,(b.anchor.x-b.texture.trim.x)*-e.width,(b.anchor.y-b.texture.trim.y)*-e.height,b.width,b.height))}else b instanceof PIXI.Strip&&(f.setTransform(c[0],c[3],
c[1],c[4],c[2],c[5]),this.renderStrip(b));for(c=0;c<b.children.length;c++)this.renderDisplayObject(b.children[c])}};PIXI.CanvasRenderer.prototype.renderStripFlat=function(b){var c=this.context;b=b.verticies;var f=b.length/2;this.count++;c.beginPath();for(var e=1;e<f-2;e++){var g=2*e,h=b[g+2],j=b[g+4],n=b[g+3],q=b[g+5];c.moveTo(b[g],b[g+1]);c.lineTo(h,n);c.lineTo(j,q)}c.fillStyle="#FF0000";c.fill();c.closePath()};
PIXI.CanvasRenderer.prototype.renderStrip=function(b){var c=this.context,f=b.verticies,e=b.uvs,g=f.length/2;this.count++;for(var h=1;h<g-2;h++){var j=2*h,n=f[j],q=f[j+2],p=f[j+4],C=f[j+1],D=f[j+3],s=f[j+5],x=e[j]*b.texture.width,y=e[j+2]*b.texture.width,u=e[j+4]*b.texture.width,m=e[j+1]*b.texture.height,E=e[j+3]*b.texture.height,j=e[j+5]*b.texture.height;c.save();c.beginPath();c.moveTo(n,C);c.lineTo(q,D);c.lineTo(p,s);c.closePath();c.clip();var B=x*E+m*u+y*j-E*u-m*y-x*j;c.transform((n*E+m*p+q*j-E*
p-m*q-n*j)/B,(C*E+m*s+D*j-E*s-m*D-C*j)/B,(x*q+n*u+y*p-q*u-n*y-x*p)/B,(x*D+C*u+y*s-D*u-C*y-x*s)/B,(x*E*p+m*q*u+n*y*j-n*E*u-m*y*p-x*q*j)/B,(x*E*s+m*D*u+C*y*j-C*E*u-m*y*s-x*D*j)/B);c.drawImage(b.texture.baseTexture.source,0,0);c.restore()}};PIXI.DisplayObject=function(){this.position=new PIXI.Point;this.scale=new PIXI.Point(1,1);this.rotation=0;this.alpha=1;this.visible=!0;this.cacheVisible=!1;this.stage=this.parent=null;this.worldAlpha=1;this.color=[];this.worldTransform=mat3.identity();this.localTransform=mat3.identity();this.dynamic=!0;this._sr=0;this._cr=1;this.renderable=!1};PIXI.DisplayObject.constructor=PIXI.DisplayObject;
PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCach=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));this.localTransform[0]=this._cr*this.scale.x;this.localTransform[1]=-this._sr*this.scale.y;this.localTransform[3]=this._sr*this.scale.x;this.localTransform[4]=this._cr*this.scale.y;this.localTransform[2]=this.position.x;this.localTransform[5]=this.position.y;mat3.multiply(this.localTransform,this.parent.worldTransform,
this.worldTransform);this.worldAlpha=this.alpha*this.parent.worldAlpha};PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this);this.children=[];this.renderable=!1};PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer;PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype);PIXI.DisplayObjectContainer.prototype.addChild=function(b){void 0!=b.parent&&b.parent.removeChild(b);b.parent=this;b.childIndex=this.children.length;this.children.push(b);this.stage&&this.stage.__addChild(b)};
PIXI.DisplayObjectContainer.prototype.addChildAt=function(b,c){if(0<=c&&c<=this.children.length){void 0!=b.parent&&b.parent.removeChild(b);c==this.children.length?this.children.push(b):this.children.splice(c,0,b);b.parent=this;b.childIndex=c;for(var f=this.children.length,e=c;e<f;e++)this.children[e].childIndex=e;this.stage&&this.stage.__addChild(b)}else throw Error(b+" The index "+c+" supplied is out of bounds "+this.children.length);};
PIXI.DisplayObjectContainer.prototype.removeChild=function(b){var c=this.children.indexOf(b);if(-1!==c){this.stage&&this.stage.__removeChild(b);b.parent=void 0;this.children.splice(c,1);b=c;for(c=this.children.length;b<c;b++)this.children[b].childIndex-=1}else throw Error(b+" The supplied DisplayObject must be a child of the caller "+this);};
PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateTransform()}};PIXI.Stage=function(b){PIXI.DisplayObjectContainer.call(this);this.worldTransform=mat3.identity();this.__childrenAdded=[];this.__childrenRemoved=[];this.childIndex=0;this.stage=this;this.setBackgroundColor(b)};PIXI.Stage.constructor=PIXI.Stage;PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateTransform()};
PIXI.Stage.prototype.setBackgroundColor=function(b){this.backgroundColor=b?b:0;this.backgroundColorSplit=HEXtoRGB(this.backgroundColor);this.backgroundColorString="#"+this.backgroundColor.toString(16)};PIXI.Stage.prototype.__addChild=function(b){b.stage=this;if(b.children)for(var c=0;c<b.children.length;c++)this.__addChild(b.children[c])};PIXI.Stage.prototype.__removeChild=function(b){this.__childrenRemoved.push(b);b.stage=void 0;if(b.children)for(var c=0,f=b.children.length;c<f;c++)this.__removeChild(b.children[c])};PIXI.blendModes={};PIXI.blendModes.NORMAL=0;PIXI.blendModes.SCREEN=1;PIXI.Sprite=function(b){PIXI.DisplayObjectContainer.call(this);this.anchor=new PIXI.Point;this.texture=b;this.blendMode=PIXI.blendModes.NORMAL;this.height=this.width=1;b.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0};
PIXI.Sprite.constructor=PIXI.Sprite;PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Sprite.prototype.setTexture=function(b){this.texture.baseTexture!=b.baseTexture&&(this.textureChange=!0);this.texture=b;this.width=b.frame.width;this.height=b.frame.height;this.updateFrame=!0};PIXI.Sprite.prototype.onTextureUpdate=function(){this.width=this.texture.frame.width;this.height=this.texture.frame.height;this.updateFrame=!0};
PIXI.Sprite.fromFrame=function(b){var c=PIXI.TextureCache[b];if(!c)throw Error("The frameId '"+b+"' does not exist in the texture cache"+this);return new PIXI.Sprite(c)};PIXI.Sprite.fromImage=function(b){b=PIXI.Texture.fromImage(b);return new PIXI.Sprite(b)};PIXI.Strip=function(b,c,f){PIXI.DisplayObjectContainer.call(this);this.texture=b;this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(e){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=c;this.height=f;b.baseTexture.hasLoaded?(this.width=this.texture.frame.width,
this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0};PIXI.Strip.constructor=PIXI.Strip;PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Strip.prototype.setTexture=function(b){this.texture=b;this.width=b.frame.width;this.height=b.frame.height;this.updateFrame=!0};
PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0};PIXI.Rope=function(b,c){PIXI.Strip.call(this,b);this.points=c;try{this.verticies=new Float32Array(4*c.length),this.uvs=new Float32Array(4*c.length),this.colors=new Float32Array(2*c.length),this.indices=new Uint16Array(2*c.length)}catch(f){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()};PIXI.Rope.constructor=PIXI.Rope;PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype);
PIXI.Rope.prototype.refresh=function(){var b=this.points;if(!(1>b.length)){var c=this.uvs,f=this.indices,e=this.colors;this.count-=0.2;c[0]=0;c[1]=1;c[2]=0;c[3]=1;e[0]=1;e[1]=1;f[0]=0;f[1]=1;for(var b=b.length,g=1;g<b;g++){var h=4*g,j=g/(b-1);c[h]=j;c[h+1]=0;c[h+2]=j;c[h+3]=1;h=2*g;e[h]=1;e[h+1]=1;h=2*g;f[h]=h;f[h+1]=h+1}}};
PIXI.Rope.prototype.updateTransform=function(){var b=this.points;if(!(1>b.length)){var c=this.verticies,f=b[0],e,g=e=0,h=b[0];this.count-=0.2;c[0]=h.x+e;c[1]=h.y+g;c[2]=h.x-e;c[3]=h.y-g;for(var j=b.length,n=1;n<j;n++){var h=b[n],q=4*n;e=n<b.length-1?b[n+1]:h;g=-(e.x-f.x);e=e.y-f.y;var f=Math.sqrt(e*e+g*g),p=this.texture.height/2;e/=f;g/=f;e*=p;g*=p;c[q]=h.x+e;c[q+1]=h.y+g;c[q+2]=h.x-e;c[q+3]=h.y-g;f=h}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Rope.prototype.setTexture=function(b){this.texture=b;this.updateFrame=!0};PIXI.MovieClip=function(b){PIXI.Sprite.call(this,b[0]);this.textures=b;this.currentFrame=0;this.animationSpeed=1};PIXI.MovieClip.constructor=PIXI.MovieClip;PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype);PIXI.MovieClip.prototype.stop=function(){this.playing=!1};PIXI.MovieClip.prototype.play=function(){this.playing=!0};PIXI.MovieClip.prototype.gotoAndStop=function(b){this.playing=!1;this.currentFrame=b;this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length])};
PIXI.MovieClip.prototype.gotoAndPlay=function(b){this.currentFrame=b;this.playing=!0};PIXI.MovieClip.prototype.updateTransform=function(){PIXI.Sprite.prototype.updateTransform.call(this);this.playing&&(this.currentFrame+=this.animationSpeed,this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length]))};PIXI.BaseTextureCache={};PIXI.texturesToUpdate=[];
PIXI.BaseTexture=function(b){PIXI.EventTarget.call(this);this.height=this.width=100;this.source=b;if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var c=this;this.source.onload=function(){c.hasLoaded=!0;c.width=c.source.width;c.height=c.source.height;PIXI.texturesToUpdate.push(c);c.dispatchEvent({type:"loaded",content:c})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=
this.source.height,PIXI.texturesToUpdate.push(this)};PIXI.BaseTexture.constructor=PIXI.BaseTexture;PIXI.BaseTexture.prototype.fromImage=function(){};PIXI.TextureCache={};PIXI.FrameCache={};PIXI.Texture=function(b,c){PIXI.EventTarget.call(this);c||(this.noFrame=!0,c=new PIXI.Rectangle(0,0,1,1));this.trim=new PIXI.Point;this.baseTexture=b;this.frame=c;this.scope=this;if(b.hasLoaded)this.noFrame&&(c=new PIXI.Rectangle(0,0,b.width,b.height)),this.setFrame(c);else{var f=this;b.addEventListener("loaded",function(){f.onBaseTextureLoaded()})}};PIXI.Texture.constructor=PIXI.Texture;
PIXI.Texture.prototype.onBaseTextureLoaded=function(){var b=this.baseTexture;b.removeEventListener("loaded",this.onLoaded);this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,b.width,b.height));this.noFrame=!1;this.width=this.frame.width;this.height=this.frame.height;this.scope.dispatchEvent({type:"update",content:this})};PIXI.Texture.prototype.setFrame=function(b){this.frame=b;this.width=b.width;this.height=b.height};
PIXI.Texture.fromImage=function(b){var c=PIXI.TextureCache[b];c||(c=PIXI.BaseTextureCache[b],c||(c=new Image,c.src=b,c=new PIXI.BaseTexture(c),PIXI.BaseTextureCache[b]=c),c=new PIXI.Texture(c),PIXI.TextureCache[b]=c);return c};PIXI.Texture.fromFrame=function(b){var c=PIXI.TextureCache[b];if(!c)throw Error("The frameId '"+b+"' does not exist in the texture cache "+this);return c};
PIXI.Texture.fromCanvas=function(b){var c=PIXI.TextureCache[b];c||(c=PIXI.BaseTextureCache[b],c||(c=new PIXI.BaseTexture(b),PIXI.BaseTextureCache[b]=c),c=new PIXI.Texture(c),PIXI.TextureCache[b]=c);return c};PIXI.Texture.addTextureToCache=function(b,c){PIXI.TextureCache[c]=b};PIXI.Texture.removeTextureFromCache=function(b){PIXI.TextureCache[b]=texture};PIXI.autoDetectRenderer=function(b,c){b||(b=800);c||(c=600);var f;try{f=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(e){f=!1}return f?new PIXI.WebGLRenderer(b,c):new PIXI.CanvasRenderer(b,c)};PIXI.SpriteSheetLoader=function(b){PIXI.EventTarget.call(this);this.url=b;this.baseUrl=b.replace(/[^\/]*$/,"");this.texture;this.frames={}};PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader;PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var b=this;this.ajaxRequest.onreadystatechange=function(){b.onLoaded()};this.ajaxRequest.open("GET",this.url,!0);this.ajaxRequest.send(null)};
PIXI.SpriteSheetLoader.prototype.onLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var b=eval("("+this.ajaxRequest.responseText+")");this.texture=PIXI.Texture.fromImage(this.baseUrl+b.meta.image).baseTexture;var b=b.frames,c;for(c in b){var f=b[c].frame;PIXI.TextureCache[c]=new PIXI.Texture(this.texture,{x:f.x,y:f.y,width:f.w,height:f.h});b[c].trimmed&&(PIXI.TextureCache[c].realSize=b[c].spriteSourceSize,PIXI.TextureCache[c].trim.x=
0)}if(this.texture.hasLoaded)this.dispatchEvent({type:"loaded",content:this});else{var e=this;this.texture.addEventListener("loaded",function(){e.dispatchEvent({type:"loaded",content:e})})}}};PIXI.AssetLoader=function(b){PIXI.EventTarget.call(this);this.assetURLs=b;this.assets=[]};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var b=["jpeg","jpg","png","gif"],c=["json"],f=0;f<this.assetURLs.length;f++){for(var e=this.assetURLs[f],g=e.split(".").pop().toLowerCase(),h=null,j=0;j<b.length;j++)if(g==b[j]){h="img";break}if("img"!=h)for(j=0;j<c.length;j++)if(g==c[j]){h="atlas";break}if("img"==h)if(e=PIXI.Texture.fromImage(e),e.hasLoaded)this.loadCount--;else{var n=this;e.baseTexture.addEventListener("loaded",function(){n.onAssetLoaded()});this.assets.push(e)}else if("atlas"==
h)e=new PIXI.SpriteSheetLoader(e),this.assets.push(e),n=this,e.addEventListener("loaded",function(){n.onAssetLoaded()}),e.load();else throw Error(e+" is an unsupported file type "+this);}};PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--;this.dispatchEvent({type:"onProgress",content:this});if(this.onProgress)this.onProgress();if(0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete))this.onComplete()};
PIXI.WebGLRenderer.prototype.addDisplayObject=function(a){if(a.stage&&!a.__inWebGL&&(a.batch=null,a.renderable)){a.__inWebGL=!0;var c=a;do{if(0==c.childIndex)c=c.parent;else for(c=c.parent.children[c.childIndex-1];0!=c.children.length;)c=c.children[c.children.length-1];if(c==a.stage)break}while(!c.renderable||!c.__inWebGL);var f=a;do{if(0==f.children.length){for(;f.childIndex==f.parent.children.length-1;)if(f=f.parent,f==a.stage){f=null;break}f&&(f=f.parent.children[f.childIndex+1])}else f=f.children[0];
if(!f)break}while(!f.renderable||!f.__inWebGL);if(a instanceof PIXI.Sprite){var d;if(c instanceof PIXI.Sprite){if((d=c.batch)&&d.texture==a.texture.baseTexture&&d.blendMode==a.blendMode){d.insertAfter(a,c);return}}else d=c;if(f&&f instanceof PIXI.Sprite&&(c=f.batch)){if(c.texture==a.texture.baseTexture&&c.blendMode==a.blendMode){c.insertBefore(a,f);return}if(c==d){f=d.split(f);c=PIXI._getBatch(this.gl);d=this.batchs.indexOf(d);c.init(a);this.batchs.splice(d+1,0,c,f);return}}c=PIXI._getBatch(this.gl);
c.init(a);d?(d=this.batchs.indexOf(d),this.batchs.splice(d+1,0,c)):this.batchs.push(c)}else a instanceof PIXI.Strip&&(this.initStrip(a),this.batchs.push(a));this.batchUpdate=!0}};
PIXI.WebGLRenderer.prototype.removeDisplayObject=function(a){a.cacheVisible=!1;if(a.renderable){a.__inWebGL=!1;var c;if(a instanceof PIXI.Sprite){var f=a.batch;if(!f)return;f.remove(a);0==f.size&&(c=f)}else c=a;c&&(a=this.batchs.indexOf(c),-1!=a&&(!(0==a||a==this.batchs.length-1)&&this.batchs[a-1]instanceof PIXI.WebGLBatch&&this.batchs[a+1]instanceof PIXI.WebGLBatch&&this.batchs[a-1].texture==this.batchs[a+1].texture&&this.batchs[a-1].blendMode==this.batchs[a+1].blendMode?(this.batchs[a-1].merge(this.batchs[a+
1]),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c),PIXI._returnBatch(this.batchs[a+1]),this.batchs.splice(a,2)):(this.batchs.splice(a,1),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c))))}};
PIXI.WebGLRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c;this.gl.viewport(0,0,this.width,this.height);mat4.identity(this.projectionMatrix);mat4.scale(this.projectionMatrix,[2/this.width,-2/this.height,1]);mat4.translate(this.projectionMatrix,[-this.width/2,-this.height/2,0])};
PIXI.WebGLRenderer.prototype.initStrip=function(a){var c=this.gl;a._vertexBuffer=c.createBuffer();a._indexBuffer=c.createBuffer();a._uvBuffer=c.createBuffer();a._colorBuffer=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer);c.bufferData(c.ARRAY_BUFFER,a.verticies,c.DYNAMIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer);c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer);c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer);c.bufferData(c.ELEMENT_ARRAY_BUFFER,a.indices,c.STATIC_DRAW)};
PIXI.WebGLRenderer.prototype.renderStrip=function(a){var c=this.gl,f=this.shaderProgram,d=mat3.toMat4(a.worldTransform);mat4.transpose(d);mat4.multiply(this.projectionMatrix,d,d);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,d);a.blendMode==PIXI.blendModes.NORMAL?c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA):c.blendFunc(c.ONE,c.ONE_MINUS_SRC_COLOR);a.dirty?(a.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,a.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.vertexPositionAttribute,
2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,
a.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.verticies),c.vertexAttribPointer(f.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer));c.drawElements(c.TRIANGLE_STRIP,a.indices.length,c.UNSIGNED_SHORT,0);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix)};PIXI.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault();this.contextLost=!0};
PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0});this.initShaders();for(var a=0;a<PIXI.TextureCache.length;a++)this.updateTexture(PIXI.TextureCache[a]);for(a=0;a<this.batchs.length;a++)this.batchs[a].restoreLostContext(this.gl),this.batchs[a].dirty=!0;PIXI._restoreBatchs(this.gl);this.contextLost=!1};PIXI._batchs=[];PIXI._getBatch=function(a){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(a):PIXI._batchs.pop()};PIXI._returnBatch=function(a){a.clean();PIXI._batchs.push(a)};PIXI._restoreBatchs=function(a){for(var c=0;c<PIXI._batchs.length;c++)PIXI._batchs[c].restoreLostContext(a)};
PIXI.WebGLBatch=function(a){this.gl=a;this.size=0;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer();this.blendMode=PIXI.blendModes.NORMAL;this.dynamicSize=1};PIXI.WebGLBatch.constructor=PIXI.WebGLBatch;PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[];this.uvs=[];this.indices=[];this.colors=[];this.dynamicSize=1;this.last=this.texture=null;this.size=0;this.head;this.tail};
PIXI.WebGLBatch.prototype.restoreLostContext=function(a){this.gl=a;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer()};PIXI.WebGLBatch.prototype.init=function(a){a.batch=this;this.dirty=!0;this.blendMode=a.blendMode;this.texture=a.texture.baseTexture;this.tail=this.head=a;this.size=1;this.growBatch()};
PIXI.WebGLBatch.prototype.insertBefore=function(a,c){this.size++;a.batch=this;this.dirty=!0;var f=c.__prev;c.__prev=a;a.__next=c;f?(a.__prev=f,f.__next=a):this.head=a};PIXI.WebGLBatch.prototype.insertAfter=function(a,c){this.size++;a.batch=this;this.dirty=!0;var f=c.__next;c.__next=a;a.__prev=c;f?(a.__next=f,f.__prev=a):this.tail=a};
PIXI.WebGLBatch.prototype.remove=function(a){this.size--;0==this.size?(a.batch=null,a.__prev=null,a.__next=null):(a.__prev?a.__prev.__next=a.__next:(this.head=a.__next,this.head.__prev=null),a.__next?a.__next.__prev=a.__prev:(this.tail=a.__prev,this.tail.__next=null),a.batch=null,a.__next=null,a.__prev=null,this.dirty=!0)};
PIXI.WebGLBatch.prototype.split=function(a){this.dirty=!0;var c=new PIXI.WebGLBatch(this.gl);c.init(a);c.tail=this.tail;this.tail=a.__prev;this.tail.__next=null;a.__prev=null;for(var f=0;a;)f++,a.batch=c,a=a.__next;c.size=f;this.size-=f;return c};PIXI.WebGLBatch.prototype.merge=function(a){this.dirty=!0;this.tail.__next=a.head;a.head.__prev=this.tail;this.size+=a.size;this.tail=a.tail;for(a=a.head;a;)a.batch=this,a=a.__next};
PIXI.WebGLBatch.prototype.growBatch=function(){var a=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size;this.verticies=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferData(a.ARRAY_BUFFER,this.verticies,a.DYNAMIC_DRAW);this.uvs=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);a.bufferData(a.ARRAY_BUFFER,this.uvs,a.DYNAMIC_DRAW);this.dirtyUVS=!0;this.colors=new Float32Array(4*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,
this.colorBuffer);a.bufferData(a.ARRAY_BUFFER,this.colors,a.DYNAMIC_DRAW);this.dirtyColors=!0;this.indices=new Uint16Array(6*this.dynamicSize);for(var c=this.indices.length/6,f=0;f<c;f++){var d=6*f,g=4*f;this.indices[d+0]=g+0;this.indices[d+1]=g+1;this.indices[d+2]=g+2;this.indices[d+3]=g+0;this.indices[d+4]=g+2;this.indices[d+5]=g+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)};
PIXI.WebGLBatch.prototype.refresh=function(){this.dynamicSize<this.size&&this.growBatch();for(var a=0,c,f=this.head;f;){c=8*a;var d=f.texture,g=d.frame,h=d.baseTexture.width,d=d.baseTexture.height;this.uvs[c+0]=g.x/h;this.uvs[c+1]=g.y/d;this.uvs[c+2]=(g.x+g.width)/h;this.uvs[c+3]=g.y/d;this.uvs[c+4]=(g.x+g.width)/h;this.uvs[c+5]=(g.y+g.height)/d;this.uvs[c+6]=g.x/h;this.uvs[c+7]=(g.y+g.height)/d;f.updateFrame=!1;colorIndex=4*a;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=f.worldAlpha;f=f.__next;a++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var a,c,f,d,g,h,j,k,r,n,y,C=0,m=this.head;m;)c=m.width,f=m.height,d=m.anchor.x-m.texture.trim.x,g=m.anchor.y-m.texture.trim.y,h=c*(1-d),c*=-d,d=f*(1-g),g=f*-g,f=8*C,a=m.worldTransform,j=a[0],k=a[3],r=a[1],n=a[4],y=a[2],a=a[5],this.verticies[f+0]=j*c+r*g+y,this.verticies[f+1]=n*g+k*c+a,this.verticies[f+2]=j*h+r*g+y,this.verticies[f+3]=n*g+k*h+a,this.verticies[f+4]=j*h+r*d+y,this.verticies[f+5]=n*d+k*h+a,this.verticies[f+6]=j*c+r*d+y,this.verticies[f+
7]=n*d+k*c+a,m.updateFrame&&(this.dirtyUVS=!0,d=m.texture,h=d.frame,c=d.baseTexture.width,d=d.baseTexture.height,this.uvs[f+0]=h.x/c,this.uvs[f+1]=h.y/d,this.uvs[f+2]=(h.x+h.width)/c,this.uvs[f+3]=h.y/d,this.uvs[f+4]=(h.x+h.width)/c,this.uvs[f+5]=(h.y+h.height)/d,this.uvs[f+6]=h.x/c,this.uvs[f+7]=(h.y+h.height)/d,m.updateFrame=!1),m.cacheAlpha!=m.worldAlpha&&(m.cacheAlpha=m.worldAlpha,h=4*C,this.colors[h]=this.colors[h+1]=this.colors[h+2]=this.colors[h+3]=m.worldAlpha,this.dirtyColors=!0),C++,m=m.__next};
PIXI.WebGLBatch.prototype.render=function(){this.dirty&&(this.refresh(),this.dirty=!1);if(0!=this.size){this.update();var a=this.gl;this.blendMode==PIXI.blendModes.NORMAL?a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA):a.blendFunc(a.ONE,a.ONE_MINUS_SRC_COLOR);var c=PIXI.shaderProgram;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferSubData(a.ARRAY_BUFFER,0,this.verticies);a.vertexAttribPointer(c.vertexPositionAttribute,2,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);this.dirtyUVS&&(this.dirtyUVS=
!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvs));a.vertexAttribPointer(c.textureCoordAttribute,2,a.FLOAT,!1,0,0);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,this.texture._glTexture);a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer);this.dirtyColors&&(this.dirtyColors=!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.colors));a.vertexAttribPointer(c.colorAttribute,1,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.drawElements(a.TRIANGLES,6*this.size,a.UNSIGNED_SHORT,0)}};PIXI.CanvasRenderer=function(a,c,f){this.width=a?a:800;this.height=c?c:600;this.refresh=!0;this.view=f?f:document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.count=0;this.context=this.view.getContext("2d")};PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer;
PIXI.CanvasRenderer.prototype.render=function(a){a.__childrenAdded=[];a.__childrenRemoved=[];PIXI.texturesToUpdate=[];this.context.setTransform(1,0,0,1,0,0);a.updateTransform();this.context.setTransform(1,0,0,1,0,0);this.view.style.backgroundColor!=a.backgroundColorString&&(this.view.style.backgroundColor=a.backgroundColorString);this.context.clearRect(0,0,this.width,this.height);this.renderDisplayObject(a);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))};
PIXI.CanvasRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c};
PIXI.CanvasRenderer.prototype.renderDisplayObject=function(a){var c=a.worldTransform,f=this.context;f.globalCompositeOperation="source-over";if(a.visible){if(a instanceof PIXI.Sprite){var d=a.texture.frame;d&&(f.globalAlpha=a.worldAlpha,f.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),f.drawImage(a.texture.baseTexture.source,d.x,d.y,d.width,d.height,(a.anchor.x-a.texture.trim.x)*-d.width,(a.anchor.y-a.texture.trim.y)*-d.height,a.width,a.height))}else a instanceof PIXI.Strip&&(f.setTransform(c[0],c[3],
c[1],c[4],c[2],c[5]),this.renderStrip(a));for(c=0;c<a.children.length;c++)this.renderDisplayObject(a.children[c])}};PIXI.CanvasRenderer.prototype.renderStripFlat=function(a){var c=this.context;a=a.verticies;var f=a.length/2;this.count++;c.beginPath();for(var d=1;d<f-2;d++){var g=2*d,h=a[g+2],j=a[g+4],k=a[g+3],r=a[g+5];c.moveTo(a[g],a[g+1]);c.lineTo(h,k);c.lineTo(j,r)}c.fillStyle="#FF0000";c.fill();c.closePath()};
PIXI.CanvasRenderer.prototype.renderStrip=function(a){var c=this.context,f=a.verticies,d=a.uvs,g=f.length/2;this.count++;for(var h=1;h<g-2;h++){var j=2*h,k=f[j],r=f[j+2],n=f[j+4],y=f[j+1],C=f[j+3],m=f[j+5],u=d[j]*a.texture.width,x=d[j+2]*a.texture.width,s=d[j+4]*a.texture.width,l=d[j+1]*a.texture.height,E=d[j+3]*a.texture.height,j=d[j+5]*a.texture.height;c.save();c.beginPath();c.moveTo(k,y);c.lineTo(r,C);c.lineTo(n,m);c.closePath();c.clip();var D=u*E+l*s+x*j-E*s-l*x-u*j;c.transform((k*E+l*n+r*j-E*
n-l*r-k*j)/D,(y*E+l*m+C*j-E*m-l*C-y*j)/D,(u*r+k*s+x*n-r*s-k*x-u*n)/D,(u*C+y*s+x*m-C*s-y*x-u*m)/D,(u*E*n+l*r*s+k*x*j-k*E*s-l*x*n-u*r*j)/D,(u*E*m+l*C*s+y*x*j-y*E*s-l*x*m-u*C*j)/D);c.drawImage(a.texture.baseTexture.source,0,0);c.restore()}};PIXI.DisplayObject=function(){this.position=new PIXI.Point;this.scale=new PIXI.Point(1,1);this.rotation=0;this.alpha=1;this.visible=!0;this.cacheVisible=!1;this.stage=this.parent=null;this.worldAlpha=1;this.color=[];this.worldTransform=mat3.identity();this.localTransform=mat3.identity();this.dynamic=!0;this._sr=0;this._cr=1;this.renderable=!1;this.interactive=!0};PIXI.DisplayObject.constructor=PIXI.DisplayObject;
PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));this.localTransform[0]=this._cr*this.scale.x;this.localTransform[1]=-this._sr*this.scale.y;this.localTransform[3]=this._sr*this.scale.x;this.localTransform[4]=this._cr*this.scale.y;this.localTransform[2]=this.position.x;this.localTransform[5]=this.position.y;mat3.multiply(this.localTransform,this.parent.worldTransform,
this.worldTransform);this.worldAlpha=this.alpha*this.parent.worldAlpha};PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this);this.children=[];this.renderable=!1};PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer;PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype);PIXI.DisplayObjectContainer.prototype.addChild=function(a){void 0!=a.parent&&a.parent.removeChild(a);a.parent=this;a.childIndex=this.children.length;this.children.push(a);this.stage&&this.stage.__addChild(a)};
PIXI.DisplayObjectContainer.prototype.addChildAt=function(a,c){if(0<=c&&c<=this.children.length){void 0!=a.parent&&a.parent.removeChild(a);c==this.children.length?this.children.push(a):this.children.splice(c,0,a);a.parent=this;a.childIndex=c;for(var f=this.children.length,d=c;d<f;d++)this.children[d].childIndex=d;this.stage&&this.stage.__addChild(a)}else throw Error(a+" The index "+c+" supplied is out of bounds "+this.children.length);};
PIXI.DisplayObjectContainer.prototype.removeChild=function(a){var c=this.children.indexOf(a);if(-1!==c){this.stage&&this.stage.__removeChild(a);a.parent=void 0;this.children.splice(c,1);a=c;for(c=this.children.length;a<c;a++)this.children[a].childIndex-=1}else throw Error(a+" The supplied DisplayObject must be a child of the caller "+this);};
PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform()}};PIXI.Stage=function(a,c){PIXI.DisplayObjectContainer.call(this);this.worldTransform=mat3.identity();this.__childrenAdded=[];this.__childrenRemoved=[];this.childIndex=0;this.stage=this;this.interactive=c?!0:!1;this.interactionManager=new PIXI.InteractionManager(this);this.setBackgroundColor(a)};PIXI.Stage.constructor=PIXI.Stage;PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);
PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0)};PIXI.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a?a:0;this.backgroundColorSplit=HEXtoRGB(this.backgroundColor);this.backgroundColorString="#"+this.backgroundColor.toString(16)};
PIXI.Stage.prototype.__addChild=function(a){a.interactive&&(this.dirty=!0);a.stage=this;if(a.children)for(var c=0;c<a.children.length;c++)this.__addChild(a.children[c])};PIXI.Stage.prototype.__removeChild=function(a){a.interactive&&(this.dirty=!0);this.__childrenRemoved.push(a);a.stage=void 0;if(a.children)for(var c=0,f=a.children.length;c<f;c++)this.__removeChild(a.children[c])};PIXI.blendModes={};PIXI.blendModes.NORMAL=0;PIXI.blendModes.SCREEN=1;
PIXI.Sprite=function(a){PIXI.DisplayObjectContainer.call(this);this.anchor=new PIXI.Point;this.texture=a;this.blendMode=PIXI.blendModes.NORMAL;this.height=this.width=1;a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0;this.interactive=!1};PIXI.Sprite.constructor=PIXI.Sprite;
PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!=a.baseTexture&&(this.textureChange=!0);this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};PIXI.Sprite.prototype.setInteractive=function(a){this.interactive=a;stage&&(stage.dirty=!0)};
PIXI.Sprite.prototype.onTextureUpdate=function(){this.width=this.texture.frame.width;this.height=this.texture.frame.height;this.updateFrame=!0};PIXI.Sprite.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new PIXI.Sprite(c)};PIXI.Sprite.fromImage=function(a){a=PIXI.Texture.fromImage(a);return new PIXI.Sprite(a)};PIXI.Strip=function(a,c,f){PIXI.DisplayObjectContainer.call(this);this.texture=a;this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(d){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=c;this.height=f;a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,
this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0};PIXI.Strip.constructor=PIXI.Strip;PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Strip.prototype.setTexture=function(a){this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};
PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0};PIXI.Rope=function(a,c){PIXI.Strip.call(this,a);this.points=c;try{this.verticies=new Float32Array(4*c.length),this.uvs=new Float32Array(4*c.length),this.colors=new Float32Array(2*c.length),this.indices=new Uint16Array(2*c.length)}catch(f){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()};PIXI.Rope.constructor=PIXI.Rope;PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype);
PIXI.Rope.prototype.refresh=function(){var a=this.points;if(!(1>a.length)){var c=this.uvs,f=this.indices,d=this.colors;this.count-=0.2;c[0]=0;c[1]=1;c[2]=0;c[3]=1;d[0]=1;d[1]=1;f[0]=0;f[1]=1;for(var a=a.length,g=1;g<a;g++){var h=4*g,j=g/(a-1);c[h]=j;c[h+1]=0;c[h+2]=j;c[h+3]=1;h=2*g;d[h]=1;d[h+1]=1;h=2*g;f[h]=h;f[h+1]=h+1}}};
PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(1>a.length)){var c=this.verticies,f=a[0],d,g=d=0,h=a[0];this.count-=0.2;c[0]=h.x+d;c[1]=h.y+g;c[2]=h.x-d;c[3]=h.y-g;for(var j=a.length,k=1;k<j;k++){var h=a[k],r=4*k;d=k<a.length-1?a[k+1]:h;g=-(d.x-f.x);d=d.y-f.y;var f=Math.sqrt(d*d+g*g),n=this.texture.height/2;d/=f;g/=f;d*=n;g*=n;c[r]=h.x+d;c[r+1]=h.y+g;c[r+2]=h.x-d;c[r+3]=h.y-g;f=h}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Rope.prototype.setTexture=function(a){this.texture=a;this.updateFrame=!0};PIXI.MovieClip=function(a){PIXI.Sprite.call(this,a[0]);this.textures=a;this.currentFrame=0;this.animationSpeed=1};PIXI.MovieClip.constructor=PIXI.MovieClip;PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype);PIXI.MovieClip.prototype.stop=function(){this.playing=!1};PIXI.MovieClip.prototype.play=function(){this.playing=!0};PIXI.MovieClip.prototype.gotoAndStop=function(a){this.playing=!1;this.currentFrame=a;this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length])};
PIXI.MovieClip.prototype.gotoAndPlay=function(a){this.currentFrame=a;this.playing=!0};PIXI.MovieClip.prototype.updateTransform=function(){PIXI.Sprite.prototype.updateTransform.call(this);this.playing&&(this.currentFrame+=this.animationSpeed,this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length]))};PIXI.InteractionManager=function(a){this.stage=a;this.tempPoint=new PIXI.Point;this.tempMatrix=mat3.create();this.mouseoverEnabled=!0;this.mouse=new PIXI.InteractionData;this.touchs={};this.pool=[];this.interactiveItems=[]};PIXI.InteractionManager.constructor=PIXI.InteractionManager;PIXI.InteractionManager.prototype.disableMouseOver=function(){this.mouseoverEnabled&&(this.mouseoverEnabled=!1,this.target&&this.target.view.removeEventListener("mousemove",this.onMouseMove.bind(this)))};
PIXI.InteractionManager.prototype.enableMouseOver=function(){this.mouseoverEnabled||(this.mouseoverEnabled=!1,this.target&&this.target.view.addEventListener("mousemove",this.onMouseMove.bind(this)))};PIXI.InteractionManager.prototype.collectInteractiveSprite=function(a){a=a.children;for(var c=a.length-1;0<=c;c--){var f=a[c];if(f instanceof PIXI.Sprite)f.interactive&&this.interactiveItems.push(f);else if(!f.interactive)continue;0<f.children.length&&this.collectInteractiveSprite(f)}};
PIXI.InteractionManager.prototype.setTarget=function(a){this.target=a;this.mouseoverEnabled&&a.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0);a.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0);a.view.addEventListener("mouseup",this.onMouseUp.bind(this),!0);a.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0);a.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0);a.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0);a.view.addEventListener("touchmove",
this.onTouchMove.bind(this),!0)};
PIXI.InteractionManager.prototype.hitTest=function(a){this.dirty&&(this.dirty=!1,this.interactiveItems=[],this.collectInteractiveSprite(this.stage));for(var c=this.tempPoint,f=a.global,d=this.interactiveItems.length,g=0;g<d;g++){var h=this.interactiveItems[g];if(h.visible){var j=h.worldTransform,k=j[0],r=j[1],n=j[2],y=j[3],C=j[4],j=j[5],m=1/(k*C+r*-y);c.x=C*m*f.x+-r*m*f.y+(j*r-n*C)*m;c.y=k*m*f.y+-y*m*f.x+(-j*k+n*y)*m;k=-h.width*h.anchor.x;if(c.x>k&&c.x<k+h.width&&(k=-h.height*h.anchor.y,c.y>k&&c.y<
k+h.height))return a.local.x=c.x,a.local.y=c.y,h}}return null};
PIXI.InteractionManager.prototype.onMouseMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);a=this.hitTest(this.mouse);this.currentOver!=a&&(this.currentOver&&(this.currentOver.mouseout&&this.currentOver.mouseout(this.mouse),this.currentOver=null),this.target.view.style.cursor="default");a&&this.currentOver!=a&&(this.currentOver=a,this.target.view.style.cursor=
"pointer",a.mouseover&&a.mouseover(this.mouse))};PIXI.InteractionManager.prototype.onMouseDown=function(a){var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);if(a=this.hitTest(this.mouse))this.currentDown=a,a.mousedown&&a.mousedown(this.mouse)};
PIXI.InteractionManager.prototype.onMouseUp=function(){this.currentDown&&(this.currentDown.mouseup&&this.currentDown.mouseup(this.mouse),this.currentOver==this.currentDown&&this.currentDown.click&&this.currentDown.click(this.mouse),this.currentDown=null)};
PIXI.InteractionManager.prototype.onTouchMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.touchs[d.identifier];g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height)}};
PIXI.InteractionManager.prototype.onTouchStart=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.pool.pop();g||(g=new PIXI.InteractionData);this.touchs[d.identifier]=g;g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height);if(d=this.hitTest(g))g.currentDown=d,d.touchstart&&d.touchstart(g)}};
PIXI.InteractionManager.prototype.onTouchEnd=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.touchs[d.identifier];g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height);g.currentDown&&(g.currentDown.touchend&&g.currentDown.touchend(g),this.hitTest(g)==g.currentDown&&g.currentDown.tap&&g.currentDown.tap(g),g.currentDown=null);this.pool.push(g);
this.touchs[d.identifier]=null}};PIXI.InteractionData=function(){this.global=new PIXI.Point;this.local=new PIXI.Point};PIXI.InteractionData.constructor=PIXI.InteractionData;PIXI.BaseTextureCache={};PIXI.texturesToUpdate=[];
PIXI.BaseTexture=function(a){PIXI.EventTarget.call(this);this.height=this.width=100;this.source=a;if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var c=this;this.source.onload=function(){c.hasLoaded=!0;c.width=c.source.width;c.height=c.source.height;PIXI.texturesToUpdate.push(c);c.dispatchEvent({type:"loaded",content:c})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=
this.source.height,PIXI.texturesToUpdate.push(this)};PIXI.BaseTexture.constructor=PIXI.BaseTexture;PIXI.BaseTexture.prototype.fromImage=function(){};PIXI.TextureCache={};PIXI.FrameCache={};PIXI.Texture=function(a,c){PIXI.EventTarget.call(this);c||(this.noFrame=!0,c=new PIXI.Rectangle(0,0,1,1));this.trim=new PIXI.Point;this.baseTexture=a;this.frame=c;this.scope=this;if(a.hasLoaded)this.noFrame&&(c=new PIXI.Rectangle(0,0,a.width,a.height)),this.setFrame(c);else{var f=this;a.addEventListener("loaded",function(){f.onBaseTextureLoaded()})}};PIXI.Texture.constructor=PIXI.Texture;
PIXI.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded);this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,a.width,a.height));this.noFrame=!1;this.width=this.frame.width;this.height=this.frame.height;this.scope.dispatchEvent({type:"update",content:this})};PIXI.Texture.prototype.setFrame=function(a){this.frame=a;this.width=a.width;this.height=a.height};
PIXI.Texture.fromImage=function(a){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new Image,c.src=a,c=new PIXI.BaseTexture(c),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache "+this);return c};
PIXI.Texture.fromCanvas=function(a){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new PIXI.BaseTexture(a),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.addTextureToCache=function(a,c){PIXI.TextureCache[c]=a};PIXI.Texture.removeTextureFromCache=function(a){var c=PIXI.TextureCache[a];PIXI.TextureCache[a]=null;return c};PIXI.autoDetectRenderer=function(a,c,f){a||(a=800);c||(c=600);var d;try{d=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(g){d=!1}return d?new PIXI.WebGLRenderer(a,c,f):new PIXI.CanvasRenderer(a,c,f)};PIXI.SpriteSheetLoader=function(a){PIXI.EventTarget.call(this);this.url=a;this.baseUrl=a.replace(/[^\/]*$/,"");this.texture;this.frames={}};PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader;PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var a=this;this.ajaxRequest.onreadystatechange=function(){a.onLoaded()};this.ajaxRequest.open("GET",this.url,!0);this.ajaxRequest.send(null)};
PIXI.SpriteSheetLoader.prototype.onLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=eval("("+this.ajaxRequest.responseText+")");this.texture=PIXI.Texture.fromImage(this.baseUrl+a.meta.image).baseTexture;var a=a.frames,c;for(c in a){var f=a[c].frame;PIXI.TextureCache[c]=new PIXI.Texture(this.texture,{x:f.x,y:f.y,width:f.w,height:f.h});a[c].trimmed&&(PIXI.TextureCache[c].realSize=a[c].spriteSourceSize,PIXI.TextureCache[c].trim.x=
0)}if(this.texture.hasLoaded)this.dispatchEvent({type:"loaded",content:this});else{var d=this;this.texture.addEventListener("loaded",function(){d.dispatchEvent({type:"loaded",content:d})})}}};PIXI.AssetLoader=function(a){PIXI.EventTarget.call(this);this.assetURLs=a;this.assets=[]};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var a=["jpeg","jpg","png","gif"],c=["json"],f=0;f<this.assetURLs.length;f++){for(var d=this.assetURLs[f],g=d.split(".").pop().toLowerCase(),h=null,j=0;j<a.length;j++)if(g==a[j]){h="img";break}if("img"!=h)for(j=0;j<c.length;j++)if(g==c[j]){h="atlas";break}if("img"==h)if(d=PIXI.Texture.fromImage(d),d.hasLoaded)this.loadCount--;else{var k=this;d.baseTexture.addEventListener("loaded",function(){k.onAssetLoaded()});this.assets.push(d)}else if("atlas"==
h)d=new PIXI.SpriteSheetLoader(d),this.assets.push(d),k=this,d.addEventListener("loaded",function(){k.onAssetLoaded()}),d.load();else throw Error(d+" is an unsupported file type "+this);}};PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--;this.dispatchEvent({type:"onProgress",content:this});if(this.onProgress)this.onProgress();if(0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete))this.onComplete()};

View file

@ -35,7 +35,7 @@
<file name="extras/Strip.js"/>
<file name="extras/Rope.js"/>
<file name="MovieClip.js"/>
<file name="InteractionManager.js"/>
<file name="textures/BaseTexture.js"/>
<file name="textures/Texture.js"/>

View file

@ -6,6 +6,8 @@ YUI.add("yuidoc-meta", function(Y) {
"CanvasRenderer",
"DisplayObject",
"DisplayObjectContainer",
"InteractionData",
"InteractionManager",
"MovieClip",
"Point",
"Rectangle",

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -265,7 +269,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l56"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:56</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l57"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:57</code></a>
</p>
@ -341,7 +345,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l45"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:45</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l46"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:46</code></a>
</p>
@ -385,7 +389,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l21"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:21</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l22"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:22</code></a>
</p>
@ -431,7 +435,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l31"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:31</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l32"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:32</code></a>
</p>
@ -475,7 +479,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l14"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:14</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_CanvasRenderer.js.html#l15"><code>pixi&#x2F;renderers&#x2F;CanvasRenderer.js:15</code></a>
</p>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -321,6 +325,12 @@
</li>
<li class="arg">
<code>view</code>
</li>
</ul><span class="paren">)</span>
</div>
@ -403,6 +413,21 @@ WebGL is the preferred renderer as it is a lot fastest. If webGL is not supporte
</li>
<li class="param">
<code class="param-name">view</code>
<span class="type">Canvas</span>
<div class="param-description">
<p>the canvas to use as a view, optional</p>
</div>
</li>
</ul>
</div>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -0,0 +1,369 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>InteractionData - Pixi.js API</title>
<link rel="stylesheet" href="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.8.0pr2&#x2F;build&#x2F;cssgrids&#x2F;cssgrids-min.css">
<link rel="stylesheet" href="..&#x2F;assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="..&#x2F;assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="..&#x2F;assets/favicon.png">
<script src="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;combo?3.8.0pr2&#x2F;build&#x2F;yui&#x2F;yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="..&#x2F;classes/AssetLoader.html">AssetLoader</a></li>
<li><a href="..&#x2F;classes/BaseTexture.html">BaseTexture</a></li>
<li><a href="..&#x2F;classes/CanvasRenderer.html">CanvasRenderer</a></li>
<li><a href="..&#x2F;classes/DisplayObject.html">DisplayObject</a></li>
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
<li><a href="..&#x2F;classes/Rectangle.html">Rectangle</a></li>
<li><a href="..&#x2F;classes/Sprite.html">Sprite</a></li>
<li><a href="..&#x2F;classes/SpriteSheetLoader.html">SpriteSheetLoader</a></li>
<li><a href="..&#x2F;classes/Stage.html">Stage</a></li>
<li><a href="..&#x2F;classes/Texture.html">Texture</a></li>
<li><a href="..&#x2F;classes/WebGLBatch.html">WebGLBatch</a></li>
<li><a href="..&#x2F;classes/WebGLRenderer.html">WebGLRenderer</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="..&#x2F;modules/PIXI.html">PIXI</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1>InteractionData Class</h1>
<div class="box meta">
<div class="foundat">
Defined in: <a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l319"><code>pixi&#x2F;InteractionManager.js:319</code></a>
</div>
Module: <a href="../modules/PIXI.html">PIXI</a>
</div>
<div class="box intro">
</div>
<div class="constructor">
<h2>Constructor</h2>
<div id="method_InteractionData" class="method item">
<h3 class="name"><code>InteractionData</code></h3>
<span class="paren">()</span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l319"><code>pixi&#x2F;InteractionManager.js:319</code></a>
</p>
</div>
<div class="description">
</div>
</div>
</div>
<div id="classdocs" class="tabview">
<ul class="api-class-tabs">
<li class="api-class-tab index"><a href="#index">Index</a></li>
<li class="api-class-tab properties"><a href="#properties">Properties</a></li>
</ul>
<div>
<div id="index" class="api-class-tabpanel index">
<h2 class="off-left">Item Index</h2>
<div class="index-section properties">
<h3>Properties</h3>
<ul class="index-list properties">
<li class="index-item property">
<a href="#property_global">global</a>
</li>
<li class="index-item property">
<a href="#property_local">local</a>
</li>
</ul>
</div>
</div>
<div id="properties" class="api-class-tabpanel">
<h2 class="off-left">Properties</h2>
<div id="property_global" class="property item">
<h3 class="name"><code>global</code></h3>
<span class="type"><a href="../classes/Point.html" class="crosslink">Point</a></span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l325"><code>pixi&#x2F;InteractionManager.js:325</code></a>
</p>
</div>
<div class="description">
<p>This point stores the global coords of where the touch/mouse event happened</p>
</div>
</div>
<div id="property_local" class="property item">
<h3 class="name"><code>local</code></h3>
<span class="type"><a href="../classes/Point.html" class="crosslink">Point</a></span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l332"><code>pixi&#x2F;InteractionManager.js:332</code></a>
</p>
</div>
<div class="description">
<p>This point stores the local coords of where the touch/mouse event happened</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="..&#x2F;assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="..&#x2F;assets/js/yui-prettify.js"></script>
<script src="..&#x2F;assets/../api.js"></script>
<script src="..&#x2F;assets/js/api-filter.js"></script>
<script src="..&#x2F;assets/js/api-list.js"></script>
<script src="..&#x2F;assets/js/api-search.js"></script>
<script src="..&#x2F;assets/js/apidocs.js"></script>
</body>
</html>

View file

@ -0,0 +1,594 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>InteractionManager - Pixi.js API</title>
<link rel="stylesheet" href="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.8.0pr2&#x2F;build&#x2F;cssgrids&#x2F;cssgrids-min.css">
<link rel="stylesheet" href="..&#x2F;assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="..&#x2F;assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="..&#x2F;assets/favicon.png">
<script src="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;combo?3.8.0pr2&#x2F;build&#x2F;yui&#x2F;yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="..&#x2F;classes/AssetLoader.html">AssetLoader</a></li>
<li><a href="..&#x2F;classes/BaseTexture.html">BaseTexture</a></li>
<li><a href="..&#x2F;classes/CanvasRenderer.html">CanvasRenderer</a></li>
<li><a href="..&#x2F;classes/DisplayObject.html">DisplayObject</a></li>
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
<li><a href="..&#x2F;classes/Rectangle.html">Rectangle</a></li>
<li><a href="..&#x2F;classes/Sprite.html">Sprite</a></li>
<li><a href="..&#x2F;classes/SpriteSheetLoader.html">SpriteSheetLoader</a></li>
<li><a href="..&#x2F;classes/Stage.html">Stage</a></li>
<li><a href="..&#x2F;classes/Texture.html">Texture</a></li>
<li><a href="..&#x2F;classes/WebGLBatch.html">WebGLBatch</a></li>
<li><a href="..&#x2F;classes/WebGLRenderer.html">WebGLRenderer</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="..&#x2F;modules/PIXI.html">PIXI</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1>InteractionManager Class</h1>
<div class="box meta">
<div class="foundat">
Defined in: <a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l7"><code>pixi&#x2F;InteractionManager.js:7</code></a>
</div>
Module: <a href="../modules/PIXI.html">PIXI</a>
</div>
<div class="box intro">
<p>The interaction manager deals with mouse and touch events. At this moment only Sprite's can be interactive.
This manager also supports multitouch.</p>
</div>
<div class="constructor">
<h2>Constructor</h2>
<div id="method_InteractionManager" class="method item">
<h3 class="name"><code>InteractionManager</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>stage</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l7"><code>pixi&#x2F;InteractionManager.js:7</code></a>
</p>
</div>
<div class="description">
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">stage</code>
<span class="type"><a href="../classes/Stage.html" class="crosslink">Stage</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
</div>
<div id="classdocs" class="tabview">
<ul class="api-class-tabs">
<li class="api-class-tab index"><a href="#index">Index</a></li>
<li class="api-class-tab methods"><a href="#methods">Methods</a></li>
<li class="api-class-tab properties"><a href="#properties">Properties</a></li>
</ul>
<div>
<div id="index" class="api-class-tabpanel index">
<h2 class="off-left">Item Index</h2>
<div class="index-section methods">
<h3>Methods</h3>
<ul class="index-list methods">
<li class="index-item method">
<a href="#method_disableMouseOver">disableMouseOver</a>
</li>
<li class="index-item method">
<a href="#method_enableMouseOver">enableMouseOver</a>
</li>
</ul>
</div>
<div class="index-section properties">
<h3>Properties</h3>
<ul class="index-list properties">
<li class="index-item property">
<a href="#property_mouse">mouse</a>
</li>
<li class="index-item property">
<a href="#property_stage">stage</a>
</li>
<li class="index-item property">
<a href="#property_touchs">touchs</a>
</li>
</ul>
</div>
</div>
<div id="methods" class="api-class-tabpanel">
<h2 class="off-left">Methods</h2>
<div id="method_disableMouseOver" class="method item">
<h3 class="name"><code>disableMouseOver</code></h3>
<span class="paren">()</span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l53"><code>pixi&#x2F;InteractionManager.js:53</code></a>
</p>
</div>
<div class="description">
<p>This method will disable rollover/rollout for ALL interactive items
You may wish to use this an optimization if your app does not require rollover/rollout funcitonality</p>
</div>
</div>
<div id="method_enableMouseOver" class="method item">
<h3 class="name"><code>enableMouseOver</code></h3>
<span class="paren">()</span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l66"><code>pixi&#x2F;InteractionManager.js:66</code></a>
</p>
</div>
<div class="description">
<p>This method will enable rollover/rollout for ALL interactive items
It is enabled by default</p>
</div>
</div>
</div>
<div id="properties" class="api-class-tabpanel">
<h2 class="off-left">Properties</h2>
<div id="property_mouse" class="property item">
<h3 class="name"><code>mouse</code></h3>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l30"><code>pixi&#x2F;InteractionManager.js:30</code></a>
</p>
</div>
<div class="description">
<p>the mouse data</p>
</div>
</div>
<div id="property_stage" class="property item">
<h3 class="name"><code>stage</code></h3>
<span class="type"><a href="../classes/Stage.html" class="crosslink">Stage</a></span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l17"><code>pixi&#x2F;InteractionManager.js:17</code></a>
</p>
</div>
<div class="description">
<p>a refference to the stage</p>
</div>
</div>
<div id="property_touchs" class="property item">
<h3 class="name"><code>touchs</code></h3>
<span class="type">Object</span>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_InteractionManager.js.html#l37"><code>pixi&#x2F;InteractionManager.js:37</code></a>
</p>
</div>
<div class="description">
<p>an object that stores current touches (InteractionData) by id reference</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="..&#x2F;assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="..&#x2F;assets/js/yui-prettify.js"></script>
<script src="..&#x2F;assets/../api.js"></script>
<script src="..&#x2F;assets/js/api-filter.js"></script>
<script src="..&#x2F;assets/js/api-list.js"></script>
<script src="..&#x2F;assets/js/api-search.js"></script>
<script src="..&#x2F;assets/js/apidocs.js"></script>
</body>
</html>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -269,6 +273,13 @@
</li>
<li class="index-item method inherited">
<a href="#method_click">click</a>
</li>
<li class="index-item method">
@ -283,6 +294,34 @@
</li>
<li class="index-item method inherited">
<a href="#method_mousedown">mousedown</a>
</li>
<li class="index-item method inherited">
<a href="#method_mouseout">mouseout</a>
</li>
<li class="index-item method inherited">
<a href="#method_mouseover">mouseover</a>
</li>
<li class="index-item method inherited">
<a href="#method_mouseup">mouseup</a>
</li>
<li class="index-item method">
@ -297,6 +336,13 @@
</li>
<li class="index-item method inherited">
<a href="#method_setInteractive">setInteractive</a>
</li>
<li class="index-item method inherited">
@ -311,6 +357,27 @@
</li>
<li class="index-item method inherited">
<a href="#method_tap">tap</a>
</li>
<li class="index-item method inherited">
<a href="#method_touchend">touchend</a>
</li>
<li class="index-item method inherited">
<a href="#method_touchstart">touchstart</a>
</li>
</ul>
@ -642,6 +709,90 @@
</div>
<div id="method_click" class="method item inherited">
<h3 class="name"><code>click</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_click">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l86"><code>pixi&#x2F;Sprite.js:86</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users clicks on the sprite with thier mouse</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -816,6 +967,343 @@
</div>
<div id="method_mousedown" class="method item inherited">
<h3 class="name"><code>mousedown</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_mousedown">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l92"><code>pixi&#x2F;Sprite.js:92</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user clicks the mouse down over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseout" class="method item inherited">
<h3 class="name"><code>mouseout</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_mouseout">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l111"><code>pixi&#x2F;Sprite.js:111</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users mouse leaves the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseover" class="method item inherited">
<h3 class="name"><code>mouseover</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_mouseover">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l105"><code>pixi&#x2F;Sprite.js:105</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users mouse rolls over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseup" class="method item inherited">
<h3 class="name"><code>mouseup</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_mouseup">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l98"><code>pixi&#x2F;Sprite.js:98</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user releases the mouse that was over the sprite
for this callback to be fired the mouse must have been pressed down over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -954,6 +1442,90 @@
</div>
<div id="method_setInteractive" class="method item inherited">
<h3 class="name"><code>setInteractive</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactive</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_setInteractive">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l164"><code>pixi&#x2F;Sprite.js:164</code></a>
</p>
</div>
<div class="description">
<p>Indicates if the sprite will have touch and mouse interactivity. It is false by default</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactive</code>
<span class="type">Boolean</span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -996,7 +1568,7 @@
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l79"><code>pixi&#x2F;Sprite.js:79</code></a>
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l146"><code>pixi&#x2F;Sprite.js:146</code></a>
</p>
@ -1092,6 +1664,260 @@
</div>
<div id="method_tap" class="method item inherited">
<h3 class="name"><code>tap</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_tap">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l121"><code>pixi&#x2F;Sprite.js:121</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users taps on the sprite with thier finger
basically a touch version of click</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_touchend" class="method item inherited">
<h3 class="name"><code>touchend</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_touchend">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l134"><code>pixi&#x2F;Sprite.js:134</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user releases the touch that was over the sprite
for this callback to be fired. The touch must have started over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_touchstart" class="method item inherited">
<h3 class="name"><code>touchstart</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>Inherited from
<a href="..&#x2F;classes&#x2F;Sprite.html#method_touchstart">Sprite</a>:
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l128"><code>pixi&#x2F;Sprite.js:128</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user touch's over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -269,6 +273,13 @@
</li>
<li class="index-item method">
<a href="#method_click">click</a>
</li>
<li class="index-item method">
@ -287,6 +298,34 @@
<span class="flag static">static</span>
</li>
<li class="index-item method">
<a href="#method_mousedown">mousedown</a>
</li>
<li class="index-item method">
<a href="#method_mouseout">mouseout</a>
</li>
<li class="index-item method">
<a href="#method_mouseover">mouseover</a>
</li>
<li class="index-item method">
<a href="#method_mouseup">mouseup</a>
</li>
<li class="index-item method inherited">
@ -294,6 +333,13 @@
</li>
<li class="index-item method">
<a href="#method_setInteractive">setInteractive</a>
</li>
<li class="index-item method">
@ -301,6 +347,27 @@
</li>
<li class="index-item method">
<a href="#method_tap">tap</a>
</li>
<li class="index-item method">
<a href="#method_touchend">touchend</a>
</li>
<li class="index-item method">
<a href="#method_touchstart">touchstart</a>
</li>
</ul>
@ -604,6 +671,93 @@
</div>
<div id="method_click" class="method item">
<h3 class="name"><code>click</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l86"><code>pixi&#x2F;Sprite.js:86</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users clicks on the sprite with thier mouse</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -655,7 +809,7 @@
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l111"><code>pixi&#x2F;Sprite.js:111</code></a>
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l189"><code>pixi&#x2F;Sprite.js:189</code></a>
</p>
@ -666,7 +820,7 @@
</div>
<div class="description">
<p>Helper function that creates a sprite that will contain a texture from the TextureCache based on tjhe frameId
<p>Helper function that creates a sprite that will contain a texture from the TextureCache based on the frameId
The frame ids are created when a Texture packer file has been loaded</p>
</div>
@ -762,7 +916,7 @@
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l127"><code>pixi&#x2F;Sprite.js:127</code></a>
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l205"><code>pixi&#x2F;Sprite.js:205</code></a>
</p>
@ -818,6 +972,355 @@
</div>
<div id="method_mousedown" class="method item">
<h3 class="name"><code>mousedown</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l92"><code>pixi&#x2F;Sprite.js:92</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user clicks the mouse down over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseout" class="method item">
<h3 class="name"><code>mouseout</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l111"><code>pixi&#x2F;Sprite.js:111</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users mouse leaves the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseover" class="method item">
<h3 class="name"><code>mouseover</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l105"><code>pixi&#x2F;Sprite.js:105</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users mouse rolls over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_mouseup" class="method item">
<h3 class="name"><code>mouseup</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l98"><code>pixi&#x2F;Sprite.js:98</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user releases the mouse that was over the sprite
for this callback to be fired the mouse must have been pressed down over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -902,6 +1405,93 @@
</div>
<div id="method_setInteractive" class="method item">
<h3 class="name"><code>setInteractive</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactive</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l164"><code>pixi&#x2F;Sprite.js:164</code></a>
</p>
</div>
<div class="description">
<p>Indicates if the sprite will have touch and mouse interactivity. It is false by default</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactive</code>
<span class="type">Boolean</span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
@ -947,7 +1537,7 @@
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l79"><code>pixi&#x2F;Sprite.js:79</code></a>
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l146"><code>pixi&#x2F;Sprite.js:146</code></a>
</p>
@ -989,6 +1579,269 @@
</div>
<div id="method_tap" class="method item">
<h3 class="name"><code>tap</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l121"><code>pixi&#x2F;Sprite.js:121</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the users taps on the sprite with thier finger
basically a touch version of click</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_touchend" class="method item">
<h3 class="name"><code>touchend</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l134"><code>pixi&#x2F;Sprite.js:134</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user releases the touch that was over the sprite
for this callback to be fired. The touch must have started over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>
<div id="method_touchstart" class="method item">
<h3 class="name"><code>touchstart</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>interactionData</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="..&#x2F;files&#x2F;pixi_Sprite.js.html#l128"><code>pixi&#x2F;Sprite.js:128</code></a>
</p>
</div>
<div class="description">
<p>A callback that is used when the user touch's over the sprite</p>
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">interactionData</code>
<span class="type"><a href="../classes/InteractionData.html" class="crosslink">InteractionData</a></span>
<div class="param-description">
</div>
</li>
</ul>
</div>
</div>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -157,6 +161,12 @@
</li>
<li class="arg">
<code>interactive</code>
</li>
</ul><span class="paren">)</span>
</div>
@ -221,6 +231,21 @@
</li>
<li class="param">
<code class="param-name">interactive</code>
<span class="type">Boolean</span>
<div class="param-description">
<p>enable / disable interaction (default is false)</p>
</div>
</li>
</ul>
</div>
@ -687,7 +712,7 @@
<a href="..&#x2F;files&#x2F;pixi_Stage.js.html#l44"><code>pixi&#x2F;Stage.js:44</code></a>
<a href="..&#x2F;files&#x2F;pixi_Stage.js.html#l59"><code>pixi&#x2F;Stage.js:59</code></a>
</p>
@ -764,7 +789,7 @@
<a href="..&#x2F;files&#x2F;pixi_Stage.js.html#l30"><code>pixi&#x2F;Stage.js:30</code></a>
<a href="..&#x2F;files&#x2F;pixi_Stage.js.html#l35"><code>pixi&#x2F;Stage.js:35</code></a>
</p>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -801,6 +805,10 @@
<span class="returns-inline">
<span class="type"><a href="../classes/Texture.html" class="crosslink">Texture</a></span>
</span>
@ -865,6 +873,19 @@
<div class="returns">
<h4>Returns:</h4>
<div class="returns-description">
<span class="type"><a href="../classes/Texture.html" class="crosslink">Texture</a></span>:
the texture that was removed
</div>
</div>
</div>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -160,6 +164,12 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
</li>
<li class="arg">
<code>view</code>
</li>
</ul><span class="paren">)</span>
</div>
@ -239,6 +249,21 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
</li>
<li class="param">
<code class="param-name">view</code>
<span class="type">Canvas</span>
<div class="param-description">
<p>the canvas to use as a view, optional</p>
</div>
</li>
</ul>
</div>
@ -345,7 +370,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_WebGLRenderer.js.html#l157"><code>pixi&#x2F;renderers&#x2F;WebGLRenderer.js:157</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_WebGLRenderer.js.html#l158"><code>pixi&#x2F;renderers&#x2F;WebGLRenderer.js:158</code></a>
</p>
@ -438,7 +463,7 @@ Dont forget to add the view to your DOM or you will not see anything :)</p>
<a href="..&#x2F;files&#x2F;pixi_renderers_WebGLRenderer.js.html#l526"><code>pixi&#x2F;renderers&#x2F;WebGLRenderer.js:526</code></a>
<a href="..&#x2F;files&#x2F;pixi_renderers_WebGLRenderer.js.html#l538"><code>pixi&#x2F;renderers&#x2F;WebGLRenderer.js:538</code></a>
</p>

View file

@ -1,9 +1,9 @@
{
"project": {
"name": "Pixi.js API",
"logo": "../logo_small.png",
"description": "The Foo API: a library for doing X, Y, and Z",
"version": "0.9",
"logo": "http://www.goodboydigital.com/pixijs/logo_small.png",
"description": "Pixi.js is a fast lightweight 2D library that works across all devices.",
"version": "1.0",
"url": "http://goodboydigital.com/"
},
"files": {
@ -130,6 +130,16 @@
"fors": {},
"namespaces": {}
},
"pixi/InteractionManager.js": {
"name": "pixi/InteractionManager.js",
"modules": {},
"classes": {
"InteractionManager": 1,
"InteractionData": 1
},
"fors": {},
"namespaces": {}
},
"pixi/MovieClip.js": {
"name": "pixi/MovieClip.js",
"modules": {},
@ -199,6 +209,8 @@
"Texture": 1,
"DisplayObject": 1,
"DisplayObjectContainer": 1,
"InteractionManager": 1,
"InteractionData": 1,
"MovieClip": 1,
"Point": 1,
"Rectangle": 1,
@ -279,6 +291,11 @@
"name": "height",
"description": "the height of the canvas view",
"type": "Number"
},
{
"name": "view",
"description": "the canvas to use as a view, optional",
"type": "Canvas"
}
]
},
@ -328,6 +345,11 @@
"name": "height",
"description": "the height of the canvas view",
"type": "Number"
},
{
"name": "view",
"description": "the canvas to use as a view, optional",
"type": "Canvas"
}
],
"default": "0"
@ -410,6 +432,41 @@
"extends": "DisplayObject",
"is_constructor": 1
},
"InteractionManager": {
"name": "InteractionManager",
"shortname": "InteractionManager",
"classitems": [],
"plugins": [],
"extensions": [],
"plugin_for": [],
"extension_for": [],
"module": "PIXI",
"file": "pixi/InteractionManager.js",
"line": 7,
"description": "The interaction manager deals with mouse and touch events. At this moment only Sprite's can be interactive.\nThis manager also supports multitouch.",
"is_constructor": 1,
"params": [
{
"name": "stage",
"description": "",
"type": "Stage"
}
],
"type": "Stage"
},
"InteractionData": {
"name": "InteractionData",
"shortname": "InteractionData",
"classitems": [],
"plugins": [],
"extensions": [],
"plugin_for": [],
"extension_for": [],
"module": "PIXI",
"file": "pixi/InteractionManager.js",
"line": 319,
"is_constructor": 1
},
"MovieClip": {
"name": "MovieClip",
"shortname": "MovieClip",
@ -539,6 +596,11 @@
"name": "backgroundColor",
"description": "the background color of the stage",
"type": "Number"
},
{
"name": "interactive",
"description": "enable / disable interaction (default is false)",
"type": "Boolean"
}
]
}
@ -613,7 +675,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 14,
"line": 15,
"description": "The width of the canvas view",
"itemtype": "property",
"name": "width",
@ -623,7 +685,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 21,
"line": 22,
"description": "The height of the canvas view",
"itemtype": "property",
"name": "height",
@ -633,7 +695,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 31,
"line": 32,
"description": "The canvas element that the everything is drawn to",
"itemtype": "property",
"name": "view",
@ -642,7 +704,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 45,
"line": 46,
"description": "The canvas context that the everything is drawn to",
"itemtype": "property",
"name": "context",
@ -651,7 +713,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 56,
"line": 57,
"description": "Renders the stage to its canvas view",
"itemtype": "method",
"name": "render",
@ -666,7 +728,7 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 83,
"line": 96,
"description": "resizes the canvas view to the specified width and height",
"params": [
{
@ -682,21 +744,21 @@
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 97,
"line": 110,
"access": "private",
"tagname": "",
"class": "CanvasRenderer"
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 167,
"line": 180,
"access": "private",
"tagname": "",
"class": "CanvasRenderer"
},
{
"file": "pixi/renderers/CanvasRenderer.js",
"line": 202,
"line": 215,
"access": "private",
"tagname": "",
"class": "CanvasRenderer"
@ -877,21 +939,21 @@
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 64,
"line": 65,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 103,
"line": 104,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 157,
"line": 158,
"description": "Renders the stage to its webGL view",
"itemtype": "method",
"name": "render",
@ -906,28 +968,28 @@
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 223,
"line": 235,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 252,
"line": 264,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 448,
"line": 460,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 526,
"line": 538,
"description": "resizes the webGL view to the specified width and height",
"itemtype": "method",
"name": "resize",
@ -947,28 +1009,28 @@
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 547,
"line": 559,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 575,
"line": 587,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 653,
"line": 665,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
},
{
"file": "pixi/renderers/WebGLRenderer.js",
"line": 662,
"line": 674,
"access": "private",
"tagname": "",
"class": "WebGLRenderer"
@ -1140,6 +1202,10 @@
"type": "String"
}
],
"return": {
"description": "the texture that was removed",
"type": "Texture"
},
"class": "Texture"
},
{
@ -1165,6 +1231,11 @@
"name": "height",
"description": "the height of the renderers view",
"type": "Number"
},
{
"name": "view",
"description": "the canvas to use as a view, optional",
"type": "Canvas"
}
],
"class": "DisplayObject"
@ -1258,7 +1329,7 @@
},
{
"file": "pixi/DisplayObject.js",
"line": 79,
"line": 82,
"access": "private",
"tagname": "",
"class": "DisplayObject"
@ -1335,6 +1406,73 @@
"tagname": "",
"class": "DisplayObjectContainer"
},
{
"file": "pixi/InteractionManager.js",
"line": 1,
"author": "Mat Groves http://matgroves.com/ @Doormat23",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 17,
"description": "a refference to the stage",
"itemtype": "property",
"name": "stage",
"type": "Stage",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 30,
"description": "the mouse data",
"itemtype": "property",
"name": "mouse",
"type": "InteractionData",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 37,
"description": "an object that stores current touches (InteractionData) by id reference",
"itemtype": "property",
"name": "touchs",
"type": "Object",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 53,
"description": "This method will disable rollover/rollout for ALL interactive items\nYou may wish to use this an optimization if your app does not require rollover/rollout funcitonality",
"itemtype": "method",
"name": "disableMouseOver",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 66,
"description": "This method will enable rollover/rollout for ALL interactive items\nIt is enabled by default",
"itemtype": "method",
"name": "enableMouseOver",
"class": "InteractionManager"
},
{
"file": "pixi/InteractionManager.js",
"line": 325,
"description": "This point stores the global coords of where the touch/mouse event happened",
"itemtype": "property",
"name": "global",
"type": "Point",
"class": "InteractionData"
},
{
"file": "pixi/InteractionManager.js",
"line": 332,
"description": "This point stores the local coords of where the touch/mouse event happened",
"itemtype": "property",
"name": "local",
"type": "Point",
"class": "InteractionData"
},
{
"file": "pixi/MovieClip.js",
"line": 1,
@ -1584,7 +1722,135 @@
},
{
"file": "pixi/Sprite.js",
"line": 79,
"line": 86,
"description": "A callback that is used when the users clicks on the sprite with thier mouse",
"itemtype": "method",
"name": "click",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 92,
"description": "A callback that is used when the user clicks the mouse down over the sprite",
"itemtype": "method",
"name": "mousedown",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 98,
"description": "A callback that is used when the user releases the mouse that was over the sprite\nfor this callback to be fired the mouse must have been pressed down over the sprite",
"itemtype": "method",
"name": "mouseup",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 105,
"description": "A callback that is used when the users mouse rolls over the sprite",
"itemtype": "method",
"name": "mouseover",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 111,
"description": "A callback that is used when the users mouse leaves the sprite",
"itemtype": "method",
"name": "mouseout",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 121,
"description": "A callback that is used when the users taps on the sprite with thier finger\nbasically a touch version of click",
"itemtype": "method",
"name": "tap",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 128,
"description": "A callback that is used when the user touch's over the sprite",
"itemtype": "method",
"name": "touchstart",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 134,
"description": "A callback that is used when the user releases the touch that was over the sprite\nfor this callback to be fired. The touch must have started over the sprite",
"itemtype": "method",
"name": "touchend",
"params": [
{
"name": "interactionData",
"description": "",
"type": "InteractionData"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 146,
"itemtype": "method",
"name": "setTexture",
"params": [
@ -1599,7 +1865,23 @@
},
{
"file": "pixi/Sprite.js",
"line": 98,
"line": 164,
"description": "Indicates if the sprite will have touch and mouse interactivity. It is false by default",
"itemtype": "method",
"name": "setInteractive",
"params": [
{
"name": "interactive",
"description": "",
"type": "Boolean"
}
],
"class": "Sprite",
"module": "PIXI"
},
{
"file": "pixi/Sprite.js",
"line": 177,
"access": "private",
"tagname": "",
"class": "Sprite",
@ -1607,8 +1889,8 @@
},
{
"file": "pixi/Sprite.js",
"line": 111,
"description": "Helper function that creates a sprite that will contain a texture from the TextureCache based on tjhe frameId\n The frame ids are created when a Texture packer file has been loaded",
"line": 189,
"description": "Helper function that creates a sprite that will contain a texture from the TextureCache based on the frameId\n The frame ids are created when a Texture packer file has been loaded",
"itemtype": "method",
"name": "fromFrame",
"static": 1,
@ -1628,7 +1910,7 @@
},
{
"file": "pixi/Sprite.js",
"line": 127,
"line": 205,
"description": "Helper function that creates a sprite that will contain a texture based on an image url\n If the image is not in the texture cache it will be loaded",
"itemtype": "method",
"name": "fromImage",
@ -1655,7 +1937,7 @@
},
{
"file": "pixi/Stage.js",
"line": 30,
"line": 35,
"itemtype": "method",
"name": "updateTransform",
"internal": "",
@ -1664,7 +1946,7 @@
},
{
"file": "pixi/Stage.js",
"line": 44,
"line": 59,
"itemtype": "method",
"name": "setBackgroundColor",
"params": [
@ -1685,7 +1967,7 @@
},
{
"message": "unknown tag: internal",
"line": " pixi/Stage.js:30"
"line": " pixi/Stage.js:35"
},
{
"message": "Missing item type",
@ -1717,19 +1999,19 @@
},
{
"message": "Missing item type\nresizes the canvas view to the specified width and height",
"line": " pixi/renderers/CanvasRenderer.js:83"
"line": " pixi/renderers/CanvasRenderer.js:96"
},
{
"message": "Missing item type",
"line": " pixi/renderers/CanvasRenderer.js:97"
"line": " pixi/renderers/CanvasRenderer.js:110"
},
{
"message": "Missing item type",
"line": " pixi/renderers/CanvasRenderer.js:167"
"line": " pixi/renderers/CanvasRenderer.js:180"
},
{
"message": "Missing item type",
"line": " pixi/renderers/CanvasRenderer.js:202"
"line": " pixi/renderers/CanvasRenderer.js:215"
},
{
"message": "Missing item type",
@ -1761,39 +2043,39 @@
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:64"
"line": " pixi/renderers/WebGLRenderer.js:65"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:103"
"line": " pixi/renderers/WebGLRenderer.js:104"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:223"
"line": " pixi/renderers/WebGLRenderer.js:235"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:252"
"line": " pixi/renderers/WebGLRenderer.js:264"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:448"
"line": " pixi/renderers/WebGLRenderer.js:460"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:547"
"line": " pixi/renderers/WebGLRenderer.js:559"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:575"
"line": " pixi/renderers/WebGLRenderer.js:587"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:653"
"line": " pixi/renderers/WebGLRenderer.js:665"
},
{
"message": "Missing item type",
"line": " pixi/renderers/WebGLRenderer.js:662"
"line": " pixi/renderers/WebGLRenderer.js:674"
},
{
"message": "Missing item type",
@ -1829,7 +2111,7 @@
},
{
"message": "Missing item type",
"line": " pixi/DisplayObject.js:79"
"line": " pixi/DisplayObject.js:82"
},
{
"message": "Missing item type",
@ -1839,6 +2121,10 @@
"message": "Missing item type",
"line": " pixi/DisplayObjectContainer.js:126"
},
{
"message": "Missing item type",
"line": " pixi/InteractionManager.js:1"
},
{
"message": "Missing item type",
"line": " pixi/MovieClip.js:1"
@ -1861,7 +2147,7 @@
},
{
"message": "Missing item type",
"line": " pixi/Sprite.js:98"
"line": " pixi/Sprite.js:177"
},
{
"message": "Missing item type",

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -187,6 +191,9 @@ PIXI.DisplayObject = function()
this._cr = 1;
this.renderable = false;
&#x2F;&#x2F; NOT YET :&#x2F; This only applies to children within the container..
this.interactive = true;
}
&#x2F;&#x2F; constructor
@ -200,7 +207,7 @@ PIXI.DisplayObject.prototype.updateTransform = function()
&#x2F;&#x2F; TODO OPTIMIZE THIS!! with dirty
if(this.rotation != this.rotationCache)
{
this.rotationCach = this.rotation;
this.rotationCache = this.rotation;
this._sr = Math.sin(this.rotation);
this._cr = Math.cos(this.rotation);
}

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -134,7 +138,7 @@ PIXI.DisplayObjectContainer = function()
* @property children {Array}
*&#x2F;
this.children = [];
&#x2F;&#x2F;s
this.renderable = false;
}

View file

@ -0,0 +1,483 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>pixi&#x2F;InteractionManager.js - Pixi.js API</title>
<link rel="stylesheet" href="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.8.0pr2&#x2F;build&#x2F;cssgrids&#x2F;cssgrids-min.css">
<link rel="stylesheet" href="..&#x2F;assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="..&#x2F;assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="..&#x2F;assets/favicon.png">
<script src="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;combo?3.8.0pr2&#x2F;build&#x2F;yui&#x2F;yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="..&#x2F;classes/AssetLoader.html">AssetLoader</a></li>
<li><a href="..&#x2F;classes/BaseTexture.html">BaseTexture</a></li>
<li><a href="..&#x2F;classes/CanvasRenderer.html">CanvasRenderer</a></li>
<li><a href="..&#x2F;classes/DisplayObject.html">DisplayObject</a></li>
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
<li><a href="..&#x2F;classes/Rectangle.html">Rectangle</a></li>
<li><a href="..&#x2F;classes/Sprite.html">Sprite</a></li>
<li><a href="..&#x2F;classes/SpriteSheetLoader.html">SpriteSheetLoader</a></li>
<li><a href="..&#x2F;classes/Stage.html">Stage</a></li>
<li><a href="..&#x2F;classes/Texture.html">Texture</a></li>
<li><a href="..&#x2F;classes/WebGLBatch.html">WebGLBatch</a></li>
<li><a href="..&#x2F;classes/WebGLRenderer.html">WebGLRenderer</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="..&#x2F;modules/PIXI.html">PIXI</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1 class="file-heading">File: pixi&#x2F;InteractionManager.js</h1>
<div class="file">
<pre class="code prettyprint linenums">
&#x2F;**
* @author Mat Groves http:&#x2F;&#x2F;matgroves.com&#x2F; @Doormat23
*&#x2F;
&#x2F;**
The interaction manager deals with mouse and touch events. At this moment only Sprite&#x27;s can be interactive.
This manager also supports multitouch.
@class InteractionManager
@constructor
@param stage {Stage}
@type Stage
*&#x2F;
PIXI.InteractionManager = function(stage)
{
&#x2F;**
* a refference to the stage
* @property stage
* @type Stage
*&#x2F;
this.stage = stage;
&#x2F;&#x2F; helpers
this.tempPoint = new PIXI.Point();
this.tempMatrix = mat3.create();
this.mouseoverEnabled = true;
&#x2F;**
* the mouse data
* @property mouse
* @type InteractionData
*&#x2F;
this.mouse = new PIXI.InteractionData();
&#x2F;**
* an object that stores current touches (InteractionData) by id reference
* @property touchs
* @type Object
*&#x2F;
this.touchs = {};
&#x2F;&#x2F;tiny little interactiveData pool!
this.pool = [];
this.interactiveItems = [];
}
&#x2F;&#x2F; constructor
PIXI.InteractionManager.constructor = PIXI.InteractionManager;
&#x2F;**
* This method will disable rollover&#x2F;rollout for ALL interactive items
* You may wish to use this an optimization if your app does not require rollover&#x2F;rollout funcitonality
* @method disableMouseOver
*&#x2F;
PIXI.InteractionManager.prototype.disableMouseOver = function()
{
if(!this.mouseoverEnabled)return;
this.mouseoverEnabled = false;
if(this.target)this.target.view.removeEventListener(&#x27;mousemove&#x27;, this.onMouseMove.bind(this));
}
&#x2F;**
* This method will enable rollover&#x2F;rollout for ALL interactive items
* It is enabled by default
* @method enableMouseOver
*&#x2F;
PIXI.InteractionManager.prototype.enableMouseOver = function()
{
if(this.mouseoverEnabled)return;
this.mouseoverEnabled = false;
if(this.target)this.target.view.addEventListener(&#x27;mousemove&#x27;, this.onMouseMove.bind(this));
}
PIXI.InteractionManager.prototype.collectInteractiveSprite = function(displayObject)
{
var children = displayObject.children;
var length = children.length;
for (var i = length - 1; i &gt;= 0; i--)
{
var child = children[i];
&#x2F;&#x2F; only sprite&#x27;s right now...
if(child instanceof PIXI.Sprite)
{
if(child.interactive)this.interactiveItems.push(child);
}
else
{
&#x2F;&#x2F; use this to optimize..
if(!child.interactive)continue;
}
if(child.children.length &gt; 0)
{
this.collectInteractiveSprite(child);
}
}
}
PIXI.InteractionManager.prototype.setTarget = function(target)
{
this.target = target;
if(this.mouseoverEnabled)target.view.addEventListener(&#x27;mousemove&#x27;, this.onMouseMove.bind(this), true);
target.view.addEventListener(&#x27;mousedown&#x27;, this.onMouseDown.bind(this), true);
target.view.addEventListener(&#x27;mouseup&#x27;, this.onMouseUp.bind(this), true);
target.view.addEventListener(&#x27;mouseout&#x27;, this.onMouseUp.bind(this), true);
&#x2F;&#x2F; aint no multi touch just yet!
target.view.addEventListener(&quot;touchstart&quot;, this.onTouchStart.bind(this), true);
target.view.addEventListener(&quot;touchend&quot;, this.onTouchEnd.bind(this), true);
target.view.addEventListener(&quot;touchmove&quot;, this.onTouchMove.bind(this), true);
}
PIXI.InteractionManager.prototype.hitTest = function(interactionData)
{
if(this.dirty)
{
this.dirty = false;
this.interactiveItems = [];
&#x2F;&#x2F; go through and collect all the objects that are interactive..
this.collectInteractiveSprite(this.stage);
}
var tempPoint = this.tempPoint;
var tempMatrix = this.tempMatrix;
var global = interactionData.global;
var length = this.interactiveItems.length;
for (var i = 0; i &lt; length; i++)
{
var item = this.interactiveItems[i];
if(!item.visible)continue;
&#x2F;&#x2F; TODO this could do with some optimizing!
&#x2F;&#x2F; maybe store the inverse?
&#x2F;&#x2F; or do a lazy check first?
&#x2F;&#x2F;mat3.inverse(item.worldTransform, tempMatrix);
&#x2F;&#x2F;tempPoint.x = tempMatrix[0] * global.x + tempMatrix[1] * global.y + tempMatrix[2];
&#x2F;&#x2F;tempPoint.y = tempMatrix[4] * global.y + tempMatrix[3] * global.x + tempMatrix[5];
&#x2F;&#x2F; OPTIMIZED! assuming the matrix transform is affine.. which it totally shold be!
var worldTransform = item.worldTransform;
var a00 = worldTransform[0], a01 = worldTransform[1], a02 = worldTransform[2],
a10 = worldTransform[3], a11 = worldTransform[4], a12 = worldTransform[5],
id = 1 &#x2F; (a00 * a11 + a01 * -a10);
tempPoint.x = a11 * id * global.x + -a01 * id * global.y + (a12 * a01 - a02 * a11) * id;
tempPoint.y = a00 * id * global.y + -a10 * id * global.x + (-a12 * a00 + a02 * a10) * id;
var x1 = -item.width * item.anchor.x
if(tempPoint.x &gt; x1 &amp;&amp; tempPoint.x &lt; x1 + item.width)
{
var y1 = -item.height * item.anchor.y;
if(tempPoint.y &gt; y1 &amp;&amp; tempPoint.y &lt; y1 + item.height)
{
interactionData.local.x = tempPoint.x;
interactionData.local.y = tempPoint.y;
return item;
}
}
}
return null;
}
PIXI.InteractionManager.prototype.onMouseMove = function(event)
{
event.preventDefault();
&#x2F;&#x2F; TODO optimize by not check EVERY TIME! maybe half as often? &#x2F;&#x2F;
var rect = this.target.view.getBoundingClientRect();
this.mouse.global.x = (event.clientX - rect.left) * (this.target.width &#x2F; rect.width);
this.mouse.global.y = (event.clientY - rect.top) * ( this.target.height &#x2F; rect.height);
var item = this.hitTest(this.mouse);
if(this.currentOver != item)
{
if(this.currentOver)
{
if(this.currentOver.mouseout)this.currentOver.mouseout(this.mouse);
this.currentOver = null;
}
this.target.view.style.cursor = &quot;default&quot;;
}
if(item)
{
if(this.currentOver == item)return;
this.currentOver = item;
this.target.view.style.cursor = &quot;pointer&quot;;
if(item.mouseover)item.mouseover(this.mouse);
}
}
PIXI.InteractionManager.prototype.onMouseDown = function(event)
{
var rect = this.target.view.getBoundingClientRect();
this.mouse.global.x = (event.clientX - rect.left) * (this.target.width &#x2F; rect.width);
this.mouse.global.y = (event.clientY - rect.top) * (this.target.height &#x2F; rect.height);
var item = this.hitTest(this.mouse);
if(item)
{
this.currentDown = item;
if(item.mousedown)item.mousedown(this.mouse);
}
}
PIXI.InteractionManager.prototype.onMouseUp = function(event)
{
if(this.currentDown)
{
if(this.currentDown.mouseup)this.currentDown.mouseup(this.mouse);
if(this.currentOver == this.currentDown)if(this.currentDown.click)this.currentDown.click(this.mouse);
this.currentDown = null;
}
}
PIXI.InteractionManager.prototype.onTouchMove = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i &lt; changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.touchs[touchEvent.identifier];
&#x2F;&#x2F; update the touch position
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width &#x2F; rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height &#x2F; rect.height);
}
}
PIXI.InteractionManager.prototype.onTouchStart = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i &lt; changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.pool.pop();
if(!touchData)touchData = new PIXI.InteractionData();
this.touchs[touchEvent.identifier] = touchData;
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width &#x2F; rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height &#x2F; rect.height);
var item = this.hitTest(touchData);
if(item)
{
touchData.currentDown = item;
if(item.touchstart)item.touchstart(touchData);
}
}
}
PIXI.InteractionManager.prototype.onTouchEnd = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i &lt; changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.touchs[touchEvent.identifier];
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width &#x2F; rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height &#x2F; rect.height);
if(touchData.currentDown)
{
if(touchData.currentDown.touchend)touchData.currentDown.touchend(touchData);
var item = this.hitTest(touchData);
if(item == touchData.currentDown)
{
if(touchData.currentDown.tap)touchData.currentDown.tap(touchData);
}
touchData.currentDown = null;
}
&#x2F;&#x2F; remove the touch..
this.pool.push(touchData);
this.touchs[touchEvent.identifier] = null;
}
}
&#x2F;**
@class InteractionData
@constructor
*&#x2F;
PIXI.InteractionData = function()
{
&#x2F;**
* This point stores the global coords of where the touch&#x2F;mouse event happened
* @property global
* @type Point
*&#x2F;
this.global = new PIXI.Point();
&#x2F;**
* This point stores the local coords of where the touch&#x2F;mouse event happened
* @property local
* @type Point
*&#x2F;
this.local = new PIXI.Point();
}
&#x2F;&#x2F; constructor
PIXI.InteractionData.constructor = PIXI.InteractionData;
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="..&#x2F;assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="..&#x2F;assets/js/yui-prettify.js"></script>
<script src="..&#x2F;assets/../api.js"></script>
<script src="..&#x2F;assets/js/api-filter.js"></script>
<script src="..&#x2F;assets/js/api-list.js"></script>
<script src="..&#x2F;assets/js/api-search.js"></script>
<script src="..&#x2F;assets/js/apidocs.js"></script>
</body>
</html>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -186,6 +190,73 @@ PIXI.Sprite = function(texture)
}
this.renderable = true;
&#x2F;&#x2F; [readonly] best not to toggle directly! use setInteractive()
this.interactive = false;
&#x2F;&#x2F; thi next bit is here for the docs...
&#x2F;*
* MOUSE Callbacks
*&#x2F;
&#x2F;**
* A callback that is used when the users clicks on the sprite with thier mouse
* @method click
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the user clicks the mouse down over the sprite
* @method mousedown
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the user releases the mouse that was over the sprite
* for this callback to be fired the mouse must have been pressed down over the sprite
* @method mouseup
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the users mouse rolls over the sprite
* @method mouseover
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the users mouse leaves the sprite
* @method mouseout
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;*
* TOUCH Callbacks
*&#x2F;
&#x2F;**
* A callback that is used when the users taps on the sprite with thier finger
* basically a touch version of click
* @method tap
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the user touch&#x27;s over the sprite
* @method touchstart
* @param interactionData {InteractionData}
*&#x2F;
&#x2F;**
* A callback that is used when the user releases the touch that was over the sprite
* for this callback to be fired. The touch must have started over the sprite
* @method touchend
* @param interactionData {InteractionData}
*&#x2F;
}
&#x2F;&#x2F; constructor
@ -208,7 +279,19 @@ PIXI.Sprite.prototype.setTexture = function(texture)
this.width = texture.frame.width;
this.height = texture.frame.height;
this.updateFrame = true;
}
&#x2F;**
* Indicates if the sprite will have touch and mouse interactivity. It is false by default
* @method setInteractive
* @param interactive {Boolean}
*&#x2F;
PIXI.Sprite.prototype.setInteractive = function(interactive)
{
this.interactive = interactive;
&#x2F;&#x2F; TODO more to be done here..
&#x2F;&#x2F; need to sort out a re-crawl!
if(stage)stage.dirty = true;
}
&#x2F;**
@ -223,10 +306,9 @@ PIXI.Sprite.prototype.onTextureUpdate = function(event)
&#x2F;&#x2F; some helper functions..
&#x2F;**
*
* Helper function that creates a sprite that will contain a texture from the TextureCache based on tjhe frameId
* Helper function that creates a sprite that will contain a texture from the TextureCache based on the frameId
* The frame ids are created when a Texture packer file has been loaded
* @method fromFrame
* @static

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -124,8 +128,9 @@ A Stage represents the root of the display tree. Everything connected to the sta
@extends DisplayObjectContainer
@constructor
@param backgroundColor {Number} the background color of the stage
@param interactive {Boolean} enable &#x2F; disable interaction (default is false)
*&#x2F;
PIXI.Stage = function(backgroundColor)
PIXI.Stage = function(backgroundColor, interactive)
{
PIXI.DisplayObjectContainer.call( this );
@ -135,6 +140,10 @@ PIXI.Stage = function(backgroundColor)
this.childIndex = 0;
this.stage= this;
&#x2F;&#x2F; interaction!
this.interactive = interactive ? true : false;
this.interactionManager = new PIXI.InteractionManager(this);
this.setBackgroundColor(backgroundColor);
}
@ -155,6 +164,16 @@ PIXI.Stage.prototype.updateTransform = function()
{
this.children[i].updateTransform();
}
if(this.dirty)
{
this.dirty = false;
&#x2F;&#x2F; update interactive!
this.interactionManager.dirty = true;
}
}
&#x2F;**
@ -170,7 +189,7 @@ PIXI.Stage.prototype.setBackgroundColor = function(backgroundColor)
PIXI.Stage.prototype.__addChild = function(child)
{
&#x2F;&#x2F;this.__childrenAdded.push(child);
if(child.interactive)this.dirty = true;
child.stage = this;
@ -187,6 +206,8 @@ PIXI.Stage.prototype.__addChild = function(child)
PIXI.Stage.prototype.__removeChild = function(child)
{
if(child.interactive)this.dirty = true;
this.__childrenRemoved.push(child);
child.stage = undefined;

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -124,8 +128,9 @@
* @class CanvasRenderer
* @param width {Number} the width of the canvas view
* @param height {Number} the height of the canvas view
* @param view {Canvas} the canvas to use as a view, optional
*&#x2F;
PIXI.CanvasRenderer = function(width, height)
PIXI.CanvasRenderer = function(width, height, view)
{
&#x2F;**
* The width of the canvas view
@ -149,7 +154,7 @@ PIXI.CanvasRenderer = function(width, height)
* @property view
* @type Canvas
*&#x2F;
this.view = document.createElement( &#x27;canvas&#x27; );
this.view = view ? view : document.createElement( &#x27;canvas&#x27; );
&#x2F;&#x2F; hack to enable some hardware acceleration!
&#x2F;&#x2F;this.view.style[&quot;transform&quot;] = &quot;translatez(0)&quot;;
@ -194,6 +199,18 @@ PIXI.CanvasRenderer.prototype.render = function(stage)
this.context.clearRect(0, 0, this.width, this.height)
this.renderDisplayObject(stage);
&#x2F;&#x2F;as
&#x2F;&#x2F; run interaction!
if(stage.interactive)
{
&#x2F;&#x2F;need to add some events!
if(!stage._interactiveEventsAdded)
{
stage._interactiveEventsAdded = true;
stage.interactionManager.setTarget(this);
}
}
}
&#x2F;**

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -129,13 +133,14 @@ PIXI._defaultFrame = new PIXI.Rectangle(0,0,1,1);
* @default 0
* @param height {Number} the height of the canvas view
* @default 0
* @param view {Canvas} the canvas to use as a view, optional
*&#x2F;
PIXI.WebGLRenderer = function(width, height)
PIXI.WebGLRenderer = function(width, height, view)
{
this.width = width ? width : 800;
this.height = height ? height : 600;
this.view = document.createElement( &#x27;canvas&#x27; );
this.view = view ? view : document.createElement( &#x27;canvas&#x27; );
this.view.width = this.width;
this.view.height = this.height;
this.view.background = &quot;#FF0000&quot;;
@ -284,7 +289,7 @@ PIXI.WebGLRenderer.prototype.render = function(stage)
for (var i=0; i &lt; stage.__childrenRemoved.length; i++)
{
this.removeDisplayObject(stage.__childrenRemoved[i]);
&#x2F;&#x2F; stage.__childrenRemoved[i].cacheVisible = false;
&#x2F;&#x2F; stage.__childrenRemoved[i].cacheVisible = false;
}
&#x2F;*
&#x2F;&#x2F; no add all new sprites
@ -334,6 +339,17 @@ PIXI.WebGLRenderer.prototype.render = function(stage)
}
}
&#x2F;&#x2F; interaction
&#x2F;&#x2F; run interaction!
if(stage.interactive)
{
&#x2F;&#x2F;need to add some events!
if(!stage._interactiveEventsAdded)
{
stage._interactiveEventsAdded = true;
stage.interactionManager.setTarget(this);
}
}
}
&#x2F;**

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -299,10 +303,13 @@ PIXI.Texture.addTextureToCache = function(texture, id)
* Remove a texture from the textureCache.
* @method removeTextureFromCache
* @param id {String} the id of the texture to be removed
* @return {Texture} the texture that was removed
*&#x2F;
PIXI.Texture.removeTextureFromCache = function(id)
{
PIXI.TextureCache[id] = texture;
var texture = PIXI.TextureCache[id]
PIXI.TextureCache[id] = null;
return texture;
}

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -125,8 +129,9 @@
* @static
* @param width {Number} the width of the renderers view
* @param height {Number} the height of the renderers view
* @param view {Canvas} the canvas to use as a view, optional
*&#x2F;
PIXI.autoDetectRenderer = function(width, height)
PIXI.autoDetectRenderer = function(width, height, view)
{
if(!width)width = 800;
if(!height)height = 600;
@ -137,10 +142,10 @@ PIXI.autoDetectRenderer = function(width, height)
&#x2F;&#x2F;console.log(webgl);
if( webgl )
{
return new PIXI.WebGLRenderer(width, height)
return new PIXI.WebGLRenderer(width, height, view)
}
return new PIXI.CanvasRenderer(width, height);
return new PIXI.CanvasRenderer(width, height, view);
}

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href=".&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href=".&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href=".&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href=".&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href=".&#x2F;classes/Point.html">Point</a></li>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -15,11 +15,11 @@
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="..&#x2F;logo_small.png" title="Pixi.js API"></h1>
<h1><img src="http:&#x2F;&#x2F;www.goodboydigital.com&#x2F;pixijs&#x2F;logo_small.png" title="Pixi.js API"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.9</em>
<em>API Docs for: 1.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -51,6 +51,10 @@
<li><a href="..&#x2F;classes/DisplayObjectContainer.html">DisplayObjectContainer</a></li>
<li><a href="..&#x2F;classes/InteractionData.html">InteractionData</a></li>
<li><a href="..&#x2F;classes/InteractionManager.html">InteractionManager</a></li>
<li><a href="..&#x2F;classes/MovieClip.html">MovieClip</a></li>
<li><a href="..&#x2F;classes/Point.html">Point</a></li>
@ -170,6 +174,18 @@
</a>
</li>
<li class="module-class">
<a href="..&#x2F;classes/InteractionData.html">
InteractionData
</a>
</li>
<li class="module-class">
<a href="..&#x2F;classes/InteractionManager.html">
InteractionManager
</a>
</li>
<li class="module-class">
<a href="..&#x2F;classes/MovieClip.html">
MovieClip

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -0,0 +1,175 @@
<!DOCTYPE HTML>
<html>
<head>
<title>pixi.js example 6 Interactivity</title>
<style>
body {
margin: 0;
padding: 0;
background-color: #000000;
}
#help{
position: absolute;
z-index: 20;
color: black;
top: 20px;
left: 120px;
}
</style>
<script src="pixi.js"></script>
</head>
<body>
<script>
// create an new instance of a pixi stage
// the second parameter is interactivity...
var interactive = true;
var stage = new PIXI.Stage(0x000000, interactive);
// create a renderer instance.
var renderer = PIXI.autoDetectRenderer(620, 400);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
requestAnimFrame( animate );
// create a background..
var background = PIXI.Sprite.fromImage("button_test_BG.jpg");
// add background to stage..
stage.addChild(background);
// create some textures from an image path
var textureButton = PIXI.Texture.fromImage("button.png");
var textureButtonDown = PIXI.Texture.fromImage("buttonDown.png");
var textureButtonOver = PIXI.Texture.fromImage("buttonOver.png");
var buttons = [];
var buttonPositions = [175,75,
600-145, 75,
600/2 - 20, 400/2 + 10,
175, 400-75,
600-115, 400-95];
for (var i=0; i < 5; i++)
{
var button = new PIXI.Sprite(textureButton);
button.anchor.x = 0.5;
button.anchor.y = 0.5;
button.position.x = buttonPositions[i*2];
button.position.y = buttonPositions[i*2 + 1];
// make the button interactive..
button.setInteractive(true);
// set the mousedown and touchstart callback..
button.mousedown = button.touchstart = function(data){
this.isdown = true;
this.setTexture(textureButtonDown);
this.alpha = 1;
}
// set the mouseup and touchend callback..
button.mouseup = button.touchend = function(data){
this.isdown = false;
if(this.isOver)
{
this.setTexture(textureButtonOver);
}
else
{
this.setTexture(textureButton);
}
}
// set the mouseover callback..
button.mouseover = function(data){
this.isOver = true;
if(this.isdown)return
this.setTexture(textureButtonOver)
}
// set the mouseout callback..
button.mouseout = function(data){
this.isOver = false;
if(this.isdown)return
this.setTexture(textureButton)
}
button.click = function(data){
// click!
console.log("CLICK!");
// alert("CLICK!")
}
button.tap = function(data){
// click!
console.log("TAP!!");
//this.alpha = 0.5;
}
// add it to the stage
stage.addChild(button);
// add button to array
buttons.push(button);
};
// set some silly values..
buttons[0].scale.x = 1.2;
buttons[1].scale.y = 1.2;
buttons[2].rotation = Math.PI/10;
buttons[3].scale.x = 0.8;
buttons[3].scale.y = 0.8;
buttons[4].scale.x = 0.8;
buttons[4].scale.y = 1.2;
buttons[4].rotation = Math.PI;
// var button1 =
function animate() {
requestAnimFrame( animate );
// render the stage
// do a test..
renderer.render(stage);
}
// add a logo!
var pixiLogo = PIXI.Sprite.fromImage("pixi.png");
stage.addChild(pixiLogo);
pixiLogo.position.x = 620 - 56;
pixiLogo.position.y = 400- 32;
pixiLogo.setInteractive(true);
pixiLogo.click = pixiLogo.tap = function(){
var win=window.open("https://github.com/GoodBoyDigital/pixi.js", '_blank');
}
</script>
</body>
</html>

View file

@ -0,0 +1,128 @@
var PIXI=PIXI||{};PIXI.Point=function(a,c){this.x=a?a:0;this.y=c?c:0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(a,c,f,d){this.x=a?a:0;this.y=c?c:0;this.width=f?f:0;this.height=d?d:0};PIXI.Rectangle.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)};PIXI.Rectangle.constructor=PIXI.Rectangle;window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();function HEXtoRGB(a){return[(a>>16&255)/255,(a>>8&255)/255,(a&255)/255]}
"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(c){function f(){var h=g.concat(a.call(arguments));d.apply(this instanceof f?this:c,h)}var d=this,g=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;f.prototype=function j(a){a&&(j.prototype=a);if(!(this instanceof j))return new j}(d.prototype);return f}}());
var AjaxRequest=function(){var a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(window.ActiveXObject)for(var c=0;c<a.length;c++)try{return new ActiveXObject(a[c])}catch(f){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};PIXI.EventTarget=function(){var a={};this.addEventListener=function(c,f){void 0===a[c]&&(a[c]=[]);-1===a[c].indexOf(f)&&a[c].push(f)};this.dispatchEvent=function(c){for(var f in a[c.type])a[c.type][f](c)};this.removeEventListener=function(c,f){var d=a[c].indexOf(f);-1!==d&&a[c].splice(d,1)}};(function(a,c){"object"===typeof exports?module.exports=c(global):"function"===typeof define&&define.amd?define([],function(){return c(a)}):c(a)})(this,function(a){function c(b){return j=b}function f(){return j="undefined"!==typeof Float32Array?Float32Array:Array}var d={};if("undefined"!=typeof Float32Array){var g=new Float32Array(1),h=new Int32Array(g.buffer);d.invsqrt=function(b){g[0]=b;h[0]=1597463007-(h[0]>>1);var e=g[0];return e*(1.5-0.5*b*e*e)}}else d.invsqrt=function(b){return 1/Math.sqrt(b)};
var j=null;f();var k={create:function(b){var e=new j(3);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2]):e[0]=e[1]=e[2]=0;return e},createFrom:function(b,e,a){var c=new j(3);c[0]=b;c[1]=e;c[2]=a;return c},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])},add:function(b,e,a){if(!a||b===a)return b[0]+=e[0],b[1]+=e[1],b[2]+=e[2],b;a[0]=b[0]+e[0];a[1]=b[1]+e[1];a[2]=b[2]+e[2];return a},subtract:function(b,
e,a){if(!a||b===a)return b[0]-=e[0],b[1]-=e[1],b[2]-=e[2],b;a[0]=b[0]-e[0];a[1]=b[1]-e[1];a[2]=b[2]-e[2];return a},multiply:function(b,e,a){if(!a||b===a)return b[0]*=e[0],b[1]*=e[1],b[2]*=e[2],b;a[0]=b[0]*e[0];a[1]=b[1]*e[1];a[2]=b[2]*e[2];return a},negate:function(b,e){e||(e=b);e[0]=-b[0];e[1]=-b[1];e[2]=-b[2];return e},scale:function(b,e,a){if(!a||b===a)return b[0]*=e,b[1]*=e,b[2]*=e,b;a[0]=b[0]*e;a[1]=b[1]*e;a[2]=b[2]*e;return a},normalize:function(b,e){e||(e=b);var a=b[0],c=b[1],p=b[2],d=Math.sqrt(a*
a+c*c+p*p);if(!d)return e[0]=0,e[1]=0,e[2]=0,e;if(1===d)return e[0]=a,e[1]=c,e[2]=p,e;d=1/d;e[0]=a*d;e[1]=c*d;e[2]=p*d;return e},cross:function(b,e,a){a||(a=b);var c=b[0],p=b[1];b=b[2];var d=e[0],f=e[1];e=e[2];a[0]=p*e-b*f;a[1]=b*d-c*e;a[2]=c*f-p*d;return a},length:function(b){var e=b[0],a=b[1];b=b[2];return Math.sqrt(e*e+a*a+b*b)},squaredLength:function(b){var e=b[0],a=b[1];b=b[2];return e*e+a*a+b*b},dot:function(b,e){return b[0]*e[0]+b[1]*e[1]+b[2]*e[2]},direction:function(b,e,a){a||(a=b);var c=
b[0]-e[0],p=b[1]-e[1];b=b[2]-e[2];e=Math.sqrt(c*c+p*p+b*b);if(!e)return a[0]=0,a[1]=0,a[2]=0,a;e=1/e;a[0]=c*e;a[1]=p*e;a[2]=b*e;return a},lerp:function(b,e,a,c){c||(c=b);c[0]=b[0]+a*(e[0]-b[0]);c[1]=b[1]+a*(e[1]-b[1]);c[2]=b[2]+a*(e[2]-b[2]);return c},dist:function(b,e){var a=e[0]-b[0],c=e[1]-b[1],p=e[2]-b[2];return Math.sqrt(a*a+c*c+p*p)}},r=null,n=new j(4);k.unproject=function(b,e,a,c,p){p||(p=b);r||(r=s.create());var d=r;n[0]=2*(b[0]-c[0])/c[2]-1;n[1]=2*(b[1]-c[1])/c[3]-1;n[2]=2*b[2]-1;n[3]=1;
s.multiply(a,e,d);if(!s.inverse(d))return null;s.multiplyVec4(d,n);if(0===n[3])return null;p[0]=n[0]/n[3];p[1]=n[1]/n[3];p[2]=n[2]/n[3];return p};var y=k.createFrom(1,0,0),C=k.createFrom(0,1,0),m=k.createFrom(0,0,1),u=k.create();k.rotationTo=function(b,e,a){a||(a=l.create());var c=k.dot(b,e);if(1<=c)l.set(E,a);else if(-0.999999>c)k.cross(y,b,u),1E-6>k.length(u)&&k.cross(C,b,u),1E-6>k.length(u)&&k.cross(m,b,u),k.normalize(u),l.fromAngleAxis(Math.PI,u,a);else{var c=Math.sqrt(2*(1+c)),p=1/c;k.cross(b,
e,u);a[0]=u[0]*p;a[1]=u[1]*p;a[2]=u[2]*p;a[3]=0.5*c;l.normalize(a)}1<a[3]?a[3]=1:-1>a[3]&&(a[3]=-1);return a};k.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+"]"};var x={create:function(b){var e=new j(9);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8]):e[0]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=0;return e},createFrom:function(b,e,a,c,p,d,f,g,G){var v=new j(9);v[0]=b;v[1]=e;v[2]=a;v[3]=c;v[4]=p;v[5]=d;v[6]=f;v[7]=g;v[8]=G;return v},determinant:function(b){var e=
b[3],a=b[4],c=b[5],p=b[6],d=b[7],f=b[8];return b[0]*(f*a-c*d)+b[1]*(-f*e+c*p)+b[2]*(d*e-a*p)},inverse:function(b,e){var a=b[0],c=b[1],p=b[2],d=b[3],f=b[4],g=b[5],G=b[6],v=b[7],h=b[8],j=h*f-g*v,k=-h*d+g*G,l=v*d-f*G,q=a*j+c*k+p*l;if(!q)return null;q=1/q;e||(e=x.create());e[0]=j*q;e[1]=(-h*c+p*v)*q;e[2]=(g*c-p*f)*q;e[3]=k*q;e[4]=(h*a-p*G)*q;e[5]=(-g*a+p*d)*q;e[6]=l*q;e[7]=(-v*a+c*G)*q;e[8]=(f*a-c*d)*q;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],p=b[1],d=b[2],f=b[3],g=b[4],G=b[5],v=b[6],h=
b[7];b=b[8];var j=e[0],k=e[1],l=e[2],q=e[3],m=e[4],t=e[5],n=e[6],w=e[7];e=e[8];a[0]=j*c+k*f+l*v;a[1]=j*p+k*g+l*h;a[2]=j*d+k*G+l*b;a[3]=q*c+m*f+t*v;a[4]=q*p+m*g+t*h;a[5]=q*d+m*G+t*b;a[6]=n*c+w*f+e*v;a[7]=n*p+w*g+e*h;a[8]=n*d+w*G+e*b;return a},multiplyVec2:function(b,e,a){a||(a=e);var c=e[0];e=e[1];a[0]=c*b[0]+e*b[3]+b[6];a[1]=c*b[1]+e*b[4]+b[7];return a},multiplyVec3:function(b,e,a){a||(a=e);var c=e[0],p=e[1];e=e[2];a[0]=c*b[0]+p*b[3]+e*b[6];a[1]=c*b[1]+p*b[4]+e*b[7];a[2]=c*b[2]+p*b[5]+e*b[8];return a},
set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])},identity:function(b){b||(b=x.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=1;b[5]=0;b[6]=0;b[7]=0;b[8]=1;return b},transpose:function(b,
e){if(!e||b===e){var a=b[1],c=b[2],p=b[5];b[1]=b[3];b[2]=b[6];b[3]=a;b[5]=b[7];b[6]=c;b[7]=p;return b}e[0]=b[0];e[1]=b[3];e[2]=b[6];e[3]=b[1];e[4]=b[4];e[5]=b[7];e[6]=b[2];e[7]=b[5];e[8]=b[8];return e},toMat4:function(b,e){e||(e=s.create());e[15]=1;e[14]=0;e[13]=0;e[12]=0;e[11]=0;e[10]=b[8];e[9]=b[7];e[8]=b[6];e[7]=0;e[6]=b[5];e[5]=b[4];e[4]=b[3];e[3]=0;e[2]=b[2];e[1]=b[1];e[0]=b[0];return e},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+
b[8]+"]"}},s={create:function(b){var e=new j(16);b&&(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8],e[9]=b[9],e[10]=b[10],e[11]=b[11],e[12]=b[12],e[13]=b[13],e[14]=b[14],e[15]=b[15]);return e},createFrom:function(b,e,a,c,p,d,f,g,h,v,N,I,k,l,q,m){var t=new j(16);t[0]=b;t[1]=e;t[2]=a;t[3]=c;t[4]=p;t[5]=d;t[6]=f;t[7]=g;t[8]=h;t[9]=v;t[10]=N;t[11]=I;t[12]=k;t[13]=l;t[14]=q;t[15]=m;return t},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];
e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=b[12];e[13]=b[13];e[14]=b[14];e[15]=b[15];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])&&1E-6>Math.abs(b[9]-e[9])&&1E-6>Math.abs(b[10]-e[10])&&1E-6>Math.abs(b[11]-e[11])&&1E-6>Math.abs(b[12]-
e[12])&&1E-6>Math.abs(b[13]-e[13])&&1E-6>Math.abs(b[14]-e[14])&&1E-6>Math.abs(b[15]-e[15])},identity:function(b){b||(b=s.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},transpose:function(b,e){if(!e||b===e){var a=b[1],c=b[2],p=b[3],d=b[6],f=b[7],g=b[11];b[1]=b[4];b[2]=b[8];b[3]=b[12];b[4]=a;b[6]=b[9];b[7]=b[13];b[8]=c;b[9]=d;b[11]=b[14];b[12]=p;b[13]=f;b[14]=g;return b}e[0]=b[0];e[1]=b[4];e[2]=b[8];e[3]=b[12];
e[4]=b[1];e[5]=b[5];e[6]=b[9];e[7]=b[13];e[8]=b[2];e[9]=b[6];e[10]=b[10];e[11]=b[14];e[12]=b[3];e[13]=b[7];e[14]=b[11];e[15]=b[15];return e},determinant:function(b){var e=b[0],a=b[1],c=b[2],p=b[3],d=b[4],f=b[5],g=b[6],h=b[7],v=b[8],j=b[9],I=b[10],k=b[11],l=b[12],q=b[13],m=b[14];b=b[15];return l*j*g*p-v*q*g*p-l*f*I*p+d*q*I*p+v*f*m*p-d*j*m*p-l*j*c*h+v*q*c*h+l*a*I*h-e*q*I*h-v*a*m*h+e*j*m*h+l*f*c*k-d*q*c*k-l*a*g*k+e*q*g*k+d*a*m*k-e*f*m*k-v*f*c*b+d*j*c*b+v*a*g*b-e*j*g*b-d*a*I*b+e*f*I*b},inverse:function(b,
e){e||(e=b);var a=b[0],c=b[1],p=b[2],d=b[3],f=b[4],g=b[5],h=b[6],v=b[7],j=b[8],k=b[9],l=b[10],m=b[11],q=b[12],n=b[13],t=b[14],r=b[15],w=a*g-c*f,B=a*h-p*f,z=a*v-d*f,A=c*h-p*g,s=c*v-d*g,u=p*v-d*h,x=j*n-k*q,y=j*t-l*q,C=j*r-m*q,D=k*t-l*n,E=k*r-m*n,J=l*r-m*t,F=w*J-B*E+z*D+A*C-s*y+u*x;if(!F)return null;F=1/F;e[0]=(g*J-h*E+v*D)*F;e[1]=(-c*J+p*E-d*D)*F;e[2]=(n*u-t*s+r*A)*F;e[3]=(-k*u+l*s-m*A)*F;e[4]=(-f*J+h*C-v*y)*F;e[5]=(a*J-p*C+d*y)*F;e[6]=(-q*u+t*z-r*B)*F;e[7]=(j*u-l*z+m*B)*F;e[8]=(f*E-g*C+v*x)*F;e[9]=
(-a*E+c*C-d*x)*F;e[10]=(q*s-n*z+r*w)*F;e[11]=(-j*s+k*z-m*w)*F;e[12]=(-f*D+g*y-h*x)*F;e[13]=(a*D-c*y+p*x)*F;e[14]=(-q*A+n*B-t*w)*F;e[15]=(j*A-k*B+l*w)*F;return e},toRotationMat:function(b,e){e||(e=s.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=0;e[13]=0;e[14]=0;e[15]=1;return e},toMat3:function(b,e){e||(e=x.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[4];e[4]=b[5];e[5]=b[6];e[6]=b[8];e[7]=b[9];e[8]=b[10];
return e},toInverseMat3:function(b,e){var a=b[0],c=b[1],d=b[2],f=b[4],H=b[5],g=b[6],h=b[8],j=b[9],k=b[10],l=k*H-g*j,m=-k*f+g*h,n=j*f-H*h,q=a*l+c*m+d*n;if(!q)return null;q=1/q;e||(e=x.create());e[0]=l*q;e[1]=(-k*c+d*j)*q;e[2]=(g*c-d*H)*q;e[3]=m*q;e[4]=(k*a-d*h)*q;e[5]=(-g*a+d*f)*q;e[6]=n*q;e[7]=(-j*a+c*h)*q;e[8]=(H*a-c*f)*q;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],d=b[1],f=b[2],H=b[3],g=b[4],h=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],q=b[11],r=b[12],t=b[13],s=b[14];b=b[15];var w=e[0],
B=e[1],z=e[2],A=e[3];a[0]=w*c+B*g+z*l+A*r;a[1]=w*d+B*h+z*m+A*t;a[2]=w*f+B*j+z*n+A*s;a[3]=w*H+B*k+z*q+A*b;w=e[4];B=e[5];z=e[6];A=e[7];a[4]=w*c+B*g+z*l+A*r;a[5]=w*d+B*h+z*m+A*t;a[6]=w*f+B*j+z*n+A*s;a[7]=w*H+B*k+z*q+A*b;w=e[8];B=e[9];z=e[10];A=e[11];a[8]=w*c+B*g+z*l+A*r;a[9]=w*d+B*h+z*m+A*t;a[10]=w*f+B*j+z*n+A*s;a[11]=w*H+B*k+z*q+A*b;w=e[12];B=e[13];z=e[14];A=e[15];a[12]=w*c+B*g+z*l+A*r;a[13]=w*d+B*h+z*m+A*t;a[14]=w*f+B*j+z*n+A*s;a[15]=w*H+B*k+z*q+A*b;return a},multiplyVec3:function(b,e,a){a||(a=e);
var c=e[0],d=e[1];e=e[2];a[0]=b[0]*c+b[4]*d+b[8]*e+b[12];a[1]=b[1]*c+b[5]*d+b[9]*e+b[13];a[2]=b[2]*c+b[6]*d+b[10]*e+b[14];return a},multiplyVec4:function(b,e,a){a||(a=e);var c=e[0],d=e[1],f=e[2];e=e[3];a[0]=b[0]*c+b[4]*d+b[8]*f+b[12]*e;a[1]=b[1]*c+b[5]*d+b[9]*f+b[13]*e;a[2]=b[2]*c+b[6]*d+b[10]*f+b[14]*e;a[3]=b[3]*c+b[7]*d+b[11]*f+b[15]*e;return a},translate:function(b,e,a){var c=e[0],d=e[1];e=e[2];var f,g,h,j,v,k,l,m,n,q,r,t;if(!a||b===a)return b[12]=b[0]*c+b[4]*d+b[8]*e+b[12],b[13]=b[1]*c+b[5]*d+
b[9]*e+b[13],b[14]=b[2]*c+b[6]*d+b[10]*e+b[14],b[15]=b[3]*c+b[7]*d+b[11]*e+b[15],b;f=b[0];g=b[1];h=b[2];j=b[3];v=b[4];k=b[5];l=b[6];m=b[7];n=b[8];q=b[9];r=b[10];t=b[11];a[0]=f;a[1]=g;a[2]=h;a[3]=j;a[4]=v;a[5]=k;a[6]=l;a[7]=m;a[8]=n;a[9]=q;a[10]=r;a[11]=t;a[12]=f*c+v*d+n*e+b[12];a[13]=g*c+k*d+q*e+b[13];a[14]=h*c+l*d+r*e+b[14];a[15]=j*c+m*d+t*e+b[15];return a},scale:function(b,e,a){var c=e[0],d=e[1];e=e[2];if(!a||b===a)return b[0]*=c,b[1]*=c,b[2]*=c,b[3]*=c,b[4]*=d,b[5]*=d,b[6]*=d,b[7]*=d,b[8]*=e,b[9]*=
e,b[10]*=e,b[11]*=e,b;a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*d;a[5]=b[5]*d;a[6]=b[6]*d;a[7]=b[7]*d;a[8]=b[8]*e;a[9]=b[9]*e;a[10]=b[10]*e;a[11]=b[11]*e;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a},rotate:function(b,e,a,c){var d=a[0],f=a[1];a=a[2];var g=Math.sqrt(d*d+f*f+a*a),h,j,k,l,m,n,r,q,s,t,u,w,B,z,A,x,y,C,D,E;if(!g)return null;1!==g&&(g=1/g,d*=g,f*=g,a*=g);h=Math.sin(e);j=Math.cos(e);k=1-j;e=b[0];g=b[1];l=b[2];m=b[3];n=b[4];r=b[5];q=b[6];s=b[7];t=b[8];u=b[9];w=
b[10];B=b[11];z=d*d*k+j;A=f*d*k+a*h;x=a*d*k-f*h;y=d*f*k-a*h;C=f*f*k+j;D=a*f*k+d*h;E=d*a*k+f*h;d=f*a*k-d*h;f=a*a*k+j;c?b!==c&&(c[12]=b[12],c[13]=b[13],c[14]=b[14],c[15]=b[15]):c=b;c[0]=e*z+n*A+t*x;c[1]=g*z+r*A+u*x;c[2]=l*z+q*A+w*x;c[3]=m*z+s*A+B*x;c[4]=e*y+n*C+t*D;c[5]=g*y+r*C+u*D;c[6]=l*y+q*C+w*D;c[7]=m*y+s*C+B*D;c[8]=e*E+n*d+t*f;c[9]=g*E+r*d+u*f;c[10]=l*E+q*d+w*f;c[11]=m*E+s*d+B*f;return c},rotateX:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[4],f=b[5],g=b[6],h=b[7],j=b[8],k=b[9],l=b[10],
m=b[11];a?b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[4]=d*e+j*c;a[5]=f*e+k*c;a[6]=g*e+l*c;a[7]=h*e+m*c;a[8]=d*-c+j*e;a[9]=f*-c+k*e;a[10]=g*-c+l*e;a[11]=h*-c+m*e;return a},rotateY:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[8],k=b[9],l=b[10],m=b[11];a?b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*-c;a[1]=f*e+k*-c;a[2]=g*e+l*-c;a[3]=h*
e+m*-c;a[8]=d*c+j*e;a[9]=f*c+k*e;a[10]=g*c+l*e;a[11]=h*c+m*e;return a},rotateZ:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[4],k=b[5],l=b[6],m=b[7];a?b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*c;a[1]=f*e+k*c;a[2]=g*e+l*c;a[3]=h*e+m*c;a[4]=d*-c+j*e;a[5]=f*-c+k*e;a[6]=g*-c+l*e;a[7]=h*-c+m*e;return a},frustum:function(b,e,a,c,d,f,g){g||(g=s.create());var h=e-b,j=c-a,k=f-d;g[0]=2*d/h;g[1]=0;
g[2]=0;g[3]=0;g[4]=0;g[5]=2*d/j;g[6]=0;g[7]=0;g[8]=(e+b)/h;g[9]=(c+a)/j;g[10]=-(f+d)/k;g[11]=-1;g[12]=0;g[13]=0;g[14]=-(2*f*d)/k;g[15]=0;return g},perspective:function(b,e,a,c,d){b=a*Math.tan(b*Math.PI/360);e*=b;return s.frustum(-e,e,-b,b,a,c,d)},ortho:function(b,a,c,d,f,g,h){h||(h=s.create());var j=a-b,k=d-c,l=g-f;h[0]=2/j;h[1]=0;h[2]=0;h[3]=0;h[4]=0;h[5]=2/k;h[6]=0;h[7]=0;h[8]=0;h[9]=0;h[10]=-2/l;h[11]=0;h[12]=-(b+a)/j;h[13]=-(d+c)/k;h[14]=-(g+f)/l;h[15]=1;return h},lookAt:function(b,a,c,d){d||
(d=s.create());var f,g,h,j,k,l,m,n,r=b[0],u=b[1];b=b[2];h=c[0];j=c[1];g=c[2];m=a[0];c=a[1];f=a[2];if(r===m&&u===c&&b===f)return s.identity(d);a=r-m;c=u-c;m=b-f;n=1/Math.sqrt(a*a+c*c+m*m);a*=n;c*=n;m*=n;f=j*m-g*c;g=g*a-h*m;h=h*c-j*a;(n=Math.sqrt(f*f+g*g+h*h))?(n=1/n,f*=n,g*=n,h*=n):h=g=f=0;j=c*h-m*g;k=m*f-a*h;l=a*g-c*f;(n=Math.sqrt(j*j+k*k+l*l))?(n=1/n,j*=n,k*=n,l*=n):l=k=j=0;d[0]=f;d[1]=j;d[2]=a;d[3]=0;d[4]=g;d[5]=k;d[6]=c;d[7]=0;d[8]=h;d[9]=l;d[10]=m;d[11]=0;d[12]=-(f*r+g*u+h*b);d[13]=-(j*r+k*u+
l*b);d[14]=-(a*r+c*u+m*b);d[15]=1;return d},fromRotationTranslation:function(b,a,c){c||(c=s.create());var d=b[0],f=b[1],g=b[2],h=b[3],j=d+d,k=f+f,l=g+g;b=d*j;var m=d*k,d=d*l,n=f*k,f=f*l,g=g*l,j=h*j,k=h*k,h=h*l;c[0]=1-(n+g);c[1]=m+h;c[2]=d-k;c[3]=0;c[4]=m-h;c[5]=1-(b+g);c[6]=f+j;c[7]=0;c[8]=d+k;c[9]=f-j;c[10]=1-(b+n);c[11]=0;c[12]=a[0];c[13]=a[1];c[14]=a[2];c[15]=1;return c},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+b[8]+", "+b[9]+", "+
b[10]+", "+b[11]+", "+b[12]+", "+b[13]+", "+b[14]+", "+b[15]+"]"}},l={create:function(b){var a=new j(4);b?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a[0]=a[1]=a[2]=a[3]=0;return a},createFrom:function(b,a,c,d){var f=new j(4);f[0]=b;f[1]=a;f[2]=c;f[3]=d;return f},set:function(b,a){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])&&1E-6>Math.abs(b[2]-a[2])&&1E-6>Math.abs(b[3]-a[3])},identity:function(b){b||(b=l.create());
b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b}},E=l.identity();l.calculateW=function(b,a){var c=b[0],d=b[1],f=b[2];if(!a||b===a)return b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f)),b;a[0]=c;a[1]=d;a[2]=f;a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f));return a};l.dot=function(b,a){return b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3]};l.inverse=function(b,a){var c=b[0],d=b[1],f=b[2],g=b[3],c=(c=c*c+d*d+f*f+g*g)?1/c:0;if(!a||b===a)return b[0]*=-c,b[1]*=-c,b[2]*=-c,b[3]*=c,b;a[0]=-b[0]*c;a[1]=-b[1]*c;a[2]=-b[2]*c;a[3]=b[3]*c;
return a};l.conjugate=function(b,a){if(!a||b===a)return b[0]*=-1,b[1]*=-1,b[2]*=-1,b;a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=b[3];return a};l.length=function(b){var a=b[0],c=b[1],d=b[2];b=b[3];return Math.sqrt(a*a+c*c+d*d+b*b)};l.normalize=function(b,a){a||(a=b);var c=b[0],d=b[1],f=b[2],g=b[3],h=Math.sqrt(c*c+d*d+f*f+g*g);if(0===h)return a[0]=0,a[1]=0,a[2]=0,a[3]=0,a;h=1/h;a[0]=c*h;a[1]=d*h;a[2]=f*h;a[3]=g*h;return a};l.add=function(b,a,c){if(!c||b===c)return b[0]+=a[0],b[1]+=a[1],b[2]+=a[2],b[3]+=
a[3],b;c[0]=b[0]+a[0];c[1]=b[1]+a[1];c[2]=b[2]+a[2];c[3]=b[3]+a[3];return c};l.multiply=function(b,a,c){c||(c=b);var d=b[0],f=b[1],g=b[2];b=b[3];var h=a[0],j=a[1],k=a[2];a=a[3];c[0]=d*a+b*h+f*k-g*j;c[1]=f*a+b*j+g*h-d*k;c[2]=g*a+b*k+d*j-f*h;c[3]=b*a-d*h-f*j-g*k;return c};l.multiplyVec3=function(b,a,c){c||(c=a);var d=a[0],f=a[1],g=a[2];a=b[0];var h=b[1],j=b[2];b=b[3];var k=b*d+h*g-j*f,l=b*f+j*d-a*g,m=b*g+a*f-h*d,d=-a*d-h*f-j*g;c[0]=k*b+d*-a+l*-j-m*-h;c[1]=l*b+d*-h+m*-a-k*-j;c[2]=m*b+d*-j+k*-h-l*-a;
return c};l.scale=function(b,a,c){if(!c||b===c)return b[0]*=a,b[1]*=a,b[2]*=a,b[3]*=a,b;c[0]=b[0]*a;c[1]=b[1]*a;c[2]=b[2]*a;c[3]=b[3]*a;return c};l.toMat3=function(b,a){a||(a=x.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=m-g;a[4]=1-(l+f);a[5]=d+h;a[6]=c+j;a[7]=d-h;a[8]=1-(l+n);return a};l.toMat4=function(b,a){a||(a=s.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*
k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=0;a[4]=m-g;a[5]=1-(l+f);a[6]=d+h;a[7]=0;a[8]=c+j;a[9]=d-h;a[10]=1-(l+n);a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};l.slerp=function(b,a,c,d){d||(d=b);var f=b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3],g,h;if(1<=Math.abs(f))return d!==b&&(d[0]=b[0],d[1]=b[1],d[2]=b[2],d[3]=b[3]),d;g=Math.acos(f);h=Math.sqrt(1-f*f);if(0.0010>Math.abs(h))return d[0]=0.5*b[0]+0.5*a[0],d[1]=0.5*b[1]+0.5*a[1],d[2]=0.5*b[2]+0.5*a[2],d[3]=0.5*b[3]+
0.5*a[3],d;f=Math.sin((1-c)*g)/h;c=Math.sin(c*g)/h;d[0]=b[0]*f+a[0]*c;d[1]=b[1]*f+a[1]*c;d[2]=b[2]*f+a[2]*c;d[3]=b[3]*f+a[3]*c;return d};l.fromRotationMatrix=function(b,a){a||(a=l.create());var c=b[0]+b[4]+b[8],d;if(0<c)d=Math.sqrt(c+1),a[3]=0.5*d,d=0.5/d,a[0]=(b[7]-b[5])*d,a[1]=(b[2]-b[6])*d,a[2]=(b[3]-b[1])*d;else{d=l.fromRotationMatrix.s_iNext=l.fromRotationMatrix.s_iNext||[1,2,0];c=0;b[4]>b[0]&&(c=1);b[8]>b[3*c+c]&&(c=2);var f=d[c],g=d[f];d=Math.sqrt(b[3*c+c]-b[3*f+f]-b[3*g+g]+1);a[c]=0.5*d;d=
0.5/d;a[3]=(b[3*g+f]-b[3*f+g])*d;a[f]=(b[3*f+c]+b[3*c+f])*d;a[g]=(b[3*g+c]+b[3*c+g])*d}return a};x.toQuat4=l.fromRotationMatrix;var D=x.create();l.fromAxes=function(b,a,c,d){D[0]=a[0];D[3]=a[1];D[6]=a[2];D[1]=c[0];D[4]=c[1];D[7]=c[2];D[2]=b[0];D[5]=b[1];D[8]=b[2];return l.fromRotationMatrix(D,d)};l.identity=function(b){b||(b=l.create());b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b};l.fromAngleAxis=function(b,a,c){c||(c=l.create());b*=0.5;var d=Math.sin(b);c[3]=Math.cos(b);c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];
return c};l.toAngleAxis=function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1]+b[2]*b[2];0<c?(a[3]=2*Math.acos(b[3]),c=d.invsqrt(c),a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c):(a[3]=0,a[0]=1,a[1]=0,a[2]=0);return a};l.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+"]"};var L={create:function(b){var a=new j(2);b?(a[0]=b[0],a[1]=b[1]):(a[0]=0,a[1]=0);return a},createFrom:function(b,a){var c=new j(2);c[0]=b;c[1]=a;return c},add:function(b,a,c){c||(c=a);c[0]=b[0]+a[0];c[1]=b[1]+a[1];return c},subtract:function(b,
a,c){c||(c=a);c[0]=b[0]-a[0];c[1]=b[1]-a[1];return c},multiply:function(b,a,c){c||(c=a);c[0]=b[0]*a[0];c[1]=b[1]*a[1];return c},divide:function(b,a,c){c||(c=a);c[0]=b[0]/a[0];c[1]=b[1]/a[1];return c},scale:function(b,a,c){c||(c=b);c[0]=b[0]*a;c[1]=b[1]*a;return c},dist:function(b,a){var c=a[0]-b[0],d=a[1]-b[1];return Math.sqrt(c*c+d*d)},set:function(b,a){a[0]=b[0];a[1]=b[1];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])},negate:function(b,a){a||(a=b);
a[0]=-b[0];a[1]=-b[1];return a},normalize:function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1];0<c?(c=Math.sqrt(c),a[0]=b[0]/c,a[1]=b[1]/c):a[0]=a[1]=0;return a},cross:function(b,a,c){b=b[0]*a[1]-b[1]*a[0];if(!c)return b;c[0]=c[1]=0;c[2]=b;return c},length:function(b){var a=b[0];b=b[1];return Math.sqrt(a*a+b*b)},squaredLength:function(b){var a=b[0];b=b[1];return a*a+b*b},dot:function(b,a){return b[0]*a[0]+b[1]*a[1]},direction:function(b,a,c){c||(c=b);var d=b[0]-a[0];b=b[1]-a[1];a=d*d+b*b;if(!a)return c[0]=
0,c[1]=0,c[2]=0,c;a=1/Math.sqrt(a);c[0]=d*a;c[1]=b*a;return c},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);return f},str:function(a){return"["+a[0]+", "+a[1]+"]"}},K={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):c[0]=c[1]=c[2]=c[3]=0;return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>
Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},identity:function(a){a||(a=K.create());a[0]=1;a[1]=0;a[2]=0;a[3]=1;return a},transpose:function(a,c){if(!c||a===c){var d=a[1];a[1]=a[2];a[2]=d;return a}c[0]=a[0];c[1]=a[2];c[2]=a[1];c[3]=a[3];return c},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},inverse:function(a,c){c||(c=a);var d=a[0],f=a[1],g=a[2],h=a[3],j=d*h-g*f;if(!j)return null;j=1/j;c[0]=h*j;c[1]=-f*j;c[2]=-g*j;c[3]=d*j;return c},multiply:function(a,
c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];d[0]=f*c[0]+g*c[2];d[1]=f*c[1]+g*c[3];d[2]=h*c[0]+a*c[2];d[3]=h*c[1]+a*c[3];return d},rotate:function(a,c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];var j=Math.sin(c);c=Math.cos(c);d[0]=f*c+g*j;d[1]=f*-j+g*c;d[2]=h*c+a*j;d[3]=h*-j+a*c;return d},multiplyVec2:function(a,c,d){d||(d=c);var f=c[0];c=c[1];d[0]=f*a[0]+c*a[1];d[1]=f*a[2]+c*a[3];return d},scale:function(a,c,d){d||(d=a);var f=a[1],g=a[2],h=a[3],j=c[0];c=c[1];d[0]=a[0]*j;d[1]=f*c;d[2]=g*j;d[3]=
h*c;return d},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},M={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):(c[0]=0,c[1]=0,c[2]=0,c[3]=0);return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},add:function(a,c,d){d||(d=c);d[0]=a[0]+c[0];d[1]=a[1]+c[1];d[2]=a[2]+c[2];d[3]=a[3]+c[3];return d},subtract:function(a,c,d){d||(d=c);d[0]=a[0]-c[0];d[1]=a[1]-c[1];d[2]=a[2]-c[2];d[3]=a[3]-c[3];return d},multiply:function(a,
c,d){d||(d=c);d[0]=a[0]*c[0];d[1]=a[1]*c[1];d[2]=a[2]*c[2];d[3]=a[3]*c[3];return d},divide:function(a,c,d){d||(d=c);d[0]=a[0]/c[0];d[1]=a[1]/c[1];d[2]=a[2]/c[2];d[3]=a[3]/c[3];return d},scale:function(a,c,d){d||(d=a);d[0]=a[0]*c;d[1]=a[1]*c;d[2]=a[2]*c;d[3]=a[3]*c;return d},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},negate:function(a,c){c||
(c=a);c[0]=-a[0];c[1]=-a[1];c[2]=-a[2];c[3]=-a[3];return c},length:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return Math.sqrt(c*c+d*d+f*f+a*a)},squaredLength:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return c*c+d*d+f*f+a*a},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);f[2]=a[2]+d*(c[2]-a[2]);f[3]=a[3]+d*(c[3]-a[3]);return f},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}};a&&(a.glMatrixArrayType=j,a.MatrixArray=j,a.setMatrixArrayType=c,a.determineMatrixArrayType=
f,a.glMath=d,a.vec2=L,a.vec3=k,a.vec4=M,a.mat2=K,a.mat3=x,a.mat4=s,a.quat4=l);return{glMatrixArrayType:j,MatrixArray:j,setMatrixArrayType:c,determineMatrixArrayType:f,glMath:d,vec2:L,vec3:k,vec4:M,mat2:K,mat3:x,mat4:s,quat4:l}});PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor \x3d texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor \x3d gl_FragColor * vColor;","}"];
PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position \x3d uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord \x3d aTextureCoord;","vColor \x3d aColor;","}"];
PIXI.CompileVertexShader=function(a,c){for(var f="",d=0;d<c.length;d++)f+=c[d];d=a.createShader(a.VERTEX_SHADER);a.shaderSource(d,f);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};PIXI.CompileFragmentShader=function(a,c){for(var f="",d=0;d<c.length;d++)f+=c[d];d=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(d,f);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1);
PIXI.WebGLRenderer=function(a,c,f){this.width=a?a:800;this.height=c?c:600;this.view=f?f:document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.view.background="#FF0000";var d=this;this.view.addEventListener("webglcontextlost",function(a){d.handleContextLost(a)},!1);this.view.addEventListener("webglcontextrestored",function(a){d.handleContextRestored(a)},!1);this.batchs=[];try{this.gl=this.view.getContext("experimental-webgl",{alpha:!1})}catch(g){throw Error(" This browser does not support webGL. Try using the canvas renderer"+
this);}this.initShaders();a=this.gl;this.batch=new PIXI.WebGLBatch(a);a.disable(a.DEPTH_TEST);a.enable(a.BLEND);a.colorMask(!0,!0,!0,!1);this.projectionMatrix=mat4.create();this.resize(this.width,this.height);this.contextLost=!1};PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer;
PIXI.WebGLRenderer.prototype.initShaders=function(){var a=this.gl,c=PIXI.CompileFragmentShader(a,PIXI.shaderFragmentSrc),f=PIXI.CompileVertexShader(a,PIXI.shaderVertexSrc),d=this.shaderProgram=a.createProgram();a.attachShader(d,f);a.attachShader(d,c);a.linkProgram(d);a.getProgramParameter(d,a.LINK_STATUS)||alert("Could not initialise shaders");a.useProgram(d);d.vertexPositionAttribute=a.getAttribLocation(d,"aVertexPosition");a.enableVertexAttribArray(d.vertexPositionAttribute);d.textureCoordAttribute=
a.getAttribLocation(d,"aTextureCoord");a.enableVertexAttribArray(d.textureCoordAttribute);d.colorAttribute=a.getAttribLocation(d,"aColor");a.enableVertexAttribArray(d.colorAttribute);d.mvMatrixUniform=a.getUniformLocation(d,"uMVMatrix");d.samplerUniform=a.getUniformLocation(d,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(a,c){for(var f=a.children,d=0;d<f.length;d++){var g=f[d],h=g.visible&&c;g.textureChange&&(g.textureChange=!1,h&&(this.removeDisplayObject(g),this.addDisplayObject(g)));g.cacheVisible!=h&&(g.cacheVisible=h,g.cacheVisible?this.addDisplayObject(g):this.removeDisplayObject(g));0<g.children.length&&this.checkVisibility(g,h)}};
PIXI.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){for(var c=0;c<a.__childrenRemoved.length;c++)this.removeDisplayObject(a.__childrenRemoved[c]);for(c=0;c<PIXI.texturesToUpdate.length;c++)this.updateTexture(PIXI.texturesToUpdate[c]);a.__childrenRemoved=[];a.__childrenAdded=[];PIXI.texturesToUpdate=[];this.checkVisibility(a,!0);a.updateTransform();c=this.gl;c.clear(c.COLOR_BUFFER_BIT);c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1);c.blendFunc(c.ONE,
c.ONE_MINUS_SRC_ALPHA);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix);for(var f,c=0;c<this.batchs.length;c++)f=this.batchs[c],f instanceof PIXI.WebGLBatch?this.batchs[c].render():f instanceof PIXI.Strip&&f.visible&&this.renderStrip(f);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))}};
PIXI.WebGLRenderer.prototype.updateTexture=function(a){var c=this.gl;a._glTexture||(a._glTexture=c.createTexture());a.hasLoaded&&(c.bindTexture(c.TEXTURE_2D,a._glTexture),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,
c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),c.bindTexture(c.TEXTURE_2D,null));this.refreshBatchs=!0};
PIXI.WebGLRenderer.prototype.addDisplayObject=function(a){if(a.stage&&!a.__inWebGL&&(a.batch=null,a.renderable)){a.__inWebGL=!0;var c=a;do{if(0==c.childIndex)c=c.parent;else for(c=c.parent.children[c.childIndex-1];0!=c.children.length;)c=c.children[c.children.length-1];if(c==a.stage)break}while(!c.renderable||!c.__inWebGL);var f=a;do{if(0==f.children.length){for(;f.childIndex==f.parent.children.length-1;)if(f=f.parent,f==a.stage){f=null;break}f&&(f=f.parent.children[f.childIndex+1])}else f=f.children[0];
if(!f)break}while(!f.renderable||!f.__inWebGL);if(a instanceof PIXI.Sprite){var d;if(c instanceof PIXI.Sprite){if((d=c.batch)&&d.texture==a.texture.baseTexture&&d.blendMode==a.blendMode){d.insertAfter(a,c);return}}else d=c;if(f&&f instanceof PIXI.Sprite&&(c=f.batch)){if(c.texture==a.texture.baseTexture&&c.blendMode==a.blendMode){c.insertBefore(a,f);return}if(c==d){f=d.split(f);c=PIXI._getBatch(this.gl);d=this.batchs.indexOf(d);c.init(a);this.batchs.splice(d+1,0,c,f);return}}c=PIXI._getBatch(this.gl);
c.init(a);d?(d=this.batchs.indexOf(d),this.batchs.splice(d+1,0,c)):this.batchs.push(c)}else a instanceof PIXI.Strip&&(this.initStrip(a),this.batchs.push(a));this.batchUpdate=!0}};
PIXI.WebGLRenderer.prototype.removeDisplayObject=function(a){a.cacheVisible=!1;if(a.renderable){a.__inWebGL=!1;var c;if(a instanceof PIXI.Sprite){var f=a.batch;if(!f)return;f.remove(a);0==f.size&&(c=f)}else c=a;c&&(a=this.batchs.indexOf(c),-1!=a&&(!(0==a||a==this.batchs.length-1)&&this.batchs[a-1]instanceof PIXI.WebGLBatch&&this.batchs[a+1]instanceof PIXI.WebGLBatch&&this.batchs[a-1].texture==this.batchs[a+1].texture&&this.batchs[a-1].blendMode==this.batchs[a+1].blendMode?(this.batchs[a-1].merge(this.batchs[a+
1]),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c),PIXI._returnBatch(this.batchs[a+1]),this.batchs.splice(a,2)):(this.batchs.splice(a,1),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c))))}};
PIXI.WebGLRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c;this.gl.viewport(0,0,this.width,this.height);mat4.identity(this.projectionMatrix);mat4.scale(this.projectionMatrix,[2/this.width,-2/this.height,1]);mat4.translate(this.projectionMatrix,[-this.width/2,-this.height/2,0])};
PIXI.WebGLRenderer.prototype.initStrip=function(a){var c=this.gl;a._vertexBuffer=c.createBuffer();a._indexBuffer=c.createBuffer();a._uvBuffer=c.createBuffer();a._colorBuffer=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer);c.bufferData(c.ARRAY_BUFFER,a.verticies,c.DYNAMIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer);c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer);c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer);c.bufferData(c.ELEMENT_ARRAY_BUFFER,a.indices,c.STATIC_DRAW)};
PIXI.WebGLRenderer.prototype.renderStrip=function(a){var c=this.gl,f=this.shaderProgram,d=mat3.toMat4(a.worldTransform);mat4.transpose(d);mat4.multiply(this.projectionMatrix,d,d);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,d);a.blendMode==PIXI.blendModes.NORMAL?c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA):c.blendFunc(c.ONE,c.ONE_MINUS_SRC_COLOR);a.dirty?(a.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,a.verticies,c.STATIC_DRAW),c.vertexAttribPointer(f.vertexPositionAttribute,
2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,
a.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.verticies),c.vertexAttribPointer(f.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(f.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.vertexAttribPointer(f.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer));c.drawElements(c.TRIANGLE_STRIP,a.indices.length,c.UNSIGNED_SHORT,0);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix)};PIXI.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault();this.contextLost=!0};
PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0});this.initShaders();for(var a=0;a<PIXI.TextureCache.length;a++)this.updateTexture(PIXI.TextureCache[a]);for(a=0;a<this.batchs.length;a++)this.batchs[a].restoreLostContext(this.gl),this.batchs[a].dirty=!0;PIXI._restoreBatchs(this.gl);this.contextLost=!1};PIXI._batchs=[];PIXI._getBatch=function(a){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(a):PIXI._batchs.pop()};PIXI._returnBatch=function(a){a.clean();PIXI._batchs.push(a)};PIXI._restoreBatchs=function(a){for(var c=0;c<PIXI._batchs.length;c++)PIXI._batchs[c].restoreLostContext(a)};
PIXI.WebGLBatch=function(a){this.gl=a;this.size=0;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer();this.blendMode=PIXI.blendModes.NORMAL;this.dynamicSize=1};PIXI.WebGLBatch.constructor=PIXI.WebGLBatch;PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[];this.uvs=[];this.indices=[];this.colors=[];this.dynamicSize=1;this.last=this.texture=null;this.size=0;this.head;this.tail};
PIXI.WebGLBatch.prototype.restoreLostContext=function(a){this.gl=a;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer()};PIXI.WebGLBatch.prototype.init=function(a){a.batch=this;this.dirty=!0;this.blendMode=a.blendMode;this.texture=a.texture.baseTexture;this.tail=this.head=a;this.size=1;this.growBatch()};
PIXI.WebGLBatch.prototype.insertBefore=function(a,c){this.size++;a.batch=this;this.dirty=!0;var f=c.__prev;c.__prev=a;a.__next=c;f?(a.__prev=f,f.__next=a):this.head=a};PIXI.WebGLBatch.prototype.insertAfter=function(a,c){this.size++;a.batch=this;this.dirty=!0;var f=c.__next;c.__next=a;a.__prev=c;f?(a.__next=f,f.__prev=a):this.tail=a};
PIXI.WebGLBatch.prototype.remove=function(a){this.size--;0==this.size?(a.batch=null,a.__prev=null,a.__next=null):(a.__prev?a.__prev.__next=a.__next:(this.head=a.__next,this.head.__prev=null),a.__next?a.__next.__prev=a.__prev:(this.tail=a.__prev,this.tail.__next=null),a.batch=null,a.__next=null,a.__prev=null,this.dirty=!0)};
PIXI.WebGLBatch.prototype.split=function(a){this.dirty=!0;var c=new PIXI.WebGLBatch(this.gl);c.init(a);c.tail=this.tail;this.tail=a.__prev;this.tail.__next=null;a.__prev=null;for(var f=0;a;)f++,a.batch=c,a=a.__next;c.size=f;this.size-=f;return c};PIXI.WebGLBatch.prototype.merge=function(a){this.dirty=!0;this.tail.__next=a.head;a.head.__prev=this.tail;this.size+=a.size;this.tail=a.tail;for(a=a.head;a;)a.batch=this,a=a.__next};
PIXI.WebGLBatch.prototype.growBatch=function(){var a=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size;this.verticies=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferData(a.ARRAY_BUFFER,this.verticies,a.DYNAMIC_DRAW);this.uvs=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);a.bufferData(a.ARRAY_BUFFER,this.uvs,a.DYNAMIC_DRAW);this.dirtyUVS=!0;this.colors=new Float32Array(4*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,
this.colorBuffer);a.bufferData(a.ARRAY_BUFFER,this.colors,a.DYNAMIC_DRAW);this.dirtyColors=!0;this.indices=new Uint16Array(6*this.dynamicSize);for(var c=this.indices.length/6,f=0;f<c;f++){var d=6*f,g=4*f;this.indices[d+0]=g+0;this.indices[d+1]=g+1;this.indices[d+2]=g+2;this.indices[d+3]=g+0;this.indices[d+4]=g+2;this.indices[d+5]=g+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)};
PIXI.WebGLBatch.prototype.refresh=function(){this.dynamicSize<this.size&&this.growBatch();for(var a=0,c,f=this.head;f;){c=8*a;var d=f.texture,g=d.frame,h=d.baseTexture.width,d=d.baseTexture.height;this.uvs[c+0]=g.x/h;this.uvs[c+1]=g.y/d;this.uvs[c+2]=(g.x+g.width)/h;this.uvs[c+3]=g.y/d;this.uvs[c+4]=(g.x+g.width)/h;this.uvs[c+5]=(g.y+g.height)/d;this.uvs[c+6]=g.x/h;this.uvs[c+7]=(g.y+g.height)/d;f.updateFrame=!1;colorIndex=4*a;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=f.worldAlpha;f=f.__next;a++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var a,c,f,d,g,h,j,k,r,n,y,C=0,m=this.head;m;)c=m.width,f=m.height,d=m.anchor.x-m.texture.trim.x,g=m.anchor.y-m.texture.trim.y,h=c*(1-d),c*=-d,d=f*(1-g),g=f*-g,f=8*C,a=m.worldTransform,j=a[0],k=a[3],r=a[1],n=a[4],y=a[2],a=a[5],this.verticies[f+0]=j*c+r*g+y,this.verticies[f+1]=n*g+k*c+a,this.verticies[f+2]=j*h+r*g+y,this.verticies[f+3]=n*g+k*h+a,this.verticies[f+4]=j*h+r*d+y,this.verticies[f+5]=n*d+k*h+a,this.verticies[f+6]=j*c+r*d+y,this.verticies[f+
7]=n*d+k*c+a,m.updateFrame&&(this.dirtyUVS=!0,d=m.texture,h=d.frame,c=d.baseTexture.width,d=d.baseTexture.height,this.uvs[f+0]=h.x/c,this.uvs[f+1]=h.y/d,this.uvs[f+2]=(h.x+h.width)/c,this.uvs[f+3]=h.y/d,this.uvs[f+4]=(h.x+h.width)/c,this.uvs[f+5]=(h.y+h.height)/d,this.uvs[f+6]=h.x/c,this.uvs[f+7]=(h.y+h.height)/d,m.updateFrame=!1),m.cacheAlpha!=m.worldAlpha&&(m.cacheAlpha=m.worldAlpha,h=4*C,this.colors[h]=this.colors[h+1]=this.colors[h+2]=this.colors[h+3]=m.worldAlpha,this.dirtyColors=!0),C++,m=m.__next};
PIXI.WebGLBatch.prototype.render=function(){this.dirty&&(this.refresh(),this.dirty=!1);if(0!=this.size){this.update();var a=this.gl;this.blendMode==PIXI.blendModes.NORMAL?a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA):a.blendFunc(a.ONE,a.ONE_MINUS_SRC_COLOR);var c=PIXI.shaderProgram;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferSubData(a.ARRAY_BUFFER,0,this.verticies);a.vertexAttribPointer(c.vertexPositionAttribute,2,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);this.dirtyUVS&&(this.dirtyUVS=
!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvs));a.vertexAttribPointer(c.textureCoordAttribute,2,a.FLOAT,!1,0,0);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,this.texture._glTexture);a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer);this.dirtyColors&&(this.dirtyColors=!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.colors));a.vertexAttribPointer(c.colorAttribute,1,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.drawElements(a.TRIANGLES,6*this.size,a.UNSIGNED_SHORT,0)}};PIXI.CanvasRenderer=function(a,c,f){this.width=a?a:800;this.height=c?c:600;this.refresh=!0;this.view=f?f:document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.count=0;this.context=this.view.getContext("2d")};PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer;
PIXI.CanvasRenderer.prototype.render=function(a){a.__childrenAdded=[];a.__childrenRemoved=[];PIXI.texturesToUpdate=[];this.context.setTransform(1,0,0,1,0,0);a.updateTransform();this.context.setTransform(1,0,0,1,0,0);this.view.style.backgroundColor!=a.backgroundColorString&&(this.view.style.backgroundColor=a.backgroundColorString);this.context.clearRect(0,0,this.width,this.height);this.renderDisplayObject(a);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))};
PIXI.CanvasRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c};
PIXI.CanvasRenderer.prototype.renderDisplayObject=function(a){var c=a.worldTransform,f=this.context;f.globalCompositeOperation="source-over";if(a.visible){if(a instanceof PIXI.Sprite){var d=a.texture.frame;d&&(f.globalAlpha=a.worldAlpha,f.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),f.drawImage(a.texture.baseTexture.source,d.x,d.y,d.width,d.height,(a.anchor.x-a.texture.trim.x)*-d.width,(a.anchor.y-a.texture.trim.y)*-d.height,a.width,a.height))}else a instanceof PIXI.Strip&&(f.setTransform(c[0],c[3],
c[1],c[4],c[2],c[5]),this.renderStrip(a));for(c=0;c<a.children.length;c++)this.renderDisplayObject(a.children[c])}};PIXI.CanvasRenderer.prototype.renderStripFlat=function(a){var c=this.context;a=a.verticies;var f=a.length/2;this.count++;c.beginPath();for(var d=1;d<f-2;d++){var g=2*d,h=a[g+2],j=a[g+4],k=a[g+3],r=a[g+5];c.moveTo(a[g],a[g+1]);c.lineTo(h,k);c.lineTo(j,r)}c.fillStyle="#FF0000";c.fill();c.closePath()};
PIXI.CanvasRenderer.prototype.renderStrip=function(a){var c=this.context,f=a.verticies,d=a.uvs,g=f.length/2;this.count++;for(var h=1;h<g-2;h++){var j=2*h,k=f[j],r=f[j+2],n=f[j+4],y=f[j+1],C=f[j+3],m=f[j+5],u=d[j]*a.texture.width,x=d[j+2]*a.texture.width,s=d[j+4]*a.texture.width,l=d[j+1]*a.texture.height,E=d[j+3]*a.texture.height,j=d[j+5]*a.texture.height;c.save();c.beginPath();c.moveTo(k,y);c.lineTo(r,C);c.lineTo(n,m);c.closePath();c.clip();var D=u*E+l*s+x*j-E*s-l*x-u*j;c.transform((k*E+l*n+r*j-E*
n-l*r-k*j)/D,(y*E+l*m+C*j-E*m-l*C-y*j)/D,(u*r+k*s+x*n-r*s-k*x-u*n)/D,(u*C+y*s+x*m-C*s-y*x-u*m)/D,(u*E*n+l*r*s+k*x*j-k*E*s-l*x*n-u*r*j)/D,(u*E*m+l*C*s+y*x*j-y*E*s-l*x*m-u*C*j)/D);c.drawImage(a.texture.baseTexture.source,0,0);c.restore()}};PIXI.DisplayObject=function(){this.position=new PIXI.Point;this.scale=new PIXI.Point(1,1);this.rotation=0;this.alpha=1;this.visible=!0;this.cacheVisible=!1;this.stage=this.parent=null;this.worldAlpha=1;this.color=[];this.worldTransform=mat3.identity();this.localTransform=mat3.identity();this.dynamic=!0;this._sr=0;this._cr=1;this.renderable=!1;this.interactive=!0};PIXI.DisplayObject.constructor=PIXI.DisplayObject;
PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));this.localTransform[0]=this._cr*this.scale.x;this.localTransform[1]=-this._sr*this.scale.y;this.localTransform[3]=this._sr*this.scale.x;this.localTransform[4]=this._cr*this.scale.y;this.localTransform[2]=this.position.x;this.localTransform[5]=this.position.y;mat3.multiply(this.localTransform,this.parent.worldTransform,
this.worldTransform);this.worldAlpha=this.alpha*this.parent.worldAlpha};PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this);this.children=[];this.renderable=!1};PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer;PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype);PIXI.DisplayObjectContainer.prototype.addChild=function(a){void 0!=a.parent&&a.parent.removeChild(a);a.parent=this;a.childIndex=this.children.length;this.children.push(a);this.stage&&this.stage.__addChild(a)};
PIXI.DisplayObjectContainer.prototype.addChildAt=function(a,c){if(0<=c&&c<=this.children.length){void 0!=a.parent&&a.parent.removeChild(a);c==this.children.length?this.children.push(a):this.children.splice(c,0,a);a.parent=this;a.childIndex=c;for(var f=this.children.length,d=c;d<f;d++)this.children[d].childIndex=d;this.stage&&this.stage.__addChild(a)}else throw Error(a+" The index "+c+" supplied is out of bounds "+this.children.length);};
PIXI.DisplayObjectContainer.prototype.removeChild=function(a){var c=this.children.indexOf(a);if(-1!==c){this.stage&&this.stage.__removeChild(a);a.parent=void 0;this.children.splice(c,1);a=c;for(c=this.children.length;a<c;a++)this.children[a].childIndex-=1}else throw Error(a+" The supplied DisplayObject must be a child of the caller "+this);};
PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform()}};PIXI.Stage=function(a,c){PIXI.DisplayObjectContainer.call(this);this.worldTransform=mat3.identity();this.__childrenAdded=[];this.__childrenRemoved=[];this.childIndex=0;this.stage=this;this.interactive=c?!0:!1;this.interactionManager=new PIXI.InteractionManager(this);this.setBackgroundColor(a)};PIXI.Stage.constructor=PIXI.Stage;PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);
PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0)};PIXI.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a?a:0;this.backgroundColorSplit=HEXtoRGB(this.backgroundColor);this.backgroundColorString="#"+this.backgroundColor.toString(16)};
PIXI.Stage.prototype.__addChild=function(a){a.interactive&&(this.dirty=!0);a.stage=this;if(a.children)for(var c=0;c<a.children.length;c++)this.__addChild(a.children[c])};PIXI.Stage.prototype.__removeChild=function(a){a.interactive&&(this.dirty=!0);this.__childrenRemoved.push(a);a.stage=void 0;if(a.children)for(var c=0,f=a.children.length;c<f;c++)this.__removeChild(a.children[c])};PIXI.blendModes={};PIXI.blendModes.NORMAL=0;PIXI.blendModes.SCREEN=1;
PIXI.Sprite=function(a){PIXI.DisplayObjectContainer.call(this);this.anchor=new PIXI.Point;this.texture=a;this.blendMode=PIXI.blendModes.NORMAL;this.height=this.width=1;a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0;this.interactive=!1};PIXI.Sprite.constructor=PIXI.Sprite;
PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!=a.baseTexture&&(this.textureChange=!0);this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};PIXI.Sprite.prototype.setInteractive=function(a){this.interactive=a;stage&&(stage.dirty=!0)};
PIXI.Sprite.prototype.onTextureUpdate=function(){this.width=this.texture.frame.width;this.height=this.texture.frame.height;this.updateFrame=!0};PIXI.Sprite.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new PIXI.Sprite(c)};PIXI.Sprite.fromImage=function(a){a=PIXI.Texture.fromImage(a);return new PIXI.Sprite(a)};PIXI.Strip=function(a,c,f){PIXI.DisplayObjectContainer.call(this);this.texture=a;this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(d){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=c;this.height=f;a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,
this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind));this.renderable=!0};PIXI.Strip.constructor=PIXI.Strip;PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Strip.prototype.setTexture=function(a){this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};
PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0};PIXI.Rope=function(a,c){PIXI.Strip.call(this,a);this.points=c;try{this.verticies=new Float32Array(4*c.length),this.uvs=new Float32Array(4*c.length),this.colors=new Float32Array(2*c.length),this.indices=new Uint16Array(2*c.length)}catch(f){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()};PIXI.Rope.constructor=PIXI.Rope;PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype);
PIXI.Rope.prototype.refresh=function(){var a=this.points;if(!(1>a.length)){var c=this.uvs,f=this.indices,d=this.colors;this.count-=0.2;c[0]=0;c[1]=1;c[2]=0;c[3]=1;d[0]=1;d[1]=1;f[0]=0;f[1]=1;for(var a=a.length,g=1;g<a;g++){var h=4*g,j=g/(a-1);c[h]=j;c[h+1]=0;c[h+2]=j;c[h+3]=1;h=2*g;d[h]=1;d[h+1]=1;h=2*g;f[h]=h;f[h+1]=h+1}}};
PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(1>a.length)){var c=this.verticies,f=a[0],d,g=d=0,h=a[0];this.count-=0.2;c[0]=h.x+d;c[1]=h.y+g;c[2]=h.x-d;c[3]=h.y-g;for(var j=a.length,k=1;k<j;k++){var h=a[k],r=4*k;d=k<a.length-1?a[k+1]:h;g=-(d.x-f.x);d=d.y-f.y;var f=Math.sqrt(d*d+g*g),n=this.texture.height/2;d/=f;g/=f;d*=n;g*=n;c[r]=h.x+d;c[r+1]=h.y+g;c[r+2]=h.x-d;c[r+3]=h.y-g;f=h}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Rope.prototype.setTexture=function(a){this.texture=a;this.updateFrame=!0};PIXI.MovieClip=function(a){PIXI.Sprite.call(this,a[0]);this.textures=a;this.currentFrame=0;this.animationSpeed=1};PIXI.MovieClip.constructor=PIXI.MovieClip;PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype);PIXI.MovieClip.prototype.stop=function(){this.playing=!1};PIXI.MovieClip.prototype.play=function(){this.playing=!0};PIXI.MovieClip.prototype.gotoAndStop=function(a){this.playing=!1;this.currentFrame=a;this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length])};
PIXI.MovieClip.prototype.gotoAndPlay=function(a){this.currentFrame=a;this.playing=!0};PIXI.MovieClip.prototype.updateTransform=function(){PIXI.Sprite.prototype.updateTransform.call(this);this.playing&&(this.currentFrame+=this.animationSpeed,this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length]))};PIXI.InteractionManager=function(a){this.stage=a;this.tempPoint=new PIXI.Point;this.tempMatrix=mat3.create();this.mouseoverEnabled=!0;this.mouse=new PIXI.InteractionData;this.touchs={};this.pool=[];this.interactiveItems=[]};PIXI.InteractionManager.constructor=PIXI.InteractionManager;PIXI.InteractionManager.prototype.disableMouseOver=function(){this.mouseoverEnabled&&(this.mouseoverEnabled=!1,this.target&&this.target.view.removeEventListener("mousemove",this.onMouseMove.bind(this)))};
PIXI.InteractionManager.prototype.enableMouseOver=function(){this.mouseoverEnabled||(this.mouseoverEnabled=!1,this.target&&this.target.view.addEventListener("mousemove",this.onMouseMove.bind(this)))};PIXI.InteractionManager.prototype.collectInteractiveSprite=function(a){a=a.children;for(var c=a.length-1;0<=c;c--){var f=a[c];if(f instanceof PIXI.Sprite)f.interactive&&this.interactiveItems.push(f);else if(!f.interactive)continue;0<f.children.length&&this.collectInteractiveSprite(f)}};
PIXI.InteractionManager.prototype.setTarget=function(a){this.target=a;this.mouseoverEnabled&&a.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0);a.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0);a.view.addEventListener("mouseup",this.onMouseUp.bind(this),!0);a.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0);a.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0);a.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0);a.view.addEventListener("touchmove",
this.onTouchMove.bind(this),!0)};
PIXI.InteractionManager.prototype.hitTest=function(a){this.dirty&&(this.dirty=!1,this.interactiveItems=[],this.collectInteractiveSprite(this.stage));for(var c=this.tempPoint,f=a.global,d=this.interactiveItems.length,g=0;g<d;g++){var h=this.interactiveItems[g];if(h.visible){var j=h.worldTransform,k=j[0],r=j[1],n=j[2],y=j[3],C=j[4],j=j[5],m=1/(k*C+r*-y);c.x=C*m*f.x+-r*m*f.y+(j*r-n*C)*m;c.y=k*m*f.y+-y*m*f.x+(-j*k+n*y)*m;k=-h.width*h.anchor.x;if(c.x>k&&c.x<k+h.width&&(k=-h.height*h.anchor.y,c.y>k&&c.y<
k+h.height))return a.local.x=c.x,a.local.y=c.y,h}}return null};
PIXI.InteractionManager.prototype.onMouseMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);a=this.hitTest(this.mouse);this.currentOver!=a&&(this.currentOver&&(this.currentOver.mouseout&&this.currentOver.mouseout(this.mouse),this.currentOver=null),this.target.view.style.cursor="default");a&&this.currentOver!=a&&(this.currentOver=a,this.target.view.style.cursor=
"pointer",a.mouseover&&a.mouseover(this.mouse))};PIXI.InteractionManager.prototype.onMouseDown=function(a){var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);if(a=this.hitTest(this.mouse))this.currentDown=a,a.mousedown&&a.mousedown(this.mouse)};
PIXI.InteractionManager.prototype.onMouseUp=function(){this.currentDown&&(this.currentDown.mouseup&&this.currentDown.mouseup(this.mouse),this.currentOver==this.currentDown&&this.currentDown.click&&this.currentDown.click(this.mouse),this.currentDown=null)};
PIXI.InteractionManager.prototype.onTouchMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.touchs[d.identifier];g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height)}};
PIXI.InteractionManager.prototype.onTouchStart=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.pool.pop();g||(g=new PIXI.InteractionData);this.touchs[d.identifier]=g;g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height);if(d=this.hitTest(g))g.currentDown=d,d.touchstart&&d.touchstart(g)}};
PIXI.InteractionManager.prototype.onTouchEnd=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var f=0;f<a.length;f++){var d=a[f],g=this.touchs[d.identifier];g.global.x=(d.clientX-c.left)*(this.target.width/c.width);g.global.y=(d.clientY-c.top)*(this.target.height/c.height);g.currentDown&&(g.currentDown.touchend&&g.currentDown.touchend(g),this.hitTest(g)==g.currentDown&&g.currentDown.tap&&g.currentDown.tap(g),g.currentDown=null);this.pool.push(g);
this.touchs[d.identifier]=null}};PIXI.InteractionData=function(){this.global=new PIXI.Point;this.local=new PIXI.Point};PIXI.InteractionData.constructor=PIXI.InteractionData;PIXI.BaseTextureCache={};PIXI.texturesToUpdate=[];
PIXI.BaseTexture=function(a){PIXI.EventTarget.call(this);this.height=this.width=100;this.source=a;if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var c=this;this.source.onload=function(){c.hasLoaded=!0;c.width=c.source.width;c.height=c.source.height;PIXI.texturesToUpdate.push(c);c.dispatchEvent({type:"loaded",content:c})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=
this.source.height,PIXI.texturesToUpdate.push(this)};PIXI.BaseTexture.constructor=PIXI.BaseTexture;PIXI.BaseTexture.prototype.fromImage=function(){};PIXI.TextureCache={};PIXI.FrameCache={};PIXI.Texture=function(a,c){PIXI.EventTarget.call(this);c||(this.noFrame=!0,c=new PIXI.Rectangle(0,0,1,1));this.trim=new PIXI.Point;this.baseTexture=a;this.frame=c;this.scope=this;if(a.hasLoaded)this.noFrame&&(c=new PIXI.Rectangle(0,0,a.width,a.height)),this.setFrame(c);else{var f=this;a.addEventListener("loaded",function(){f.onBaseTextureLoaded()})}};PIXI.Texture.constructor=PIXI.Texture;
PIXI.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded);this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,a.width,a.height));this.noFrame=!1;this.width=this.frame.width;this.height=this.frame.height;this.scope.dispatchEvent({type:"update",content:this})};PIXI.Texture.prototype.setFrame=function(a){this.frame=a;this.width=a.width;this.height=a.height};
PIXI.Texture.fromImage=function(a){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new Image,c.src=a,c=new PIXI.BaseTexture(c),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache "+this);return c};
PIXI.Texture.fromCanvas=function(a){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new PIXI.BaseTexture(a),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.addTextureToCache=function(a,c){PIXI.TextureCache[c]=a};PIXI.Texture.removeTextureFromCache=function(a){var c=PIXI.TextureCache[a];PIXI.TextureCache[a]=null;return c};PIXI.autoDetectRenderer=function(a,c,f){a||(a=800);c||(c=600);var d;try{d=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(g){d=!1}return d?new PIXI.WebGLRenderer(a,c,f):new PIXI.CanvasRenderer(a,c,f)};PIXI.SpriteSheetLoader=function(a){PIXI.EventTarget.call(this);this.url=a;this.baseUrl=a.replace(/[^\/]*$/,"");this.texture;this.frames={}};PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader;PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var a=this;this.ajaxRequest.onreadystatechange=function(){a.onLoaded()};this.ajaxRequest.open("GET",this.url,!0);this.ajaxRequest.send(null)};
PIXI.SpriteSheetLoader.prototype.onLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=eval("("+this.ajaxRequest.responseText+")");this.texture=PIXI.Texture.fromImage(this.baseUrl+a.meta.image).baseTexture;var a=a.frames,c;for(c in a){var f=a[c].frame;PIXI.TextureCache[c]=new PIXI.Texture(this.texture,{x:f.x,y:f.y,width:f.w,height:f.h});a[c].trimmed&&(PIXI.TextureCache[c].realSize=a[c].spriteSourceSize,PIXI.TextureCache[c].trim.x=
0)}if(this.texture.hasLoaded)this.dispatchEvent({type:"loaded",content:this});else{var d=this;this.texture.addEventListener("loaded",function(){d.dispatchEvent({type:"loaded",content:d})})}}};PIXI.AssetLoader=function(a){PIXI.EventTarget.call(this);this.assetURLs=a;this.assets=[]};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var a=["jpeg","jpg","png","gif"],c=["json"],f=0;f<this.assetURLs.length;f++){for(var d=this.assetURLs[f],g=d.split(".").pop().toLowerCase(),h=null,j=0;j<a.length;j++)if(g==a[j]){h="img";break}if("img"!=h)for(j=0;j<c.length;j++)if(g==c[j]){h="atlas";break}if("img"==h)if(d=PIXI.Texture.fromImage(d),d.hasLoaded)this.loadCount--;else{var k=this;d.baseTexture.addEventListener("loaded",function(){k.onAssetLoaded()});this.assets.push(d)}else if("atlas"==
h)d=new PIXI.SpriteSheetLoader(d),this.assets.push(d),k=this,d.addEventListener("loaded",function(){k.onAssetLoaded()}),d.load();else throw Error(d+" is an unsupported file type "+this);}};PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--;this.dispatchEvent({type:"onProgress",content:this});if(this.onProgress)this.onProgress();if(0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete))this.onComplete()};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -71,6 +71,9 @@ PIXI.DisplayObject = function()
this._cr = 1;
this.renderable = false;
// NOT YET :/ This only applies to children within the container..
this.interactive = true;
}
// constructor

View file

@ -18,7 +18,7 @@ PIXI.DisplayObjectContainer = function()
* @property children {Array}
*/
this.children = [];
//s
this.renderable = false;
}

View file

@ -0,0 +1,343 @@
/**
* @author Mat Groves http://matgroves.com/ @Doormat23
*/
/**
The interaction manager deals with mouse and touch events. At this moment only Sprite's can be interactive.
This manager also supports multitouch.
@class InteractionManager
@constructor
@param stage {Stage}
@type Stage
*/
PIXI.InteractionManager = function(stage)
{
/**
* a refference to the stage
* @property stage
* @type Stage
*/
this.stage = stage;
// helpers
this.tempPoint = new PIXI.Point();
this.tempMatrix = mat3.create();
this.mouseoverEnabled = true;
/**
* the mouse data
* @property mouse
* @type InteractionData
*/
this.mouse = new PIXI.InteractionData();
/**
* an object that stores current touches (InteractionData) by id reference
* @property touchs
* @type Object
*/
this.touchs = {};
//tiny little interactiveData pool!
this.pool = [];
this.interactiveItems = [];
}
// constructor
PIXI.InteractionManager.constructor = PIXI.InteractionManager;
/**
* This method will disable rollover/rollout for ALL interactive items
* You may wish to use this an optimization if your app does not require rollover/rollout funcitonality
* @method disableMouseOver
*/
PIXI.InteractionManager.prototype.disableMouseOver = function()
{
if(!this.mouseoverEnabled)return;
this.mouseoverEnabled = false;
if(this.target)this.target.view.removeEventListener('mousemove', this.onMouseMove.bind(this));
}
/**
* This method will enable rollover/rollout for ALL interactive items
* It is enabled by default
* @method enableMouseOver
*/
PIXI.InteractionManager.prototype.enableMouseOver = function()
{
if(this.mouseoverEnabled)return;
this.mouseoverEnabled = false;
if(this.target)this.target.view.addEventListener('mousemove', this.onMouseMove.bind(this));
}
PIXI.InteractionManager.prototype.collectInteractiveSprite = function(displayObject)
{
var children = displayObject.children;
var length = children.length;
for (var i = length - 1; i >= 0; i--)
{
var child = children[i];
// only sprite's right now...
if(child instanceof PIXI.Sprite)
{
if(child.interactive)this.interactiveItems.push(child);
}
else
{
// use this to optimize..
if(!child.interactive)continue;
}
if(child.children.length > 0)
{
this.collectInteractiveSprite(child);
}
}
}
PIXI.InteractionManager.prototype.setTarget = function(target)
{
this.target = target;
if(this.mouseoverEnabled)target.view.addEventListener('mousemove', this.onMouseMove.bind(this), true);
target.view.addEventListener('mousedown', this.onMouseDown.bind(this), true);
target.view.addEventListener('mouseup', this.onMouseUp.bind(this), true);
target.view.addEventListener('mouseout', this.onMouseUp.bind(this), true);
// aint no multi touch just yet!
target.view.addEventListener("touchstart", this.onTouchStart.bind(this), true);
target.view.addEventListener("touchend", this.onTouchEnd.bind(this), true);
target.view.addEventListener("touchmove", this.onTouchMove.bind(this), true);
}
PIXI.InteractionManager.prototype.hitTest = function(interactionData)
{
if(this.dirty)
{
this.dirty = false;
this.interactiveItems = [];
// go through and collect all the objects that are interactive..
this.collectInteractiveSprite(this.stage);
}
var tempPoint = this.tempPoint;
var tempMatrix = this.tempMatrix;
var global = interactionData.global;
var length = this.interactiveItems.length;
for (var i = 0; i < length; i++)
{
var item = this.interactiveItems[i];
if(!item.visible)continue;
// TODO this could do with some optimizing!
// maybe store the inverse?
// or do a lazy check first?
//mat3.inverse(item.worldTransform, tempMatrix);
//tempPoint.x = tempMatrix[0] * global.x + tempMatrix[1] * global.y + tempMatrix[2];
//tempPoint.y = tempMatrix[4] * global.y + tempMatrix[3] * global.x + tempMatrix[5];
// OPTIMIZED! assuming the matrix transform is affine.. which it totally shold be!
var worldTransform = item.worldTransform;
var a00 = worldTransform[0], a01 = worldTransform[1], a02 = worldTransform[2],
a10 = worldTransform[3], a11 = worldTransform[4], a12 = worldTransform[5],
id = 1 / (a00 * a11 + a01 * -a10);
tempPoint.x = a11 * id * global.x + -a01 * id * global.y + (a12 * a01 - a02 * a11) * id;
tempPoint.y = a00 * id * global.y + -a10 * id * global.x + (-a12 * a00 + a02 * a10) * id;
var x1 = -item.width * item.anchor.x
if(tempPoint.x > x1 && tempPoint.x < x1 + item.width)
{
var y1 = -item.height * item.anchor.y;
if(tempPoint.y > y1 && tempPoint.y < y1 + item.height)
{
interactionData.local.x = tempPoint.x;
interactionData.local.y = tempPoint.y;
return item;
}
}
}
return null;
}
PIXI.InteractionManager.prototype.onMouseMove = function(event)
{
event.preventDefault();
// TODO optimize by not check EVERY TIME! maybe half as often? //
var rect = this.target.view.getBoundingClientRect();
this.mouse.global.x = (event.clientX - rect.left) * (this.target.width / rect.width);
this.mouse.global.y = (event.clientY - rect.top) * ( this.target.height / rect.height);
var item = this.hitTest(this.mouse);
if(this.currentOver != item)
{
if(this.currentOver)
{
if(this.currentOver.mouseout)this.currentOver.mouseout(this.mouse);
this.currentOver = null;
}
this.target.view.style.cursor = "default";
}
if(item)
{
if(this.currentOver == item)return;
this.currentOver = item;
this.target.view.style.cursor = "pointer";
if(item.mouseover)item.mouseover(this.mouse);
}
}
PIXI.InteractionManager.prototype.onMouseDown = function(event)
{
var rect = this.target.view.getBoundingClientRect();
this.mouse.global.x = (event.clientX - rect.left) * (this.target.width / rect.width);
this.mouse.global.y = (event.clientY - rect.top) * (this.target.height / rect.height);
var item = this.hitTest(this.mouse);
if(item)
{
this.currentDown = item;
if(item.mousedown)item.mousedown(this.mouse);
}
}
PIXI.InteractionManager.prototype.onMouseUp = function(event)
{
if(this.currentDown)
{
if(this.currentDown.mouseup)this.currentDown.mouseup(this.mouse);
if(this.currentOver == this.currentDown)if(this.currentDown.click)this.currentDown.click(this.mouse);
this.currentDown = null;
}
}
PIXI.InteractionManager.prototype.onTouchMove = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i < changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.touchs[touchEvent.identifier];
// update the touch position
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width / rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height / rect.height);
}
}
PIXI.InteractionManager.prototype.onTouchStart = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i < changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.pool.pop();
if(!touchData)touchData = new PIXI.InteractionData();
this.touchs[touchEvent.identifier] = touchData;
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width / rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height / rect.height);
var item = this.hitTest(touchData);
if(item)
{
touchData.currentDown = item;
if(item.touchstart)item.touchstart(touchData);
}
}
}
PIXI.InteractionManager.prototype.onTouchEnd = function(event)
{
event.preventDefault();
var rect = this.target.view.getBoundingClientRect();
var changedTouches = event.changedTouches;
for (var i=0; i < changedTouches.length; i++)
{
var touchEvent = changedTouches[i];
var touchData = this.touchs[touchEvent.identifier];
touchData.global.x = (touchEvent.clientX - rect.left) * (this.target.width / rect.width);
touchData.global.y = (touchEvent.clientY - rect.top) * (this.target.height / rect.height);
if(touchData.currentDown)
{
if(touchData.currentDown.touchend)touchData.currentDown.touchend(touchData);
var item = this.hitTest(touchData);
if(item == touchData.currentDown)
{
if(touchData.currentDown.tap)touchData.currentDown.tap(touchData);
}
touchData.currentDown = null;
}
// remove the touch..
this.pool.push(touchData);
this.touchs[touchEvent.identifier] = null;
}
}
/**
@class InteractionData
@constructor
*/
PIXI.InteractionData = function()
{
/**
* This point stores the global coords of where the touch/mouse event happened
* @property global
* @type Point
*/
this.global = new PIXI.Point();
/**
* This point stores the local coords of where the touch/mouse event happened
* @property local
* @type Point
*/
this.local = new PIXI.Point();
}
// constructor
PIXI.InteractionData.constructor = PIXI.InteractionData;

View file

@ -70,6 +70,73 @@ PIXI.Sprite = function(texture)
}
this.renderable = true;
// [readonly] best not to toggle directly! use setInteractive()
this.interactive = false;
// thi next bit is here for the docs...
/*
* MOUSE Callbacks
*/
/**
* A callback that is used when the users clicks on the sprite with thier mouse
* @method click
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the user clicks the mouse down over the sprite
* @method mousedown
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the user releases the mouse that was over the sprite
* for this callback to be fired the mouse must have been pressed down over the sprite
* @method mouseup
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the users mouse rolls over the sprite
* @method mouseover
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the users mouse leaves the sprite
* @method mouseout
* @param interactionData {InteractionData}
*/
/*
* TOUCH Callbacks
*/
/**
* A callback that is used when the users taps on the sprite with thier finger
* basically a touch version of click
* @method tap
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the user touch's over the sprite
* @method touchstart
* @param interactionData {InteractionData}
*/
/**
* A callback that is used when the user releases the touch that was over the sprite
* for this callback to be fired. The touch must have started over the sprite
* @method touchend
* @param interactionData {InteractionData}
*/
}
// constructor
@ -92,7 +159,19 @@ PIXI.Sprite.prototype.setTexture = function(texture)
this.width = texture.frame.width;
this.height = texture.frame.height;
this.updateFrame = true;
}
/**
* Indicates if the sprite will have touch and mouse interactivity. It is false by default
* @method setInteractive
* @param interactive {Boolean}
*/
PIXI.Sprite.prototype.setInteractive = function(interactive)
{
this.interactive = interactive;
// TODO more to be done here..
// need to sort out a re-crawl!
if(stage)stage.dirty = true;
}
/**
@ -107,7 +186,6 @@ PIXI.Sprite.prototype.onTextureUpdate = function(event)
// some helper functions..
/**
*
* Helper function that creates a sprite that will contain a texture from the TextureCache based on the frameId

View file

@ -8,8 +8,9 @@ A Stage represents the root of the display tree. Everything connected to the sta
@extends DisplayObjectContainer
@constructor
@param backgroundColor {Number} the background color of the stage
@param interactive {Boolean} enable / disable interaction (default is false)
*/
PIXI.Stage = function(backgroundColor)
PIXI.Stage = function(backgroundColor, interactive)
{
PIXI.DisplayObjectContainer.call( this );
@ -19,6 +20,10 @@ PIXI.Stage = function(backgroundColor)
this.childIndex = 0;
this.stage= this;
// interaction!
this.interactive = interactive ? true : false;
this.interactionManager = new PIXI.InteractionManager(this);
this.setBackgroundColor(backgroundColor);
}
@ -39,6 +44,16 @@ PIXI.Stage.prototype.updateTransform = function()
{
this.children[i].updateTransform();
}
if(this.dirty)
{
this.dirty = false;
// update interactive!
this.interactionManager.dirty = true;
}
}
/**
@ -54,7 +69,7 @@ PIXI.Stage.prototype.setBackgroundColor = function(backgroundColor)
PIXI.Stage.prototype.__addChild = function(child)
{
//this.__childrenAdded.push(child);
if(child.interactive)this.dirty = true;
child.stage = this;
@ -71,6 +86,8 @@ PIXI.Stage.prototype.__addChild = function(child)
PIXI.Stage.prototype.__removeChild = function(child)
{
if(child.interactive)this.dirty = true;
this.__childrenRemoved.push(child);
child.stage = undefined;

View file

@ -79,6 +79,18 @@ PIXI.CanvasRenderer.prototype.render = function(stage)
this.context.clearRect(0, 0, this.width, this.height)
this.renderDisplayObject(stage);
//as
// run interaction!
if(stage.interactive)
{
//need to add some events!
if(!stage._interactiveEventsAdded)
{
stage._interactiveEventsAdded = true;
stage.interactionManager.setTarget(this);
}
}
}
/**

View file

@ -169,7 +169,7 @@ PIXI.WebGLRenderer.prototype.render = function(stage)
for (var i=0; i < stage.__childrenRemoved.length; i++)
{
this.removeDisplayObject(stage.__childrenRemoved[i]);
// stage.__childrenRemoved[i].cacheVisible = false;
// stage.__childrenRemoved[i].cacheVisible = false;
}
/*
// no add all new sprites
@ -219,6 +219,17 @@ PIXI.WebGLRenderer.prototype.render = function(stage)
}
}
// interaction
// run interaction!
if(stage.interactive)
{
//need to add some events!
if(!stage._interactiveEventsAdded)
{
stage._interactiveEventsAdded = true;
stage.interactionManager.setTarget(this);
}
}
}
/**

View file

@ -183,9 +183,12 @@ PIXI.Texture.addTextureToCache = function(texture, id)
* Remove a texture from the textureCache.
* @method removeTextureFromCache
* @param id {String} the id of the texture to be removed
* @return {Texture} the texture that was removed
*/
PIXI.Texture.removeTextureFromCache = function(id)
{
PIXI.TextureCache[id] = texture;
var texture = PIXI.TextureCache[id]
PIXI.TextureCache[id] = null;
return texture;
}

View file

@ -22,7 +22,11 @@ PIXI.autoDetectRenderer = function(width, height, view)
//console.log(webgl);
if( webgl )
{
<<<<<<< HEAD
return new PIXI.WebGLRenderer(width, height, view)
=======
return new PIXI.WebGLRenderer(width, height, view)
>>>>>>> Interactivity Added
}
return new PIXI.CanvasRenderer(width, height, view);

View file

@ -1,8 +1,8 @@
{
"name": "Pixi.js API",
"logo": "../logo_small.png",
"description": "The Foo API: a library for doing X, Y, and Z",
"version": "0.9",
"logo": "http://www.goodboydigital.com/pixijs/logo_small.png",
"description": "Pixi.js is a fast lightweight 2D library that works across all devices.",
"version": "1.0",
"url": "http://goodboydigital.com/",
"options": {
"outdir": "../docs"