{"version":3,"file":"RectangleBuilder.mjs","sources":["../../src/shapes/RectangleBuilder.ts"],"sourcesContent":["import { BuildData } from '../core/BuildData';\nimport { JOINT_TYPE } from '../core/const';\nimport { SmoothGraphicsData } from '../core/SmoothGraphicsData';\nimport { PolyBuilder } from './PolyBuilder';\n\nimport type { Rectangle } from '@pixi/core';\nimport type { IShapeBuilder } from '../core/IShapeBuilder';\n\n/**\n * @memberof PIXI.smooth\n */\nexport class RectangleBuilder implements IShapeBuilder\n{\n    _polyBuilder = new PolyBuilder();\n\n    path(graphicsData: SmoothGraphicsData, _target: BuildData)\n    {\n        // --- //\n        // need to convert points to a nice regular data\n        //\n        const rectData = graphicsData.shape as Rectangle;\n        const x = rectData.x;\n        const y = rectData.y;\n        const width = rectData.width;\n        const height = rectData.height;\n        const points = graphicsData.points;\n\n        points.length = 0;\n\n        points.push(x, y,\n            x + width, y,\n            x + width, y + height,\n            x, y + height);\n    }\n\n    line(graphicsData: SmoothGraphicsData, target: BuildData): void\n    {\n        const { verts, joints } = target;\n        const { points } = graphicsData;\n\n        const joint = graphicsData.goodJointType();\n        const len = points.length;\n\n        verts.push(points[len - 2], points[len - 1]);\n        joints.push(JOINT_TYPE.NONE);\n        for (let i = 0; i < len; i += 2)\n        {\n            verts.push(points[i], points[i + 1]);\n            joints.push(joint);\n        }\n        verts.push(points[0], points[1]);\n        joints.push(JOINT_TYPE.NONE);\n        verts.push(points[2], points[3]);\n        joints.push(JOINT_TYPE.NONE);\n    }\n\n    fill(graphicsData: SmoothGraphicsData, target: BuildData): void\n    {\n        const { verts, joints } = target;\n        const { points, triangles } = graphicsData;\n\n        triangles.length = 0;\n\n        if (!graphicsData.fillAA)\n        {\n            verts.push(points[0], points[1],\n                points[2], points[3],\n                points[4], points[5],\n                points[6], points[7]);\n\n            joints.push(JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL, JOINT_TYPE.FILL);\n            triangles.push(0, 1, 2, 0, 2, 3);\n\n            return;\n        }\n\n        this._polyBuilder.fill(graphicsData, target);\n    }\n}\n"],"names":[],"mappings":"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"}