// import * as Phaser from 'phaser'; import PolygnBase from '../utils/polygonbase/PolygnBase'; export default Quad; declare namespace Quad { /** * Side control point. */ interface ISidePoint { /** * Position along the side (0-1). */ t: number, /** * X coordinate. */ x: number, /** * Y coordinate. */ y: number } /** * Side control point with optional key. */ interface ISidePointParameter extends ISidePoint { /** * Optional key for the point. */ key?: string } interface IConfig { /** * Initial x position. */ x?: number, /** * Initial y position. */ y?: number, /** * Width of the quad. */ width?: number, /** * Height of the quad. */ height?: number, /** * Fill color. */ color?: number, /** * Fill alpha. */ alpha?: number, /** * Stroke color. */ strokeColor?: number, /** * Stroke alpha. */ strokeAlpha?: number, /** * Stroke width. */ strokeWidth?: number, /** * Top-left x position. */ tlx?: number; /** * Top-left y position. */ tly?: number; /** * Top-right x position. */ trx?: number; /** * Top-right y position. */ try?: number; /** * Bottom-left x position. */ blx?: number; /** * Bottom-left y position. */ bly?: number; /** * Bottom-right x position. */ brx?: number; /** * Bottom-right y position. */ bry?: number; /** * Control points along the left side. */ leftSidePoints?: ISidePointParameter[], /** * Control points along the top side. */ topSidePoints?: ISidePointParameter[], /** * Control points along the right side. */ rightSidePoints?: ISidePointParameter[], /** * Control points along the bottom side. */ bottomSidePoints?: ISidePointParameter[], } } /** * Quad shape with adjustable corners and side control points. */ declare class Quad extends PolygnBase { /** * Create a quad. * @param scene - The Scene to which this object belongs. * @param x - The x position. * @param y - The y position. * @param width - Width of the quad. * @param height - Height of the quad. * @param fillColor - Fill color. * @param fillAlpha - Fill alpha. */ constructor( scene: Phaser.Scene, x?: number, y?: number, width?: number, height?: number, fillColor?: number, fillAlpha?: number ); /** * Create a quad. * @param scene - The Scene to which this object belongs. * @param config - Configuration options. */ constructor( scene: Phaser.Scene, config?: Quad.IConfig ) /** * Set top-left corner position. * @param x - X position. * @param y - Y position. * @returns This instance. */ setTLPosition( x: number, y: number ): this; /** * Set top-right corner position. * @param x - X position. * @param y - Y position. * @returns This instance. */ setTRPosition( x: number, y: number ): this; /** * Set bottom-left corner position. * @param x - X position. * @param y - Y position. * @returns This instance. */ setBLPosition( x: number, y: number ): this; /** * Set bottom-right corner position. * @param x - X position. * @param y - Y position. * @returns This instance. */ setBRPosition( x: number, y: number ): this; /** * Reset all corner positions. * @returns This instance. */ resetCornerPosition(): this; /** * Top-left x position. */ tlx: number; /** * Top-left y position. */ tlr: number; /** * Top-right x position. */ trx: number; /** * Top-right y position. */ try: number; /** * Bottom-left x position. */ blx: number; /** * Bottom-left y position. */ bly: number; /** * Bottom-right x position. */ brx: number; /** * Bottom-right y position. */ bry: number; /** * Insert a top side point. * @param t - Position along the side (0-1). * @param x - X coordinate. * @param y - Y coordinate. * @param key - Optional key for the point. * @returns This instance. */ insertTopSidePoint( t: number, x: number, y: number, key?: string ): this; /** * Insert top side points. * @param points - Points to insert. * @returns This instance. */ insertTopSidePoint(points: Quad.ISidePointParameter[]): this; /** * Insert a right side point. * @param t - Position along the side (0-1). * @param x - X coordinate. * @param y - Y coordinate. * @param key - Optional key for the point. * @returns This instance. */ insertRightSidePoint( t: number, x: number, y: number, key?: string ): this; /** * Insert right side points. * @param points - Points to insert. * @returns This instance. */ insertRightSidePoint(points: Quad.ISidePointParameter[]): this; /** * Insert a bottom side point. * @param t - Position along the side (0-1). * @param x - X coordinate. * @param y - Y coordinate. * @param key - Optional key for the point. * @returns This instance. */ insertBottomSidePoint( t: number, x: number, y: number, key?: string ): this; /** * Insert bottom side points. * @param points - Points to insert. * @returns This instance. */ insertBottomSidePoint(points: Quad.ISidePointParameter[]): this; /** * Insert a left side point. * @param t - Position along the side (0-1). * @param x - X coordinate. * @param y - Y coordinate. * @param key - Optional key for the point. * @returns This instance. */ insertLeftSidePoint( t: number, x: number, y: number, key?: string ): this; /** * Insert left side points. * @param points - Points to insert. * @returns This instance. */ insertLeftSidePoint(points: Quad.ISidePointParameter[]): this; /** * Clear top side points. * @returns This instance. */ clearTopSidePoints(): this; /** * Clear right side points. * @returns This instance. */ clearRightSidePoints(): this; /** * Clear bottom side points. * @returns This instance. */ clearBottomSidePoints(): this; /** * Clear left side points. * @returns This instance. */ clearLeftSidePoints(): this; /** * Clear all side points. * @returns This instance. */ clearAllSidesPoints(): this; /** * Left side points. */ readonly leftSidePoints: Quad.ISidePoint[]; /** * Top side points. */ readonly topSidePoints: Quad.ISidePoint[]; /** * Bottom side points. */ readonly bottomSidePoints: Quad.ISidePoint[]; /** * Right side points. */ readonly rightSidePoints: Quad.ISidePoint[]; /** * Resize the quad. * @param width - New width. * @param height - New height. * @returns This instance. */ resize( width: number, height: number ): this; }