pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 10.5 kB
Source Map (JSON)
{"version":3,"file":"NineSliceGeometry.mjs","sources":["../../../src/scene/sprite-nine-slice/NineSliceGeometry.ts"],"sourcesContent":["import { type PointData } from '../../maths/point/PointData';\nimport { PlaneGeometry } from '../mesh-plane/PlaneGeometry';\n\n/**\n * Options for the NineSliceGeometry.\n * @category scene\n * @advanced\n */\nexport interface NineSliceGeometryOptions\n{\n\n /** The width of the NineSlicePlane, setting this will actually modify the vertices and UV's of this plane. */\n width?: number\n /** The height of the NineSlicePlane, setting this will actually modify the vertices and UV's of this plane. */\n height?: number\n /** The original width of the texture */\n originalWidth?: number\n /** The original height of the texture */\n originalHeight?: number\n /** The width of the left column. */\n leftWidth?: number\n /** The height of the top row. */\n topHeight?: number\n /** The width of the right column. */\n rightWidth?: number\n /** The height of the bottom row. */\n bottomHeight?: number\n\n /** The anchor point of the NineSliceSprite. */\n anchor?: PointData\n}\n\n/**\n * The NineSliceGeometry class allows you to create a NineSlicePlane object.\n * @category scene\n * @advanced\n */\nexport class NineSliceGeometry extends PlaneGeometry\n{\n /** The default options for the NineSliceGeometry. */\n public static defaultOptions: NineSliceGeometryOptions = {\n /** The width of the NineSlicePlane, setting this will actually modify the vertices and UV's of this plane. */\n width: 100,\n /** The height of the NineSlicePlane, setting this will actually modify the vertices and UV's of this plane. */\n height: 100,\n /** The width of the left column. */\n leftWidth: 10,\n /** The height of the top row. */\n topHeight: 10,\n /** The width of the right column. */\n rightWidth: 10,\n /** The height of the bottom row. */\n bottomHeight: 10,\n\n /** The original width of the texture */\n originalWidth: 100,\n /** The original height of the texture */\n originalHeight: 100,\n };\n\n /** @internal */\n public _leftWidth: number;\n /** @internal */\n public _rightWidth: number;\n /** @internal */\n public _topHeight: number;\n /** @internal */\n public _bottomHeight: number;\n\n private _originalWidth: number;\n private _originalHeight: number;\n private _anchorX: any;\n private _anchorY: number;\n\n constructor(options: NineSliceGeometryOptions = {})\n {\n options = { ...NineSliceGeometry.defaultOptions, ...options };\n\n super({\n width: options.width,\n height: options.height,\n verticesX: 4,\n verticesY: 4,\n });\n\n this.update(options);\n }\n\n /**\n * Updates the NineSliceGeometry with the options.\n * @param options - The options of the NineSliceGeometry.\n */\n public update(options: NineSliceGeometryOptions)\n {\n this.width = options.width ?? this.width;\n this.height = options.height ?? this.height;\n this._originalWidth = options.originalWidth ?? this._originalWidth;\n this._originalHeight = options.originalHeight ?? this._originalHeight;\n this._leftWidth = options.leftWidth ?? this._leftWidth;\n this._rightWidth = options.rightWidth ?? this._rightWidth;\n this._topHeight = options.topHeight ?? this._topHeight;\n this._bottomHeight = options.bottomHeight ?? this._bottomHeight;\n\n this._anchorX = options.anchor?.x;\n this._anchorY = options.anchor?.y;\n\n this.updateUvs();\n this.updatePositions();\n }\n\n /** Updates the positions of the vertices. */\n public updatePositions()\n {\n const p = this.positions;\n const {\n width,\n height,\n _leftWidth,\n _rightWidth,\n _topHeight,\n _bottomHeight,\n _anchorX,\n _anchorY,\n } = this;\n\n const w = _leftWidth + _rightWidth;\n const scaleW = width > w ? 1.0 : width / w;\n\n const h = _topHeight + _bottomHeight;\n const scaleH = height > h ? 1.0 : height / h;\n\n const scale = Math.min(scaleW, scaleH);\n\n const anchorOffsetX = _anchorX * width;\n const anchorOffsetY = _anchorY * height;\n\n p[0] = p[8] = p[16] = p[24] = -anchorOffsetX;\n p[2] = p[10] = p[18] = p[26] = (_leftWidth * scale) - anchorOffsetX;\n p[4] = p[12] = p[20] = p[28] = width - (_rightWidth * scale) - anchorOffsetX;\n p[6] = p[14] = p[22] = p[30] = width - anchorOffsetX;\n\n p[1] = p[3] = p[5] = p[7] = -anchorOffsetY;\n p[9] = p[11] = p[13] = p[15] = (_topHeight * scale) - anchorOffsetY;\n p[17] = p[19] = p[21] = p[23] = height - (_bottomHeight * scale) - anchorOffsetY;\n p[25] = p[27] = p[29] = p[31] = height - anchorOffsetY;\n\n this.getBuffer('aPosition').update();\n }\n\n /** Updates the UVs of the vertices. */\n public updateUvs()\n {\n const uvs = this.uvs;\n\n uvs[0] = uvs[8] = uvs[16] = uvs[24] = 0;\n uvs[1] = uvs[3] = uvs[5] = uvs[7] = 0;\n\n uvs[6] = uvs[14] = uvs[22] = uvs[30] = 1;\n uvs[25] = uvs[27] = uvs[29] = uvs[31] = 1;\n\n const _uvw = 1.0 / this._originalWidth;\n const _uvh = 1.0 / this._originalHeight;\n\n uvs[2] = uvs[10] = uvs[18] = uvs[26] = _uvw * this._leftWidth;\n uvs[9] = uvs[11] = uvs[13] = uvs[15] = _uvh * this._topHeight;\n\n uvs[4] = uvs[12] = uvs[20] = uvs[28] = 1 - (_uvw * this._rightWidth);\n uvs[17] = uvs[19] = uvs[21] = uvs[23] = 1 - (_uvh * this._bottomHeight);\n\n this.getBuffer('aUV').update();\n }\n}\n\n"],"names":[],"mappings":";;;AAqCO,MAAM,kBAAA,GAAN,MAAM,kBAAA,SAA0B,aACvC,CAAA;AAAA,EAoCI,WAAA,CAAY,OAAoC,GAAA,EAChD,EAAA;AACI,IAAA,OAAA,GAAU,EAAE,GAAG,kBAAkB,CAAA,cAAA,EAAgB,GAAG,OAAQ,EAAA,CAAA;AAE5D,IAAM,KAAA,CAAA;AAAA,MACF,OAAO,OAAQ,CAAA,KAAA;AAAA,MACf,QAAQ,OAAQ,CAAA,MAAA;AAAA,MAChB,SAAW,EAAA,CAAA;AAAA,MACX,SAAW,EAAA,CAAA;AAAA,KACd,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,OAAO,OAAO,CAAA,CAAA;AAAA,GACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,OAAO,OACd,EAAA;AACI,IAAK,IAAA,CAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,IAAS,IAAK,CAAA,KAAA,CAAA;AACnC,IAAK,IAAA,CAAA,MAAA,GAAS,OAAQ,CAAA,MAAA,IAAU,IAAK,CAAA,MAAA,CAAA;AACrC,IAAK,IAAA,CAAA,cAAA,GAAiB,OAAQ,CAAA,aAAA,IAAiB,IAAK,CAAA,cAAA,CAAA;AACpD,IAAK,IAAA,CAAA,eAAA,GAAkB,OAAQ,CAAA,cAAA,IAAkB,IAAK,CAAA,eAAA,CAAA;AACtD,IAAK,IAAA,CAAA,UAAA,GAAa,OAAQ,CAAA,SAAA,IAAa,IAAK,CAAA,UAAA,CAAA;AAC5C,IAAK,IAAA,CAAA,WAAA,GAAc,OAAQ,CAAA,UAAA,IAAc,IAAK,CAAA,WAAA,CAAA;AAC9C,IAAK,IAAA,CAAA,UAAA,GAAa,OAAQ,CAAA,SAAA,IAAa,IAAK,CAAA,UAAA,CAAA;AAC5C,IAAK,IAAA,CAAA,aAAA,GAAgB,OAAQ,CAAA,YAAA,IAAgB,IAAK,CAAA,aAAA,CAAA;AAElD,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,MAAQ,EAAA,CAAA,CAAA;AAChC,IAAK,IAAA,CAAA,QAAA,GAAW,QAAQ,MAAQ,EAAA,CAAA,CAAA;AAEhC,IAAA,IAAA,CAAK,SAAU,EAAA,CAAA;AACf,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAAA,GACzB;AAAA;AAAA,EAGO,eACP,GAAA;AACI,IAAA,MAAM,IAAI,IAAK,CAAA,SAAA,CAAA;AACf,IAAM,MAAA;AAAA,MACF,KAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,KACA,GAAA,IAAA,CAAA;AAEJ,IAAA,MAAM,IAAI,UAAa,GAAA,WAAA,CAAA;AACvB,IAAA,MAAM,MAAS,GAAA,KAAA,GAAQ,CAAI,GAAA,CAAA,GAAM,KAAQ,GAAA,CAAA,CAAA;AAEzC,IAAA,MAAM,IAAI,UAAa,GAAA,aAAA,CAAA;AACvB,IAAA,MAAM,MAAS,GAAA,MAAA,GAAS,CAAI,GAAA,CAAA,GAAM,MAAS,GAAA,CAAA,CAAA;AAE3C,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAErC,IAAA,MAAM,gBAAgB,QAAW,GAAA,KAAA,CAAA;AACjC,IAAA,MAAM,gBAAgB,QAAW,GAAA,MAAA,CAAA;AAEjC,IAAE,CAAA,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAC,aAAA,CAAA;AAC/B,IAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAK,GAAA,UAAA,GAAa,KAAS,GAAA,aAAA,CAAA;AACtD,IAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,KAAA,GAAS,cAAc,KAAS,GAAA,aAAA,CAAA;AAC/D,IAAE,CAAA,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,KAAQ,GAAA,aAAA,CAAA;AAEvC,IAAE,CAAA,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAE,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAC,aAAA,CAAA;AAC7B,IAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAK,GAAA,UAAA,GAAa,KAAS,GAAA,aAAA,CAAA;AACtD,IAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,MAAA,GAAU,gBAAgB,KAAS,GAAA,aAAA,CAAA;AACnE,IAAE,CAAA,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,MAAS,GAAA,aAAA,CAAA;AAEzC,IAAK,IAAA,CAAA,SAAA,CAAU,WAAW,CAAA,CAAE,MAAO,EAAA,CAAA;AAAA,GACvC;AAAA;AAAA,EAGO,SACP,GAAA;AACI,IAAA,MAAM,MAAM,IAAK,CAAA,GAAA,CAAA;AAEjB,IAAI,GAAA,CAAA,CAAC,CAAI,GAAA,GAAA,CAAI,CAAC,CAAA,GAAI,IAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AACtC,IAAI,GAAA,CAAA,CAAC,CAAI,GAAA,GAAA,CAAI,CAAC,CAAA,GAAI,IAAI,CAAC,CAAA,GAAI,GAAI,CAAA,CAAC,CAAI,GAAA,CAAA,CAAA;AAEpC,IAAI,GAAA,CAAA,CAAC,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,IAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AACvC,IAAI,GAAA,CAAA,EAAE,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,IAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AAExC,IAAM,MAAA,IAAA,GAAO,IAAM,IAAK,CAAA,cAAA,CAAA;AACxB,IAAM,MAAA,IAAA,GAAO,IAAM,IAAK,CAAA,eAAA,CAAA;AAExB,IAAA,GAAA,CAAI,CAAC,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,IAAA,GAAO,IAAK,CAAA,UAAA,CAAA;AACnD,IAAA,GAAA,CAAI,CAAC,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,IAAA,GAAO,IAAK,CAAA,UAAA,CAAA;AAEnD,IAAA,GAAA,CAAI,CAAC,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA,GAAK,OAAO,IAAK,CAAA,WAAA,CAAA;AACxD,IAAA,GAAA,CAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,GAAA,CAAI,EAAE,CAAA,GAAI,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA,GAAK,OAAO,IAAK,CAAA,aAAA,CAAA;AAEzD,IAAK,IAAA,CAAA,SAAA,CAAU,KAAK,CAAA,CAAE,MAAO,EAAA,CAAA;AAAA,GACjC;AACJ,CAAA,CAAA;AAAA;AAtIa,kBAAA,CAGK,cAA2C,GAAA;AAAA;AAAA,EAErD,KAAO,EAAA,GAAA;AAAA;AAAA,EAEP,MAAQ,EAAA,GAAA;AAAA;AAAA,EAER,SAAW,EAAA,EAAA;AAAA;AAAA,EAEX,SAAW,EAAA,EAAA;AAAA;AAAA,EAEX,UAAY,EAAA,EAAA;AAAA;AAAA,EAEZ,YAAc,EAAA,EAAA;AAAA;AAAA,EAGd,aAAe,EAAA,GAAA;AAAA;AAAA,EAEf,cAAgB,EAAA,GAAA;AACpB,CAAA,CAAA;AArBG,IAAM,iBAAN,GAAA;;;;"}