@visactor/vrender-core 1.0.46-alpha.1 → 1.0.46-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/cjs/canvas/empty-context.js +2 -1
  2. package/cjs/color-string/index.js +1 -2
  3. package/cjs/common/diff.js +2 -1
  4. package/cjs/common/event-transformer.js +1 -2
  5. package/cjs/common/render-area.js +1 -1
  6. package/cjs/common/render-command-list.js +1 -1
  7. package/cjs/common/render-curve.js +1 -1
  8. package/cjs/common/render-utils.js +1 -1
  9. package/cjs/common/seg-context.js +1 -1
  10. package/cjs/common/simplify.js +2 -1
  11. package/cjs/common/sort.js +1 -1
  12. package/cjs/common/split-path.js +1 -1
  13. package/cjs/common/store.js +1 -1
  14. package/cjs/common/text.js +1 -1
  15. package/cjs/common/utils.js +1 -1
  16. package/cjs/core/application.js +1 -1
  17. package/cjs/core/camera.js +1 -1
  18. package/cjs/core/constants.js +1 -1
  19. package/cjs/core/core-modules.js +1 -1
  20. package/cjs/core/global-module.js +0 -2
  21. package/cjs/core/global.js +1 -1
  22. package/cjs/core/graphic-utils.js +1 -1
  23. package/cjs/core/index.js +1 -1
  24. package/cjs/core/layer-service.js +1 -2
  25. package/cjs/core/layer.js +1 -1
  26. package/cjs/core/light.js +1 -1
  27. package/cjs/core/stage.js +1 -1
  28. package/cjs/core/window.js +1 -1
  29. package/cjs/event/constant.js +1 -1
  30. package/cjs/event/event-manager.js +1 -1
  31. package/cjs/interface/graphic.d.ts +1 -1
  32. package/cjs/interface/graphic.js.map +1 -1
  33. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.d.ts +2 -2
  34. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +36 -10
  35. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  36. package/dist/index.es.js +53 -11
  37. package/es/canvas/empty-context.js +2 -1
  38. package/es/color-string/index.js +1 -2
  39. package/es/common/diff.js +2 -1
  40. package/es/common/event-transformer.js +1 -2
  41. package/es/common/render-area.js +1 -1
  42. package/es/common/render-command-list.js +1 -1
  43. package/es/common/render-curve.js +1 -1
  44. package/es/common/render-utils.js +1 -1
  45. package/es/common/seg-context.js +1 -1
  46. package/es/common/simplify.js +2 -1
  47. package/es/common/sort.js +1 -1
  48. package/es/common/split-path.js +1 -1
  49. package/es/common/store.js +1 -1
  50. package/es/common/text.js +1 -1
  51. package/es/common/utils.js +1 -1
  52. package/es/core/application.js +1 -1
  53. package/es/core/camera.js +1 -1
  54. package/es/core/constants.js +1 -1
  55. package/es/core/core-modules.js +1 -1
  56. package/es/core/global-module.js +0 -2
  57. package/es/core/global.js +1 -1
  58. package/es/core/graphic-utils.js +1 -1
  59. package/es/core/index.js +1 -1
  60. package/es/core/layer-service.js +1 -2
  61. package/es/core/layer.js +1 -1
  62. package/es/core/light.js +1 -1
  63. package/es/core/stage.js +1 -1
  64. package/es/core/window.js +1 -1
  65. package/es/event/constant.js +1 -1
  66. package/es/event/event-manager.js +1 -1
  67. package/es/interface/graphic.d.ts +1 -1
  68. package/es/interface/graphic.js.map +1 -1
  69. package/es/render/contributions/render/contributions/base-texture-contribution-render.d.ts +2 -2
  70. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +36 -10
  71. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  72. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/contributions/base-texture-contribution-render.ts"],"names":[],"mappings":"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","file":"base-texture-contribution-render.js","sourcesContent":["import { canvasAllocate } from '../../../../allocator/canvas-allocate';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { createSymbol } from '../../../../graphic';\nimport type {\n IBaseRenderContribution,\n ICanvas,\n IContext2d,\n IDrawContext,\n IGraphic,\n IGraphicAttribute,\n IStage,\n ISymbol,\n IThemeAttribute\n} from '../../../../interface';\nimport { pi2 } from '@visactor/vutils';\n\nfunction formatRatio(ratio: number) {\n if (ratio <= 0.5) {\n return ratio * 4 - 1;\n }\n return -4 * ratio + 3;\n}\n\nfunction drawWave(\n ctx: IContext2d,\n ratio: number,\n boundsWidth: number,\n boundsHeight: number,\n textureOptions: {\n fill?: string;\n percent?: number;\n frequency?: number;\n amplitude?: number;\n opacity?: number;\n phi?: number;\n },\n offsetX: number,\n offsetY: number\n) {\n const { fill = 'orange', percent = 0.6, frequency = 4, opacity, phi = 0 } = textureOptions;\n let { amplitude = 10 } = textureOptions;\n amplitude = amplitude * formatRatio(ratio);\n\n const height = boundsHeight * (1 - percent);\n const width = boundsWidth;\n\n const step = Math.max(Math.round(width / 70), 2);\n ctx.beginPath();\n ctx.moveTo(0 + offsetX, boundsHeight + offsetY);\n ctx.lineTo(0 + offsetX, height + offsetY);\n const delta = (width / frequency) * ratio;\n const c = width / Math.PI / (frequency * 2);\n\n for (let i = 0; i < width; i += step) {\n const y = amplitude * Math.sin((i + delta + phi) / c + phi);\n ctx.lineTo(i + offsetX, height + y + offsetY);\n }\n\n ctx.lineTo(width + offsetX, boundsHeight + offsetY);\n ctx.closePath();\n\n ctx.fillStyle = fill;\n if (isFinite(opacity)) {\n ctx.globalAlpha = opacity;\n }\n ctx.fill();\n}\n\nexport class DefaultBaseTextureRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n textureMap?: Map<string | HTMLImageElement | HTMLCanvasElement, CanvasPattern>;\n order: number = 10;\n _tempSymbolGraphic: ISymbol | null = null;\n\n createCommonPattern(\n size: number,\n padding: number,\n color: string,\n targetContext: IContext2d,\n cb: (r: number, targetContext: IContext2d) => void\n ) {\n const r = (size - padding * 2) / 2;\n const dpr = targetContext.dpr;\n const canvas = canvasAllocate.allocate({ width: size, height: size, dpr });\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n }\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.clearRect(0, 0, size, size);\n //setup up design for pattern\n cb(r, ctx);\n const pattern = targetContext.createPattern(canvas.nativeCanvas, 'repeat');\n pattern.setTransform && pattern.setTransform(new DOMMatrix([1 / dpr, 0, 0, 1 / dpr, 0, 0]));\n\n canvasAllocate.free(canvas);\n return pattern;\n }\n\n createCirclePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.fillStyle = color;\n ctx.arc(r, r, r, 0, pi2);\n ctx.fill();\n });\n }\n\n createDiamondPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = size / 2;\n const y = x;\n ctx.fillStyle = color;\n ctx.moveTo(x, y - r);\n ctx.lineTo(r + x, y);\n ctx.lineTo(x, y + r);\n ctx.lineTo(x - r, y);\n ctx.closePath();\n ctx.fill();\n });\n }\n\n createRectPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = x;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r * 2, r * 2);\n });\n }\n\n createVerticalLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = 0;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r * 2, size);\n });\n }\n\n createHorizontalLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = 0;\n const y = padding;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, size, r * 2);\n });\n }\n\n createBiasLRLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.strokeStyle = color;\n ctx.lineWidth = r;\n ctx.moveTo(0, 0);\n ctx.lineTo(size, size);\n const dx = size / 2;\n const dy = -dx;\n ctx.moveTo(dx, dy);\n ctx.lineTo(dx + size, dy + size);\n ctx.moveTo(-dx, -dy);\n ctx.lineTo(-dx + size, -dy + size);\n ctx.stroke();\n });\n }\n\n createBiasRLLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.strokeStyle = color;\n ctx.lineWidth = r;\n ctx.moveTo(size, 0);\n ctx.lineTo(0, size);\n const dx = size / 2;\n const dy = dx;\n ctx.moveTo(size + dx, dy);\n ctx.lineTo(dx, dy + size);\n ctx.moveTo(size - dx, -dy);\n ctx.lineTo(-dx, -dy + size);\n ctx.stroke();\n });\n }\n\n createGridPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = x;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r, r);\n ctx.fillRect(x + r, y + r, r, r);\n });\n }\n\n initTextureMap(ctx: IContext2d, stage: IStage) {\n this.textureMap = new Map();\n // ResourceLoader.GetImage(rect1, {\n // imageLoadFail: () => {\n // return;\n // },\n // imageLoadSuccess: (url, img) => {\n // const pattern = ctx.createPattern(img, 'repeat');\n // this.textureMap.set('rect1', pattern);\n // stage && stage.renderNextFrame();\n // }\n // });\n }\n\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n if (!this.textureMap) {\n this.initTextureMap(context, graphic.stage);\n }\n const {\n texture = graphicAttribute.texture,\n textureColor = graphicAttribute.textureColor,\n textureSize = graphicAttribute.textureSize,\n texturePadding = graphicAttribute.texturePadding\n } = graphic.attribute;\n if (!texture) {\n return;\n }\n this.drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding);\n }\n\n protected drawTexture(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n graphicAttribute: Required<IGraphicAttribute>,\n textureColor: string,\n textureSize: number,\n texturePadding: number\n ) {\n const { textureRatio = graphicAttribute.textureRatio, textureOptions = null } = graphic.attribute;\n let pattern: CanvasPattern = null;\n const patternKey = this.getPatternCacheKey(texture, textureSize, texturePadding, textureColor, context.dpr);\n if (patternKey !== null) {\n pattern = this.textureMap.get(patternKey);\n }\n\n if (!pattern) {\n if (typeof texture === 'string') {\n switch (texture) {\n case 'circle':\n pattern = this.createCirclePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'diamond':\n pattern = this.createDiamondPattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'rect':\n pattern = this.createRectPattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'vertical-line':\n pattern = this.createVerticalLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'horizontal-line':\n pattern = this.createHorizontalLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'bias-lr':\n pattern = this.createBiasLRLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'bias-rl':\n pattern = this.createBiasRLLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'grid':\n pattern = this.createGridPattern(textureSize, texturePadding, textureColor, context);\n break;\n }\n }\n if (!pattern) {\n pattern = this.createResourcePattern(texture, graphic, context);\n }\n if (pattern && patternKey !== null) {\n this.textureMap.set(patternKey, pattern);\n }\n }\n\n if (typeof texture === 'string' && textureOptions && textureOptions.dynamicTexture) {\n // 动态纹理\n const { gridConfig = {}, useNewCanvas } = textureOptions;\n const b = graphic.AABBBounds;\n x = b.x1;\n y = b.y1;\n const originalContext = context;\n\n let newCanvas: ICanvas;\n if (useNewCanvas) {\n newCanvas = canvasAllocate.allocate({ width: b.width(), height: b.height(), dpr: context.dpr });\n const ctx = newCanvas.getContext('2d');\n ctx.clearRect(0, 0, b.width(), b.height());\n x = 0;\n y = 0;\n context = ctx;\n }\n originalContext.save();\n // 避免本级已经transform过了,再用Bounds就重复了\n if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n originalContext.setTransformFromMatrix(graphic.parent.globalTransMatrix);\n originalContext.translate(scrollX, scrollY, true);\n }\n originalContext.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n originalContext.clip();\n\n const width = b.width();\n const height = b.height();\n const padding = texturePadding;\n const cellSize = textureSize;\n const gridColumns = gridConfig.columns ? gridConfig.columns : Math.ceil(width / cellSize);\n const gridRows = gridConfig.rows ? gridConfig.rows : Math.ceil(height / cellSize);\n const gutterColumn = gridConfig.gutterColumn ? gridConfig.gutterColumn : padding * 2;\n const gutterRow = gridConfig.gutterRow ? gridConfig.gutterRow : padding * 2;\n if (!this._tempSymbolGraphic) {\n this._tempSymbolGraphic = createSymbol({});\n }\n const sizeW = gridConfig.columns ? width / gridConfig.columns : cellSize;\n const sizeH = gridConfig.rows ? height / gridConfig.rows : cellSize;\n this._tempSymbolGraphic.setAttributes({\n size: [sizeW - gutterColumn, sizeH - gutterRow],\n symbolType: texture\n });\n const parsedPath = this._tempSymbolGraphic.getParsedPath();\n for (let i = 0; i < gridRows; i++) {\n for (let j = 0; j < gridColumns; j++) {\n const _x = x + cellSize / 2 + j * cellSize;\n const _y = y + cellSize / 2 + i * cellSize;\n textureOptions.beforeDynamicTexture?.(\n context,\n i,\n j,\n gridRows,\n gridColumns,\n textureRatio,\n graphic,\n b.width(),\n b.height()\n );\n context.beginPath();\n if (parsedPath.draw(context, Math.min(sizeW - gutterColumn, sizeH - gutterRow), _x, _y, 0) === false) {\n context.closePath();\n }\n context.fillStyle = textureColor;\n textureOptions.dynamicTexture(\n context,\n i,\n j,\n gridRows,\n gridColumns,\n textureRatio,\n graphic,\n b.width(),\n b.height()\n );\n }\n }\n if (useNewCanvas) {\n // 不使用外部的opacity,动态纹理的opacity自己设置\n originalContext.globalAlpha = 1;\n originalContext.drawImage(\n newCanvas.nativeCanvas,\n 0,\n 0,\n newCanvas.nativeCanvas.width,\n newCanvas.nativeCanvas.height,\n b.x1,\n b.y1,\n b.width() * originalContext.dpr,\n b.height() * originalContext.dpr\n );\n }\n\n originalContext.restore();\n } else if (pattern) {\n if (pattern.setTransform) {\n const alignToGraphic = !!textureOptions?.alignToGraphic;\n const alignOffsetX = textureOptions?.alignOffsetX ?? 0;\n const alignOffsetY = textureOptions?.alignOffsetY ?? 0;\n let translateX = 0;\n let translateY = 0;\n if (alignToGraphic) {\n // 将 pattern 原点对齐到图形的绘制原点(当前 context 坐标系)\n const m = context.currentMatrix;\n const e = m?.e ?? 0;\n const f = m?.f ?? 0;\n // 直接在用户坐标系下对齐(包含 context 的平移)\n const ux = e + x + alignOffsetX;\n const uy = f + y + alignOffsetY;\n translateX = ux;\n translateY = uy;\n } else if (alignOffsetX || alignOffsetY) {\n translateX = alignOffsetX;\n translateY = alignOffsetY;\n }\n // pattern 的 transform 使用用户坐标系单位(不再额外乘 dpr)\n pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, translateX, translateY]));\n }\n context.highPerformanceSave();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.fillStyle = pattern;\n context.fill();\n context.highPerformanceRestore();\n } else if (texture === 'wave') {\n context.save();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.clip();\n const b = graphic.AABBBounds;\n drawWave(\n context,\n textureRatio,\n b.width(),\n b.height(),\n { ...(textureOptions || {}), fill: textureColor },\n x + b.x1 - x,\n y + b.y1 - y\n );\n context.restore();\n }\n }\n\n protected getPatternCacheKey(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n textureSize: number,\n texturePadding: number,\n textureColor: string,\n dpr: number\n ) {\n if (typeof texture !== 'string') {\n return texture;\n }\n if (texture === 'wave') {\n return null;\n }\n return `${texture}-${textureSize}-${texturePadding}-${textureColor}-${dpr}`;\n }\n\n protected createResourcePattern(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n graphic: IGraphic,\n context: IContext2d\n ) {\n const resource = graphic.resources?.get(texture as any);\n const data = resource?.state === 'success' ? resource.data : typeof texture === 'object' ? texture : null;\n if (!data) {\n return null;\n }\n const pattern = context.createPattern(data, 'repeat');\n pattern?.setTransform && pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, 0, 0]));\n return pattern;\n }\n}\n\nexport const defaultBaseTextureRenderContribution = new DefaultBaseTextureRenderContribution();\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/contributions/base-texture-contribution-render.ts"],"names":[],"mappings":"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","file":"base-texture-contribution-render.js","sourcesContent":["import { canvasAllocate } from '../../../../allocator/canvas-allocate';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { createSymbol } from '../../../../graphic';\nimport type {\n IBaseRenderContribution,\n ICanvas,\n IContext2d,\n IDrawContext,\n IGraphic,\n IGraphicAttribute,\n IStage,\n ISymbol,\n IThemeAttribute\n} from '../../../../interface';\nimport { pi2 } from '@visactor/vutils';\n\nfunction formatRatio(ratio: number) {\n if (ratio <= 0.5) {\n return ratio * 4 - 1;\n }\n return -4 * ratio + 3;\n}\n\nfunction drawWave(\n ctx: IContext2d,\n ratio: number,\n boundsWidth: number,\n boundsHeight: number,\n textureOptions: {\n fill?: string;\n percent?: number;\n frequency?: number;\n amplitude?: number;\n opacity?: number;\n phi?: number;\n },\n offsetX: number,\n offsetY: number\n) {\n const { fill = 'orange', percent = 0.6, frequency = 4, opacity, phi = 0 } = textureOptions;\n let { amplitude = 10 } = textureOptions;\n amplitude = amplitude * formatRatio(ratio);\n\n const height = boundsHeight * (1 - percent);\n const width = boundsWidth;\n\n const step = Math.max(Math.round(width / 70), 2);\n ctx.beginPath();\n ctx.moveTo(0 + offsetX, boundsHeight + offsetY);\n ctx.lineTo(0 + offsetX, height + offsetY);\n const delta = (width / frequency) * ratio;\n const c = width / Math.PI / (frequency * 2);\n\n for (let i = 0; i < width; i += step) {\n const y = amplitude * Math.sin((i + delta + phi) / c + phi);\n ctx.lineTo(i + offsetX, height + y + offsetY);\n }\n\n ctx.lineTo(width + offsetX, boundsHeight + offsetY);\n ctx.closePath();\n\n ctx.fillStyle = fill;\n if (isFinite(opacity)) {\n ctx.globalAlpha = opacity;\n }\n ctx.fill();\n}\n\nexport class DefaultBaseTextureRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n textureMap?: Map<string | HTMLImageElement | HTMLCanvasElement, CanvasPattern>;\n order: number = 10;\n _tempSymbolGraphic: ISymbol | null = null;\n\n createCommonPattern(\n size: number,\n padding: number,\n color: string,\n targetContext: IContext2d,\n cb: (r: number, targetContext: IContext2d) => void\n ) {\n const r = (size - padding * 2) / 2;\n const dpr = targetContext.dpr;\n const canvas = canvasAllocate.allocate({ width: size, height: size, dpr });\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n }\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.clearRect(0, 0, size, size);\n //setup up design for pattern\n cb(r, ctx);\n const pattern = targetContext.createPattern(canvas.nativeCanvas, 'repeat');\n pattern.setTransform && pattern.setTransform(new DOMMatrix([1 / dpr, 0, 0, 1 / dpr, 0, 0]));\n\n canvasAllocate.free(canvas);\n return pattern;\n }\n\n createCirclePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.fillStyle = color;\n ctx.arc(r, r, r, 0, pi2);\n ctx.fill();\n });\n }\n\n createDiamondPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = size / 2;\n const y = x;\n ctx.fillStyle = color;\n ctx.moveTo(x, y - r);\n ctx.lineTo(r + x, y);\n ctx.lineTo(x, y + r);\n ctx.lineTo(x - r, y);\n ctx.closePath();\n ctx.fill();\n });\n }\n\n createRectPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = x;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r * 2, r * 2);\n });\n }\n\n createVerticalLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = 0;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r * 2, size);\n });\n }\n\n createHorizontalLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = 0;\n const y = padding;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, size, r * 2);\n });\n }\n\n createBiasLRLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.strokeStyle = color;\n ctx.lineWidth = r;\n ctx.moveTo(0, 0);\n ctx.lineTo(size, size);\n const dx = size / 2;\n const dy = -dx;\n ctx.moveTo(dx, dy);\n ctx.lineTo(dx + size, dy + size);\n ctx.moveTo(-dx, -dy);\n ctx.lineTo(-dx + size, -dy + size);\n ctx.stroke();\n });\n }\n\n createBiasRLLinePattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n ctx.strokeStyle = color;\n ctx.lineWidth = r;\n ctx.moveTo(size, 0);\n ctx.lineTo(0, size);\n const dx = size / 2;\n const dy = dx;\n ctx.moveTo(size + dx, dy);\n ctx.lineTo(dx, dy + size);\n ctx.moveTo(size - dx, -dy);\n ctx.lineTo(-dx, -dy + size);\n ctx.stroke();\n });\n }\n\n createGridPattern(size: number, padding: number, color: string, targetContext: IContext2d) {\n return this.createCommonPattern(size, padding, color, targetContext, (r, ctx) => {\n const x = padding;\n const y = x;\n ctx.fillStyle = color;\n ctx.fillRect(x, y, r, r);\n ctx.fillRect(x + r, y + r, r, r);\n });\n }\n\n initTextureMap(ctx: IContext2d, stage: IStage) {\n this.textureMap = new Map();\n // ResourceLoader.GetImage(rect1, {\n // imageLoadFail: () => {\n // return;\n // },\n // imageLoadSuccess: (url, img) => {\n // const pattern = ctx.createPattern(img, 'repeat');\n // this.textureMap.set('rect1', pattern);\n // stage && stage.renderNextFrame();\n // }\n // });\n }\n\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n if (!this.textureMap) {\n this.initTextureMap(context, graphic.stage);\n }\n const {\n texture = graphicAttribute.texture,\n textureColor = graphicAttribute.textureColor,\n textureSize = graphicAttribute.textureSize,\n texturePadding = graphicAttribute.texturePadding\n } = graphic.attribute;\n if (!texture) {\n return;\n }\n this.drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding);\n }\n\n protected drawTexture(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n graphicAttribute: Required<IGraphicAttribute>,\n textureColor: string,\n textureSize: number,\n texturePadding: number\n ) {\n const { textureRatio = graphicAttribute.textureRatio, textureOptions = null } = graphic.attribute;\n let pattern: CanvasPattern = null;\n const textureRadius = textureOptions?.radius ?? 0;\n const patternKey = this.getPatternCacheKey(\n texture,\n textureSize,\n texturePadding,\n textureColor,\n context.dpr,\n textureRadius\n );\n if (patternKey !== null) {\n pattern = this.textureMap.get(patternKey);\n }\n\n if (!pattern) {\n if (typeof texture === 'string') {\n switch (texture) {\n case 'circle':\n pattern = this.createCirclePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'diamond':\n pattern = this.createDiamondPattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'rect':\n pattern = this.createRectPattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'vertical-line':\n pattern = this.createVerticalLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'horizontal-line':\n pattern = this.createHorizontalLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'bias-lr':\n pattern = this.createBiasLRLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'bias-rl':\n pattern = this.createBiasRLLinePattern(textureSize, texturePadding, textureColor, context);\n break;\n case 'grid':\n pattern = this.createGridPattern(textureSize, texturePadding, textureColor, context);\n break;\n }\n }\n if (!pattern) {\n pattern = this.createResourcePattern(texture, graphic, context, texturePadding, textureRadius);\n }\n if (pattern && patternKey !== null) {\n this.textureMap.set(patternKey, pattern);\n }\n }\n\n if (typeof texture === 'string' && textureOptions && textureOptions.dynamicTexture) {\n // 动态纹理\n const { gridConfig = {}, useNewCanvas } = textureOptions;\n const b = graphic.AABBBounds;\n x = b.x1;\n y = b.y1;\n const originalContext = context;\n\n let newCanvas: ICanvas;\n if (useNewCanvas) {\n newCanvas = canvasAllocate.allocate({ width: b.width(), height: b.height(), dpr: context.dpr });\n const ctx = newCanvas.getContext('2d');\n ctx.clearRect(0, 0, b.width(), b.height());\n x = 0;\n y = 0;\n context = ctx;\n }\n originalContext.save();\n // 避免本级已经transform过了,再用Bounds就重复了\n if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n originalContext.setTransformFromMatrix(graphic.parent.globalTransMatrix);\n originalContext.translate(scrollX, scrollY, true);\n }\n originalContext.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n originalContext.clip();\n\n const width = b.width();\n const height = b.height();\n const padding = texturePadding;\n const cellSize = textureSize;\n const gridColumns = gridConfig.columns ? gridConfig.columns : Math.ceil(width / cellSize);\n const gridRows = gridConfig.rows ? gridConfig.rows : Math.ceil(height / cellSize);\n const gutterColumn = gridConfig.gutterColumn ? gridConfig.gutterColumn : padding * 2;\n const gutterRow = gridConfig.gutterRow ? gridConfig.gutterRow : padding * 2;\n if (!this._tempSymbolGraphic) {\n this._tempSymbolGraphic = createSymbol({});\n }\n const sizeW = gridConfig.columns ? width / gridConfig.columns : cellSize;\n const sizeH = gridConfig.rows ? height / gridConfig.rows : cellSize;\n this._tempSymbolGraphic.setAttributes({\n size: [sizeW - gutterColumn, sizeH - gutterRow],\n symbolType: texture\n });\n const parsedPath = this._tempSymbolGraphic.getParsedPath();\n for (let i = 0; i < gridRows; i++) {\n for (let j = 0; j < gridColumns; j++) {\n const _x = x + cellSize / 2 + j * cellSize;\n const _y = y + cellSize / 2 + i * cellSize;\n textureOptions.beforeDynamicTexture?.(\n context,\n i,\n j,\n gridRows,\n gridColumns,\n textureRatio,\n graphic,\n b.width(),\n b.height()\n );\n context.beginPath();\n if (parsedPath.draw(context, Math.min(sizeW - gutterColumn, sizeH - gutterRow), _x, _y, 0) === false) {\n context.closePath();\n }\n context.fillStyle = textureColor;\n textureOptions.dynamicTexture(\n context,\n i,\n j,\n gridRows,\n gridColumns,\n textureRatio,\n graphic,\n b.width(),\n b.height()\n );\n }\n }\n if (useNewCanvas) {\n // 不使用外部的opacity,动态纹理的opacity自己设置\n originalContext.globalAlpha = 1;\n originalContext.drawImage(\n newCanvas.nativeCanvas,\n 0,\n 0,\n newCanvas.nativeCanvas.width,\n newCanvas.nativeCanvas.height,\n b.x1,\n b.y1,\n b.width() * originalContext.dpr,\n b.height() * originalContext.dpr\n );\n }\n\n originalContext.restore();\n } else if (pattern) {\n if (pattern.setTransform) {\n const alignToGraphic = !!textureOptions?.alignToGraphic;\n const alignOffsetX = textureOptions?.alignOffsetX ?? 0;\n const alignOffsetY = textureOptions?.alignOffsetY ?? 0;\n let translateX = 0;\n let translateY = 0;\n if (alignToGraphic) {\n // 将 pattern 原点对齐到图形的绘制原点(当前 context 坐标系)\n const m = context.currentMatrix;\n const e = m?.e ?? 0;\n const f = m?.f ?? 0;\n // 直接在用户坐标系下对齐(包含 context 的平移)\n const ux = e + x + alignOffsetX;\n const uy = f + y + alignOffsetY;\n translateX = ux;\n translateY = uy;\n } else if (alignOffsetX || alignOffsetY) {\n translateX = alignOffsetX;\n translateY = alignOffsetY;\n }\n // pattern 的 transform 使用用户坐标系单位(不再额外乘 dpr)\n pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, translateX, translateY]));\n }\n context.highPerformanceSave();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.fillStyle = pattern;\n context.fill();\n context.highPerformanceRestore();\n } else if (texture === 'wave') {\n context.save();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.clip();\n const b = graphic.AABBBounds;\n drawWave(\n context,\n textureRatio,\n b.width(),\n b.height(),\n { ...(textureOptions || {}), fill: textureColor },\n x + b.x1 - x,\n y + b.y1 - y\n );\n context.restore();\n }\n }\n\n protected getPatternCacheKey(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n textureSize: number,\n texturePadding: number,\n textureColor: string,\n dpr: number,\n textureRadius: number\n ) {\n if (typeof texture !== 'string') {\n // 图片纹理在有 padding / 圆角时会生成新的 tile,避免缓存冲突\n return texturePadding > 0 || textureRadius > 0 ? null : texture;\n }\n if (texture === 'wave') {\n return null;\n }\n return `${texture}-${textureSize}-${texturePadding}-${textureColor}-${dpr}`;\n }\n\n protected createResourcePattern(\n texture: string | HTMLImageElement | HTMLCanvasElement,\n graphic: IGraphic,\n context: IContext2d,\n texturePadding: number,\n textureRadius: number\n ) {\n const resource = graphic.resources?.get(texture as any);\n const data = resource?.state === 'success' ? resource.data : typeof texture === 'object' ? texture : null;\n if (!data) {\n return null;\n }\n if (texturePadding > 0 || textureRadius > 0) {\n const w = (data as HTMLImageElement).naturalWidth || (data as HTMLCanvasElement).width;\n const h = (data as HTMLImageElement).naturalHeight || (data as HTMLCanvasElement).height;\n if (w > 0 && h > 0) {\n const tileW = w + texturePadding * 2;\n const tileH = h + texturePadding * 2;\n const canvas = canvasAllocate.allocate({ width: tileW, height: tileH, dpr: context.dpr });\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.clearRect(0, 0, tileW, tileH);\n if (textureRadius > 0) {\n // 先裁剪出图案本身的圆角矩形(不包含四周 padding)\n const r = Math.max(0, Math.min(textureRadius, Math.min(w, h) / 2));\n const x0 = texturePadding;\n const y0 = texturePadding;\n const x1 = x0 + w;\n const y1 = y0 + h;\n ctx.beginPath();\n ctx.moveTo(x0 + r, y0);\n ctx.lineTo(x1 - r, y0);\n ctx.quadraticCurveTo(x1, y0, x1, y0 + r);\n ctx.lineTo(x1, y1 - r);\n ctx.quadraticCurveTo(x1, y1, x1 - r, y1);\n ctx.lineTo(x0 + r, y1);\n ctx.quadraticCurveTo(x0, y1, x0, y1 - r);\n ctx.lineTo(x0, y0 + r);\n ctx.quadraticCurveTo(x0, y0, x0 + r, y0);\n ctx.closePath();\n ctx.clip();\n }\n // 在四周留出 padding 间隙\n ctx.drawImage(data as any, texturePadding, texturePadding, w, h);\n const pattern = context.createPattern(canvas.nativeCanvas as any, 'repeat');\n pattern?.setTransform && pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, 0, 0]));\n canvasAllocate.free(canvas);\n return pattern;\n }\n canvasAllocate.free(canvas);\n }\n }\n const pattern = context.createPattern(data as any, 'repeat');\n pattern?.setTransform && pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, 0, 0]));\n return pattern;\n }\n}\n\nexport const defaultBaseTextureRenderContribution = new DefaultBaseTextureRenderContribution();\n"]}
