{"version":3,"file":"SmoothGraphicsData.mjs","sources":["../../src/core/SmoothGraphicsData.ts"],"sourcesContent":["import { LINE_CAP, LINE_JOIN } from '@pixi/graphics';\nimport { JOINT_TYPE } from './const';\nimport { FillStyle } from './FillStyle';\nimport { LineStyle } from './LineStyle';\n\nimport type { IShape, Matrix, SHAPES } from '@pixi/core';\n\n/**\n * A class to contain data useful for Graphics objects\n *\n * @memberof PIXI.smooth\n */\nexport class SmoothGraphicsData\n{\n    shape: IShape;\n    lineStyle: LineStyle;\n    fillStyle: FillStyle;\n    matrix: Matrix;\n    type: SHAPES;\n    holes: Array<SmoothGraphicsData>;\n\n    // result of simplification\n    closeStroke: boolean;\n    points: number[];\n    triangles: number[];\n    // indices in build\n    attribStart: number;\n    fillStart: number;\n    fillLen: number;\n    strokeStart: number;\n    strokeLen: number;\n    fillAA: boolean;\n\n    constructor(shape: IShape, fillStyle: FillStyle = null, lineStyle: LineStyle = null, matrix: Matrix = null)\n    {\n        this.shape = shape;\n\n        this.lineStyle = lineStyle;\n\n        this.fillStyle = fillStyle;\n\n        this.matrix = matrix;\n\n        this.type = shape.type;\n\n        this.points = [];\n\n        this.holes = [];\n\n        this.triangles = [];\n\n        this.closeStroke = false;\n\n        this.clearBuild();\n    }\n\n    public clearPath()\n    {\n        this.points.length = 0;\n        this.closeStroke = true;\n    }\n\n    public clearBuild()\n    {\n        this.triangles.length = 0;\n        this.fillStart = 0;\n        this.fillLen = 0;\n        this.strokeStart = 0;\n        this.strokeLen = 0;\n        this.fillAA = false;\n    }\n\n    public clone(): SmoothGraphicsData\n    {\n        return new SmoothGraphicsData(\n            this.shape,\n            this.fillStyle,\n            this.lineStyle,\n            this.matrix\n        );\n    }\n\n    public capType()\n    {\n        let cap: number;\n\n        switch (this.lineStyle.cap)\n        {\n            case LINE_CAP.SQUARE:\n                cap = JOINT_TYPE.CAP_SQUARE;\n                break;\n            case LINE_CAP.ROUND:\n                cap = JOINT_TYPE.CAP_ROUND;\n                break;\n            default:\n                cap = JOINT_TYPE.CAP_BUTT;\n                break;\n        }\n\n        return cap;\n    }\n\n    public goodJointType()\n    {\n        let joint: number;\n\n        switch (this.lineStyle.join)\n        {\n            case LINE_JOIN.BEVEL:\n                joint = JOINT_TYPE.JOINT_BEVEL;\n                break;\n            case LINE_JOIN.ROUND:\n                joint = JOINT_TYPE.JOINT_ROUND;\n                break;\n            default:\n                joint = JOINT_TYPE.JOINT_MITER + 3;\n                break;\n        }\n\n        return joint;\n    }\n\n    public jointType()\n    {\n        let joint: number;\n\n        switch (this.lineStyle.join)\n        {\n            case LINE_JOIN.BEVEL:\n                joint = JOINT_TYPE.JOINT_BEVEL;\n                break;\n            case LINE_JOIN.ROUND:\n                joint = JOINT_TYPE.JOINT_ROUND;\n                break;\n            default:\n                joint = JOINT_TYPE.JOINT_MITER;\n                break;\n        }\n\n        return joint;\n    }\n\n    public destroy(): void\n    {\n        this.shape = null;\n        this.holes.length = 0;\n        this.holes = null;\n        this.points.length = 0;\n        this.points = null;\n        this.lineStyle = null;\n        this.fillStyle = null;\n        this.triangles = null;\n    }\n}\n"],"names":[],"mappings":"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"}