{"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;\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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"}