binaryheapx
Version:
JavaScript Implementation of the Binary Heap.
6 lines (3 loc) • 19.6 kB
JavaScript
/*! pillow v1.0.5 xdf 2014-07-09 21:10:53 */
!function(a,b){"use strict";return"function"==typeof define&&define.amd?define(["exports"],b):"undefined"!=typeof exports?b(exports):void b(a.pillow||(a.pillow={}))}(this,function(a){function b(a,b){for(var c=B.slice.call(this.NotifyHash[a]),d=0,e=c.length;e>d;d++){var f=B.extend({},c[d]),g=f.scope?f.scope:this;f.scope=g,f.handler.call(f.scope,b,f)}}function c(a){var b=this.NotifyHash;a?delete b[a]:this.NotifyHash={}}function d(a,b){for(var c=a.split(" "),d=0,e=c.length;e>d;d++){var f=c[d];this.NotifyHash[f]||(this.NotifyHash[f]=[]),this.NotifyHash[f].push({handler:b,type:f})}}function e(){this.DataHash={},this.NotifyHash={}}function f(a,b,c){c?a[b]=c:a[b]()}function g(a){this.keyCode=a}function h(a){for(var b=0,c=0,d=a;null!=d&&d!=document.body;)b+=d.offsetLeft,c+=d.offsetTop,d=d.offsetParent;return{x:b,y:c}}function i(a){var b=this;b.types="ontouch"in window?["touchstart","touchmove","touchend"]:["mousedown","mousemove","mouseup"],b.element=document,B.merge(b,a),this.bind()}function k(){var a=this;k.sup.call(a),a.x=0,a.y=0,a.width=0,a.height=0,a.alpha=1,a.scaleX=1,a.scaleY=1,a.rotation=0,a.angle=0,a.visible=!0,a.event=!0,a.parent=null,a.context=null,a.debug=!1}function l(a){var b=this;l.sup.call(b,a),b.children=[],b.parent=null,B.merge(b,a)}function m(a){var b=this;m.sup.call(b,a),b.hitType="rect",b.strokeStyle="#000",b.lineWidth=1,b.fillStyle="transparent",b.query=[],B.merge(b,a)}function n(a){var b=this;n.sup.call(b,a),B.merge(b,a)}function o(a){var b=this;o.sup.call(b,a),B.merge(b,a),b.init()}function p(a){var b=this;b.frame=0,b.paused=!1,b.loop=!0,b.offset={x:0,y:0},p.sup.call(b,a),B.merge(b,a),b.init()}function q(a){var b=this;q.sup.call(b,a),b.x=0,b.y=0,b.text="",b.font="12px arial",b.color="#000",B.merge(b,a)}function r(){this.col_Point_Rect=function(a,b,c){return a>c.x&&a<c.right||b>c.y&&b<c.bottom},this.col_Between_Rects=function(a,b){return(a.right>b.x&&a.right<b.right||a.x>b.x&&a.x<b.right)&&(a.bottom>b.y&&a.bottom<b.bottom||a.y<b.bottom&&a.bottom>b.y)},this.col_Point_Circle=function(a,b,c){return Math.pow(a-c.x,2)+Math.pow(b-c.y,2)<Math.pow(c.r,2)},this.col_between_Circles=function(a,b){return Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2)<Math.pow((a.r+b).r,2)}}function s(a){var b=this;b.width=100,b.height=50,B.merge(b,a),b.init()}function t(a){var b=this;b.cache=!0,b.lock=!1,b.source={},t.sup.call(b,a),B.merge(b,a),b.init()}function u(){}function v(a){var b=this;b.hash={},v.sup.call(b,a),B.merge(b,a)}function w(a,b){var c=this;c.fps=b,c.target=a,c.paused=!1,c.init()}function z(a,b){this.x=a||0,this.y=b||0}var A=this,B={create:function(a){if(Object.create)return Object.create(a);var b=function(){};return b.prototype=a,new b},guid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})},$:function(a){return document.getElementById(a)},extend:function(){for(var a=this.slice.call(arguments),b=a.shift(),c=0,d=a.length;d>c;c++){var e=a[c];for(var f in e)b[f]=e[f]}return b},inherit:function(a,b){var c=a.prototype;a.prototype=this.create(b.prototype);for(var d in c)a.prototype[d]=c[d];a.prototype.constructor=a,a.sup=b},augment:function(a,b){this.each(b,function(b,c){a.prototype[c]=b})},log:function(a){console&&"function"==this.type(console.log)&&console.log(a)},indexOf:function(a,b){if(a.indexOf)return a.indexOf(b);var c,d=a.length;for(c=0;d>c;c++)if(a[c]===b)return c;return-1},merge:function(a,b){for(var c in b)a[c]=b[c];return a},each:function(a,b){if(a){for(var c in a)a.hasOwnProperty(c)&&b.call(this,a[c],c);return a}},pushUnique:function(a,b){return-1===this.indexOf(a,b)?(a.push(b),!0):!1},removeValue:function(a,b){var c=this.indexOf(a,b);return-1!==c?a.splice(c,1)[0]:void 0},type:function(a){return null===a||"undefined"==typeof a?String(a):Object.prototype.toString.call(a).replace(/\[object |\]/g,"").toLowerCase()},transpose:function(a){var b={};return this.each(a,function(a,c){b[a]=c}),b},slice:Array.prototype.slice,requestAnimationFrame:A.requestAnimationFrame||A.webkitRequestAnimationFrame||A.mozRequestAnimationFrame||function(a){A.setTimeout(a,1e3/60)},bind:function(a,b){A.addEventListener?A.addEventListener(a,b,!1):document.attachEvent&&document.attachEvent("on"+a,b)}};a.Util=a._=B,e.prototype={on:function(a,b){if("object"==B.type(a))for(var c in a)d.call(this,c,a[c]);else d.call(this,a,b);return this},emit:function(a,c){for(var d=a.split(" "),e=0,f=d.length;f>e;e++){var g=d[e];this.NotifyHash[g]&&b.call(this,g,"undefined"==B.type(c)?null:c)}return this},detach:function(){return c.apply(this,arguments),this},set:function(a,b){this.DataHash[a]=b},get:function(a){return this.DataHash[a]},has:function(a){return!!this.DataHash[a]},all:function(){return this.DataHash},remove:function(a){this.DataHash[a]&&delete this.DataHash[a]}},a.Notify=e;var C=function(){},D={A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32},E=B.transpose(D),F=[],G={_downHandler:C,_upHandler:C,_pressHandler:C,isDown:function(){return-1!==B.indexOf(F,this.keyCode)},down:function(a){f(this,"_downHandler",a)},up:function(a){f(this,"_upHandler",a)},press:function(a){f(this,"_pressHandler",a)},unbindDown:function(){this._downHandler=C},unbindUp:function(){this._upHandler=C},unbindPress:function(){this._pressHandler=C}};B.augment(g,G);var H={};H.Key=g;var I=!1,G={simulate:function(){var a,b=F.length;for(a=0;b>a;a++){var c=F[a],d=E[c];d&&H[d].down()}},run:function(a){I=!0,B.requestAnimationFrame.call(A,function(){I&&(H.run(a),a())})},stop:function(){I=!1}};B.extend(H,G),B.each(D,function(a,b){H[b]=new g(a)}),B.bind("keydown",function(a){var b=a.keyCode,c=E[b],d=B.pushUnique(F,b);d&&H[c]&&H[c].press()}),B.bind("keyup",function(a){var b=B.removeValue(F,a.keyCode),c=E[b];c&&H[c].up()}),B.bind("blur",function(){F.length=0}),a.Keyboard=H;var G={bind:function(){var a=this;a.element=a.screen.target,a.offset=h(a.element),B.each(a.types,function(b){a.element.addEventListener(b,function(c){c.preventDefault();var d=c.changedTouches?c.changedTouches[0].pageX:c.pageX,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY;a.screen.dispatch(b,d-a.offset.x,e-a.offset.y)})})}};B.augment(i,G),a.Mouse=i;var G={_draw:function(a){var b=this;b.visible&&(b.context=b.context||a,b.update(),b.context.save(),b.context.globalAlpha=b.alpha,b.context.translate(b.x,b.y),b.context.rotate(b.rotation*Math.PI/180),b.context.scale(b.scaleX,b.scaleY),b.draw(),B.each(b.children,function(a){a._draw(b.context)}),b.context.restore())},_debug:function(a){var b=this;b.context=b.context||a,b.draw(),B.each(b.children,function(a){a._debug(b.context)})},draw:function(){},update:function(){var a=this;a.handle=a.handle||arguments[0],a.handle&&a.handle()},clear:function(a,b,c,d){this.context.clearRect(a,b,c,d)}};B.augment(k,G),B.inherit(k,e),a.RenderObject=k;var G={render:function(){var a=this;a.clear(0,0,a.width,a.height),a._draw(a.context)},append:function(a){var b=this;a.parent=b,b.children[b.children.length]=a},removeChildren:function(a){this.children[a]&&this.children.splice(a,1)},removeAllChildren:function(){this.children=[]},traversal:function(a){var b,c,d,e,f=this,g="array"==B.type(f)?f.slice(0).reverse():[f],h=[];if("undefined"!==B.type(g[0])||1!==g.length){for(e=g.length-1;e>=0;e--)h.push(null);for(;g.length>0;)for(b=g.pop(),c=h.pop(),a(b),d=b&&b.children?b.children:[],e=d.length-1;e>=0;e--)g.push(d[e]),h.push(b)}},dispatch:function(a,b,c){var d=this,e=d.children,f=e.length,g=b-d.x,h=c-d.y;for(d.emit(a);f--;){var i=e[f];if(i.hitTest(g,h))return void i.dispatch(a,g,h)}}};B.augment(l,G),B.inherit(l,k),a.RenderObjectModel=l;var G={draw:function(){var a=this;B.each(a.query,function(b){var c=b.action;if(a.context[c]){var d=b.args;"array"!=B.type(d)&&d?a.context[c]=a[c]:a.context[c].apply(a.context,d)}})},push:function(a,b){return this.query.push({action:a,args:b?b:null}),this},beginPath:function(){this.push("beginPath")},closePath:function(){this.push("closePath")},rect:function(a,b,c,d){var e=this;return e.hitType="rect",e.x=a,e.y=b,e.width=c,e.height=d,e.beginPath(),e.push("rect",[0,0,e.width,e.height]),e.closePath(),e.push("fillStyle",e.fillStyle),e.push("fill"),e.push("lineWidth",e.lineWidth),e.push("strokeStyle",e.strokeStyle),e.push("stroke"),e},circle:function(a,b,c){var d=this;return d.push("moveTo",[a+c,b+c]),d.push("arc",[a+c,b+c,c,0,2*Math.PI,!1]),d.push("stroke"),d.closePath(),d},hitTest:function(a,b){var c=this;switch(c.hitType){case"rect":return a>=c.x&&a<=c.x+c.width&&b>=c.y&&b<=c.y+c.height;case"circle":break;case"polygon":}}};B.augment(m,G),B.inherit(m,l),a.Graphics=m;var G={draw:function(){var a=this,b=a.getCurrentFrame?a.getCurrentFrame():null,c=b?b.x:a.x,d=b?b.y:a.y;a.context.drawImage(a.image,c,d,a.width,a.height,0,0,a.width,a.height)}};B.augment(n,G),B.inherit(n,l),a.Img=n;var G={init:function(){var a=this;return a.target=B.$(a.container),a.target?(a.context=a.target.getContext("2d"),a.canvas=a.context.canvas,a.canvas.width=a.width||a.canvas.width,a.canvas.height=a.height||a.canvas.height,void 0):void B.log("init error")},run:function(){var a=this;this.render(a.context)},hitTest:function(){return!0}};B.augment(o,G),B.inherit(o,l),a.Screen=o;var G={init:function(){var a=this;a.xs=a.size.width/a.width,a.ys=a.size.height/a.height},pause:function(){var a=this;a.paused=!0},play:function(){var a=this;a.paused=!1},next:function(){var a=this;!a.paused&&a.frame++},prev:function(){var a=this;!a.paused&&!!a.frame&&a.frame--},to:function(a){var b=this;b.frame=b.paused?b.frame:a},getCurrentFrame:function(){var a=this,b=a.frame%a.xs,c=parseInt(a.frame/a.xs);return b||c!=a.ys||(a.loop?a.frame=0:a.paused=!0),{x:b*a.width+a.offset.x,y:c*a.height+a.offset.y}},hitTest:function(){return!0}};B.augment(p,G),B.inherit(p,n),a.Sprite=p;var G={draw:function(){var a=this;a.context.fillStyle=a.color,a.context.font=a.font,a.context.fillText(a.text,a.x,a.y)}};B.augment(q,G),B.inherit(q,l),a.Text=q,a.Collision=r;var J=60,K=0,G={init:function(){var a=this;setInterval(function(){J=K,K=0},1e3),a.fps=new q({text:a.text||"fps:"+J,width:a.width,height:a.height,x:a.x,y:a.y,color:a.color}),a.fps.update(function(){K++,this.text="fps:"+J})},lock:function(){var a=this;a.inited||(a.parent.append(a.fps),a.inited=!0)},draw:function(){var a=this;a.lock()}};B.augment(s,G),a.FPS=s;var G={init:function(){},clearCache:function(){var a=this;a.lock=!1},draw:function(){var a=this;if(a.lock)return void a.context.drawImage(b[j].src,b[j].x,b[j].y,a.size.width,a.size.height,a.size.width*y,a.size.height*x,a.size.width,a.size.height);var b=a.resource;B.each(a.matrix,function(c,d){B.each(c,function(c,e){a.context.drawImage(b[c].image,0,0,a.size.width,a.size.height,a.size.width*e,a.size.height*d,a.size.width,a.size.height)})}),a.mapCache={},a.cache&&(a.lock=!0)}};B.augment(t,G),B.inherit(t,l),a.Map=t;var L={random:function(a,b){return parseInt(Math.random()*(b-a+1)+a)},getRandomColor:function(){return"#"+function(a){return(a+="0123456789abcdef"[Math.floor(16*Math.random())])&&6==a.length?a:arguments.callee(a)}("")}};a.Math=L;var M=Array,G={copy:function(){return[this[0],this[1],this[2],this[3]]},multiplyScalar:function(a){return[this[0]*a,this[1]*a,this[2]*a,this[3]*a||0]},subtract:function(a){return[this[0]-a[0],this[1]-a[1],this[2]-a[2],this[3]-a[3]]},add:function(a){return[this[0]+a[0],this[1]+a[1],this[2]+a[2],this[3]+a[3]]},applyMatrix:function(a){var b=this[0],c=this[1],d=this[2],e=this[3];return this[0]=b*a[0]+c*a[4]+d*a[8]+e*a[12],this[1]=b*a[1]+c*a[5]+d*a[9]+e*a[13],this[2]=b*a[2]+c*a[6]+d*a[10]+e*a[14],this[3]=b*a[3]+c*a[7]+d*a[11]+e*a[15],this},multiplyMatrix:function(a){var b=this[0],c=this[1],d=this[2],e=this[3];return[b*a[0]+c*a[4]+d*a[8]+e*a[12],b*a[1]+c*a[5]+d*a[9]+e*a[13],b*a[2]+c*a[6]+d*a[10]+e*a[14],b*a[3]+c*a[7]+d*a[11]+e*a[15]]},crossProduct:function(a){return[this[1]*a[2]-this[2]*a[1],this[2]*a[0]-this[0]*a[2],this[0]*a[1]-this[1]*a[0],0]},dotProduct:function(a){return this[0]*a[0]+this[1]*a[1]+this[2]*a[2]+(this[3]||0)*(a[3]||0)},normalize:function(){var a=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]+this[3]*this[3]);return this[0]/=a,this[1]/=a,this[2]/=a,this[3]/=a,this},rotateXYZ:function(a,b,c){var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b),h=c?Math.cos(c):1,i=c?Math.sin(c):0;return[f*h,d*i+e*g*h,e*i-d*g*h,0,-f*i,d*h-e*g*i,e*h+d*g*i,0,g,-e*f,d*f,0,0,0,0,1]},multiply:function(a){var b=this[0],c=this[1],d=this[2],e=this[3],f=this[4],g=this[5],h=this[6],i=this[7],j=this[8],k=this[9],l=this[10],m=this[11],n=this[12],o=this[13],p=this[14],q=this[15],r=a[0],s=a[1],t=a[2],u=a[3],v=a[4],w=a[5],x=a[6],y=a[7],z=a[8],A=a[9],B=a[10],C=a[11],D=a[12],E=a[13],F=a[14],G=a[15];return[b*r+c*v+d*z+e*D,b*s+c*w+d*A+e*E,b*t+c*x+d*B+e*F,b*u+c*y+d*C+e*G,f*r+g*v+h*z+i*D,f*s+g*w+h*A+i*E,f*t+g*x+h*B+i*F,f*u+g*y+h*C+i*G,j*r+k*v+l*z+m*D,j*s+k*w+l*A+m*E,j*t+k*x+l*B+m*F,j*u+k*y+l*C+m*G,n*r+o*v+p*z+q*D,n*s+o*w+p*A+q*E,n*t+o*x+p*B+q*F,n*u+o*y+p*C+q*G]},inverse:function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],m=a[11],n=a[12],o=a[13],p=a[14],q=a[15],r=b*g-c*f,s=b*h-d*f,t=b*i-e*f,u=c*h-d*g,v=c*i-e*g,w=d*i-e*h,x=j*o-k*n,y=j*p-l*n,z=j*q-m*n,A=k*p-l*o,B=k*q-m*o,C=l*q-m*p,D=r*C-s*B+t*A+u*z-v*y+w*x;return D?(D=1/D,[(g*C-h*B+i*A)*D,(d*B-c*C-e*A)*D,(o*w-p*v+q*u)*D,(l*v-k*w-m*u)*D,(h*z-f*C-i*y)*D,(b*C-d*z+e*y)*D,(p*t-n*w-q*s)*D,(j*w-l*t+m*s)*D,(f*B-g*z+i*x)*D,(c*z-b*B-e*x)*D,(n*v-o*t+q*r)*D,(k*t-j*v-m*r)*D,(g*y-f*A-h*x)*D,(b*A-c*y+d*x)*D,(o*s-n*u-p*r)*D,(j*u-k*s+l*r)*D]):this},viewMatrix:function(a,b,c,d){return[a[0],b[0],c[0],0,a[1],b[1],c[1],0,a[2],b[2],c[2],0,-(d[0]*a[0]+d[1]*a[1]+d[2]*a[2]+d[3]*a[3]),-(d[0]*b[0]+d[1]*b[1]+d[2]*b[2]+d[3]*b[3]),-(d[0]*c[0]+d[1]*c[1]+d[2]*c[2]+d[3]*c[3]),1]},perspective:function(a){return[1,0,0,0,0,1,0,0,0,0,1,-1/a,0,0,0,1]},definePlane:function(){for(var a=[0,0,0,0],b=0,c=this.length-1;b<this.length;c=b,b++){var d=this[c],e=this[b];a[0]+=(d[1]-e[1])*(d[2]+e[2]),a[1]+=(d[2]-e[2])*(d[0]+e[0]),a[2]+=(d[0]-e[0])*(d[1]+e[1])}a.normalize();var f=this[0];return[a[0],a[1],a[2],-(a[0]*f[0]+a[1]*f[1]+a[2]*f[2]+a[3]*f[3])]},identity:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},scale:function(a,b,c){return this.multiply([a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1])},translate:function(a,b,c){return this.multiply([1,0,0,0,0,1,0,0,0,0,1,0,a,b,c,1])},rotateX:function(a){a*=Math.PI/180;var b=Math.cos(a),c=Math.sin(a);return this.multiply([1,0,0,0,0,b,c,0,0,-c,b,0,0,0,0,1])},rotateY:function(a){a*=Math.PI/180;var b=Math.cos(a),c=Math.sin(a);return this.multiply([b,0,-c,0,0,1,0,0,c,0,b,0,0,0,0,1])},rotateZ:function(a){a*=Math.PI/180;var b=Math.cos(a),c=Math.sin(a);return this.multiply([b,-c,0,0,c,b,0,0,0,0,1,0,0,0,0,1])}};B.augment(M,G),a.Matrix=M,a.Particle=u;var N={};a.Physics=N;var G={load:function(a){var b=this;b.num=0,b.query=a,B.each(b.query,function(a){b.imageLoader(a)})},imageLoader:function(a){var b=this,c=new Image;c.crossOrigin="*",c.onload=function(){b.hash[a.id]={image:c,width:c.width,height:c.height},b.num++,b.num==b.getSize()&&b.emit("success",b.hash)},c.src=a.src},getSize:function(){return this.query.length}};B.augment(v,G),B.inherit(v,e),a.SourceLoader=v,w.prototype={init:function(){var a=this;a.run=function(){if(a.paused||(a.target.run?a.target.run():a.target()),a.fps){if(a.loop)return;a.loop=function(){return A.setTimeout(function(){a.run(),a.loop()},1e3/a.fps),!0},a.loop()}else B.requestAnimationFrame.call(A,function(){a.run()})}},start:function(){var a=this;a.run()},pause:function(){this.paused=!0},go:function(){this.paused=!1}},a.Timer=w;var O={swing:function(a){return-Math.cos(a*PI)/2+.5},easeNone:function(a){return a},easeIn:function(a){return a*a},easeOut:function(a){return(2-a)*a},easeBoth:function(a){return(a*=2)<1?.5*a*a:.5*(1- --a*(a-2))},easeInStrong:function(a){return a*a*a*a},easeOutStrong:function(a){return 1- --a*a*a*a},easeBothStrong:function(a){return(a*=2)<1?.5*a*a*a*a:.5*(2-(a-=2)*a*a*a)},elasticIn:function(a){var b=.3,c=b/4;return 0===a||1===a?a:-(pow(2,10*(a-=1))*sin(2*(a-c)*PI/b))},elasticOut:function(a){var b=.3,c=b/4;return 0===a||1===a?a:pow(2,-10*a)*sin(2*(a-c)*PI/b)+1},elasticBoth:function(a){var b=.45,c=b/4;return 0===a||2===(a*=2)?a:1>a?-.5*pow(2,10*(a-=1))*sin(2*(a-c)*PI/b):pow(2,-10*(a-=1))*sin(2*(a-c)*PI/b)*.5+1},backIn:function(a){return 1===a&&(a-=.001),a*a*((BACK_CONST+1)*a-BACK_CONST)},backOut:function(a){return(a-=1)*a*((BACK_CONST+1)*a+BACK_CONST)+1},backBoth:function(a){return(a*=2)<1?.5*a*a*(((BACK_CONST*=1.525)+1)*a-BACK_CONST):.5*((a-=2)*a*(((BACK_CONST*=1.525)+1)*a+BACK_CONST)+2)},bounceIn:function(a){return 1-O.bounceOut(1-a)},bounceOut:function(a){var b,c=7.5625;return b=1/2.75>a?c*a*a:2/2.75>a?c*(a-=1.5/2.75)*a+.75:2.5/2.75>a?c*(a-=2.25/2.75)*a+.9375:c*(a-=2.625/2.75)*a+.984375}};a.Tween=O;var G={initialize:function(a,b){this.x=a,this.y=b},set:function(a){return this.x=a.x,this.y=a.y,this},setArray:function(a){return this.x=a[0],this.y=a[1],this},setCoords:function(a,b){return this.x=a,this.y=b,this},get:function(){return new z(this.x,this.y)},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},add:function(a){return this.x+=a.x,this.y+=a.y,this},addArray:function(a){return this.x+=a[0],this.y+=a[1],this},addCoords:function(a,b){return this.x+=a,this.y+=b,this},sub:function(a){return this.x-=a.x,this.y-=a.y,this},subArray:function(a){return this.x-=a[0],this.y-=a[1],this},subCoords:function(a,b){return this.x-=a,this.y-=b,this},mult:function(a){return this.x*=a,this.y*=a,this},scale:function(a){return this.mult(a),this},multVec:function(a){return this.x*=a.x,this.y*=a.y,this},div:function(a){return this.x/=a,this.y/=a,this},divVec:function(a){return this.x/=a.x,this.y/=a.y,this},dist:function(a){var b=this.x-a.x,c=this.y-a.y;return Math.sqrt(b*b+c*c)},dot:function(a){return this.x*a.x+this.y*a.y},dotCoords:function(a,b){return this.x*a+this.y+b},normalize:function(){var a=this.mag();return 0!=a&&1!=a&&this.div(a),this},limit:function(a){return this.mag()>a&&(this.normalize(),this.mult(a)),this},heading2d:function(){var a=Math.atan2(-y,x);return-1*a},rotate:function(a){var b=Math.sin(a),c=Math.cos(a),d=c*this.x-b*this.y;return this.y=b*this.x+c*this.y,this.x=d,this},angle:function(a){return Math.acos(this.dot(a)/(this.mag()*a.mag()))},normal:function(){var a=this.vector.x;return this.x=-this.vector.y,this.y=a,this},random:function(a){return this.x=Math.random(),this.y=Math.random(),a&&this.scale(a),this},zero:function(){this.x=0,this.y=0},equals:function(a){return this.x===a.x&&this.y===a.y},toString:function(){return"["+this.x+","+this.y+"]"}};B.augment(z,G),z.add=function(a,b){var c=new z;return c.setCoords(a.x+b.x,a.y+b.y),c},z.sub=function(a,b){var c=new z;return c.setCoords(a.x-b.x,a.y-b.y),c},z.dist=function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},z.random=function(a){var b=new z(Math.random(),Math.random());return a&&b.scale(a),b},z.mult=function(a,b){var c=new z(a.x,a.y);return c.x*=b,c.y*=b,c},z.normal=function(a){return new z(-a.y,a.x)},z.normalize=function(a){var b=new z(a.x,a.y),c=b.mag();return 0!=c&&1!=c&&b.div(c),b},z.componentVector=function(a,b){return b.normalize(),b.mult(a.dot(b)),b},a.Vector2d=z,a.version="1.0.5"});
//# sourceMappingURL=pillow.min.js.map