Newer
Older
pixi.js / bin / pixi.js
@Mat Groves Mat Groves on 28 Mar 2013 59 KB Issue Fixes
var PIXI=PIXI||{};PIXI.Point=function(a,c){this.x=a||0;this.y=c||0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(a,c,d,f){this.x=a||0;this.y=c||0;this.width=d||0;this.height=f||0};PIXI.Rectangle.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)};PIXI.Rectangle.constructor=PIXI.Rectangle;
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 d=this.children.length,f=c;f<d;f++)this.children[f].childIndex=f;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.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;this.stage&&(this.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.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 d=a[c];if(d instanceof PIXI.Sprite)d.interactive&&this.interactiveItems.push(d);else if(!d.interactive)continue;0<d.children.length&&this.collectInteractiveSprite(d)}};
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,d=a.global,f=this.interactiveItems.length,g=0;g<f;g++){var h=this.interactiveItems[g];if(h.visible){var j=h.worldTransform,k=j[0],r=j[1],n=j[2],z=j[3],D=j[4],j=j[5],m=1/(k*D+r*-z);c.x=D*m*d.x+-r*m*d.y+(j*r-n*D)*m;c.y=k*m*d.y+-z*m*d.x+(-j*k+n*z)*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.mouse.target=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",this.mouse.target=a,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,this.mouse.target=a,a.mousedown&&a.mousedown(this.mouse)};
PIXI.InteractionManager.prototype.onMouseUp=function(){this.currentOver&&(this.mouse.target=this.currentOver,this.currentOver.mouseup&&this.currentOver.mouseup(this.mouse));this.currentDown&&(this.mouse.target=this.currentDown,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 d=0;d<a.length;d++){var f=a[d],g=this.touchs[f.identifier];g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.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 d=0;d<a.length;d++){var f=a[d],g=this.pool.pop();g||(g=new PIXI.InteractionData);this.touchs[f.identifier]=g;g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.clientY-c.top)*(this.target.height/c.height);if(f=this.hitTest(g))g.currentDown=f,g.target=f,f.touchstart&&f.touchstart(g)}};
PIXI.InteractionManager.prototype.onTouchEnd=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var d=0;d<a.length;d++){var f=a[d],g=this.touchs[f.identifier];g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.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[f.identifier]=null}};PIXI.InteractionData=function(){this.global=new PIXI.Point;this.local=new PIXI.Point};PIXI.InteractionData.constructor=PIXI.InteractionData;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;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||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,d=a.children.length;c<d;c++)this.__removeChild(a.children[c])};
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 d(){var h=g.concat(a.call(arguments));f.apply(this instanceof d?this:c,h)}var f=this,g=a.call(arguments,1);if("function"!=typeof f)throw new TypeError;d.prototype=function j(a){a&&(j.prototype=a);if(!(this instanceof j))return new j}(f.prototype);return d}}());
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(d){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};
PIXI.EventTarget=function(){var a={};this.addEventListener=function(c,d){void 0===a[c]&&(a[c]=[]);-1===a[c].indexOf(d)&&a[c].push(d)};this.dispatchEvent=function(c){for(var d in a[c.type])a[c.type][d](c)};this.removeEventListener=function(c,d){var f=a[c].indexOf(d);-1!==f&&a[c].splice(f,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 d(){return j="undefined"!==typeof Float32Array?Float32Array:Array}var f={};if("undefined"!=typeof Float32Array){var g=new Float32Array(1),h=new Int32Array(g.buffer);f.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 f.invsqrt=function(b){return 1/Math.sqrt(b)};
var j=null;d();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],q=b[2],d=Math.sqrt(a*
a+c*c+q*q);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]=q,e;d=1/d;e[0]=a*d;e[1]=c*d;e[2]=q*d;return e},cross:function(b,e,a){a||(a=b);var c=b[0],q=b[1];b=b[2];var d=e[0],f=e[1];e=e[2];a[0]=q*e-b*f;a[1]=b*d-c*e;a[2]=c*f-q*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],q=b[1]-e[1];b=b[2]-e[2];e=Math.sqrt(c*c+q*q+b*b);if(!e)return a[0]=0,a[1]=0,a[2]=0,a;e=1/e;a[0]=c*e;a[1]=q*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],q=e[2]-b[2];return Math.sqrt(a*a+c*c+q*q)}},r=null,n=new j(4);k.unproject=function(b,e,a,c,q){q||(q=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;q[0]=n[0]/n[3];q[1]=n[1]/n[3];q[2]=n[2]/n[3];return q};var z=k.createFrom(1,0,0),D=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(G,a);else if(-0.999999>c)k.cross(z,b,u),1E-6>k.length(u)&&k.cross(D,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)),q=1/c;k.cross(b,
e,u);a[0]=u[0]*q;a[1]=u[1]*q;a[2]=u[2]*q;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 y={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,q,d,f,g,H){var v=new j(9);v[0]=b;v[1]=e;v[2]=a;v[3]=c;v[4]=q;v[5]=d;v[6]=f;v[7]=g;v[8]=H;return v},determinant:function(b){var e=
b[3],a=b[4],c=b[5],q=b[6],d=b[7],f=b[8];return b[0]*(f*a-c*d)+b[1]*(-f*e+c*q)+b[2]*(d*e-a*q)},inverse:function(b,e){var a=b[0],c=b[1],q=b[2],d=b[3],f=b[4],g=b[5],H=b[6],v=b[7],h=b[8],j=h*f-g*v,k=-h*d+g*H,l=v*d-f*H,p=a*j+c*k+q*l;if(!p)return null;p=1/p;e||(e=y.create());e[0]=j*p;e[1]=(-h*c+q*v)*p;e[2]=(g*c-q*f)*p;e[3]=k*p;e[4]=(h*a-q*H)*p;e[5]=(-g*a+q*d)*p;e[6]=l*p;e[7]=(-v*a+c*H)*p;e[8]=(f*a-c*d)*p;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],q=b[1],d=b[2],f=b[3],g=b[4],H=b[5],v=b[6],h=
b[7];b=b[8];var j=e[0],k=e[1],l=e[2],p=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*q+k*g+l*h;a[2]=j*d+k*H+l*b;a[3]=p*c+m*f+t*v;a[4]=p*q+m*g+t*h;a[5]=p*d+m*H+t*b;a[6]=n*c+w*f+e*v;a[7]=n*q+w*g+e*h;a[8]=n*d+w*H+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],q=e[1];e=e[2];a[0]=c*b[0]+q*b[3]+e*b[6];a[1]=c*b[1]+q*b[4]+e*b[7];a[2]=c*b[2]+q*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=y.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],q=b[5];b[1]=b[3];b[2]=b[6];b[3]=a;b[5]=b[7];b[6]=c;b[7]=q;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,q,d,f,g,h,v,N,I,k,l,p,m){var t=new j(16);t[0]=b;t[1]=e;t[2]=a;t[3]=c;t[4]=q;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]=p;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],q=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]=q;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],q=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],p=b[13],m=b[14];b=b[15];return l*j*g*q-v*p*g*q-l*f*I*q+d*p*I*q+v*f*m*q-d*j*m*q-l*j*c*h+v*p*c*h+l*a*I*h-e*p*I*h-v*a*m*h+e*j*m*h+l*f*c*k-d*p*c*k-l*a*g*k+e*p*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],d=b[2],f=b[3],x=b[4],g=b[5],h=b[6],v=b[7],j=b[8],k=b[9],l=b[10],m=b[11],p=b[12],n=b[13],t=b[14],r=b[15],w=a*g-c*x,C=a*h-d*x,A=a*v-f*x,B=c*h-d*g,s=c*v-f*g,u=d*v-f*h,y=j*n-k*p,z=j*t-l*p,D=j*r-m*p,E=k*t-l*n,G=k*r-m*n,J=l*r-m*t,F=w*J-C*G+A*E+B*D-s*z+u*y;if(!F)return null;F=1/F;e[0]=(g*J-h*G+v*E)*F;e[1]=(-c*J+d*G-f*E)*F;e[2]=(n*u-t*s+r*B)*F;e[3]=(-k*u+l*s-m*B)*F;e[4]=(-x*J+h*D-v*z)*F;e[5]=(a*J-d*D+f*z)*F;e[6]=(-p*u+t*A-r*C)*F;e[7]=(j*u-l*A+m*C)*F;e[8]=(x*G-g*D+v*y)*F;e[9]=
(-a*G+c*D-f*y)*F;e[10]=(p*s-n*A+r*w)*F;e[11]=(-j*s+k*A-m*w)*F;e[12]=(-x*E+g*z-h*y)*F;e[13]=(a*E-c*z+d*y)*F;e[14]=(-p*B+n*C-t*w)*F;e[15]=(j*B-k*C+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=y.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],x=b[5],g=b[6],h=b[8],j=b[9],k=b[10],l=k*x-g*j,m=-k*f+g*h,n=j*f-x*h,p=a*l+c*m+d*n;if(!p)return null;p=1/p;e||(e=y.create());e[0]=l*p;e[1]=(-k*c+d*j)*p;e[2]=(g*c-d*x)*p;e[3]=m*p;e[4]=(k*a-d*h)*p;e[5]=(-g*a+d*f)*p;e[6]=n*p;e[7]=(-j*a+c*h)*p;e[8]=(x*a-c*f)*p;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],d=b[1],f=b[2],x=b[3],g=b[4],h=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],p=b[11],r=b[12],t=b[13],s=b[14];b=b[15];var w=e[0],
C=e[1],A=e[2],B=e[3];a[0]=w*c+C*g+A*l+B*r;a[1]=w*d+C*h+A*m+B*t;a[2]=w*f+C*j+A*n+B*s;a[3]=w*x+C*k+A*p+B*b;w=e[4];C=e[5];A=e[6];B=e[7];a[4]=w*c+C*g+A*l+B*r;a[5]=w*d+C*h+A*m+B*t;a[6]=w*f+C*j+A*n+B*s;a[7]=w*x+C*k+A*p+B*b;w=e[8];C=e[9];A=e[10];B=e[11];a[8]=w*c+C*g+A*l+B*r;a[9]=w*d+C*h+A*m+B*t;a[10]=w*f+C*j+A*n+B*s;a[11]=w*x+C*k+A*p+B*b;w=e[12];C=e[13];A=e[14];B=e[15];a[12]=w*c+C*g+A*l+B*r;a[13]=w*d+C*h+A*m+B*t;a[14]=w*f+C*j+A*n+B*s;a[15]=w*x+C*k+A*p+B*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,x,g,h,j,k,l,m,n,p,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];x=b[1];g=b[2];h=b[3];j=b[4];k=b[5];l=b[6];m=b[7];n=b[8];p=b[9];r=b[10];t=b[11];a[0]=f;a[1]=x;a[2]=g;a[3]=h;a[4]=j;a[5]=k;a[6]=l;a[7]=m;a[8]=n;a[9]=p;a[10]=r;a[11]=t;a[12]=f*c+j*d+n*e+b[12];a[13]=x*c+k*d+p*e+b[13];a[14]=g*c+l*d+r*e+b[14];a[15]=h*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 x=Math.sqrt(d*d+f*f+a*a),g,h,j,k,l,m,n,p,r,t,s,w,C,A,B,u,y,z,D,E;if(!x)return null;1!==x&&(x=1/x,d*=x,f*=x,a*=x);g=Math.sin(e);h=Math.cos(e);j=1-h;e=b[0];x=b[1];k=b[2];l=b[3];m=b[4];n=b[5];p=b[6];r=b[7];t=b[8];s=b[9];w=
b[10];C=b[11];A=d*d*j+h;B=f*d*j+a*g;u=a*d*j-f*g;y=d*f*j-a*g;z=f*f*j+h;D=a*f*j+d*g;E=d*a*j+f*g;d=f*a*j-d*g;f=a*a*j+h;c?b!==c&&(c[12]=b[12],c[13]=b[13],c[14]=b[14],c[15]=b[15]):c=b;c[0]=e*A+m*B+t*u;c[1]=x*A+n*B+s*u;c[2]=k*A+p*B+w*u;c[3]=l*A+r*B+C*u;c[4]=e*y+m*z+t*D;c[5]=x*y+n*z+s*D;c[6]=k*y+p*z+w*D;c[7]=l*y+r*z+C*D;c[8]=e*E+m*d+t*f;c[9]=x*E+n*d+s*f;c[10]=k*E+p*d+w*f;c[11]=l*E+r*d+C*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}},G=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=y.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};y.toQuat4=l.fromRotationMatrix;var E=y.create();l.fromAxes=function(b,a,c,d){E[0]=a[0];E[3]=a[1];E[6]=a[2];E[1]=c[0];E[4]=c[1];E[7]=c[2];E[2]=b[0];E[5]=b[1];E[8]=b[2];return l.fromRotationMatrix(E,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=f.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=
d,a.glMath=f,a.vec2=L,a.vec3=k,a.vec4=M,a.mat2=K,a.mat3=y,a.mat4=s,a.quat4=l);return{glMatrixArrayType:j,MatrixArray:j,setMatrixArrayType:c,determineMatrixArrayType:d,glMath:f,vec2:L,vec3:k,vec4:M,mat2:K,mat3:y,mat4:s,quat4:l}});PIXI.autoDetectRenderer=function(a,c,d){a||(a=800);c||(c=600);var f;try{f=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(g){f=!1}return f?new PIXI.WebGLRenderer(a,c,d):new PIXI.CanvasRenderer(a,c,d)};
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 d="",f=0;f<c.length;f++)d+=c[f];f=a.createShader(a.VERTEX_SHADER);a.shaderSource(f,d);a.compileShader(f);return!a.getShaderParameter(f,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(f)),null):f};PIXI.CompileFragmentShader=function(a,c){for(var d="",f=0;f<c.length;f++)d+=c[f];f=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(f,d);a.compileShader(f);return!a.getShaderParameter(f,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(f)),null):f};
PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1);
PIXI.WebGLRenderer=function(a,c,d){this.width=a||800;this.height=c||600;this.view=d||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(a){f.handleContextLost(a)},!1);this.view.addEventListener("webglcontextrestored",function(a){f.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),d=PIXI.CompileVertexShader(a,PIXI.shaderVertexSrc),f=this.shaderProgram=a.createProgram();a.attachShader(f,d);a.attachShader(f,c);a.linkProgram(f);a.getProgramParameter(f,a.LINK_STATUS)||alert("Could not initialise shaders");a.useProgram(f);f.vertexPositionAttribute=a.getAttribLocation(f,"aVertexPosition");a.enableVertexAttribArray(f.vertexPositionAttribute);f.textureCoordAttribute=
a.getAttribLocation(f,"aTextureCoord");a.enableVertexAttribArray(f.textureCoordAttribute);f.colorAttribute=a.getAttribLocation(f,"aColor");a.enableVertexAttribArray(f.colorAttribute);f.mvMatrixUniform=a.getUniformLocation(f,"uMVMatrix");f.samplerUniform=a.getUniformLocation(f,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(a,c){for(var d=a.children,f=0;f<d.length;f++){var g=d[f],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 d,c=0;c<this.batchs.length;c++)d=this.batchs[c],d instanceof PIXI.WebGLBatch?this.batchs[c].render():d instanceof PIXI.Strip&&d.visible&&this.renderStrip(d);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 d=a;do{if(0==d.children.length){for(;d.childIndex==d.parent.children.length-1;)if(d=d.parent,d==a.stage){d=null;break}d&&(d=d.parent.children[d.childIndex+1])}else d=d.children[0];
if(!d)break}while(!d.renderable||!d.__inWebGL);if(a instanceof PIXI.Sprite){var f;if(c instanceof PIXI.Sprite){if((f=c.batch)&&f.texture==a.texture.baseTexture&&f.blendMode==a.blendMode){f.insertAfter(a,c);return}}else f=c;if(d&&d instanceof PIXI.Sprite&&(c=d.batch)){if(c.texture==a.texture.baseTexture&&c.blendMode==a.blendMode){c.insertBefore(a,d);return}if(c==f){d=f.split(d);c=PIXI._getBatch(this.gl);f=this.batchs.indexOf(f);c.init(a);this.batchs.splice(f+1,0,c,d);return}}c=PIXI._getBatch(this.gl);
c.init(a);f?(f=this.batchs.indexOf(f),this.batchs.splice(f+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 d=a.batch;if(!d)return;d.remove(a);0==d.size&&(c=d)}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,d=this.shaderProgram,f=mat3.toMat4(a.worldTransform);mat4.transpose(f);mat4.multiply(this.projectionMatrix,f,f);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,f);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(d.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(d.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(d.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(d.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(d.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(d.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 d=c.__prev;c.__prev=a;a.__next=c;d?(a.__prev=d,d.__next=a):this.head=a};
PIXI.WebGLBatch.prototype.insertAfter=function(a,c){this.size++;a.batch=this;this.dirty=!0;var d=c.__next;c.__next=a;a.__prev=c;d?(a.__next=d,d.__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 d=0;a;)d++,a.batch=c,a=a.__next;c.size=d;this.size-=d;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,d=0;d<c;d++){var f=6*d,g=4*d;this.indices[f+0]=g+0;this.indices[f+1]=g+1;this.indices[f+2]=g+2;this.indices[f+3]=g+0;this.indices[f+4]=g+2;this.indices[f+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,d=this.head;d;){c=8*a;var f=d.texture,g=f.frame,h=f.baseTexture.width,f=f.baseTexture.height;this.uvs[c+0]=g.x/h;this.uvs[c+1]=g.y/f;this.uvs[c+2]=(g.x+g.width)/h;this.uvs[c+3]=g.y/f;this.uvs[c+4]=(g.x+g.width)/h;this.uvs[c+5]=(g.y+g.height)/f;this.uvs[c+6]=g.x/h;this.uvs[c+7]=(g.y+g.height)/f;d.updateFrame=!1;colorIndex=4*a;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=d.worldAlpha;d=d.__next;a++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var a,c,d,f,g,h,j,k,r,n,z,D=0,m=this.head;m;)c=m.width,d=m.height,f=m.anchor.x-m.texture.trim.x,g=m.anchor.y-m.texture.trim.y,h=c*(1-f),c*=-f,f=d*(1-g),g=d*-g,d=8*D,a=m.worldTransform,j=a[0],k=a[3],r=a[1],n=a[4],z=a[2],a=a[5],this.verticies[d+0]=j*c+r*g+z,this.verticies[d+1]=n*g+k*c+a,this.verticies[d+2]=j*h+r*g+z,this.verticies[d+3]=n*g+k*h+a,this.verticies[d+4]=j*h+r*f+z,this.verticies[d+5]=n*f+k*h+a,this.verticies[d+6]=j*c+r*f+z,this.verticies[d+
7]=n*f+k*c+a,m.updateFrame&&(this.dirtyUVS=!0,f=m.texture,h=f.frame,c=f.baseTexture.width,f=f.baseTexture.height,this.uvs[d+0]=h.x/c,this.uvs[d+1]=h.y/f,this.uvs[d+2]=(h.x+h.width)/c,this.uvs[d+3]=h.y/f,this.uvs[d+4]=(h.x+h.width)/c,this.uvs[d+5]=(h.y+h.height)/f,this.uvs[d+6]=h.x/c,this.uvs[d+7]=(h.y+h.height)/f,m.updateFrame=!1),m.cacheAlpha!=m.worldAlpha&&(m.cacheAlpha=m.worldAlpha,h=4*D,this.colors[h]=this.colors[h+1]=this.colors[h+2]=this.colors[h+3]=m.worldAlpha,this.dirtyColors=!0),D++,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,d){this.width=a||800;this.height=c||600;this.refresh=!0;this.view=d||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,d=this.context;d.globalCompositeOperation="source-over";if(a.visible){if(a instanceof PIXI.Sprite){var f=a.texture.frame;f&&(d.globalAlpha=a.worldAlpha,d.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),d.drawImage(a.texture.baseTexture.source,f.x,f.y,f.width,f.height,(a.anchor.x-a.texture.trim.x)*-f.width,(a.anchor.y-a.texture.trim.y)*-f.height,a.width,a.height))}else a instanceof PIXI.Strip&&(d.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 d=a.length/2;this.count++;c.beginPath();for(var f=1;f<d-2;f++){var g=2*f,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,d=a.verticies,f=a.uvs,g=d.length/2;this.count++;for(var h=1;h<g-2;h++){var j=2*h,k=d[j],r=d[j+2],n=d[j+4],z=d[j+1],D=d[j+3],m=d[j+5],u=f[j]*a.texture.width,y=f[j+2]*a.texture.width,s=f[j+4]*a.texture.width,l=f[j+1]*a.texture.height,G=f[j+3]*a.texture.height,j=f[j+5]*a.texture.height;c.save();c.beginPath();c.moveTo(k,z);c.lineTo(r,D);c.lineTo(n,m);c.closePath();c.clip();var E=u*G+l*s+y*j-G*s-l*y-u*j;c.transform((k*G+l*n+r*j-G*
n-l*r-k*j)/E,(z*G+l*m+D*j-G*m-l*D-z*j)/E,(u*r+k*s+y*n-r*s-k*y-u*n)/E,(u*D+z*s+y*m-D*s-z*y-u*m)/E,(u*G*n+l*r*s+k*y*j-k*G*s-l*y*n-u*r*j)/E,(u*G*m+l*D*s+z*y*j-z*G*s-l*y*m-u*D*j)/E);c.drawImage(a.texture.baseTexture.source,0,0);c.restore()}};
PIXI.Strip=function(a,c,d){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(f){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=d;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(d){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,d=this.indices,f=this.colors;this.count-=0.2;c[0]=0;c[1]=1;c[2]=0;c[3]=1;f[0]=1;f[1]=1;d[0]=0;d[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;f[h]=1;f[h+1]=1;h=2*g;d[h]=h;d[h+1]=h+1}}};
PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(1>a.length)){var c=this.verticies,d=a[0],f,g=f=0,h=a[0];this.count-=0.2;c[0]=h.x+f;c[1]=h.y+g;c[2]=h.x-f;c[3]=h.y-g;for(var j=a.length,k=1;k<j;k++){var h=a[k],r=4*k;f=k<a.length-1?a[k+1]:h;g=-(f.x-d.x);f=f.y-d.y;var d=Math.sqrt(f*f+g*g),n=this.texture.height/2;f/=d;g/=d;f*=n;g*=n;c[r]=h.x+f;c[r+1]=h.y+g;c[r+2]=h.x-f;c[r+3]=h.y-g;d=h}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Rope.prototype.setTexture=function(a){this.texture=a;this.updateFrame=!0};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 d=this;a.addEventListener("loaded",function(){d.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;if(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);};
PIXI.Texture.fromImage=function(a,c){var d=PIXI.TextureCache[a];d||(d=PIXI.BaseTextureCache[a],d||(d=new Image,c&&(d.crossOrigin=""),d.src=a,d=new PIXI.BaseTexture(d),PIXI.BaseTextureCache[a]=d),d=new PIXI.Texture(d),PIXI.TextureCache[a]=d);return d};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.SpriteSheetLoader=function(a){PIXI.EventTarget.call(this);this.url=a;this.baseUrl=a.replace(/[^\/]*$/,"");this.texture;this.frames={};this.crossorigin=!1};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.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json");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,this.crossorigin).baseTexture;var a=a.frames,c;for(c in a){var d=a[c].frame;PIXI.TextureCache[c]=new PIXI.Texture(this.texture,{x:d.x,y:d.y,width:d.w,height:d.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 f=this;this.texture.addEventListener("loaded",function(){f.dispatchEvent({type:"loaded",content:f})})}}};PIXI.AssetLoader=function(a){PIXI.EventTarget.call(this);this.assetURLs=a;this.assets=[];this.crossorigin=!1};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var a=["jpeg","jpg","png","gif"],c=["json"],d=0;d<this.assetURLs.length;d++){for(var f=this.assetURLs[d],g=f.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(f=PIXI.Texture.fromImage(f,this.crossorigin),f.baseTexture.hasLoaded){if(this.loadCount--,0==this.loadCount&&(this.dispatchEvent({type:"onComplete",
content:this}),this.onComplete))this.onComplete()}else{var k=this;f.baseTexture.addEventListener("loaded",function(){k.onAssetLoaded()});this.assets.push(f)}else if("atlas"==h)f=new PIXI.SpriteSheetLoader(f),f.crossorigin=this.crossorigin,this.assets.push(f),k=this,f.addEventListener("loaded",function(){k.onAssetLoaded()}),f.load();else throw Error(f+" 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()};