{"version":3,"file":"TextureRegion.mjs","sources":["../../src/core/TextureRegion.ts"],"sourcesContent":["import type { Texture, Rectangle } from '@pixi/core';\n\n/**\n * @public\n */\nexport function filterFromString(text: string): TextureFilter {\n    switch (text.toLowerCase()) {\n        case 'nearest':\n            return TextureFilter.Nearest;\n        case 'linear':\n            return TextureFilter.Linear;\n        case 'mipmap':\n            return TextureFilter.MipMap;\n        case 'mipmapnearestnearest':\n            return TextureFilter.MipMapNearestNearest;\n        case 'mipmaplinearnearest':\n            return TextureFilter.MipMapLinearNearest;\n        case 'mipmapnearestlinear':\n            return TextureFilter.MipMapNearestLinear;\n        case 'mipmaplinearlinear':\n            return TextureFilter.MipMapLinearLinear;\n        default:\n            throw new Error(`Unknown texture filter ${text}`);\n    }\n}\n\n/**\n * @public\n */\nexport function wrapFromString(text: string): TextureWrap {\n    switch (text.toLowerCase()) {\n        case 'mirroredtepeat':\n            return TextureWrap.MirroredRepeat;\n        case 'clamptoedge':\n            return TextureWrap.ClampToEdge;\n        case 'repeat':\n            return TextureWrap.Repeat;\n        default:\n            throw new Error(`Unknown texture wrap ${text}`);\n    }\n}\n\n/**\n * @public\n */\nexport enum TextureFilter {\n    Nearest = 9728, // WebGLRenderingContext.NEAREST\n    Linear = 9729, // WebGLRenderingContext.LINEAR\n    MipMap = 9987, // WebGLRenderingContext.LINEAR_MIPMAP_LINEAR\n    MipMapNearestNearest = 9984, // WebGLRenderingContext.NEAREST_MIPMAP_NEAREST\n    MipMapLinearNearest = 9985, // WebGLRenderingContext.LINEAR_MIPMAP_NEAREST\n    MipMapNearestLinear = 9986, // WebGLRenderingContext.NEAREST_MIPMAP_LINEAR\n    MipMapLinearLinear = 9987, // WebGLRenderingContext.LINEAR_MIPMAP_LINEAR\n}\n\n/**\n * @public\n */\nexport enum TextureWrap {\n    MirroredRepeat = 33648, // WebGLRenderingContext.MIRRORED_REPEAT\n    ClampToEdge = 33071, // WebGLRenderingContext.CLAMP_TO_EDGE\n    Repeat = 10497, // WebGLRenderingContext.REPEAT\n}\n\n/**\n * @public\n */\nexport class TextureRegion {\n    texture: Texture;\n\n    // thats for overrides\n    size: Rectangle = null;\n\n    names: string[] = null;\n    values: number[][] = null;\n\n    renderObject: any = null;\n\n    get width(): number {\n        const tex = this.texture;\n\n        if (tex.trim) {\n            return tex.trim.width;\n        }\n\n        return tex.orig.width;\n    }\n\n    get height(): number {\n        const tex = this.texture;\n\n        if (tex.trim) {\n            return tex.trim.height;\n        }\n\n        return tex.orig.height;\n    }\n\n    get u(): number {\n        return (this.texture as any)._uvs.x0;\n    }\n\n    get v(): number {\n        return (this.texture as any)._uvs.y0;\n    }\n\n    get u2(): number {\n        return (this.texture as any)._uvs.x2;\n    }\n\n    get v2(): number {\n        return (this.texture as any)._uvs.y2;\n    }\n\n    get offsetX(): number {\n        const tex = this.texture;\n\n        return tex.trim ? tex.trim.x : 0;\n    }\n\n    get offsetY(): number {\n        // console.warn(\"Deprecation Warning: @Hackerham: I guess, if you are using PIXI-SPINE ATLAS region.offsetY, you want a texture, right? Use region.texture from now on.\");\n        return this.spineOffsetY;\n    }\n\n    get pixiOffsetY(): number {\n        const tex = this.texture;\n\n        return tex.trim ? tex.trim.y : 0;\n    }\n\n    get spineOffsetY(): number {\n        const tex = this.texture;\n\n        return this.originalHeight - this.height - (tex.trim ? tex.trim.y : 0);\n    }\n\n    get originalWidth(): number {\n        return this.texture.orig.width;\n    }\n\n    get originalHeight(): number {\n        return this.texture.orig.height;\n    }\n\n    get x(): number {\n        return this.texture.frame.x;\n    }\n\n    get y(): number {\n        return this.texture.frame.y;\n    }\n\n    get rotate(): boolean {\n        return this.texture.rotate !== 0;\n    }\n\n    get degrees() {\n        return (360 - this.texture.rotate * 45) % 360;\n    }\n}\n"],"names":["TextureFilter","TextureWrap"],"mappings":"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"}