package/dist/index.es.js CHANGED
@@ -17802,10 +17802,11 @@ class DefaultBaseTextureRenderContribution {
17802
17802
  this.drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding);
17803
17803
  }
17804
17804
  drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding) {
17805
- var _a, _b, _c, _d, _e;
17805
+ var _a, _b, _c, _d, _e, _f;
17806
17806
  const { textureRatio = graphicAttribute.textureRatio, textureOptions = null } = graphic.attribute;
17807
17807
  let pattern = null;
17808
- const patternKey = this.getPatternCacheKey(texture, textureSize, texturePadding, textureColor, context.dpr);
17808
+ const textureRadius = (_a = textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.radius) !== null && _a !== void 0 ? _a : 0;
17809
+ const patternKey = this.getPatternCacheKey(texture, textureSize, texturePadding, textureColor, context.dpr, textureRadius);
17809
17810
  if (patternKey !== null) {
17810
17811
  pattern = this.textureMap.get(patternKey);
17811
17812
  }
@@ -17839,7 +17840,7 @@ class DefaultBaseTextureRenderContribution {
17839
17840
  }
17840
17841
  }
17841
17842
  if (!pattern) {
17842
- pattern = this.createResourcePattern(texture, graphic, context);
17843
+ pattern = this.createResourcePattern(texture, graphic, context, texturePadding, textureRadius);
17843
17844
  }
