Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
DRAW_CALL_POOL } from './utils';
import {
BatchGeometry,
BatchDrawCall,
BatchTextureArray,
BaseTexture } from '@pixi/core';
import { DRAW_MODES, WRAP_MODES } from '@pixi/constants';
import { SHAPES, Point, Matrix } from '@pixi/math';
import { GraphicsData } from './GraphicsData';
import { premultiplyTint } from '@pixi/utils';
import { Bounds } from '@pixi/display';
const tmpPoint = new Point();
const tmpBounds = new Bounds();
/**
* The Graphics class contains methods used to draw primitive shapes such as lines, circles and
* rectangles to the display, and to color and fill them.
*
* GraphicsGeometry is designed to not be continually updating the geometry since it's expensive
* to re-tesselate using **earcut**. Consider using {@link PIXI.Mesh} for this use-case, it's much faster.
*
* @class
* @extends PIXI.BatchGeometry
* @memberof PIXI
*/
export class GraphicsGeometry extends BatchGeometry
{
constructor()
{
/**
* Index of the last batched shape in the stack of calls.
*
* @member {number}
* @protected
*/
this.shapeIndex = 0;
/**
* Cached bounds.
*
* @member {PIXI.Bounds}
* @protected
*/
this._bounds = new Bounds();
/**
* The bounds dirty flag.
*
* @member {number}
* @protected
*/
this.boundsDirty = -1;
/**
* Padding to add to the bounds.
*
* @member {number}
* @default 0
*/
this.boundsPadding = 0;
this.isMask = false;
/**
* The bounds' padding used for bounds calculation.
*
* @member {number}
*/
this.boundsPadding = 0;
/**
* A cache of the local bounds to prevent recalculation.
*
* @member {PIXI.Rectangle}
* @private
*/
this._localBounds = new Bounds();
/**
* Used to detect if the graphics object has changed. If this is set to true then the graphics
* object will be recalculated.
*
* @member {boolean}
* @private
*/
this.dirty = 0;
/**
* Used to detect if we need to do a fast rect check using the id compare method
* @type {Number}
*/
this.fastRectDirty = -1;