pixi-dragonbones-runtime
Version:
DragonBones Runtime for Pixi.js
3 lines (2 loc) • 1.84 kB
JavaScript
"use strict";exports.Matrix=class{constructor(t=1,i=0,s=0,h=1,c=0,r=0){this.a=t,this.b=i,this.c=s,this.d=h,this.tx=c,this.ty=r}toString(){return"[object dragonBones.Matrix] a:"+this.a+" b:"+this.b+" c:"+this.c+" d:"+this.d+" tx:"+this.tx+" ty:"+this.ty}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}copyFromArray(t,i=0){return this.a=t[i],this.b=t[i+1],this.c=t[i+2],this.d=t[i+3],this.tx=t[i+4],this.ty=t[i+5],this}identity(){return this.a=this.d=1,this.b=this.c=0,this.tx=this.ty=0,this}concat(t){let i=this.a*t.a,s=0,h=0,c=this.d*t.d,r=this.tx*t.a+t.tx,a=this.ty*t.d+t.ty;return 0===this.b&&0===this.c||(i+=this.b*t.c,s+=this.b*t.d,h+=this.c*t.a,c+=this.c*t.b),0===t.b&&0===t.c||(s+=this.a*t.b,h+=this.d*t.c,r+=this.ty*t.c,a+=this.tx*t.b),this.a=i,this.b=s,this.c=h,this.d=c,this.tx=r,this.ty=a,this}invert(){let t=this.a,i=this.b,s=this.c,h=this.d;const c=this.tx,r=this.ty;if(0===i&&0===s)return this.b=this.c=0,0===t||0===h?this.a=this.b=this.tx=this.ty=0:(t=this.a=1/t,h=this.d=1/h,this.tx=-t*c,this.ty=-h*r),this;let a=t*h-i*s;if(0===a)return this.a=this.d=1,this.b=this.c=0,this.tx=this.ty=0,this;a=1/a;let y=this.a=h*a;return i=this.b=-i*a,s=this.c=-s*a,h=this.d=t*a,this.tx=-(y*c+s*r),this.ty=-(i*c+h*r),this}transformPoint(t,i,s,h=!1){s.x=this.a*t+this.c*i,s.y=this.b*t+this.d*i,h||(s.x+=this.tx,s.y+=this.ty)}transformRectangle(t,i=!1){const s=this.a,h=this.b,c=this.c,r=this.d,a=i?0:this.tx,y=i?0:this.ty,x=t.x,e=t.y,b=x+t.width,d=e+t.height;let n=s*x+c*e+a,o=h*x+r*e+y,l=s*b+c*e+a,u=h*b+r*e+y,f=s*b+c*d+a,M=h*b+r*d+y,g=s*x+c*d+a,m=h*x+r*d+y,p=0;n>l&&(p=n,n=l,l=p),f>g&&(p=f,f=g,g=p),t.x=Math.floor(n<f?n:f),t.width=Math.ceil((l>g?l:g)-t.x),o>u&&(p=o,o=u,u=p),M>m&&(p=M,M=m,m=p),t.y=Math.floor(o<M?o:M),t.height=Math.ceil((u>m?u:m)-t.y)}};
//# sourceMappingURL=Matrix.cjs.map