17844
17845
  if (pattern && patternKey !== null) {
17845
17846
  this.textureMap.set(patternKey, pattern);
@@ -17890,7 +17891,7 @@ class DefaultBaseTextureRenderContribution {
17890
17891
  for (let j = 0; j < gridColumns; j++) {
17891
17892
  const _x = x + cellSize / 2 + j * cellSize;
17892
17893
  const _y = y + cellSize / 2 + i * cellSize;
17893
- (_a = textureOptions.beforeDynamicTexture) === null || _a === void 0 ? void 0 : _a.call(textureOptions, context, i, j, gridRows, gridColumns, textureRatio, graphic, b.width(), b.height());
17894
+ (_b = textureOptions.beforeDynamicTexture) === null || _b === void 0 ? void 0 : _b.call(textureOptions, context, i, j, gridRows, gridColumns, textureRatio, graphic, b.width(), b.height());
17894
17895
  context.beginPath();
17895
17896
  if (parsedPath.draw(context, Math.min(sizeW - gutterColumn, sizeH - gutterRow), _x, _y, 0) === false) {
17896
17897
  context.closePath();
@@ -17908,14 +17909,14 @@ class DefaultBaseTextureRenderContribution {
17908
17909
  else if (pattern) {
17909
17910
  if (pattern.setTransform) {
17910
17911
  const alignToGraphic = !!(textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.alignToGraphic);
17911
- const alignOffsetX = (_b = textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.alignOffsetX) !== null && _b !== void 0 ? _b : 0;
17912
- const alignOffsetY = (_c = textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.alignOffsetY) !== null && _c !== void 0 ? _c : 0;
17912
+ const alignOffsetX = (_c = textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.alignOffsetX) !== null && _c !== void 0 ? _c : 0;
17913
+ const alignOffsetY = (_d = textureOptions === null || textureOptions === void 0 ? void 0 : textureOptions.alignOffsetY) !== null && _d !== void 0 ? _d : 0;
17913
17914
  let translateX = 0;
17914
17915
  let translateY = 0;
17915
17916
  if (alignToGraphic) {
17916
17917
  const m = context.currentMatrix;
17917
- const e = (_d = m === null || m === void 0 ? void 0 : m.e) !== null && _d !== void 0 ? _d : 0;
17918
- const f = (_e = m === null || m === void 0 ? void 0 : m.f) !== null && _e !== void 0 ? _e : 0;
17918
+ const e = (_e = m === null || m === void 0 ? void 0 : m.e) !== null && _e !== void 0 ? _e : 0;
17919
+ const f = (_f = m === null || m === void 0 ? void 0 : m.f) !== null && _f !== void 0 ? _f : 0;
17919
17920
  const ux = e + x + alignOffsetX;
17920
17921
  const uy = f + y + alignOffsetY;
17921
17922
  translateX = ux;
@@ -17942,22 +17943,63 @@ class DefaultBaseTextureRenderContribution {
17942
17943
  context.restore();
17943
17944
  }
17944
17945
  }
17945
- getPatternCacheKey(texture, textureSize, texturePadding, textureColor, dpr) {
17946
+ getPatternCacheKey(texture, textureSize, texturePadding, textureColor, dpr, textureRadius) {
17946
17947
  if (typeof texture !== 'string') {
17947
- return texture;
17948
+ return texturePadding > 0 || textureRadius > 0 ? null : texture;
17948
17949
  }
17949
17950
  if (texture === 'wave') {
17950
17951
  return null;
17951
17952
  }
17952
17953
  return `${texture}-${textureSize}-${texturePadding}-${textureColor}-${dpr}`;
17953
17954
  }
17954
- createResourcePattern(texture, graphic, context) {
17955
+ createResourcePattern(texture, graphic, context, texturePadding, textureRadius) {
17955
17956
  var _a;
17956
17957
  const resource = (_a = graphic.resources) === null || _a === void 0 ? void 0 : _a.get(texture);
17957
17958
  const data = (resource === null || resource === void 0 ? void 0 : resource.state) === 'success' ? resource.data : typeof texture === 'object' ? texture : null;
17958
17959
  if (!data) {
17959
17960
  return null;
17960
17961
  }
17962
+ if (texturePadding > 0 || textureRadius > 0) {
17963
+ const w = data.naturalWidth || data.width;
17964
+ const h = data.naturalHeight || data.height;
17965
+ if (w > 0 && h > 0) {
17966
+ const tileW = w + texturePadding * 2;
17967
+ const tileH = h + texturePadding * 2;
17968
+ const canvas = canvasAllocate.allocate({ width: tileW, height: tileH, dpr: context.dpr });
17969
+ const ctx = canvas.getContext('2d');
17970
+ if (ctx) {
17971
+ ctx.inuse = true;
17972
+ ctx.clearMatrix();
17973
+ ctx.setTransformForCurrent(true);
17974
+ ctx.clearRect(0, 0, tileW, tileH);
17975
+ if (textureRadius > 0) {
17976
+ const r = Math.max(0, Math.min(textureRadius, Math.min(w, h) / 2));
17977
+ const x0 = texturePadding;
17978
+ const y0 = texturePadding;
17979
+ const x1 = x0 + w;
17980
+ const y1 = y0 + h;
17981
+ ctx.beginPath();
17982
+ ctx.moveTo(x0 + r, y0);
17983
+ ctx.lineTo(x1 - r, y0);
17984
+ ctx.quadraticCurveTo(x1, y0, x1, y0 + r);
17985
+ ctx.lineTo(x1, y1 - r);
17986
+ ctx.quadraticCurveTo(x1, y1, x1 - r, y1);
17987
+ ctx.lineTo(x0 + r, y1);
17988
+ ctx.quadraticCurveTo(x0, y1, x0, y1 - r);
17989
+ ctx.lineTo(x0, y0 + r);
17990
+ ctx.quadraticCurveTo(x0, y0, x0 + r, y0);
17991
+ ctx.closePath();
17992
+ ctx.clip();
17993
+ }
17994
+ ctx.drawImage(data, texturePadding, texturePadding, w, h);
17995
+ const pattern = context.createPattern(canvas.nativeCanvas, 'repeat');
17996
+ (pattern === null || pattern === void 0 ? void 0 : pattern.setTransform) && pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, 0, 0]));
17997
+ canvasAllocate.free(canvas);
17998
+ return pattern;
17999
+ }
18000
+ canvasAllocate.free(canvas);
18001
+ }
18002
+ }
17961
18003
  const pattern = context.createPattern(data, 'repeat');
17962
18004
  (pattern === null || pattern === void 0 ? void 0 : pattern.setTransform) && pattern.setTransform(new DOMMatrix([1 / context.dpr, 0, 0, 1 / context.dpr, 0, 0]));
17963
18005
  return pattern;
@@ -219,4 +219,5 @@ let EmptyContext2d = class {
219
219
 
220
220
  EmptyContext2d = __decorate([ injectable(), __metadata("design:paramtypes", [ Object, Number ]) ], EmptyContext2d);
221
221
 
222
- export { EmptyContext2d };
222
+ export { EmptyContext2d };
223
+ //# sourceMappingURL=empty-context.js.map
@@ -2,5 +2,4 @@ export * from "./interpolate";
2
2
 
3
3
  export * from "./store";
4
4
 
5
- export * from "./colorName";
6
- //# sourceMappingURL=index.js.map
5
+ export * from "./colorName";
package/es/common/diff.js CHANGED
@@ -8,4 +8,5 @@ export function diff(oldAttrs, newAttrs, getAttr) {
8
8
  void 0 !== value && (diffObj[key] = value);
9
9
  }
10
10
  return diffObj;
11
- }
11
+ }
12
+ //# sourceMappingURL=diff.js.map
@@ -77,5 +77,4 @@ export function mapToCanvasPointForCanvas(nativeEvent) {
77
77
  x: nativeEvent._canvasX || 0,
78
78
  y: nativeEvent._canvasY || 0
79
79
  };
80
- }
81
- //# sourceMappingURL=event-transformer.js.map
80
+ }
@@ -61,4 +61,4 @@ function drawAreaBlock(path, topList, bottomList, params) {
61
61
  }
62
62
  path.closePath();
63
63
  }
64
- //# sourceMappingURL=render-area.js.map
64
+ //# sourceMappingURL=render-area.js.map
@@ -6,4 +6,4 @@ export function renderCommandList(commandList, context, x = 0, y = 0, sx = 1, sy
6
6
  commandFuncs[command[0]](command, context, x, y, sx, sy, z);
7
7
  }
8
8
  }
9
- //# sourceMappingURL=render-command-list.js.map
9
+ //# sourceMappingURL=render-command-list.js.map
@@ -93,4 +93,4 @@ export function drawIncrementalAreaSegments(path, lastSeg, segments, params) {
93
93
  path.closePath();
94
94
  }));
