/** * A GraphicsData object. * * @class * @memberof PIXI */ export default class GraphicsData { /** * * @param {number} lineWidth - the width of the line to draw * @param {number} lineColor - the color of the line to draw * @param {number} lineAlpha - the alpha of the line to draw * @param {number} fillColor - the color of the fill * @param {number} fillAlpha - the alpha of the fill * @param {boolean} fill - whether or not the shape is filled with a colour * @param {boolean} nativeLines - the method for drawing lines * @param {PIXI.Circle|PIXI.Rectangle|PIXI.Ellipse|PIXI.Polygon} shape - The shape object to draw. * @param {number} lineAlignment - the alignment of the line. */ constructor(lineWidth, lineColor, lineAlpha, fillColor, fillAlpha, fill, nativeLines, shape, lineAlignment) { /** * the width of the line to draw * @member {number} */ this.lineWidth = lineWidth; /** * The alignment of any lines drawn (0.5 = middle, 1 = outter, 0 = inner). * * @member {number} * @default 0 */ this.lineAlignment = lineAlignment; /** * if true the liens will be draw using LINES instead of TRIANGLE_STRIP * @member {boolean} */ this.nativeLines = nativeLines; /** * the color of the line to draw * @member {number} */ this.lineColor = lineColor; /** * the alpha of the line to draw * @member {number} */ this.lineAlpha = lineAlpha; /** * cached tint of the line to draw * @member {number} * @private */ this._lineTint = lineColor; /** * the color of the fill * @member {number} */ this.fillColor = fillColor; /** * the alpha of the fill * @member {number} */ this.fillAlpha = fillAlpha; /** * cached tint of the fill * @member {number} * @private */ this._fillTint = fillColor; /** * whether or not the shape is filled with a colour * @member {boolean} */ this.fill = fill; this.holes = []; /** * The shape object to draw. * @member {PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.Rectangle|PIXI.RoundedRectangle} */ this.shape = shape; /** * The type of the shape, see the Const.Shapes file for all the existing types, * @member {number} */ this.type = shape.type; } /** * Creates a new GraphicsData object with the same values as this one. * * @return {PIXI.GraphicsData} Cloned GraphicsData object */ clone() { return new GraphicsData( this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.fill, this.nativeLines, this.shape, this.lineAlignment ); } /** * Adds a hole to the shape. * * @param {PIXI.Rectangle|PIXI.Circle} shape - The shape of the hole. */ addHole(shape) { this.holes.push(shape); } /** * Destroys the Graphics data. */ destroy() { this.shape = null; this.holes = null; } }