@visactor/vrender-core 0.20.11-alpha.1 → 0.20.11

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 (174) hide show
  1. package/cjs/common/bezier-utils.d.ts +0 -3
  2. package/cjs/common/bezier-utils.js +2 -17
  3. package/cjs/common/bezier-utils.js.map +1 -1
  4. package/cjs/common/custom-path2d.d.ts +0 -3
  5. package/cjs/common/custom-path2d.js +11 -35
  6. package/cjs/common/custom-path2d.js.map +1 -1
  7. package/cjs/common/segment/curve/arc.d.ts +1 -2
  8. package/cjs/common/segment/curve/arc.js +1 -4
  9. package/cjs/common/segment/curve/arc.js.map +1 -1
  10. package/cjs/common/segment/curve/base.d.ts +1 -2
  11. package/cjs/common/segment/curve/base.js.map +1 -1
  12. package/cjs/common/segment/curve/cubic-bezier.d.ts +1 -3
  13. package/cjs/common/segment/curve/cubic-bezier.js +3 -14
  14. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  15. package/cjs/common/segment/curve/curve-context.js +4 -5
  16. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  17. package/cjs/common/segment/curve/ellipse.d.ts +1 -2
  18. package/cjs/common/segment/curve/ellipse.js +0 -3
  19. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  20. package/cjs/common/segment/curve/line.d.ts +1 -2
  21. package/cjs/common/segment/curve/line.js +0 -6
  22. package/cjs/common/segment/curve/line.js.map +1 -1
  23. package/cjs/common/segment/curve/move.d.ts +1 -2
  24. package/cjs/common/segment/curve/move.js +0 -3
  25. package/cjs/common/segment/curve/move.js.map +1 -1
  26. package/cjs/common/segment/curve/path.d.ts +1 -2
  27. package/cjs/common/segment/curve/path.js +2 -5
  28. package/cjs/common/segment/curve/path.js.map +1 -1
  29. package/cjs/common/segment/curve/quadratic-bezier.d.ts +2 -4
  30. package/cjs/common/segment/curve/quadratic-bezier.js +5 -17
  31. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  32. package/cjs/common/simplify.js +2 -3
  33. package/cjs/common/simplify.js.map +1 -1
  34. package/cjs/graphic/builtin-symbol/utils.d.ts +1 -2
  35. package/cjs/graphic/builtin-symbol/utils.js +0 -5
  36. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  37. package/cjs/graphic/config.js +1 -5
  38. package/cjs/graphic/config.js.map +1 -1
  39. package/cjs/graphic/graphic-service/graphic-service.d.ts +0 -2
  40. package/cjs/graphic/graphic-service/graphic-service.js +5 -10
  41. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  42. package/cjs/graphic/richtext/wrapper.d.ts +0 -1
  43. package/cjs/graphic/richtext/wrapper.js +1 -1
  44. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  45. package/cjs/graphic/richtext.js +1 -2
  46. package/cjs/graphic/richtext.js.map +1 -1
  47. package/cjs/interface/graphic/path.d.ts +0 -1
  48. package/cjs/interface/graphic/path.js.map +1 -1
  49. package/cjs/interface/graphic/symbol.d.ts +0 -2
  50. package/cjs/interface/graphic/symbol.js.map +1 -1
  51. package/cjs/interface/graphic-service.d.ts +0 -2
  52. package/cjs/interface/graphic-service.js.map +1 -1
  53. package/cjs/interface/graphic.d.ts +1 -3
  54. package/cjs/interface/graphic.js.map +1 -1
  55. package/cjs/interface/path.d.ts +0 -2
  56. package/cjs/interface/path.js.map +1 -1
  57. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +0 -3
  58. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  59. package/cjs/plugins/builtin-plugin/edit-module.d.ts +5 -6
  60. package/cjs/plugins/builtin-plugin/edit-module.js +28 -84
  61. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -1
  62. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.d.ts +30 -49
  63. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +217 -280
  64. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  65. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  66. package/cjs/render/contributions/render/base-render.d.ts +0 -1
  67. package/cjs/render/contributions/render/base-render.js +2 -20
  68. package/cjs/render/contributions/render/base-render.js.map +1 -1
  69. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  70. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +2 -29
  71. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  72. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -8
  73. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +2 -30
  74. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  75. package/cjs/render/contributions/render/group-render.js +3 -3
  76. package/cjs/render/contributions/render/group-render.js.map +1 -1
  77. package/cjs/render/contributions/render/path-render.js.map +1 -1
  78. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  79. package/cjs/render/contributions/render/symbol-render.js +12 -15
  80. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  81. package/cjs/render/contributions/render/utils.d.ts +2 -1
  82. package/cjs/render/contributions/render/utils.js +20 -4
  83. package/cjs/render/contributions/render/utils.js.map +1 -1
  84. package/dist/index.es.js +8138 -8650
  85. package/es/common/bezier-utils.d.ts +0 -3
  86. package/es/common/bezier-utils.js +0 -14
  87. package/es/common/bezier-utils.js.map +1 -1
  88. package/es/common/custom-path2d.d.ts +0 -3
  89. package/es/common/custom-path2d.js +12 -36
  90. package/es/common/custom-path2d.js.map +1 -1
  91. package/es/common/segment/curve/arc.d.ts +1 -2
  92. package/es/common/segment/curve/arc.js +1 -4
  93. package/es/common/segment/curve/arc.js.map +1 -1
  94. package/es/common/segment/curve/base.d.ts +1 -2
  95. package/es/common/segment/curve/base.js.map +1 -1
  96. package/es/common/segment/curve/cubic-bezier.d.ts +1 -3
  97. package/es/common/segment/curve/cubic-bezier.js +1 -14
  98. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  99. package/es/common/segment/curve/curve-context.js +3 -6
  100. package/es/common/segment/curve/curve-context.js.map +1 -1
  101. package/es/common/segment/curve/ellipse.d.ts +1 -2
  102. package/es/common/segment/curve/ellipse.js +0 -3
  103. package/es/common/segment/curve/ellipse.js.map +1 -1
  104. package/es/common/segment/curve/line.d.ts +1 -2
  105. package/es/common/segment/curve/line.js +0 -6
  106. package/es/common/segment/curve/line.js.map +1 -1
  107. package/es/common/segment/curve/move.d.ts +1 -2
  108. package/es/common/segment/curve/move.js +0 -3
  109. package/es/common/segment/curve/move.js.map +1 -1
  110. package/es/common/segment/curve/path.d.ts +1 -2
  111. package/es/common/segment/curve/path.js +2 -5
  112. package/es/common/segment/curve/path.js.map +1 -1
  113. package/es/common/segment/curve/quadratic-bezier.d.ts +2 -4
  114. package/es/common/segment/curve/quadratic-bezier.js +5 -22
  115. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  116. package/es/common/simplify.js +2 -3
  117. package/es/common/simplify.js.map +1 -1
  118. package/es/graphic/builtin-symbol/utils.d.ts +1 -2
  119. package/es/graphic/builtin-symbol/utils.js +0 -5
  120. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  121. package/es/graphic/config.js +1 -5
  122. package/es/graphic/config.js.map +1 -1
  123. package/es/graphic/graphic-service/graphic-service.d.ts +0 -2
  124. package/es/graphic/graphic-service/graphic-service.js +4 -11
  125. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  126. package/es/graphic/richtext/wrapper.d.ts +0 -1
  127. package/es/graphic/richtext/wrapper.js +1 -1
  128. package/es/graphic/richtext/wrapper.js.map +1 -1
  129. package/es/graphic/richtext.js +1 -2
  130. package/es/graphic/richtext.js.map +1 -1
  131. package/es/interface/graphic/path.d.ts +0 -1
  132. package/es/interface/graphic/path.js.map +1 -1
  133. package/es/interface/graphic/symbol.d.ts +0 -2
  134. package/es/interface/graphic/symbol.js.map +1 -1
  135. package/es/interface/graphic-service.d.ts +0 -2
  136. package/es/interface/graphic-service.js.map +1 -1
  137. package/es/interface/graphic.d.ts +1 -3
  138. package/es/interface/graphic.js.map +1 -1
  139. package/es/interface/path.d.ts +0 -2
  140. package/es/interface/path.js.map +1 -1
  141. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +0 -3
  142. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  143. package/es/plugins/builtin-plugin/edit-module.d.ts +5 -6
  144. package/es/plugins/builtin-plugin/edit-module.js +25 -79
  145. package/es/plugins/builtin-plugin/edit-module.js.map +1 -1
  146. package/es/plugins/builtin-plugin/richtext-edit-plugin.d.ts +30 -49
  147. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +214 -283
  148. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  149. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  150. package/es/render/contributions/render/base-render.d.ts +0 -1
  151. package/es/render/contributions/render/base-render.js +2 -21
  152. package/es/render/contributions/render/base-render.js.map +1 -1
  153. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  154. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +2 -29
  155. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  156. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -8
  157. package/es/render/contributions/render/contributions/symbol-contribution-render.js +0 -26
  158. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  159. package/es/render/contributions/render/group-render.js +3 -3
  160. package/es/render/contributions/render/group-render.js.map +1 -1
  161. package/es/render/contributions/render/path-render.js.map +1 -1
  162. package/es/render/contributions/render/polygon-render.js.map +1 -1
  163. package/es/render/contributions/render/symbol-render.js +13 -16
  164. package/es/render/contributions/render/symbol-render.js.map +1 -1
  165. package/es/render/contributions/render/utils.d.ts +2 -1
  166. package/es/render/contributions/render/utils.js +18 -0
  167. package/es/render/contributions/render/utils.js.map +1 -1
  168. package/package.json +1 -1
  169. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  170. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  171. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
  172. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  173. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  174. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/curve-context.ts"],"names":[],"mappings":"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","file":"curve-context.js","sourcesContent":["import type { IPath2D, ICustomPath2D, ILineCurve, ICubicBezierCurve, IQuadraticBezierCurve } from '../../../interface';\nimport { Point } from '@visactor/vutils';\nimport { LineCurve } from './line';\nimport { CubicBezierCurve } from './cubic-bezier';\nimport { QuadraticBezierCurve } from './quadratic-bezier';\n\nexport class CurveContext implements IPath2D {\n declare path: ICustomPath2D;\n private _lastX: number;\n private _lastY: number;\n private _startX: number;\n private _startY: number;\n\n constructor(path: ICustomPath2D) {\n this.path = path;\n this._lastX = this._lastY = this._startX = this._startY = 0;\n }\n moveTo(x: number, y: number) {\n this._lastX = this._startX = x;\n this._lastY = this._startY = y;\n return this;\n }\n lineTo(x: number, y: number) {\n const curve = this.addLinearCurve(x, y);\n this.path.addCurve(curve);\n this._lastX = x;\n this._lastY = y;\n }\n // linear\n protected addLinearCurve(x: number, y: number): ILineCurve {\n const curve = new LineCurve(new Point(this._lastX, this._lastY), new Point(x, y));\n return curve;\n }\n quadraticCurveTo(aCPx: number, aCPy: number, aX: number, aY: number) {\n const curve: IQuadraticBezierCurve = new QuadraticBezierCurve(\n new Point(this._lastX, this._lastY),\n new Point(aCPx, aCPy),\n new Point(aX, aY)\n );\n this.path.addCurve(curve);\n this._lastX = aX;\n this._lastY = aY;\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void {\n const curve: ICubicBezierCurve = new CubicBezierCurve(\n new Point(this._lastX, this._lastY),\n new Point(cp1x, cp1y),\n new Point(cp2x, cp2y),\n new Point(x, y)\n );\n this.path.addCurve(curve);\n this._lastX = x;\n this._lastY = y;\n }\n arcTo(aX1: number, aY1: number, aX2: number, aY2: number, aRadius: number) {\n throw new Error('CurveContext不支持调用arcTo');\n }\n ellipse(\n aX: number,\n aY: number,\n xRadius: number,\n yRadius: number,\n aRotation: number,\n aStartAngle: number,\n aEndAngle: number,\n aClockwise: boolean\n ) {\n throw new Error('CurveContext不支持调用ellipse');\n }\n rect(x: number, y: number, w: number, h: number) {\n throw new Error('CurveContext不支持调用rect');\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean) {\n throw new Error('CurveContext不支持调用arc');\n }\n closePath(): void {\n if (this.path.curves.length < 2) {\n return;\n }\n this.lineTo(this._startX, this._startY);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/curve-context.ts"],"names":[],"mappings":"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","file":"curve-context.js","sourcesContent":["import type { IPath2D, ICustomPath2D, ILineCurve, ICubicBezierCurve } from '../../../interface';\nimport { Point } from '@visactor/vutils';\nimport { LineCurve } from './line';\nimport { CubicBezierCurve } from './cubic-bezier';\n\nexport class CurveContext implements IPath2D {\n declare path: ICustomPath2D;\n private _lastX: number;\n private _lastY: number;\n private _startX: number;\n private _startY: number;\n\n constructor(path: ICustomPath2D) {\n this.path = path;\n this._lastX = this._lastY = this._startX = this._startY = 0;\n }\n moveTo(x: number, y: number) {\n this._lastX = this._startX = x;\n this._lastY = this._startY = y;\n return this;\n }\n lineTo(x: number, y: number) {\n const curve = this.addLinearCurve(x, y);\n this.path.curves.push(curve);\n this._lastX = x;\n this._lastY = y;\n }\n // linear\n protected addLinearCurve(x: number, y: number): ILineCurve {\n const curve = new LineCurve(new Point(this._lastX, this._lastY), new Point(x, y));\n return curve;\n }\n quadraticCurveTo(aCPx: number, aCPy: number, aX: number, aY: number) {\n throw new Error('CurveContext不支持调用quadraticCurveTo');\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void {\n const curve: ICubicBezierCurve = new CubicBezierCurve(\n new Point(this._lastX, this._lastY),\n new Point(cp1x, cp1y),\n new Point(cp2x, cp2y),\n new Point(x, y)\n );\n this.path.curves.push(curve);\n this._lastX = x;\n this._lastY = y;\n }\n arcTo(aX1: number, aY1: number, aX2: number, aY2: number, aRadius: number) {\n throw new Error('CurveContext不支持调用arcTo');\n }\n ellipse(\n aX: number,\n aY: number,\n xRadius: number,\n yRadius: number,\n aRotation: number,\n aStartAngle: number,\n aEndAngle: number,\n aClockwise: boolean\n ) {\n throw new Error('CurveContext不支持调用ellipse');\n }\n rect(x: number, y: number, w: number, h: number) {\n throw new Error('CurveContext不支持调用rect');\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean) {\n throw new Error('CurveContext不支持调用arc');\n }\n closePath(): void {\n if (this.path.curves.length < 2) {\n return;\n }\n this.lineTo(this._startX, this._startY);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IPoint, IPointLike } from '@visactor/vutils';
2
- import type { IEllipseCurve, IDirection, IPath2D } from '../../../interface';
2
+ import type { IEllipseCurve, IDirection } from '../../../interface';
3
3
  import { Curve } from './base';
4
4
  export declare class EllipseCurve extends Curve implements IEllipseCurve {
5
5
  type: number;
@@ -15,5 +15,4 @@ export declare class EllipseCurve extends Curve implements IEllipseCurve {
15
15
  getAngleAt(t: number): number;
16
16
  protected calcLength(): number;
17
17
  protected calcProjLength(direction: IDirection): number;
18
- draw(path: IPath2D, percent: number): void;
19
18
  }
@@ -24,9 +24,6 @@ class EllipseCurve extends base_1.Curve {
24
24
  calcProjLength(direction) {
25
25
  throw new Error("QuadraticBezierCurve暂不支持updateLength");
26
26
  }
27
- draw(path, percent) {
28
- throw new Error("暂不支持");
29
- }
30
27
  }
31
28
 
32
29
  exports.EllipseCurve = EllipseCurve;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/ellipse.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,YAAa,SAAQ,YAAK;IASrC,YACE,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,aAAuB;QAEvB,KAAK,EAAE,CAAC;QAjBV,SAAI,GAAW,qBAAa,CAAC,YAAY,CAAC;QAkBxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAa,EAAE,OAAe;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AA3CD,oCA2CC","file":"ellipse.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IEllipseCurve, IDirection, IPath2D } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class EllipseCurve extends Curve implements IEllipseCurve {\n type: number = CurveTypeEnum.EllipseCurve;\n declare p0: IPoint;\n declare radiusX: number;\n declare radiusY: number;\n declare rotation: number;\n declare startAngle: number;\n declare endAngle: number;\n declare anticlockwise?: boolean;\n constructor(\n p0: IPoint,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n super();\n this.p0 = p0;\n this.radiusX = radiusX;\n this.radiusY = radiusY;\n this.rotation = rotation;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.anticlockwise = anticlockwise;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('EllipseCurve暂不支持getPointAt');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n protected calcLength(): number {\n throw new Error('EllipseCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n\n draw(path: IPath2D, percent: number) {\n throw new Error('暂不支持');\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/ellipse.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,YAAa,SAAQ,YAAK;IASrC,YACE,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,aAAuB;QAEvB,KAAK,EAAE,CAAC;QAjBV,SAAI,GAAW,qBAAa,CAAC,YAAY,CAAC;QAkBxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AAvCD,oCAuCC","file":"ellipse.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IEllipseCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class EllipseCurve extends Curve implements IEllipseCurve {\n type: number = CurveTypeEnum.EllipseCurve;\n declare p0: IPoint;\n declare radiusX: number;\n declare radiusY: number;\n declare rotation: number;\n declare startAngle: number;\n declare endAngle: number;\n declare anticlockwise?: boolean;\n constructor(\n p0: IPoint,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n super();\n this.p0 = p0;\n this.radiusX = radiusX;\n this.radiusY = radiusY;\n this.rotation = rotation;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.anticlockwise = anticlockwise;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('EllipseCurve暂不支持getPointAt');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n protected calcLength(): number {\n throw new Error('EllipseCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IPoint, IPointLike } from '@visactor/vutils';
2
- import type { ILineCurve, IDirection, IPath2D } from '../../../interface';
2
+ import type { ILineCurve, IDirection } from '../../../interface';
3
3
  import { Curve } from './base';
4
4
  export declare function divideLinear(curve: ILineCurve, t: number): ILineCurve[];
5
5
  export declare class LineCurve extends Curve implements ILineCurve {
@@ -15,5 +15,4 @@ export declare class LineCurve extends Curve implements ILineCurve {
15
15
  protected _validPoint(): boolean;
16
16
  protected calcLength(): number;
17
17
  protected calcProjLength(direction: IDirection): number;
18
- draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number): void;
19
18
  }
@@ -35,12 +35,6 @@ class LineCurve extends base_1.Curve {
35
35
  return direction === enums_1.Direction.ROW ? (0, vutils_1.abs)(this.p0.x - this.p1.x) : direction === enums_1.Direction.COLUMN ? (0,
36
36
  vutils_1.abs)(this.p0.y - this.p1.y) : 0;
37
37
  }
38
- draw(path, x, y, sx, sy, percent) {
39
- if (path.moveTo(this.p0.x * sx + x, this.p0.y * sy + y), percent >= 1) path.lineTo(this.p1.x * sx + x, this.p1.y * sy + y); else if (percent > 0) {
40
- const p = this.getPointAt(percent);
41
- path.lineTo(p.x * sx + x, p.y * sy + y);
42
- }
43
- }
44
38
  }
45
39
 
46
40
  exports.LineCurve = LineCurve;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport { abs, atan2, PointService } from '@visactor/vutils';\nimport type { ILineCurve, IDirection, IPath2D } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum, Direction } from '../../enums';\n\nexport function divideLinear(curve: ILineCurve, t: number): ILineCurve[] {\n const { p0, p1 } = curve;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new LineCurve(p0, c1);\n const curve2 = new LineCurve(c1, p1);\n\n return [curve1, curve2];\n}\n\nexport class LineCurve extends Curve implements ILineCurve {\n type: number = CurveTypeEnum.LineCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n declare p0: IPoint;\n declare p1: IPoint;\n declare angle: number;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getPointAt(t: number): IPointLike {\n if (this.defined !== false) {\n return PointService.pointAtPP(this.p0, this.p1, t);\n }\n throw new Error('defined为false的点不能getPointAt');\n }\n\n getAngleAt(t: number): number {\n if (this.angle == null) {\n this.angle = atan2(this.p1.y - this.p0.y, this.p1.x - this.p0.x);\n }\n return this.angle;\n }\n\n protected _validPoint() {\n return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y);\n }\n\n protected calcLength(): number {\n if (this._validPoint()) {\n return PointService.distancePP(this.p0, this.p1);\n }\n // TODO 默认长度不好给,只能给个差不多的长度\n return 60;\n }\n\n protected calcProjLength(direction: IDirection): number {\n if (direction === Direction.ROW) {\n return abs(this.p0.x - this.p1.x);\n } else if (direction === Direction.COLUMN) {\n return abs(this.p0.y - this.p1.y);\n }\n return 0;\n }\n\n draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number) {\n path.moveTo(this.p0.x * sx + x, this.p0.y * sy + y);\n if (percent >= 1) {\n path.lineTo(this.p1.x * sx + x, this.p1.y * sy + y);\n } else if (percent > 0) {\n const p = this.getPointAt(percent);\n path.lineTo(p.x * sx + x, p.y * sy + y);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/line.ts"],"names":[],"mappings":";;;AACA,6CAA4D;AAE5D,iCAA+B;AAC/B,uCAAuD;AAEvD,SAAgB,YAAY,CAAC,KAAiB,EAAE,CAAS;IACvD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAGzB,MAAM,EAAE,GAAG,qBAAY,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAG7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAXD,oCAWC;AAED,MAAa,SAAU,SAAQ,YAAK;IAOlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAPV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAQrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,OAAO,qBAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpD;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,CAAS;QAClB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW;QACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,cAAc,CAAC,SAAqB;QAC5C,IAAI,SAAS,KAAK,iBAAS,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;aAAM,IAAI,SAAS,KAAK,iBAAS,CAAC,MAAM,EAAE;YACzC,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACnC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA9CD,8BA8CC","file":"line.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport { abs, atan2, PointService } from '@visactor/vutils';\nimport type { ILineCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum, Direction } from '../../enums';\n\nexport function divideLinear(curve: ILineCurve, t: number): ILineCurve[] {\n const { p0, p1 } = curve;\n\n // 计算两点之间的差值点\n const c1 = PointService.pointAtPP(p0, p1, t);\n // const direction = p1.x1 ? p1.y > p0.y ? 0 : 1 : p1.x > p0.x ? 0 : 1;\n\n const curve1 = new LineCurve(p0, c1);\n const curve2 = new LineCurve(c1, p1);\n\n return [curve1, curve2];\n}\n\nexport class LineCurve extends Curve implements ILineCurve {\n type: number = CurveTypeEnum.LineCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n declare p0: IPoint;\n declare p1: IPoint;\n declare angle: number;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getPointAt(t: number): IPointLike {\n if (this.defined !== false) {\n return PointService.pointAtPP(this.p0, this.p1, t);\n }\n throw new Error('defined为false的点不能getPointAt');\n }\n\n getAngleAt(t: number): number {\n if (this.angle == null) {\n this.angle = atan2(this.p1.y - this.p0.y, this.p1.x - this.p0.x);\n }\n return this.angle;\n }\n\n protected _validPoint() {\n return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y);\n }\n\n protected calcLength(): number {\n if (this._validPoint()) {\n return PointService.distancePP(this.p0, this.p1);\n }\n // TODO 默认长度不好给,只能给个差不多的长度\n return 60;\n }\n\n protected calcProjLength(direction: IDirection): number {\n if (direction === Direction.ROW) {\n return abs(this.p0.x - this.p1.x);\n } else if (direction === Direction.COLUMN) {\n return abs(this.p0.y - this.p1.y);\n }\n return 0;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IPoint, IPointLike } from '@visactor/vutils';
2
- import type { IMoveCurve, IDirection, IPath2D } from '../../../interface';
2
+ import type { IMoveCurve, IDirection } from '../../../interface';
3
3
  import { Curve } from './base';
4
4
  export declare class MoveCurve extends Curve implements IMoveCurve {
5
5
  type: number;
@@ -10,5 +10,4 @@ export declare class MoveCurve extends Curve implements IMoveCurve {
10
10
  getPointAt(t: number): IPointLike;
11
11
  protected calcLength(): number;
12
12
  protected calcProjLength(direction: IDirection): number;
13
- draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number): void;
14
13
  }
@@ -22,9 +22,6 @@ class MoveCurve extends base_1.Curve {
22
22
  calcProjLength(direction) {
23
23
  throw new Error("QuadraticBezierCurve暂不支持updateLength");
24
24
  }
25
- draw(path, x, y, sx, sy, percent) {
26
- path.moveTo(this.p1.x * sx + x, this.p1.y * sy + y);
27
- }
28
25
  }
29
26
 
30
27
  exports.MoveCurve = MoveCurve;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/move.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,SAAU,SAAQ,YAAK;IAIlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAJV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAKrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAa,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,OAAe;QAC/E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAzBD,8BAyBC","file":"move.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IMoveCurve, IDirection, IPath2D } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class MoveCurve extends Curve implements IMoveCurve {\n type: number = CurveTypeEnum.MoveCurve;\n declare p0: IPoint;\n declare p1: IPoint;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n getPointAt(t: number): IPointLike {\n throw new Error('MoveCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('MoveCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n\n draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number) {\n path.moveTo(this.p1.x * sx + x, this.p1.y * sy + y);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/move.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,SAAU,SAAQ,YAAK;IAIlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAJV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAKrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AArBD,8BAqBC","file":"move.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IMoveCurve, IDirection } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class MoveCurve extends Curve implements IMoveCurve {\n type: number = CurveTypeEnum.MoveCurve;\n declare p0: IPoint;\n declare p1: IPoint;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n getPointAt(t: number): IPointLike {\n throw new Error('MoveCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('MoveCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n}\n"]}
@@ -1,10 +1,9 @@
1
1
  import type { IAABBBounds, IPoint, IPointLike } from '@visactor/vutils';
2
2
  import type { ICurvePath, ICurve } from '../../../interface';
3
3
  export declare class CurvePath implements ICurvePath<IPoint> {
4
- _curves: ICurve<IPoint>[];
4
+ curves: ICurve<IPoint>[];
5
5
  bounds: IAABBBounds;
6
6
  constructor();
7
- get curves(): ICurve<IPoint>[];
8
7
  getCurveLengths(): number[];
9
8
  getPointAt(t: number): IPointLike;
10
9
  getLength(): number;
@@ -8,13 +8,10 @@ const vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  class CurvePath {
10
10
  constructor() {
11
- this._curves = [], this.bounds = new vutils_1.AABBBounds;
12
- }
13
- get curves() {
14
- return this._curves;
11
+ this.curves = [], this.bounds = new vutils_1.AABBBounds;
15
12
  }
16
13
  getCurveLengths() {
17
- return this._curves.map((curve => curve.getLength()));
14
+ return this.curves.map((curve => curve.getLength()));
18
15
  }
19
16
  getPointAt(t) {
20
17
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/path.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAG9C,MAAa,SAAS;IAGpB;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,SAAS;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAvBD,8BAuBC","file":"path.js","sourcesContent":["import type { IAABBBounds, IPoint, IPointLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport type { ICurvePath, ICurve } from '../../../interface';\n\nexport class CurvePath implements ICurvePath<IPoint> {\n _curves: ICurve<IPoint>[];\n bounds: IAABBBounds;\n constructor() {\n this._curves = [];\n this.bounds = new AABBBounds();\n }\n get curves(): ICurve<IPoint>[] {\n return this._curves;\n }\n\n getCurveLengths(): number[] {\n return this._curves.map(curve => curve.getLength());\n }\n getPointAt(t: number): IPointLike {\n return { x: 0, y: 0 };\n }\n getLength(): number {\n return 0;\n }\n getBounds() {\n return this.bounds;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/path.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAG9C,MAAa,SAAS;IAGpB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAC;IACjC,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACxB,CAAC;IACD,SAAS;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAnBD,8BAmBC","file":"path.js","sourcesContent":["import type { IAABBBounds, IPoint, IPointLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport type { ICurvePath, ICurve } from '../../../interface';\n\nexport class CurvePath implements ICurvePath<IPoint> {\n curves: ICurve<IPoint>[];\n bounds: IAABBBounds;\n constructor() {\n this.curves = [];\n this.bounds = new AABBBounds();\n }\n getCurveLengths(): number[] {\n return this.curves.map(curve => curve.getLength());\n }\n getPointAt(t: number): IPointLike {\n return { x: 0, y: 0 };\n }\n getLength(): number {\n return 0;\n }\n getBounds() {\n return this.bounds;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { IDirection, IPath2D, IQuadraticBezierCurve } from '../../../interface';
1
+ import type { IDirection, IQuadraticBezierCurve } from '../../../interface';
2
2
  import { Curve } from './base';
3
- import { type IPoint, type IPointLike } from '@visactor/vutils';
3
+ import type { IPoint, IPointLike } from '@visactor/vutils';
4
4
  export declare class QuadraticBezierCurve extends Curve implements IQuadraticBezierCurve {
5
5
  type: number;
6
6
  originP1?: IPointLike;
@@ -9,10 +9,8 @@ export declare class QuadraticBezierCurve extends Curve implements IQuadraticBez
9
9
  readonly p1: IPoint;
10
10
  readonly p2: IPoint;
11
11
  constructor(p0: IPoint, p1: IPoint, p2: IPoint);
12
- protected _validPoint(): boolean;
13
12
  getPointAt(t: number): IPointLike;
14
13
  protected calcLength(): number;
15
14
  protected calcProjLength(direction: IDirection): number;
16
15
  getAngleAt(t: number): number;
17
- draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number): void;
18
16
  }
@@ -4,36 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.QuadraticBezierCurve = void 0;
6
6
 
7
- const bezier_utils_1 = require("../../bezier-utils"), enums_1 = require("../../enums"), base_1 = require("./base"), vutils_1 = require("@visactor/vutils"), cubic_bezier_1 = require("./cubic-bezier");
7
+ const enums_1 = require("src/common/enums"), base_1 = require("./base");
8
8
 
9
9
  class QuadraticBezierCurve extends base_1.Curve {
10
10
  constructor(p0, p1, p2) {
11
11
  super(), this.type = enums_1.CurveTypeEnum.QuadraticBezierCurve, this.p0 = p0, this.p1 = p1,
12
12
  this.p2 = p2;
13
13
  }
14
- _validPoint() {
15
- return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y + this.p2.x + this.p2.y);
16
- }
17
14
  getPointAt(t) {
18
- if (!1 !== this.defined) return (0, bezier_utils_1.quadPointAt)(this.p0, this.p1, this.p2, t);
19
- throw new Error("defined为false的点不能getPointAt");
15
+ throw new Error("QuadraticBezierCurve暂不支持getPointAt");
20
16
  }
21
17
  calcLength() {
22
- return this._validPoint() ? (0, bezier_utils_1.quadLength)(this.p0, this.p1, this.p2, 0) : 60;
18
+ throw new Error("QuadraticBezierCurve暂不支持updateLength");
23
19
  }
24
20
  calcProjLength(direction) {
25
- return direction === enums_1.Direction.ROW ? (0, vutils_1.abs)(this.p0.x - this.p2.x) : direction === enums_1.Direction.COLUMN ? (0,
26
- vutils_1.abs)(this.p0.y - this.p2.y) : 0;
21
+ throw new Error("QuadraticBezierCurve暂不支持updateLength");
27
22
  }
28
23
  getAngleAt(t) {
29
- const minT = (0, vutils_1.max)(t - .01, 0), maxT = (0, vutils_1.min)(t + .01, 1), minP = this.getPointAt(minT), maxP = this.getPointAt(maxT);
30
- return (0, vutils_1.atan2)(maxP.y - minP.y, maxP.x - minP.x);
31
- }
32
- draw(path, x, y, sx, sy, percent) {
33
- if (path.moveTo(this.p0.x * sx + x, this.p0.y * sy + y), percent >= 1) path.quadraticCurveTo(this.p1.x * sx + x, this.p1.y * sy + y, this.p2.x * sx + x, this.p2.y * sy + y); else if (percent > 0) {
34
- const [curve1] = (0, cubic_bezier_1.divideQuad)(this, percent);
35
- path.quadraticCurveTo(curve1.p1.x * sx + x, curve1.p1.y * sy + y, curve1.p2.x * sx + x, curve1.p2.y * sy + y);
36
- }
24
+ throw new Error("ArcCurve暂不支持getAngleAt");
37
25
  }
38
26
  }
39
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/segment/curve/quadratic-bezier.ts"],"names":[],"mappings":"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","file":"quadratic-bezier.js","sourcesContent":["import type { IDirection, IPath2D, IQuadraticBezierCurve } from '../../../interface';\nimport { quadLength, quadPointAt } from '../../bezier-utils';\nimport { CurveTypeEnum, Direction } from '../../enums';\nimport { Curve } from './base';\nimport { abs, atan2, max, min, type IPoint, type IPointLike } from '@visactor/vutils';\nimport { divideQuad } from './cubic-bezier';\n\nexport class QuadraticBezierCurve extends Curve implements IQuadraticBezierCurve {\n type: number = CurveTypeEnum.QuadraticBezierCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n\n declare readonly p0: IPoint;\n declare readonly p1: IPoint;\n declare readonly p2: IPoint;\n constructor(p0: IPoint, p1: IPoint, p2: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n this.p2 = p2;\n }\n\n protected _validPoint(): boolean {\n return Number.isFinite(this.p0.x + this.p0.y + this.p1.x + this.p1.y + this.p2.x + this.p2.y);\n }\n\n getPointAt(t: number): IPointLike {\n if (this.defined !== false) {\n return quadPointAt(this.p0, this.p1, this.p2, t);\n }\n throw new Error('defined为false的点不能getPointAt');\n }\n protected calcLength(): number {\n if (this._validPoint()) {\n return quadLength(this.p0, this.p1, this.p2, 0);\n }\n // 默认长度不好给\n return 60;\n }\n protected calcProjLength(direction: IDirection): number {\n if (direction === Direction.ROW) {\n return abs(this.p0.x - this.p2.x);\n } else if (direction === Direction.COLUMN) {\n return abs(this.p0.y - this.p2.y);\n }\n return 0;\n }\n\n getAngleAt(t: number): number {\n const minT = max(t - 0.01, 0);\n const maxT = min(t + 0.01, 1);\n const minP = this.getPointAt(minT);\n const maxP = this.getPointAt(maxT);\n return atan2(maxP.y - minP.y, maxP.x - minP.x);\n }\n\n draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number) {\n path.moveTo(this.p0.x * sx + x, this.p0.y * sy + y);\n if (percent >= 1) {\n path.quadraticCurveTo(this.p1.x * sx + x, this.p1.y * sy + y, this.p2.x * sx + x, this.p2.y * sy + y);\n } else if (percent > 0) {\n const [curve1] = divideQuad(this, percent);\n path.quadraticCurveTo(curve1.p1.x * sx + x, curve1.p1.y * sy + y, curve1.p2.x * sx + x, curve1.p2.y * sy + y);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/segment/curve/quadratic-bezier.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEjD,iCAA+B;AAG/B,MAAa,oBAAqB,SAAQ,YAAK;IAQ7C,YAAY,EAAU,EAAE,EAAU,EAAE,EAAU;QAC5C,KAAK,EAAE,CAAC;QARV,SAAI,GAAW,qBAAa,CAAC,oBAAoB,CAAC;QAShD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CACF;AA1BD,oDA0BC","file":"quadratic-bezier.js","sourcesContent":["import { CurveTypeEnum } from 'src/common/enums';\nimport type { IDirection, IQuadraticBezierCurve } from '../../../interface';\nimport { Curve } from './base';\nimport type { IPoint, IPointLike } from '@visactor/vutils';\n\nexport class QuadraticBezierCurve extends Curve implements IQuadraticBezierCurve {\n type: number = CurveTypeEnum.QuadraticBezierCurve;\n declare originP1?: IPointLike;\n declare originP2?: IPointLike;\n\n declare readonly p0: IPoint;\n declare readonly p1: IPoint;\n declare readonly p2: IPoint;\n constructor(p0: IPoint, p1: IPoint, p2: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n this.p2 = p2;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('QuadraticBezierCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n}\n"]}
@@ -19,7 +19,7 @@ function simplifyDPStep(points, startIdx, endIdx, sqTolerance, simplified) {
19
19
  sqDistance = sqArea / sqLength, sqDistance > maxSqDist && (maxSqDist = sqDistance,
20
20
  nextIdx = i);
21
21
  maxSqDist > sqTolerance && (nextIdx - startIdx > 2 && simplifyDPStep(points, startIdx, nextIdx, sqTolerance, simplified),
22
- simplified.push(points[nextIdx], points[nextIdx + 1]), endIdx - nextIdx > 2 && simplifyDPStep(points, nextIdx, endIdx, sqTolerance, simplified));
22
+ simplified.push(points[nextIdx], points[nextIdx + 1]), endIdx - nextIdx > 2 && simplifyDPStep(points, nextIdx + 1, endIdx, sqTolerance, simplified));
23
23
  }
24
24
 
25
25
  function simplifyDouglasPeucker(points, sqTolerance) {
@@ -30,8 +30,7 @@ function simplifyDouglasPeucker(points, sqTolerance) {
30
30
 
31
31
  function flatten_simplify(points, tolerance, highestQuality) {
32
32
  if (points.length <= 10) return points;
33
- const sqTolerance = void 0 !== tolerance ? tolerance * tolerance : 1;
34
- return points = simplifyDouglasPeucker(points = highestQuality ? points : simplifyRadialDist(points, sqTolerance), sqTolerance);
33
+ return points = highestQuality ? points : simplifyRadialDist(points, void 0 !== tolerance ? tolerance * tolerance : 1);
35
34
  }
36
35
 
37
36
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/simplify.ts"],"names":[],"mappings":"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","file":"simplify.js","sourcesContent":["/*\n 优化自simplify-js: https://github.com/mourner/simplify-js\n (c) 2017, Vladimir Agafonkin\n Simplify.js, a high-performance JS polyline simplification library\n mourner.github.io/simplify-js\n*/\n\nimport type { IPointLike } from '@visactor/vutils';\n\n// basic distance-based simplification\nfunction simplifyRadialDist(points: IPointLike[], sqTolerance: number): IPointLike[] {\n let lastX = points[0].x;\n let lastY = points[0].y;\n let deltaX;\n let deltaY;\n const newPoints: IPointLike[] = [points[0]];\n for (let i = 1, len = points.length; i < len; i++) {\n deltaX = points[i].x - lastX;\n deltaY = points[i].y - lastY;\n if (deltaX * deltaX + deltaY * deltaY > sqTolerance) {\n lastX = points[i].x;\n lastY = points[i].y;\n newPoints.push(points[i]);\n }\n }\n if (points[points.length - 1].x !== lastX || points[points.length - 1].y !== lastY) {\n newPoints.push(points[points.length - 1]);\n }\n return newPoints;\n}\nfunction simplifyDPStep(\n points: IPointLike[],\n startIdx: number,\n endIdx: number,\n sqTolerance: number,\n simplified: IPointLike[]\n) {\n let maxSqDist = sqTolerance;\n let nextIdx = startIdx;\n const startX = points[startIdx].x;\n const startY = points[startIdx].y;\n const endX = points[endIdx].x;\n const endY = points[endIdx].y;\n const vecX2 = endX - startX;\n const vecY2 = endY - startY;\n const sqLength = vecX2 * vecX2 + vecY2 * vecY2;\n let area;\n let sqArea;\n let sqDistance;\n // 计算距离startIdx到endIdx最长的distance\n let vecX1;\n let vecY1;\n for (let i = startIdx + 1, len = endIdx - 1; i < len; i++) {\n vecX1 = points[i].x - startX;\n vecY1 = points[i].y - startY;\n // axb = x1y2 - x2y1\n area = vecX1 * vecY2 - vecX2 * vecY1;\n sqArea = area * area;\n sqDistance = sqArea / sqLength;\n if (sqDistance > maxSqDist) {\n maxSqDist = sqDistance;\n nextIdx = i;\n }\n }\n if (maxSqDist > sqTolerance) {\n if (nextIdx - startIdx > 2) {\n simplifyDPStep(points, startIdx, nextIdx, sqTolerance, simplified);\n }\n simplified.push(points[nextIdx], points[nextIdx + 1]);\n if (endIdx - nextIdx > 2) {\n simplifyDPStep(points, nextIdx, endIdx, sqTolerance, simplified);\n }\n }\n}\n// simplification using Ramer-Douglas-Peucker algorithm\n// https://karthaus.nl/rdp/\nfunction simplifyDouglasPeucker(points: IPointLike[], sqTolerance: number): IPointLike[] {\n const lastIdx = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, lastIdx, sqTolerance, simplified);\n simplified.push(points[lastIdx]);\n return simplified;\n}\n// both algorithms combined for awesome performance\nexport function flatten_simplify(points: IPointLike[], tolerance: number, highestQuality: boolean): IPointLike[] {\n if (points.length <= 10) {\n return points;\n }\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n points = highestQuality ? points : simplifyRadialDist(points, sqTolerance);\n points = simplifyDouglasPeucker(points, sqTolerance);\n return points;\n}\n"]}
1
+ {"version":3,"sources":["../src/common/simplify.ts"],"names":[],"mappings":"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","file":"simplify.js","sourcesContent":["/*\n 优化自simplify-js: https://github.com/mourner/simplify-js\n (c) 2017, Vladimir Agafonkin\n Simplify.js, a high-performance JS polyline simplification library\n mourner.github.io/simplify-js\n*/\n\nimport type { IPointLike } from '@visactor/vutils';\n\n// basic distance-based simplification\nfunction simplifyRadialDist(points: IPointLike[], sqTolerance: number): IPointLike[] {\n let lastX = points[0].x;\n let lastY = points[0].y;\n let deltaX;\n let deltaY;\n const newPoints: IPointLike[] = [points[0]];\n for (let i = 1, len = points.length; i < len; i++) {\n deltaX = points[i].x - lastX;\n deltaY = points[i].y - lastY;\n if (deltaX * deltaX + deltaY * deltaY > sqTolerance) {\n lastX = points[i].x;\n lastY = points[i].y;\n newPoints.push(points[i]);\n }\n }\n if (points[points.length - 1].x !== lastX || points[points.length - 1].y !== lastY) {\n newPoints.push(points[points.length - 1]);\n }\n return newPoints;\n}\nfunction simplifyDPStep(\n points: IPointLike[],\n startIdx: number,\n endIdx: number,\n sqTolerance: number,\n simplified: IPointLike[]\n) {\n let maxSqDist = sqTolerance;\n let nextIdx = startIdx;\n const startX = points[startIdx].x;\n const startY = points[startIdx].y;\n const endX = points[endIdx].x;\n const endY = points[endIdx].y;\n const vecX2 = endX - startX;\n const vecY2 = endY - startY;\n const sqLength = vecX2 * vecX2 + vecY2 * vecY2;\n let area;\n let sqArea;\n let sqDistance;\n // 计算距离startIdx到endIdx最长的distance\n let vecX1;\n let vecY1;\n for (let i = startIdx + 1, len = endIdx - 1; i < len; i++) {\n vecX1 = points[i].x - startX;\n vecY1 = points[i].y - startY;\n // axb = x1y2 - x2y1\n area = vecX1 * vecY2 - vecX2 * vecY1;\n sqArea = area * area;\n sqDistance = sqArea / sqLength;\n if (sqDistance > maxSqDist) {\n maxSqDist = sqDistance;\n nextIdx = i;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (nextIdx - startIdx > 2) {\n simplifyDPStep(points, startIdx, nextIdx, sqTolerance, simplified);\n }\n simplified.push(points[nextIdx], points[nextIdx + 1]);\n if (endIdx - nextIdx > 2) {\n simplifyDPStep(points, nextIdx + 1, endIdx, sqTolerance, simplified);\n }\n }\n}\n// simplification using Ramer-Douglas-Peucker algorithm\n// https://karthaus.nl/rdp/\nfunction simplifyDouglasPeucker(points: IPointLike[], sqTolerance: number): IPointLike[] {\n const lastIdx = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, lastIdx, sqTolerance, simplified);\n simplified.push(points[lastIdx]);\n return simplified;\n}\n// both algorithms combined for awesome performance\nexport function flatten_simplify(points: IPointLike[], tolerance: number, highestQuality: boolean): IPointLike[] {\n if (points.length <= 10) {\n return points;\n }\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n points = highestQuality ? points : simplifyRadialDist(points, sqTolerance);\n // 暂时屏蔽 Douglas-Peucker 算法, 因为在极端情况下不会有点被删除, 导致性能问题\n // points = simplifyDouglasPeucker(points, sqTolerance);\n return points;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type IBounds } from '@visactor/vutils';
2
- import type { IContext2d, ICustomPath2D, IGraphicAttribute, IPath2D, ISymbolClass } from '../../interface';
2
+ import type { IContext2d, ICustomPath2D, IGraphicAttribute, ISymbolClass } from '../../interface';
3
3
  export declare class CustomSymbolClass implements ISymbolClass {
4
4
  type: string;
5
5
  path: ICustomPath2D;
@@ -15,6 +15,5 @@ export declare class CustomSymbolClass implements ISymbolClass {
15
15
  }[], isSvg?: boolean);
16
16
  drawOffset(ctx: IContext2d, size: number, x: number, y: number, offset: number, z?: number, cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void): boolean;
17
17
  draw(ctx: IContext2d, size: number, x: number, y: number, z?: number, cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void): boolean;
18
- drawWithClipRange(ctx: IPath2D, size: number, x: number, y: number, clipRange: number, z?: number, cb?: (p: ICustomPath2D, a: any) => void): boolean;
19
18
  bounds(size: number, bounds: IBounds): void;
20
19
  }
@@ -21,11 +21,6 @@ class CustomSymbolClass {
21
21
  draw(ctx, size, x, y, z, cb) {
22
22
  return this.drawOffset(ctx, size, x, y, 0, z, cb);
23
23
  }
24
- drawWithClipRange(ctx, size, x, y, clipRange, z, cb) {
25
- return this.isSvg ? !!this.svgCache && (this.svgCache.forEach((item => {
26
- item.path.drawWithClipRange(ctx, size, x, y, clipRange), cb && cb(item.path, item.attribute);
27
- })), !1) : (this.path.drawWithClipRange(ctx, size, x, y, clipRange), !1);
28
- }
29
24
  bounds(size, bounds) {
30
25
  if (this.isSvg) {
31
26
  if (!this.svgCache) return;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/builtin-symbol/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import { isArray, type IBounds, AABBBounds } from '@visactor/vutils';\nimport { renderCommandList } from '../../common/render-command-list';\nimport type { IContext2d, ICustomPath2D, IGraphicAttribute, IPath2D, ISymbolClass } from '../../interface';\n\nconst tempBounds = new AABBBounds();\nexport class CustomSymbolClass implements ISymbolClass {\n type: string;\n path: ICustomPath2D;\n pathStr: string = '';\n isSvg: boolean;\n svgCache?: { path: ICustomPath2D; attribute: Partial<IGraphicAttribute> }[];\n\n constructor(\n type: string,\n path: ICustomPath2D | { path: ICustomPath2D; attribute: Partial<IGraphicAttribute> }[],\n isSvg: boolean = false\n ) {\n this.type = type;\n if (isArray(path)) {\n this.svgCache = path;\n } else {\n this.path = path;\n }\n this.isSvg = isSvg;\n }\n\n drawOffset(\n ctx: IContext2d,\n size: number,\n x: number,\n y: number,\n offset: number,\n z?: number,\n cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void\n ) {\n if (this.isSvg) {\n if (!this.svgCache) {\n return false;\n }\n this.svgCache.forEach(item => {\n ctx.beginPath();\n renderCommandList(item.path.commandList, ctx, x, y, size, size);\n cb && cb(item.path, item.attribute);\n });\n return false;\n }\n renderCommandList(this.path.commandList, ctx, x, y, size + offset, size + offset);\n return false;\n }\n\n draw(\n ctx: IContext2d,\n size: number,\n x: number,\n y: number,\n z?: number,\n cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void\n ) {\n return this.drawOffset(ctx, size, x, y, 0, z, cb);\n }\n\n drawWithClipRange(\n ctx: IPath2D,\n size: number,\n x: number,\n y: number,\n clipRange: number,\n z?: number,\n cb?: (p: ICustomPath2D, a: any) => void\n ) {\n if (this.isSvg) {\n if (!this.svgCache) {\n return false;\n }\n this.svgCache.forEach(item => {\n item.path.drawWithClipRange(ctx, size, x, y, clipRange);\n cb && cb(item.path, item.attribute);\n });\n return false;\n }\n this.path.drawWithClipRange(ctx, size, x, y, clipRange);\n // this.path.drawWithClipRange && this.path.drawWithClipRange(ctx, clipRange);\n // renderCommandList(this.path.commandList, ctx, x, y, size + offset, size + offset);\n return false;\n }\n\n bounds(size: number, bounds: IBounds) {\n if (this.isSvg) {\n if (!this.svgCache) {\n return;\n }\n bounds.clear();\n this.svgCache.forEach(({ path }) => {\n tempBounds.x1 = path.bounds.x1 * size;\n tempBounds.y1 = path.bounds.y1 * size;\n tempBounds.x2 = path.bounds.x2 * size;\n tempBounds.y2 = path.bounds.y2 * size;\n bounds.union(tempBounds);\n });\n return;\n }\n if (!this.path.bounds) {\n return;\n }\n bounds.x1 = this.path.bounds.x1 * size;\n bounds.y1 = this.path.bounds.y1 * size;\n bounds.x2 = this.path.bounds.x2 * size;\n bounds.y2 = this.path.bounds.y2 * size;\n }\n}\n\n// export function CustomSymbol(): ISymbolClass {\n\n// }\n"]}
1
+ {"version":3,"sources":["../src/graphic/builtin-symbol/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import { isArray, type IBounds, AABBBounds } from '@visactor/vutils';\nimport { renderCommandList } from '../../common/render-command-list';\nimport type { IContext2d, ICustomPath2D, IGraphicAttribute, ISymbolClass } from '../../interface';\n\nconst tempBounds = new AABBBounds();\nexport class CustomSymbolClass implements ISymbolClass {\n type: string;\n path: ICustomPath2D;\n pathStr: string = '';\n isSvg: boolean;\n svgCache?: { path: ICustomPath2D; attribute: Partial<IGraphicAttribute> }[];\n\n constructor(\n type: string,\n path: ICustomPath2D | { path: ICustomPath2D; attribute: Partial<IGraphicAttribute> }[],\n isSvg: boolean = false\n ) {\n this.type = type;\n if (isArray(path)) {\n this.svgCache = path;\n } else {\n this.path = path;\n }\n this.isSvg = isSvg;\n }\n\n drawOffset(\n ctx: IContext2d,\n size: number,\n x: number,\n y: number,\n offset: number,\n z?: number,\n cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void\n ) {\n if (this.isSvg) {\n if (!this.svgCache) {\n return false;\n }\n this.svgCache.forEach(item => {\n ctx.beginPath();\n renderCommandList(item.path.commandList, ctx, x, y, size, size);\n cb && cb(item.path, item.attribute);\n });\n return false;\n }\n renderCommandList(this.path.commandList, ctx, x, y, size + offset, size + offset);\n return false;\n }\n\n draw(\n ctx: IContext2d,\n size: number,\n x: number,\n y: number,\n z?: number,\n cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void\n ) {\n return this.drawOffset(ctx, size, x, y, 0, z, cb);\n }\n\n bounds(size: number, bounds: IBounds) {\n if (this.isSvg) {\n if (!this.svgCache) {\n return;\n }\n bounds.clear();\n this.svgCache.forEach(({ path }) => {\n tempBounds.x1 = path.bounds.x1 * size;\n tempBounds.y1 = path.bounds.y1 * size;\n tempBounds.x2 = path.bounds.x2 * size;\n tempBounds.y2 = path.bounds.y2 * size;\n bounds.union(tempBounds);\n });\n return;\n }\n if (!this.path.bounds) {\n return;\n }\n bounds.x1 = this.path.bounds.x1 * size;\n bounds.y1 = this.path.bounds.y1 * size;\n bounds.x2 = this.path.bounds.x2 * size;\n bounds.y2 = this.path.bounds.y2 * size;\n }\n}\n\n// export function CustomSymbol(): ISymbolClass {\n\n// }\n"]}
@@ -99,8 +99,6 @@ exports.DefaultStrokeStyle = Object.assign({
99
99
  forceBoundsHeight: void 0,
100
100
  opacity: 1,
101
101
  background: null,
102
- textureRatio: 0,
103
- textureOptions: null,
104
102
  backgroundOpacity: 1,
105
103
  backgroundCornerRadius: 0,
106
104
  texture: null,
@@ -200,7 +198,6 @@ exports.DefaultArcAttribute = Object.assign(Object.assign({}, exports.DefaultAtt
200
198
  }), exports.DefaultPathAttribute = Object.assign(Object.assign({}, exports.DefaultAttribute), {
201
199
  path: new custom_path2d_1.CustomPath2D,
202
200
  fillStrokeOrder: 1,
203
- clipRange: 1,
204
201
  customPath: () => {
205
202
  vutils_1.Logger.getInstance().warn("空函数");
206
203
  }
@@ -225,8 +222,7 @@ exports.DefaultArcAttribute = Object.assign(Object.assign({}, exports.DefaultAtt
225
222
  }), exports.DefaultSymbolAttribute = Object.assign(Object.assign({}, exports.DefaultAttribute), {
226
223
  symbolType: "circle",
227
224
  size: 10,
228
- keepDirIn3d: !0,
229
- clipRange: 1
225
+ keepDirIn3d: !0
230
226
  }), exports.DefaultTextAttribute = Object.assign(Object.assign(Object.assign({}, exports.DefaultAttribute), exports.DefaultTextStyle), {
231
227
  strokeBoundsBuffer: 0,
232
228
  keepDirIn3d: !0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphic/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["// 存放公共属性\nimport { Logger, Matrix, pi2 } from '@visactor/vutils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport type {\n IArcGraphicAttribute,\n IAreaGraphicAttribute,\n IGraphicAttribute,\n ICircleGraphicAttribute,\n IFillStyle,\n IGlyphGraphicAttribute,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPathGraphicAttribute,\n IPolygonGraphicAttribute,\n IRect3dGraphicAttribute,\n IRectGraphicAttribute,\n IStrokeStyle,\n IGraphicStyle,\n ISymbolGraphicAttribute,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n ITransform,\n RichTextWordBreak,\n RichTextVerticalDirection,\n RichTextGlobalAlignType,\n RichTextGlobalBaselineType,\n IRichTextIconGraphicAttribute,\n IConnectedStyle,\n ILayout,\n IDebugType,\n IPickStyle\n} from '../interface';\n\nexport const DefaultLayout: ILayout = {\n alignSelf: 'auto'\n};\n\nexport const DefaultTransform: ITransform = {\n x: 0,\n y: 0,\n z: 0,\n dx: 0,\n dy: 0,\n dz: 0,\n scrollX: 0,\n scrollY: 0,\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n angle: 0,\n alpha: 0,\n beta: 0,\n scaleCenter: [0, 0],\n anchor: [0, 0],\n anchor3d: [0, 0],\n postMatrix: new Matrix()\n};\n\nexport const DefaultFillStyle: IFillStyle = {\n fillOpacity: 1,\n fill: false,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowOffsetX: 0,\n shadowOffsetY: 0\n};\n\nconst commonStroke: Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> = {\n strokeOpacity: 1,\n lineDash: [],\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n lineJoin: 'miter',\n miterLimit: 10,\n strokeBoundsBuffer: 2,\n stroke: false\n};\n\nexport const DefaultStrokeStyle: IStrokeStyle = {\n outerBorder: { ...commonStroke, distance: 0 },\n innerBorder: { ...commonStroke, distance: 0 },\n ...commonStroke\n};\n\nexport const DefaultTextStyle: Required<ITextAttribute> = {\n text: '',\n maxLineWidth: Infinity,\n textAlign: 'left',\n textBaseline: 'alphabetic',\n fontSize: 16,\n // @ts-ignore\n fontFamily: `PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,\n Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol`,\n fontWeight: '',\n ellipsis: '…',\n fontVariant: '',\n fontStyle: '',\n lineHeight: undefined,\n underline: 0,\n lineThrough: 0,\n scaleIn3d: false,\n direction: 'horizontal',\n wordBreak: 'break-all',\n ignoreBuf: false,\n verticalMode: 0,\n wrap: false,\n whiteSpace: 'no-wrap',\n heightLimit: Infinity,\n lineClamp: Infinity,\n suffixPosition: 'end',\n underlineDash: [],\n underlineOffset: 0,\n disableAutoClipedPoptip: undefined\n};\n\nexport const DefaultPickStyle: IPickStyle = {\n pickStrokeBuffer: 0\n};\n\nexport const DefaultStyle: IGraphicStyle = {\n forceBoundsWidth: undefined,\n forceBoundsHeight: undefined,\n opacity: 1,\n background: null,\n textureRatio: 0,\n textureOptions: null,\n backgroundOpacity: 1,\n backgroundCornerRadius: 0,\n texture: null,\n textureColor: 'black',\n textureSize: 10,\n texturePadding: 2,\n backgroundMode: 'no-repeat',\n backgroundFit: true,\n blur: 0,\n cursor: null,\n html: null,\n react: null,\n ...DefaultFillStyle,\n ...DefaultStrokeStyle,\n ...DefaultLayout,\n ...DefaultPickStyle\n};\n\nexport const DefaultConnectAttribute: Required<IConnectedStyle> = {\n connectedType: 'none',\n // connectedStyle: {\n // stroke: DefaultStrokeStyle.stroke,\n // strokeOpacity: DefaultStrokeStyle.strokeOpacity,\n // lineDash: DefaultStrokeStyle.lineDash,\n // lineDashOffset: DefaultStrokeStyle.lineDashOffset,\n // lineCap: DefaultStrokeStyle.lineCap,\n // lineJoin: DefaultStrokeStyle.lineJoin,\n // lineWidth: DefaultStrokeStyle.lineWidth,\n // fill: DefaultFillStyle.fill,\n // fillOpacity: DefaultFillStyle.fillOpacity\n // },\n connectedStyle: {}, // 默认全都继承父属性\n connectedX: NaN,\n connectedY: NaN\n} as IConnectedStyle;\n\nexport const DefaultDebugAttribute: Required<IDebugType> = {\n _debug_bounds: false\n};\n\nexport const DefaultAttribute: Required<IGraphicAttribute> = {\n strokeSeg: null,\n renderable: true,\n pickable: true,\n shadowGraphic: undefined,\n childrenPickable: true,\n fillPickable: true,\n strokePickable: true,\n visible: true,\n zIndex: 0,\n layout: null,\n boundsPadding: 0,\n fillStrokeOrder: 0,\n renderStyle: 'default',\n pickMode: 'accurate',\n customPickShape: null,\n boundsMode: 'accurate',\n keepDirIn3d: true,\n shadowRootIdx: 1,\n globalZIndex: 1,\n globalCompositeOperation: '',\n overflow: 'hidden',\n shadowPickMode: 'graphic',\n ...DefaultDebugAttribute,\n ...DefaultStyle,\n ...DefaultTransform\n};\n\nexport function addAttributeToPrototype(obj: Record<string, any>, c: any, keys: string[]) {\n keys.forEach(key => {\n c.prototype[key] = obj[key];\n });\n}\nexport function rewriteProto(obj: Record<string, any>, c: Record<string, any>) {\n Object.setPrototypeOf(obj, c);\n}\n\nexport const DefaultArcAttribute: Required<IArcGraphicAttribute> = {\n ...DefaultAttribute,\n startAngle: 0,\n endAngle: pi2,\n innerRadius: 0,\n outerRadius: 1,\n innerPadding: 0,\n outerPadding: 0,\n cornerRadius: 0,\n padRadius: 0,\n padAngle: 0,\n cap: false,\n forceShowCap: false\n};\n\nexport const DefaultAreaAttribute: Required<IAreaGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n closePath: false,\n curveTension: 1\n};\n\nexport const DefaultCircleAttribute: Required<ICircleGraphicAttribute> = {\n ...DefaultAttribute,\n radius: 1,\n startAngle: 0,\n endAngle: pi2\n};\n\nexport const DefaultGroupAttribute: Required<IGroupGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n cornerRadius: 0,\n path: [],\n clip: false,\n visibleAll: true,\n display: 'relative',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n alignContent: 'flex-start',\n baseOpacity: 1\n};\n\nexport const DefaultGlyphAttribute: Required<IGlyphGraphicAttribute> = {\n ...DefaultAttribute,\n path: '',\n width: 0,\n height: 0,\n cornerRadius: 0,\n clip: false\n};\n\nexport const DefaultLineAttribute: Required<ILineGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n clipRangeByDimension: 'default',\n closePath: false,\n curveTension: 1\n};\n\nexport const DefaultPathAttribute: Required<IPathGraphicAttribute> = {\n ...DefaultAttribute,\n path: new CustomPath2D(),\n fillStrokeOrder: 1,\n clipRange: 1,\n customPath: () => {\n Logger.getInstance().warn('空函数');\n }\n};\n\nexport const DefaultPolygonAttribute: Required<IPolygonGraphicAttribute> = {\n ...DefaultAttribute,\n points: [],\n cornerRadius: 0,\n closePath: true\n};\n\nexport const DefaultRectAttribute: Required<IRectGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n strokeBoundsBuffer: 0,\n cornerRadius: 0\n};\n\nexport const DefaultRect3dAttribute: Required<IRect3dGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n cornerRadius: 0,\n length: 0\n};\n\nexport const DefaultSymbolAttribute: Required<ISymbolGraphicAttribute> = {\n ...DefaultAttribute,\n symbolType: 'circle',\n size: 10, // 外接**正方形**的边长\n keepDirIn3d: true,\n clipRange: 1\n};\n\nexport const DefaultTextAttribute: Required<ITextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n strokeBoundsBuffer: 0,\n keepDirIn3d: true\n};\n\nexport const DefaultRichTextAttribute: Required<IRichTextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n editable: false,\n width: 300,\n height: 300,\n ellipsis: true,\n wordBreak: 'break-word' as RichTextWordBreak,\n verticalDirection: 'top' as RichTextVerticalDirection,\n textAlign: 'left' as RichTextGlobalAlignType,\n textBaseline: 'top' as RichTextGlobalBaselineType,\n layoutDirection: 'horizontal',\n textConfig: [],\n disableAutoWrapLine: false,\n maxHeight: undefined,\n maxWidth: undefined,\n singleLine: false\n};\n\nexport const DefaultImageAttribute: Required<IImageGraphicAttribute> = {\n repeatX: 'no-repeat',\n repeatY: 'no-repeat',\n image: '',\n width: 0,\n height: 0,\n ...DefaultAttribute,\n fill: true,\n cornerRadius: 0\n};\n\nexport const DefaultRichTextIconAttribute: Required<IRichTextIconGraphicAttribute> = {\n ...DefaultImageAttribute,\n backgroundShowMode: 'never',\n backgroundWidth: 0,\n backgroundHeight: 0,\n textAlign: 'left',\n textBaseline: 'middle',\n direction: 'horizontal',\n margin: 0,\n id: '',\n\n width: 20,\n height: 20,\n backgroundFill: 'rgba(101, 117, 168, 0.1)',\n backgroundFillOpacity: 1,\n backgroundStroke: false,\n backgroundStrokeOpacity: 1,\n backgroundRadius: 4,\n opacity: 1\n};\n"]}
1
+ {"version":3,"sources":["../src/graphic/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["// 存放公共属性\nimport { Logger, Matrix, pi2 } from '@visactor/vutils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport type {\n IArcGraphicAttribute,\n IAreaGraphicAttribute,\n IGraphicAttribute,\n ICircleGraphicAttribute,\n IFillStyle,\n IGlyphGraphicAttribute,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPathGraphicAttribute,\n IPolygonGraphicAttribute,\n IRect3dGraphicAttribute,\n IRectGraphicAttribute,\n IStrokeStyle,\n IGraphicStyle,\n ISymbolGraphicAttribute,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n ITransform,\n RichTextWordBreak,\n RichTextVerticalDirection,\n RichTextGlobalAlignType,\n RichTextGlobalBaselineType,\n IRichTextIconGraphicAttribute,\n IConnectedStyle,\n ILayout,\n IDebugType,\n IPickStyle\n} from '../interface';\n\nexport const DefaultLayout: ILayout = {\n alignSelf: 'auto'\n};\n\nexport const DefaultTransform: ITransform = {\n x: 0,\n y: 0,\n z: 0,\n dx: 0,\n dy: 0,\n dz: 0,\n scrollX: 0,\n scrollY: 0,\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n angle: 0,\n alpha: 0,\n beta: 0,\n scaleCenter: [0, 0],\n anchor: [0, 0],\n anchor3d: [0, 0],\n postMatrix: new Matrix()\n};\n\nexport const DefaultFillStyle: IFillStyle = {\n fillOpacity: 1,\n fill: false,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowOffsetX: 0,\n shadowOffsetY: 0\n};\n\nconst commonStroke: Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> = {\n strokeOpacity: 1,\n lineDash: [],\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n lineJoin: 'miter',\n miterLimit: 10,\n strokeBoundsBuffer: 2,\n stroke: false\n};\n\nexport const DefaultStrokeStyle: IStrokeStyle = {\n outerBorder: { ...commonStroke, distance: 0 },\n innerBorder: { ...commonStroke, distance: 0 },\n ...commonStroke\n};\n\nexport const DefaultTextStyle: Required<ITextAttribute> = {\n text: '',\n maxLineWidth: Infinity,\n textAlign: 'left',\n textBaseline: 'alphabetic',\n fontSize: 16,\n // @ts-ignore\n fontFamily: `PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,\n Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol`,\n fontWeight: '',\n ellipsis: '…',\n fontVariant: '',\n fontStyle: '',\n lineHeight: undefined,\n underline: 0,\n lineThrough: 0,\n scaleIn3d: false,\n direction: 'horizontal',\n wordBreak: 'break-all',\n ignoreBuf: false,\n verticalMode: 0,\n wrap: false,\n whiteSpace: 'no-wrap',\n heightLimit: Infinity,\n lineClamp: Infinity,\n suffixPosition: 'end',\n underlineDash: [],\n underlineOffset: 0,\n disableAutoClipedPoptip: undefined\n};\n\nexport const DefaultPickStyle: IPickStyle = {\n pickStrokeBuffer: 0\n};\n\nexport const DefaultStyle: IGraphicStyle = {\n forceBoundsWidth: undefined,\n forceBoundsHeight: undefined,\n opacity: 1,\n background: null,\n backgroundOpacity: 1,\n backgroundCornerRadius: 0,\n texture: null,\n textureColor: 'black',\n textureSize: 10,\n texturePadding: 2,\n backgroundMode: 'no-repeat',\n backgroundFit: true,\n blur: 0,\n cursor: null,\n html: null,\n react: null,\n ...DefaultFillStyle,\n ...DefaultStrokeStyle,\n ...DefaultLayout,\n ...DefaultPickStyle\n};\n\nexport const DefaultConnectAttribute: Required<IConnectedStyle> = {\n connectedType: 'none',\n // connectedStyle: {\n // stroke: DefaultStrokeStyle.stroke,\n // strokeOpacity: DefaultStrokeStyle.strokeOpacity,\n // lineDash: DefaultStrokeStyle.lineDash,\n // lineDashOffset: DefaultStrokeStyle.lineDashOffset,\n // lineCap: DefaultStrokeStyle.lineCap,\n // lineJoin: DefaultStrokeStyle.lineJoin,\n // lineWidth: DefaultStrokeStyle.lineWidth,\n // fill: DefaultFillStyle.fill,\n // fillOpacity: DefaultFillStyle.fillOpacity\n // },\n connectedStyle: {}, // 默认全都继承父属性\n connectedX: NaN,\n connectedY: NaN\n} as IConnectedStyle;\n\nexport const DefaultDebugAttribute: Required<IDebugType> = {\n _debug_bounds: false\n};\n\nexport const DefaultAttribute: Required<IGraphicAttribute> = {\n strokeSeg: null,\n renderable: true,\n pickable: true,\n shadowGraphic: undefined,\n childrenPickable: true,\n fillPickable: true,\n strokePickable: true,\n visible: true,\n zIndex: 0,\n layout: null,\n boundsPadding: 0,\n fillStrokeOrder: 0,\n renderStyle: 'default',\n pickMode: 'accurate',\n customPickShape: null,\n boundsMode: 'accurate',\n keepDirIn3d: true,\n shadowRootIdx: 1,\n globalZIndex: 1,\n globalCompositeOperation: '',\n overflow: 'hidden',\n shadowPickMode: 'graphic',\n ...DefaultDebugAttribute,\n ...DefaultStyle,\n ...DefaultTransform\n};\n\nexport function addAttributeToPrototype(obj: Record<string, any>, c: any, keys: string[]) {\n keys.forEach(key => {\n c.prototype[key] = obj[key];\n });\n}\nexport function rewriteProto(obj: Record<string, any>, c: Record<string, any>) {\n Object.setPrototypeOf(obj, c);\n}\n\nexport const DefaultArcAttribute: Required<IArcGraphicAttribute> = {\n ...DefaultAttribute,\n startAngle: 0,\n endAngle: pi2,\n innerRadius: 0,\n outerRadius: 1,\n innerPadding: 0,\n outerPadding: 0,\n cornerRadius: 0,\n padRadius: 0,\n padAngle: 0,\n cap: false,\n forceShowCap: false\n};\n\nexport const DefaultAreaAttribute: Required<IAreaGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n closePath: false,\n curveTension: 1\n};\n\nexport const DefaultCircleAttribute: Required<ICircleGraphicAttribute> = {\n ...DefaultAttribute,\n radius: 1,\n startAngle: 0,\n endAngle: pi2\n};\n\nexport const DefaultGroupAttribute: Required<IGroupGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n cornerRadius: 0,\n path: [],\n clip: false,\n visibleAll: true,\n display: 'relative',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n alignContent: 'flex-start',\n baseOpacity: 1\n};\n\nexport const DefaultGlyphAttribute: Required<IGlyphGraphicAttribute> = {\n ...DefaultAttribute,\n path: '',\n width: 0,\n height: 0,\n cornerRadius: 0,\n clip: false\n};\n\nexport const DefaultLineAttribute: Required<ILineGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n clipRangeByDimension: 'default',\n closePath: false,\n curveTension: 1\n};\n\nexport const DefaultPathAttribute: Required<IPathGraphicAttribute> = {\n ...DefaultAttribute,\n path: new CustomPath2D(),\n fillStrokeOrder: 1,\n customPath: () => {\n Logger.getInstance().warn('空函数');\n }\n};\n\nexport const DefaultPolygonAttribute: Required<IPolygonGraphicAttribute> = {\n ...DefaultAttribute,\n points: [],\n cornerRadius: 0,\n closePath: true\n};\n\nexport const DefaultRectAttribute: Required<IRectGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n strokeBoundsBuffer: 0,\n cornerRadius: 0\n};\n\nexport const DefaultRect3dAttribute: Required<IRect3dGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n cornerRadius: 0,\n length: 0\n};\n\nexport const DefaultSymbolAttribute: Required<ISymbolGraphicAttribute> = {\n ...DefaultAttribute,\n symbolType: 'circle',\n size: 10, // 外接**正方形**的边长\n keepDirIn3d: true\n};\n\nexport const DefaultTextAttribute: Required<ITextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n strokeBoundsBuffer: 0,\n keepDirIn3d: true\n};\n\nexport const DefaultRichTextAttribute: Required<IRichTextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n editable: false,\n width: 300,\n height: 300,\n ellipsis: true,\n wordBreak: 'break-word' as RichTextWordBreak,\n verticalDirection: 'top' as RichTextVerticalDirection,\n textAlign: 'left' as RichTextGlobalAlignType,\n textBaseline: 'top' as RichTextGlobalBaselineType,\n layoutDirection: 'horizontal',\n textConfig: [],\n disableAutoWrapLine: false,\n maxHeight: undefined,\n maxWidth: undefined,\n singleLine: false\n};\n\nexport const DefaultImageAttribute: Required<IImageGraphicAttribute> = {\n repeatX: 'no-repeat',\n repeatY: 'no-repeat',\n image: '',\n width: 0,\n height: 0,\n ...DefaultAttribute,\n fill: true,\n cornerRadius: 0\n};\n\nexport const DefaultRichTextIconAttribute: Required<IRichTextIconGraphicAttribute> = {\n ...DefaultImageAttribute,\n backgroundShowMode: 'never',\n backgroundWidth: 0,\n backgroundHeight: 0,\n textAlign: 'left',\n textBaseline: 'middle',\n direction: 'horizontal',\n margin: 0,\n id: '',\n\n width: 20,\n height: 20,\n backgroundFill: 'rgba(101, 117, 168, 0.1)',\n backgroundFillOpacity: 1,\n backgroundStroke: false,\n backgroundStrokeOpacity: 1,\n backgroundRadius: 4,\n opacity: 1\n};\n"]}
@@ -17,7 +17,6 @@ export declare class DefaultGraphicService implements IGraphicService {
17
17
  afterUpdateAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds, {
18
18
  globalAABBBounds: IAABBBounds;
19
19
  }, boolean]>;
20
- clearAABBBounds: ISyncHook<[IGraphic, IStage, IAABBBounds]>;
21
20
  };
22
21
  protected tempAABBBounds1: AABBBounds;
23
22
  protected tempAABBBounds2: AABBBounds;
@@ -32,7 +31,6 @@ export declare class DefaultGraphicService implements IGraphicService {
32
31
  afterUpdateAABBBounds(graphic: IGraphic, stage: IStage, bounds: IAABBBounds, params: {
33
32
  globalAABBBounds: IAABBBounds;
34
33
  }, selfChange: boolean): void;
35
- clearAABBBounds(graphic: IGraphic, stage: IStage, b: IAABBBounds): void;
36
34
  updatePathProxyAABBBounds(aabbBounds: IAABBBounds, graphic?: IGraphic): boolean;
37
35
  updateHTMLTextAABBBounds(attribute: ITextGraphicAttribute, textTheme: Required<ITextGraphicAttribute>, aabbBounds: IAABBBounds, graphic?: IText): void;
38
36
  combindShadowAABBBounds(bounds: IAABBBounds, graphic?: IGraphic): void;
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.DefaultGraphicService = exports.shouldUseMat4 = exports.getModelMatrix = exports.getExtraModelMatrix = void 0;
18
18
 
19
- const inversify_lite_1 = require("../../common/inversify-lite"), vutils_1 = require("@visactor/vutils"), tapable_1 = require("../../tapable"), text_1 = require("../../common/text"), tools_1 = require("../tools"), matrix_allocate_1 = require("../../allocator/matrix-allocate"), bounds_context_1 = require("../../common/bounds-context"), render_command_list_1 = require("../../common/render-command-list"), constants_1 = require("../constants"), matrix_1 = require("../../common/matrix"), application_1 = require("../../application");
19
+ const inversify_lite_1 = require("../../common/inversify-lite"), vutils_1 = require("@visactor/vutils"), tapable_1 = require("../../tapable"), text_1 = require("../../common/text"), tools_1 = require("../tools"), matrix_allocate_1 = require("../../allocator/matrix-allocate"), bounds_context_1 = require("../../common/bounds-context"), render_command_list_1 = require("../../common/render-command-list"), constants_1 = require("../constants"), matrix_1 = require("../../common/matrix");
20
20
 
21
21
  function getExtraModelMatrix(dx, dy, graphic) {
22
22
  const {alpha: alpha, beta: beta} = graphic.attribute;
@@ -96,8 +96,7 @@ let DefaultGraphicService = class {
96
96
  onAddIncremental: new tapable_1.SyncHook([ "graphic", "group", "stage" ]),
97
97
  onClearIncremental: new tapable_1.SyncHook([ "graphic", "group", "stage" ]),
98
98
  beforeUpdateAABBBounds: new tapable_1.SyncHook([ "graphic", "stage", "willUpdate", "aabbBounds" ]),
99
- afterUpdateAABBBounds: new tapable_1.SyncHook([ "graphic", "stage", "aabbBounds", "globalAABBBounds", "selfChange" ]),
100
- clearAABBBounds: new tapable_1.SyncHook([ "graphic", "stage", "aabbBounds" ])
99
+ afterUpdateAABBBounds: new tapable_1.SyncHook([ "graphic", "stage", "aabbBounds", "globalAABBBounds", "selfChange" ])
101
100
  }, this.tempAABBBounds1 = new vutils_1.AABBBounds, this.tempAABBBounds2 = new vutils_1.AABBBounds;
102
101
  }
103
102
  onAttributeUpdate(graphic) {
@@ -124,9 +123,6 @@ let DefaultGraphicService = class {
124
123
  afterUpdateAABBBounds(graphic, stage, bounds, params, selfChange) {
125
124
  this.hooks.afterUpdateAABBBounds.taps.length && this.hooks.afterUpdateAABBBounds.call(graphic, stage, bounds, params, selfChange);
126
125
  }
127
- clearAABBBounds(graphic, stage, b) {
128
- this.hooks.clearAABBBounds.taps.length && this.hooks.clearAABBBounds.call(graphic, stage, b);
129
- }
130
126
  updatePathProxyAABBBounds(aabbBounds, graphic) {
131
127
  const path = "function" == typeof graphic.pathProxy ? graphic.pathProxy(graphic.attribute) : graphic.pathProxy;
132
128
  if (!path) return !1;
@@ -176,11 +172,10 @@ let DefaultGraphicService = class {
176
172
  validCheck(attribute, theme, aabbBounds, graphic) {
177
173
  if (!graphic) return !0;
178
174
  if (null != attribute.forceBoundsHeight || null != attribute.forceBoundsWidth) return !0;
179
- if (graphic.shadowRoot || graphic.isContainer) return !0;
175
+ if (graphic.shadowRoot) return !0;
176
+ if (!graphic.valid) return aabbBounds.clear(), !1;
180
177
  const {visible: visible = theme.visible} = attribute;
181
- return !(!graphic.valid || !visible) || (aabbBounds.empty() || (graphic.parent && aabbBounds.transformWithMatrix(graphic.parent.globalTransMatrix),
182
- application_1.application.graphicService.clearAABBBounds(graphic, graphic.stage, aabbBounds),
183
- aabbBounds.clear()), !1);
178
+ return !!visible || (aabbBounds.clear(), !1);
184
179
  }
185
180
  updateTempAABBBounds(aabbBounds) {
186
181
  const tb1 = this.tempAABBBounds1, tb2 = this.tempAABBBounds2;