95
95
  }
96
- //# sourceMappingURL=render-curve.js.map
96
+ //# sourceMappingURL=render-curve.js.map
@@ -11,4 +11,4 @@ export function drawSegItem(ctx, curve, endPercent, params) {
11
11
  ctx.lineTo(offsetX + p.x, offsetY + p.y, offsetZ);
12
12
  }
13
13
  }
14
- //# sourceMappingURL=render-utils.js.map
14
+ //# sourceMappingURL=render-utils.js.map
@@ -91,4 +91,4 @@ export class ReflectSegContext extends SegContext {
91
91
  return super.clear();
92
92
  }
93
93
  }
94
- //# sourceMappingURL=seg-context.js.map
94
+ //# sourceMappingURL=seg-context.js.map
@@ -29,4 +29,5 @@ function simplifyDouglasPeucker(points, sqTolerance) {
29
29
  export function flatten_simplify(points, tolerance, highestQuality) {
30
30
  if (points.length <= 10) return points;
31
31
  return points = highestQuality ? points : simplifyRadialDist(points, void 0 !== tolerance ? tolerance * tolerance : 1);
32
- }
32
+ }
33
+ //# sourceMappingURL=simplify.js.map
package/es/common/sort.js CHANGED
@@ -94,4 +94,4 @@ export function findNextGraphic(graphic, id, defaultZIndex, reverse = !1) {
94
94
  !1)), reverse);
