@pixi-spine/runtime-3.7
Version:
Pixi runtime for spine 3.7 models
1 lines • 2.93 kB
Source Map (JSON)
{"version":3,"file":"SwirlEffect.mjs","sources":["../../../src/core/vertexeffects/SwirlEffect.ts"],"sourcesContent":["import type { VertexEffect } from '../VertexEffect';\nimport type { Skeleton } from '../Skeleton';\nimport { Color, MathUtils, PowOut, Vector2 } from '@pixi-spine/base';\n\n/**\n * @public\n */\nexport class SwirlEffect implements VertexEffect {\n static interpolation = new PowOut(2);\n centerX = 0;\n centerY = 0;\n radius = 0;\n angle = 0;\n private worldX = 0;\n private worldY = 0;\n\n constructor(radius: number) {\n this.radius = radius;\n }\n\n begin(skeleton: Skeleton): void {\n this.worldX = skeleton.x + this.centerX;\n this.worldY = skeleton.y + this.centerY;\n }\n\n transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void {\n const radAngle = this.angle * MathUtils.degreesToRadians;\n const x = position.x - this.worldX;\n const y = position.y - this.worldY;\n const dist = Math.sqrt(x * x + y * y);\n\n if (dist < this.radius) {\n const theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);\n const cos = Math.cos(theta);\n const sin = Math.sin(theta);\n\n position.x = cos * x - sin * y + this.worldX;\n position.y = sin * x + cos * y + this.worldY;\n }\n }\n\n end(): void {}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAN,MAA0C;AAAA,EAS7C,YAAY,MAAgB,EAAA;AAP5B,IAAU,IAAA,CAAA,OAAA,GAAA,CAAA,CAAA;AACV,IAAU,IAAA,CAAA,OAAA,GAAA,CAAA,CAAA;AACV,IAAS,IAAA,CAAA,MAAA,GAAA,CAAA,CAAA;AACT,IAAQ,IAAA,CAAA,KAAA,GAAA,CAAA,CAAA;AACR,IAAA,IAAA,CAAQ,MAAS,GAAA,CAAA,CAAA;AACjB,IAAA,IAAA,CAAQ,MAAS,GAAA,CAAA,CAAA;AAGb,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GAClB;AAAA,EAEA,MAAM,QAA0B,EAAA;AAC5B,IAAK,IAAA,CAAA,MAAA,GAAS,QAAS,CAAA,CAAA,GAAI,IAAK,CAAA,OAAA,CAAA;AAChC,IAAK,IAAA,CAAA,MAAA,GAAS,QAAS,CAAA,CAAA,GAAI,IAAK,CAAA,OAAA,CAAA;AAAA,GACpC;AAAA,EAEA,SAAU,CAAA,QAAA,EAAmB,EAAa,EAAA,KAAA,EAAc,IAAmB,EAAA;AACvE,IAAM,MAAA,QAAA,GAAW,IAAK,CAAA,KAAA,GAAQ,SAAU,CAAA,gBAAA,CAAA;AACxC,IAAM,MAAA,CAAA,GAAI,QAAS,CAAA,CAAA,GAAI,IAAK,CAAA,MAAA,CAAA;AAC5B,IAAM,MAAA,CAAA,GAAI,QAAS,CAAA,CAAA,GAAI,IAAK,CAAA,MAAA,CAAA;AAC5B,IAAA,MAAM,OAAO,IAAK,CAAA,IAAA,CAAK,CAAI,GAAA,CAAA,GAAI,IAAI,CAAC,CAAA,CAAA;AAEpC,IAAI,IAAA,IAAA,GAAO,KAAK,MAAQ,EAAA;AACpB,MAAM,MAAA,KAAA,GAAQ,YAAY,CAAA,aAAA,CAAc,KAAM,CAAA,CAAA,EAAG,WAAW,IAAK,CAAA,MAAA,GAAS,IAAQ,IAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC7F,MAAM,MAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAC1B,MAAM,MAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAE1B,MAAA,QAAA,CAAS,CAAI,GAAA,GAAA,GAAM,CAAI,GAAA,GAAA,GAAM,IAAI,IAAK,CAAA,MAAA,CAAA;AACtC,MAAA,QAAA,CAAS,CAAI,GAAA,GAAA,GAAM,CAAI,GAAA,GAAA,GAAM,IAAI,IAAK,CAAA,MAAA,CAAA;AAAA,KAC1C;AAAA,GACJ;AAAA,EAEA,GAAY,GAAA;AAAA,GAAC;AACjB,CAAA,CAAA;AAnCO,IAAM,WAAN,GAAA,aAAA;AAAM,WACF,CAAA,aAAA,GAAgB,IAAI,MAAA,CAAO,CAAC,CAAA;;;;"}