1 line
47 KiB
Plaintext
1 line
47 KiB
Plaintext
{"version":3,"file":"Graphics.mjs","sources":["../../../../src/scene/graphics/shared/Graphics.ts"],"sourcesContent":["import { deprecation, v8_0_0 } from '../../../utils/logging/deprecation';\nimport { ViewContainer } from '../../view/View';\nimport { GraphicsContext } from './GraphicsContext';\n\nimport type { ColorSource } from '../../../color/Color';\nimport type { Matrix } from '../../../maths/matrix/Matrix';\nimport type { PointData } from '../../../maths/point/PointData';\nimport type { Instruction } from '../../../rendering/renderers/shared/instructions/Instruction';\nimport type { Texture } from '../../../rendering/renderers/shared/texture/Texture';\nimport type { Bounds } from '../../container/bounds/Bounds';\nimport type { ContainerOptions } from '../../container/Container';\nimport type { ContextDestroyOptions, DestroyOptions } from '../../container/destroyTypes';\nimport type { FillInput, FillStyle, StrokeStyle } from './FillTypes';\nimport type { GraphicsPath } from './path/GraphicsPath';\nimport type { RoundedPoint } from './path/roundShape';\n\n/**\n * Constructor options used for `Graphics` instances.\n * ```js\n * const graphics = new Graphics({\n * fillStyle: { color: 0xff0000, alpha: 0.5 },\n * strokeStyle: { color: 0x00ff00, width: 2 },\n * });\n * ```\n * @see {@link scene.Graphics}\n * @memberof scene\n */\nexport interface GraphicsOptions extends ContainerOptions\n{\n /** The GraphicsContext to use, useful for reuse and optimisation */\n context?: GraphicsContext;\n /** Whether or not to round the x/y position. */\n roundPixels?: boolean;\n}\n\n/**\n * The Graphics class is primarily used to render primitive shapes such as lines, circles and\n * rectangles to the display, and to color and fill them. However, you can also use a Graphics\n * object to build a list of primitives to use as a mask, or as a complex hitArea.\n * @memberof scene\n * @extends scene.Container\n */\nexport class Graphics extends ViewContainer implements Instruction\n{\n public override readonly renderPipeId: string = 'graphics';\n public batched: boolean;\n\n public _didGraphicsUpdate: boolean;\n\n private _context: GraphicsContext;\n private readonly _ownedContext: GraphicsContext;\n\n /**\n * @param options - Options for the Graphics.\n */\n constructor(options?: GraphicsOptions | GraphicsContext)\n {\n if (options instanceof GraphicsContext)\n {\n options = { context: options };\n }\n\n const { context, roundPixels, ...rest } = options || {};\n\n super({\n label: 'Graphics',\n ...rest\n });\n\n if (!context)\n {\n this._context = this._ownedContext = new GraphicsContext();\n }\n else\n {\n this._context = context;\n }\n\n this._context.on('update', this.onViewUpdate, this);\n\n this.allowChildren = false;\n this.roundPixels = roundPixels ?? false;\n }\n\n set context(context: GraphicsContext)\n {\n if (context === this._context) return;\n\n this._context.off('update', this.onViewUpdate, this);\n\n this._context = context;\n\n // TODO store this bound function somewhere else..\n this._context.on('update', this.onViewUpdate, this);\n\n this.onViewUpdate();\n }\n\n get context(): GraphicsContext\n {\n return this._context;\n }\n\n /**\n * The local bounds of the graphic.\n * @type {rendering.Bounds}\n */\n override get bounds(): Bounds\n {\n return this._context.bounds;\n }\n\n /**\n * Adds the bounds of this object to the bounds object.\n * @param bounds - The output bounds object.\n */\n public addBounds(bounds: Bounds)\n {\n bounds.addBounds(this._context.bounds);\n }\n\n /**\n * Checks if the object contains the given point.\n * @param point - The point to check\n */\n public override containsPoint(point: PointData)\n {\n return this._context.containsPoint(point);\n }\n\n protected override onViewUpdate()\n {\n this._didViewChangeTick++;\n\n this._didGraphicsUpdate = true;\n\n if (this.didViewUpdate) return;\n this.didViewUpdate = true;\n\n const renderGroup = this.renderGroup || this.parentRenderGroup;\n\n if (renderGroup)\n {\n renderGroup.onChildViewUpdate(this);\n }\n }\n\n /**\n * Destroys this graphics renderable and optionally its context.\n * @param options - Options parameter. A boolean will act as if all options\n *\n * If the context was created by this graphics and `destroy(false)` or `destroy()` is called\n * then the context will still be destroyed.\n *\n * If you want to explicitly not destroy this context that this graphics created,\n * then you should pass destroy({ context: false })\n *\n * If the context was passed in as an argument to the constructor then it will not be destroyed\n * @param {boolean} [options.texture=false] - Should destroy the texture of the graphics context\n * @param {boolean} [options.textureSource=false] - Should destroy the texture source of the graphics context\n * @param {boolean} [options.context=false] - Should destroy the context\n */\n public override destroy(options?: DestroyOptions): void\n {\n if (this._ownedContext && !options)\n {\n this._ownedContext.destroy(options);\n }\n else if (options === true || (options as ContextDestroyOptions)?.context === true)\n {\n this._context.destroy(options);\n }\n\n (this._ownedContext as null) = null;\n this._context = null;\n\n super.destroy(options);\n }\n\n private _callContextMethod(method: keyof GraphicsContext, args: any[]): this\n {\n (this.context as any)[method](...args);\n\n return this;\n }\n\n // --------------------------------------- GraphicsContext methods ---------------------------------------\n /**\n * Sets the current fill style of the graphics context. The fill style can be a color, gradient,\n * pattern, or a more complex style defined by a FillStyle object.\n * @param {FillInput} args - The fill style to apply. This can be a simple color, a gradient or\n * pattern object, or a FillStyle or ConvertedFillStyle object.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public setFillStyle(...args: Parameters<GraphicsContext['setFillStyle']>): this\n {\n return this._callContextMethod('setFillStyle', args);\n }\n\n /**\n * Sets the current stroke style of the graphics context. Similar to fill styles, stroke styles can\n * encompass colors, gradients, patterns, or more detailed configurations via a StrokeStyle object.\n * @param {StrokeInput} args - The stroke style to apply. Can be defined as a color, a gradient or pattern,\n * or a StrokeStyle or ConvertedStrokeStyle object.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public setStrokeStyle(...args: Parameters<GraphicsContext['setStrokeStyle']>): this\n {\n return this._callContextMethod('setStrokeStyle', args);\n }\n\n /**\n * Fills the current or given path with the current fill style. This method can optionally take\n * a color and alpha for a simple fill, or a more complex FillStyle object for advanced fills.\n * @param {FillInput} style - (Optional) The style to fill the path with. Can be a color, gradient, pattern, or a\n * complex style object. If omitted, uses the current fill style.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public fill(style?: FillInput): this;\n /** @deprecated 8.0.0 */\n public fill(color: ColorSource, alpha?: number): this;\n public fill(...args: [FillStyle | ColorSource, number?]): this\n {\n return this._callContextMethod('fill', args);\n }\n /**\n * Strokes the current path with the current stroke style. This method can take an optional\n * FillStyle parameter to define the stroke's appearance, including its color, width, and other properties.\n * @param {FillStyle} args - (Optional) The stroke style to apply. Can be defined as a simple color or a more\n * complex style object. If omitted, uses the current stroke style.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public stroke(...args: Parameters<GraphicsContext['stroke']>): this\n {\n return this._callContextMethod('stroke', args);\n }\n /**\n * Adds a texture to the graphics context. This method supports multiple overloads for specifying the texture,\n * tint, and dimensions. If only a texture is provided, it uses the texture's width and height for drawing.\n * Additional parameters allow for specifying a tint color, and custom dimensions for the texture drawing area.\n * @param texture - The Texture object to use.\n * @param tint - (Optional) A ColorSource to tint the texture. If not provided, defaults to white (0xFFFFFF).\n * @param dx - (Optional) The x-coordinate in the destination canvas at which to place the top-left corner of\n * the source image.\n * @param dy - (Optional) The y-coordinate in the destination canvas at which to place the top-left corner of\n * the source image.\n * @param dw - (Optional) The width of the rectangle within the source image to draw onto the destination canvas.\n * If not provided, uses the texture's frame width.\n * @param dh - (Optional) The height of the rectangle within the source image to draw onto the destination canvas.\n * If not provided, uses the texture's frame height.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public texture(texture: Texture, tint?: ColorSource, dx?: number, dy?: number, dw?: number, dh?: number): this;\n public texture(texture: Texture): this;\n public texture(...args: [Texture, number?, number?, number?, number?, number?]): this\n {\n return this._callContextMethod('texture', args);\n }\n /**\n * Resets the current path. Any previous path and its commands are discarded and a new path is\n * started. This is typically called before beginning a new shape or series of drawing commands.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public beginPath(): this\n {\n return this._callContextMethod('beginPath', []);\n }\n /**\n * Applies a cutout to the last drawn shape. This is used to create holes or complex shapes by\n * subtracting a path from the previously drawn path. If a hole is not completely in a shape, it will\n * fail to cut correctly!\n */\n public cut(): this\n {\n return this._callContextMethod('cut', []);\n }\n /**\n * Adds an arc to the current path, which is centered at (x, y) with the specified radius,\n * starting and ending angles, and direction.\n * @param x - The x-coordinate of the arc's center.\n * @param y - The y-coordinate of the arc's center.\n * @param radius - The arc's radius.\n * @param startAngle - The starting angle, in radians.\n * @param endAngle - The ending angle, in radians.\n * @param counterclockwise - (Optional) Specifies whether the arc is drawn counterclockwise (true) or clockwise\n * (false). Defaults to false.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;\n public arc(...args: Parameters<GraphicsContext['arc']>): this\n {\n return this._callContextMethod('arc', args);\n }\n /**\n * Adds an arc to the current path with the given control points and radius, connected to the previous point\n * by a straight line if necessary.\n * @param x1 - The x-coordinate of the first control point.\n * @param y1 - The y-coordinate of the first control point.\n * @param x2 - The x-coordinate of the second control point.\n * @param y2 - The y-coordinate of the second control point.\n * @param radius - The arc's radius.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;\n public arcTo(...args: Parameters<GraphicsContext['arcTo']>): this\n {\n return this._callContextMethod('arcTo', args);\n }\n /**\n * Adds an SVG-style arc to the path, allowing for elliptical arcs based on the SVG spec.\n * @param rx - The x-radius of the ellipse.\n * @param ry - The y-radius of the ellipse.\n * @param xAxisRotation - The rotation of the ellipse's x-axis relative\n * to the x-axis of the coordinate system, in degrees.\n * @param largeArcFlag - Determines if the arc should be greater than or less than 180 degrees.\n * @param sweepFlag - Determines if the arc should be swept in a positive angle direction.\n * @param x - The x-coordinate of the arc's end point.\n * @param y - The y-coordinate of the arc's end point.\n * @returns The instance of the current object for chaining.\n */\n public arcToSvg(\n rx: number, ry: number, xAxisRotation: number, largeArcFlag: number, sweepFlag: number, x: number, y: number\n ): this;\n public arcToSvg(...args: Parameters<GraphicsContext['arcToSvg']>): this\n {\n return this._callContextMethod('arcToSvg', args);\n }\n /**\n * Adds a cubic Bezier curve to the path.\n * It requires three points: the first two are control points and the third one is the end point.\n * The starting point is the last point in the current path.\n * @param cp1x - The x-coordinate of the first control point.\n * @param cp1y - The y-coordinate of the first control point.\n * @param cp2x - The x-coordinate of the second control point.\n * @param cp2y - The y-coordinate of the second control point.\n * @param x - The x-coordinate of the end point.\n * @param y - The y-coordinate of the end point.\n * @param smoothness - Optional parameter to adjust the smoothness of the curve.\n * @returns The instance of the current object for chaining.\n */\n public bezierCurveTo(\n cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, smoothness?: number\n ): this;\n public bezierCurveTo(...args: Parameters<GraphicsContext['bezierCurveTo']>): this\n {\n return this._callContextMethod('bezierCurveTo', args);\n }\n /**\n * Closes the current path by drawing a straight line back to the start.\n * If the shape is already closed or there are no points in the path, this method does nothing.\n * @returns The instance of the current object for chaining.\n */\n public closePath(): this\n {\n return this._callContextMethod('closePath', []);\n }\n /**\n * Draws an ellipse at the specified location and with the given x and y radii.\n * An optional transformation can be applied, allowing for rotation, scaling, and translation.\n * @param x - The x-coordinate of the center of the ellipse.\n * @param y - The y-coordinate of the center of the ellipse.\n * @param radiusX - The horizontal radius of the ellipse.\n * @param radiusY - The vertical radius of the ellipse.\n * @returns The instance of the current object for chaining.\n */\n public ellipse(x: number, y: number, radiusX: number, radiusY: number): this;\n public ellipse(...args: Parameters<GraphicsContext['ellipse']>): this\n {\n return this._callContextMethod('ellipse', args);\n }\n /**\n * Draws a circle shape. This method adds a new circle path to the current drawing.\n * @param x - The x-coordinate of the center of the circle.\n * @param y - The y-coordinate of the center of the circle.\n * @param radius - The radius of the circle.\n * @returns The instance of the current object for chaining.\n */\n public circle(x: number, y: number, radius: number): this;\n public circle(...args: Parameters<GraphicsContext['circle']>): this\n {\n return this._callContextMethod('circle', args);\n }\n /**\n * Adds another `GraphicsPath` to this path, optionally applying a transformation.\n * @param path - The `GraphicsPath` to add.\n * @returns The instance of the current object for chaining.\n */\n public path(path: GraphicsPath): this;\n public path(...args: Parameters<GraphicsContext['path']>): this\n {\n return this._callContextMethod('path', args);\n }\n /**\n * Connects the current point to a new point with a straight line. This method updates the current path.\n * @param x - The x-coordinate of the new point to connect to.\n * @param y - The y-coordinate of the new point to connect to.\n * @returns The instance of the current object for chaining.\n */\n public lineTo(x: number, y: number): this;\n public lineTo(...args: Parameters<GraphicsContext['lineTo']>): this\n {\n return this._callContextMethod('lineTo', args);\n }\n /**\n * Sets the starting point for a new sub-path. Any subsequent drawing commands are considered part of this path.\n * @param x - The x-coordinate for the starting point.\n * @param y - The y-coordinate for the starting point.\n * @returns The instance of the current object for chaining.\n */\n public moveTo(x: number, y: number): this;\n public moveTo(...args: Parameters<GraphicsContext['moveTo']>): this\n {\n return this._callContextMethod('moveTo', args);\n }\n /**\n * Adds a quadratic curve to the path. It requires two points: the control point and the end point.\n * The starting point is the last point in the current path.\n * @param cpx - The x-coordinate of the control point.\n * @param cpy - The y-coordinate of the control point.\n * @param x - The x-coordinate of the end point.\n * @param y - The y-coordinate of the end point.\n * @param smoothness - Optional parameter to adjust the smoothness of the curve.\n * @returns The instance of the current object for chaining.\n */\n public quadraticCurveTo(cpx: number, cpy: number, x: number, y: number, smoothness?: number): this;\n public quadraticCurveTo(...args: Parameters<GraphicsContext['quadraticCurveTo']>): this\n {\n return this._callContextMethod('quadraticCurveTo', args);\n }\n /**\n * Draws a rectangle shape. This method adds a new rectangle path to the current drawing.\n * @param x - The x-coordinate of the top-left corner of the rectangle.\n * @param y - The y-coordinate of the top-left corner of the rectangle.\n * @param w - The width of the rectangle.\n * @param h - The height of the rectangle.\n * @returns The instance of the current object for chaining.\n */\n public rect(x: number, y: number, w: number, h: number): this;\n public rect(...args: Parameters<GraphicsContext['rect']>): this\n {\n return this._callContextMethod('rect', args);\n }\n /**\n * Draws a rectangle with rounded corners.\n * The corner radius can be specified to determine how rounded the corners should be.\n * An optional transformation can be applied, which allows for rotation, scaling, and translation of the rectangle.\n * @param x - The x-coordinate of the top-left corner of the rectangle.\n * @param y - The y-coordinate of the top-left corner of the rectangle.\n * @param w - The width of the rectangle.\n * @param h - The height of the rectangle.\n * @param radius - The radius of the rectangle's corners. If not specified, corners will be sharp.\n * @returns The instance of the current object for chaining.\n */\n public roundRect(x: number, y: number, w: number, h: number, radius?: number): this;\n public roundRect(...args: Parameters<GraphicsContext['roundRect']>): this\n {\n return this._callContextMethod('roundRect', args);\n }\n /**\n * Draws a polygon shape by specifying a sequence of points. This method allows for the creation of complex polygons,\n * which can be both open and closed. An optional transformation can be applied, enabling the polygon to be scaled,\n * rotated, or translated as needed.\n * @param points - An array of numbers, or an array of PointData objects eg [{x,y}, {x,y}, {x,y}]\n * representing the x and y coordinates, of the polygon's vertices, in sequence.\n * @param close - A boolean indicating whether to close the polygon path. True by default.\n * @returns The instance of the current object for chaining further drawing commands.\n */\n public poly(points: number[] | PointData[], close?: boolean): this;\n public poly(...args: Parameters<GraphicsContext['poly']>): this\n {\n return this._callContextMethod('poly', args);\n }\n /**\n * Draws a regular polygon with a specified number of sides. All sides and angles are equal.\n * @param x - The x-coordinate of the center of the polygon.\n * @param y - The y-coordinate of the center of the polygon.\n * @param radius - The radius of the circumscribed circle of the polygon.\n * @param sides - The number of sides of the polygon. Must be 3 or more.\n * @param rotation - The rotation angle of the polygon, in radians. Zero by default.\n * @param transform - An optional `Matrix` object to apply a transformation to the polygon.\n * @returns The instance of the current object for chaining.\n */\n public regularPoly(x: number, y: number, radius: number, sides: number, rotation?: number, transform?: Matrix): this;\n public regularPoly(...args: Parameters<GraphicsContext['regularPoly']>): this\n {\n return this._callContextMethod('regularPoly', args);\n }\n /**\n * Draws a polygon with rounded corners.\n * Similar to `regularPoly` but with the ability to round the corners of the polygon.\n * @param x - The x-coordinate of the center of the polygon.\n * @param y - The y-coordinate of the center of the polygon.\n * @param radius - The radius of the circumscribed circle of the polygon.\n * @param sides - The number of sides of the polygon. Must be 3 or more.\n * @param corner - The radius of the rounding of the corners.\n * @param rotation - The rotation angle of the polygon, in radians. Zero by default.\n * @returns The instance of the current object for chaining.\n */\n public roundPoly(x: number, y: number, radius: number, sides: number, corner: number, rotation?: number): this;\n public roundPoly(...args: Parameters<GraphicsContext['roundPoly']>): this\n {\n return this._callContextMethod('roundPoly', args);\n }\n /**\n * Draws a shape with rounded corners. This function supports custom radius for each corner of the shape.\n * Optionally, corners can be rounded using a quadratic curve instead of an arc, providing a different aesthetic.\n * @param points - An array of `RoundedPoint` representing the corners of the shape to draw.\n * A minimum of 3 points is required.\n * @param radius - The default radius for the corners.\n * This radius is applied to all corners unless overridden in `points`.\n * @param useQuadratic - If set to true, rounded corners are drawn using a quadraticCurve\n * method instead of an arc method. Defaults to false.\n * @param smoothness - Specifies the smoothness of the curve when `useQuadratic` is true.\n * Higher values make the curve smoother.\n * @returns The instance of the current object for chaining.\n */\n public roundShape(points: RoundedPoint[], radius: number, useQuadratic?: boolean, smoothness?: number): this;\n public roundShape(...args: Parameters<GraphicsContext['roundShape']>): this\n {\n return this._callContextMethod('roundShape', args);\n }\n /**\n * Draw Rectangle with fillet corners. This is much like rounded rectangle\n * however it support negative numbers as well for the corner radius.\n * @param x - Upper left corner of rect\n * @param y - Upper right corner of rect\n * @param width - Width of rect\n * @param height - Height of rect\n * @param fillet - accept negative or positive values\n */\n public filletRect(x: number, y: number, width: number, height: number, fillet: number): this;\n public filletRect(...args: Parameters<GraphicsContext['filletRect']>): this\n {\n return this._callContextMethod('filletRect', args);\n }\n /**\n * Draw Rectangle with chamfer corners. These are angled corners.\n * @param x - Upper left corner of rect\n * @param y - Upper right corner of rect\n * @param width - Width of rect\n * @param height - Height of rect\n * @param chamfer - non-zero real number, size of corner cutout\n * @param transform\n */\n public chamferRect(x: number, y: number, width: number, height: number, chamfer: number, transform?: Matrix): this;\n public chamferRect(...args: Parameters<GraphicsContext['chamferRect']>): this\n {\n return this._callContextMethod('chamferRect', args);\n }\n /**\n * Draws a star shape centered at a specified location. This method allows for the creation\n * of stars with a variable number of points, outer radius, optional inner radius, and rotation.\n * The star is drawn as a closed polygon with alternating outer and inner vertices to create the star's points.\n * An optional transformation can be applied to scale, rotate, or translate the star as needed.\n * @param x - The x-coordinate of the center of the star.\n * @param y - The y-coordinate of the center of the star.\n * @param points - The number of points of the star.\n * @param radius - The outer radius of the star (distance from the center to the outer points).\n * @param innerRadius - Optional. The inner radius of the star\n * (distance from the center to the inner points between the outer points).\n * If not provided, defaults to half of the `radius`.\n * @param rotation - Optional. The rotation of the star in radians, where 0 is aligned with the y-axis.\n * Defaults to 0, meaning one point is directly upward.\n * @returns The instance of the current object for chaining further drawing commands.\n */\n public star(x: number, y: number, points: number, radius: number, innerRadius?: number, rotation?: number): this;\n public star(...args: Parameters<GraphicsContext['star']>): this\n {\n return this._callContextMethod('star', args);\n }\n /**\n * Parses and renders an SVG string into the graphics context. This allows for complex shapes and paths\n * defined in SVG format to be drawn within the graphics context.\n * @param svg - The SVG string to be parsed and rendered.\n */\n public svg(svg: string): this;\n public svg(...args: Parameters<GraphicsContext['svg']>): this\n {\n return this._callContextMethod('svg', args);\n }\n /**\n * Restores the most recently saved graphics state by popping the top of the graphics state stack.\n * This includes transformations, fill styles, and stroke styles.\n */\n public restore(): this;\n public restore(...args: Parameters<GraphicsContext['restore']>): this\n {\n return this._callContextMethod('restore', args);\n }\n /** Saves the current graphics state, including transformations, fill styles, and stroke styles, onto a stack. */\n public save(): this\n {\n return this._callContextMethod('save', []);\n }\n /**\n * Returns the current transformation matrix of the graphics context.\n * @returns The current transformation matrix.\n */\n public getTransform(): Matrix\n {\n return this.context.getTransform();\n }\n /**\n * Resets the current transformation matrix to the identity matrix, effectively removing\n * any transformations (rotation, scaling, translation) previously applied.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public resetTransform(): this\n {\n return this._callContextMethod('resetTransform', []);\n }\n /**\n * Applies a rotation transformation to the graphics context around the current origin.\n * @param angle - The angle of rotation in radians.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public rotateTransform(angle: number): this;\n public rotateTransform(...args: Parameters<GraphicsContext['rotate']>): this\n {\n return this._callContextMethod('rotate', args);\n }\n /**\n * Applies a scaling transformation to the graphics context, scaling drawings by x horizontally and by y vertically.\n * @param x - The scale factor in the horizontal direction.\n * @param y - (Optional) The scale factor in the vertical direction.\n * If not specified, the x value is used for both directions.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public scaleTransform(x: number, y?: number): this;\n public scaleTransform(...args: Parameters<GraphicsContext['scale']>): this\n {\n return this._callContextMethod('scale', args);\n }\n /**\n * Sets the current transformation matrix of the graphics context to the specified matrix or values.\n * This replaces the current transformation matrix.\n * @param a - The value for the a property of the matrix, or a Matrix object to use directly.\n * @param b - The value for the b property of the matrix.\n * @param c - The value for the c property of the matrix.\n * @param d - The value for the d property of the matrix.\n * @param dx - The value for the tx (translate x) property of the matrix.\n * @param dy - The value for the ty (translate y) property of the matrix.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public setTransform(transform: Matrix): this;\n public setTransform(a: number, b: number, c: number, d: number, dx: number, dy: number): this;\n public setTransform(a: number | Matrix, b?: number, c?: number, d?: number, dx?: number, dy?: number): this;\n public setTransform(...args: [Matrix] | [number, number, number, number, number, number]): this\n {\n return this._callContextMethod('setTransform', args);\n }\n /**\n * Applies the specified transformation matrix to the current graphics context by multiplying\n * the current matrix with the specified matrix.\n * @param a - The value for the a property of the matrix, or a Matrix object to use directly.\n * @param b - The value for the b property of the matrix.\n * @param c - The value for the c property of the matrix.\n * @param d - The value for the d property of the matrix.\n * @param dx - The value for the tx (translate x) property of the matrix.\n * @param dy - The value for the ty (translate y) property of the matrix.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public transform(transform: Matrix): this;\n public transform(a: number, b: number, c: number, d: number, dx: number, dy: number): this;\n public transform(a: number | Matrix, b?: number, c?: number, d?: number, dx?: number, dy?: number): this;\n public transform(...args: [Matrix] | [number, number, number, number, number, number]): this\n {\n return this._callContextMethod('transform', args);\n }\n /**\n * Applies a translation transformation to the graphics context, moving the origin by the specified amounts.\n * @param x - The amount to translate in the horizontal direction.\n * @param y - (Optional) The amount to translate in the vertical direction. If not specified,\n * the x value is used for both directions.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public translateTransform(x: number, y?: number): this;\n public translateTransform(...args: Parameters<GraphicsContext['translate']>): this\n {\n return this._callContextMethod('translate', args);\n }\n /**\n * Clears all drawing commands from the graphics context, effectively resetting it. This includes clearing the path,\n * and optionally resetting transformations to the identity matrix.\n * @returns The instance of the current GraphicsContext for method chaining.\n */\n public clear(): this\n {\n return this._callContextMethod('clear', []);\n }\n /**\n * The fill style to use.\n * @type {ConvertedFillStyle}\n */\n get fillStyle(): GraphicsContext['fillStyle']\n {\n return this._context.fillStyle;\n }\n set fillStyle(value: FillInput)\n {\n this._context.fillStyle = value;\n }\n /**\n * The stroke style to use.\n * @type {ConvertedStrokeStyle}\n */\n get strokeStyle(): GraphicsContext['strokeStyle']\n {\n return this._context.strokeStyle;\n }\n set strokeStyle(value: StrokeStyle)\n {\n this._context.strokeStyle = value;\n }\n\n /**\n * Creates a new Graphics object.\n * Note that only the context of the object is cloned, not its transform (position,scale,etc)\n * @param deep - Whether to create a deep clone of the graphics object. If false, the context\n * will be shared between the two objects (default false). If true, the context will be\n * cloned (recommended if you need to modify the context in any way).\n * @returns - A clone of the graphics object\n */\n public clone(deep = false): Graphics\n {\n if (deep)\n {\n return new Graphics(this._context.clone());\n }\n\n (this._ownedContext as null) = null;\n const clone = new Graphics(this._context);\n\n return clone;\n }\n\n // -------- v7 deprecations ---------\n\n /**\n * @param width\n * @param color\n * @param alpha\n * @deprecated since 8.0.0 Use {@link Graphics#setStrokeStyle} instead\n */\n public lineStyle(width?: number, color?: ColorSource, alpha?: number): this\n {\n // #if _DEBUG\n // eslint-disable-next-line max-len\n deprecation(v8_0_0, 'Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.');\n // #endif\n\n const strokeStyle: Partial<StrokeStyle> = {};\n\n // avoid undefined assignment\n width && (strokeStyle.width = width);\n color && (strokeStyle.color = color);\n alpha && (strokeStyle.alpha = alpha);\n\n this.context.strokeStyle = strokeStyle;\n\n return this;\n }\n\n /**\n * @param color\n * @param alpha\n * @deprecated since 8.0.0 Use {@link Graphics#fill} instead\n */\n public beginFill(color: ColorSource, alpha?: number)\n {\n // #if _DEBUG\n // eslint-disable-next-line max-len\n deprecation(v8_0_0, 'Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.');\n // #endif\n\n const fillStyle: Partial<FillStyle> = {};\n\n // avoid undefined assignment\n color && (fillStyle.color = color);\n alpha && (fillStyle.alpha = alpha);\n\n this.context.fillStyle = fillStyle;\n\n return this;\n }\n\n /**\n * @deprecated since 8.0.0 Use {@link Graphics#fill} instead\n */\n public endFill()\n {\n // #if _DEBUG\n // eslint-disable-next-line max-len\n deprecation(v8_0_0, 'Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.');\n // #endif\n\n this.context.fill();\n const strokeStyle = this.context.strokeStyle;\n\n if (strokeStyle.width !== GraphicsContext.defaultStrokeStyle.width\n || strokeStyle.color !== GraphicsContext.defaultStrokeStyle.color\n || strokeStyle.alpha !== GraphicsContext.defaultStrokeStyle.alpha)\n {\n this.context.stroke();\n }\n\n return this;\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#circle} instead\n */\n public drawCircle(...args: Parameters<GraphicsContext['circle']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawCircle has been renamed to Graphics#circle');\n // #endif\n\n return this._callContextMethod('circle', args);\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#ellipse} instead\n */\n public drawEllipse(...args: Parameters<GraphicsContext['ellipse']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawEllipse has been renamed to Graphics#ellipse');\n // #endif\n\n return this._callContextMethod('ellipse', args);\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#poly} instead\n */\n public drawPolygon(...args: Parameters<GraphicsContext['poly']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawPolygon has been renamed to Graphics#poly');\n // #endif\n\n return this._callContextMethod('poly', args);\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#rect} instead\n */\n public drawRect(...args: Parameters<GraphicsContext['rect']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawRect has been renamed to Graphics#rect');\n // #endif\n\n return this._callContextMethod('rect', args);\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#roundRect} instead\n */\n public drawRoundedRect(...args: Parameters<GraphicsContext['roundRect']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawRoundedRect has been renamed to Graphics#roundRect');\n // #endif\n\n return this._callContextMethod('roundRect', args);\n }\n\n /**\n * @param {...any} args\n * @deprecated since 8.0.0 Use {@link Graphics#star} instead\n */\n public drawStar(...args: Parameters<GraphicsContext['star']>): this\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'Graphics#drawStar has been renamed to Graphics#star');\n // #endif\n\n return this._callContextMethod('star', args);\n }\n}\n"],"names":[],"mappings":"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"} |