95
95
  return result;
96
96
  }
97
- //# sourceMappingURL=sort.js.map
97
+ //# sourceMappingURL=sort.js.map
@@ -248,4 +248,4 @@ export const splitPath = (path, count) => {
248
248
  }
249
249
  return res;
250
250
  };
251
- //# sourceMappingURL=split-path.js.map
251
+ //# sourceMappingURL=split-path.js.map
@@ -1,2 +1,2 @@
1
1
  class StageStore {}
2
- //# sourceMappingURL=store.js.map
2
+ //# sourceMappingURL=store.js.map
package/es/common/text.js CHANGED
@@ -24,4 +24,4 @@ export function textAttributesToStyle(attrs) {
24
24
  attrs.underline ? style["text-decoration"] = "underline" : attrs.lineThrough && (style["text-decoration"] = "line-through"),
25
25
  attrs.fill && isString(attrs.fill) && (style.color = attrs.fill), style;
26
26
  }
27
- //# sourceMappingURL=text.js.map
27
+ //# sourceMappingURL=text.js.map
@@ -148,4 +148,4 @@ export const calculateLineHeight = (lineHeight, fontSize) => {
148
148
  const _lh = _calculateLineHeight(lineHeight, fontSize);
149
149
  return isNaN(_lh) ? _lh : Math.max(fontSize, _lh);
150
150
  };
151
- //# sourceMappingURL=utils.js.map
151
+ //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
1
  export const ApplicationContribution = Symbol("ApplicationContribution");
2
- //# sourceMappingURL=application.js.map
2
+ //# sourceMappingURL=application.js.map
package/es/core/camera.js CHANGED
@@ -66,4 +66,4 @@ export class OrthoCamera {
66
66
  export const registerOrthoCamera = () => {
67
67
  Factory.registerPlugin("OrthoCamera", OrthoCamera);
68
68
  };
69
- //# sourceMappingURL=camera.js.map
69
+ //# sourceMappingURL=camera.js.map
@@ -9,4 +9,4 @@ export const StaticLayerHandlerContribution = Symbol.for("StaticLayerHandlerCont
9
9
  export const DynamicLayerHandlerContribution = Symbol.for("DynamicLayerHandlerContribution");
10
10
 
11
11
  export const VirtualLayerHandlerContribution = Symbol.for("VirtualLayerHandlerContribution");
12
- //# sourceMappingURL=constants.js.map
12
+ //# sourceMappingURL=constants.js.map
@@ -17,4 +17,4 @@ export default new ContainerModule((bind => {
17
17
  bind(GraphicUtil).to(DefaultGraphicUtil).inSingletonScope(), bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope(),
18
18
  bind(LayerService).to(DefaultLayerService).inSingletonScope();
19
19
  }));
20
- //# sourceMappingURL=core-modules.js.map
20
+ //# sourceMappingURL=core-modules.js.map
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=global-module.js.map
package/es/core/global.js CHANGED
@@ -238,4 +238,4 @@ let DefaultGlobal = class extends EventListenerManager {
238
238
  DefaultGlobal = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(EnvContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultGlobal);
239
239
 
240
240
  export { DefaultGlobal };
241
- //# sourceMappingURL=global.js.map
241
+ //# sourceMappingURL=global.js.map
@@ -189,4 +189,4 @@ let DefaultTransformUtil = class {
189
189
  DefaultTransformUtil = __decorate([ injectable(), __metadata("design:paramtypes", []) ], DefaultTransformUtil);
190
190
 
191
191
  export { DefaultTransformUtil };
192
- //# sourceMappingURL=graphic-utils.js.map
192
+ //# sourceMappingURL=graphic-utils.js.map
package/es/core/index.js CHANGED
@@ -15,4 +15,4 @@ export * from "./layer-service";
15
15
  export * from "./constants";
16
16
 
17
17
  export * from "../interface/core";
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=index.js.map
@@ -82,5 +82,4 @@ let DefaultLayerService = DefaultLayerService_1 = class {
82
82
  DefaultLayerService.idprefix = "visactor_layer", DefaultLayerService.prefix_count = 0,
83
83
  DefaultLayerService = DefaultLayerService_1 = __decorate([ injectable(), __metadata("design:paramtypes", []) ], DefaultLayerService);
84
84
 
85
- export { DefaultLayerService };
86
- //# sourceMappingURL=layer-service.js.map
85
+ export { DefaultLayerService };
package/es/core/layer.js CHANGED
@@ -112,4 +112,4 @@ export class Layer extends Group {
112
112
  }, params)), this.afterDrawCbs.forEach((c => c(this)));
113
113
  }
114
114
  }
115
- //# sourceMappingURL=layer.js.map
115
+ //# sourceMappingURL=layer.js.map
package/es/core/light.js CHANGED
@@ -23,4 +23,4 @@ export class DirectionalLight {
23
23
  export const registerDirectionalLight = () => {
24
24
  Factory.registerPlugin("DirectionalLight", DirectionalLight);
25
25
  };
26
- //# sourceMappingURL=light.js.map
26
+ //# sourceMappingURL=light.js.map
package/es/core/stage.js CHANGED
@@ -589,4 +589,4 @@ export class Stage extends Group {
589
589
  this.renderService.reInit(), this.pickerService.reInit();
590
590
  }
591
591
  }
592
- //# sourceMappingURL=stage.js.map
592
+ //# sourceMappingURL=stage.js.map
package/es/core/window.js CHANGED
@@ -162,4 +162,4 @@ let DefaultWindow = class extends EventListenerManager {
162
162
  DefaultWindow = __decorate([ injectable(), __metadata("design:paramtypes", []) ], DefaultWindow);
163
163
 
164
164
  export { DefaultWindow };
165
- //# sourceMappingURL=window.js.map
165
+ //# sourceMappingURL=window.js.map
@@ -1,2 +1,2 @@
1
1
  export const WILDCARD = "*";
2
- //# sourceMappingURL=constant.js.map
2
+ //# sourceMappingURL=constant.js.map
@@ -299,4 +299,4 @@ export class EventManager {
299
299
  this.mappingTable = null, this.mappingState = null, this.cursorTarget = null;
300
300
  }
301
301
  }
302
- //# sourceMappingURL=event-manager.js.map
302
+ //# sourceMappingURL=event-manager.js.map
@@ -152,7 +152,7 @@ export type IGraphicStyle = ILayout & IFillStyle & IStrokeStyle & IPickStyle & {
152
152
  alignToGraphic?: boolean;
153
153
  alignOffsetX?: number;
154
154
  alignOffsetY?: number;
155
- debugAlign?: boolean;
155
+ radius?: number;
156
156
  dynamicTexture?: (ctx: IContext2d, row: number, column: number, rowCount: number, columnCount: number, ratio: number, graphic: IGraphic, width?: number, height?: number) => void;
157
157
  beforeDynamicTexture?: (ctx: IContext2d, row: number, column: number, rowCount: number, columnCount: number, ratio: number, graphic: IGraphic, width?: number, height?: number) => void;
158
158
  gridConfig?: {