@visactor/vrender 0.9.0 → 0.9.1-circular.0
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.
- package/cjs/allocator/allocator-modules.d.ts +1 -3
- package/cjs/allocator/allocator-modules.js +1 -22
- package/cjs/allocator/allocator-modules.js.map +1 -1
- package/cjs/allocator/canvas-allocate.d.ts +2 -5
- package/cjs/allocator/canvas-allocate.js +11 -27
- package/cjs/allocator/canvas-allocate.js.map +1 -1
- package/cjs/allocator/constants.d.ts +0 -2
- package/cjs/allocator/constants.js +3 -5
- package/cjs/allocator/constants.js.map +1 -1
- package/cjs/allocator/graphic-allocate.d.ts +1 -58
- package/cjs/allocator/graphic-allocate.js +1 -160
- package/cjs/allocator/graphic-allocate.js.map +1 -1
- package/cjs/allocator/interface.d.ts +10 -0
- package/cjs/allocator/interface.js.map +1 -1
- package/cjs/allocator/matrix-allocate.d.ts +2 -0
- package/cjs/allocator/matrix-allocate.js +9 -16
- package/cjs/allocator/matrix-allocate.js.map +1 -1
- package/cjs/animate/Ticker/default-ticker.js +5 -5
- package/cjs/animate/Ticker/default-ticker.js.map +1 -1
- package/cjs/animate/animate.d.ts +1 -1
- package/cjs/animate/animate.js +15 -15
- package/cjs/animate/animate.js.map +1 -1
- package/cjs/animate/custom-animate.d.ts +3 -3
- package/cjs/animate/custom-animate.js +23 -25
- package/cjs/animate/custom-animate.js.map +1 -1
- package/cjs/animate/default-ticker.d.ts +2 -0
- package/cjs/animate/default-ticker.js +14 -0
- package/cjs/animate/default-ticker.js.map +1 -0
- package/cjs/animate/morphing.d.ts +1 -1
- package/cjs/animate/morphing.js +15 -17
- package/cjs/animate/morphing.js.map +1 -1
- package/cjs/animate/timeline.js +6 -5
- package/cjs/animate/timeline.js.map +1 -1
- package/cjs/application.d.ts +11 -0
- package/cjs/application.js +9 -0
- package/cjs/application.js.map +1 -0
- package/cjs/canvas/contributions/browser/canvas.js +2 -2
- package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
- package/cjs/canvas/contributions/browser/conical-gradient.js +2 -2
- package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
- package/cjs/canvas/contributions/browser/context.d.ts +2 -4
- package/cjs/canvas/contributions/browser/context.js +13 -13
- package/cjs/canvas/contributions/browser/context.js.map +1 -1
- package/cjs/canvas/contributions/taro/context.js +8 -8
- package/cjs/canvas/contributions/taro/context.js.map +1 -1
- package/cjs/canvas/empty-context.d.ts +1 -1
- package/cjs/canvas/empty-context.js +7 -7
- package/cjs/canvas/empty-context.js.map +1 -1
- package/cjs/canvas/index.d.ts +0 -3
- package/cjs/canvas/index.js +2 -14
- package/cjs/canvas/index.js.map +1 -1
- package/cjs/canvas/util.d.ts +3 -0
- package/cjs/canvas/util.js +22 -10
- package/cjs/canvas/util.js.map +1 -1
- package/cjs/color-string/colorName.js +1 -1
- package/cjs/color-string/index.js +1 -1
- package/cjs/color-string/interpolate.js +1 -1
- package/cjs/common/{bezier.d.ts → bezier-utils.d.ts} +0 -3
- package/cjs/common/bezier-utils.js +35 -0
- package/cjs/common/bezier-utils.js.map +1 -0
- package/cjs/common/canvas-utils.d.ts +1 -1
- package/cjs/common/canvas-utils.js +11 -7
- package/cjs/common/canvas-utils.js.map +1 -1
- package/cjs/common/custom-path2d.d.ts +47 -0
- package/cjs/common/{path.js → custom-path2d.js} +11 -230
- package/cjs/common/custom-path2d.js.map +1 -0
- package/cjs/common/enums.d.ts +12 -0
- package/cjs/common/enums.js +10 -3
- package/cjs/common/enums.js.map +1 -1
- package/cjs/common/generator.js +1 -2
- package/cjs/common/morphing-utils.d.ts +1 -2
- package/cjs/common/morphing-utils.js +8 -11
- package/cjs/common/morphing-utils.js.map +1 -1
- package/cjs/common/polygon.js +1 -0
- package/cjs/common/render-area.d.ts +2 -3
- package/cjs/common/render-area.js +8 -8
- package/cjs/common/render-area.js.map +1 -1
- package/cjs/common/render-curve.d.ts +1 -2
- package/cjs/common/render-curve.js +3 -3
- package/cjs/common/render-curve.js.map +1 -1
- package/cjs/common/seg-context.d.ts +7 -13
- package/cjs/common/seg-context.js +7 -13
- package/cjs/common/seg-context.js.map +1 -1
- package/cjs/common/{curve → segment}/basis.d.ts +12 -5
- package/cjs/common/{curve → segment}/basis.js +4 -4
- package/cjs/common/segment/basis.js.map +1 -0
- package/cjs/common/segment/common.d.ts +3 -0
- package/cjs/common/segment/common.js.map +1 -0
- package/cjs/common/segment/curve/arc.d.ts +14 -0
- package/cjs/common/segment/curve/arc.js +29 -0
- package/cjs/common/segment/curve/arc.js.map +1 -0
- package/cjs/common/segment/curve/base.d.ts +13 -0
- package/cjs/common/segment/curve/base.js +15 -0
- package/cjs/common/segment/curve/base.js.map +1 -0
- package/cjs/common/segment/curve/cubic-bezier.d.ts +17 -0
- package/cjs/common/segment/curve/cubic-bezier.js +42 -0
- package/cjs/common/segment/curve/cubic-bezier.js.map +1 -0
- package/cjs/common/segment/curve/curve-context.d.ts +19 -0
- package/cjs/common/segment/curve/curve-context.js +48 -0
- package/cjs/common/segment/curve/curve-context.js.map +1 -0
- package/cjs/common/segment/curve/ellipse.d.ts +18 -0
- package/cjs/common/segment/curve/ellipse.js +30 -0
- package/cjs/common/segment/curve/ellipse.js.map +1 -0
- package/cjs/common/segment/curve/line.d.ts +16 -0
- package/cjs/common/segment/curve/line.js +41 -0
- package/cjs/common/segment/curve/line.js.map +1 -0
- package/cjs/common/segment/curve/move.d.ts +13 -0
- package/cjs/common/segment/curve/move.js +28 -0
- package/cjs/common/segment/curve/move.js.map +1 -0
- package/cjs/common/segment/curve/path.d.ts +11 -0
- package/cjs/common/segment/curve/path.js +31 -0
- package/cjs/common/segment/curve/path.js.map +1 -0
- package/cjs/common/segment/curve/quadratic-bezier.d.ts +14 -0
- package/cjs/common/segment/curve/quadratic-bezier.js +29 -0
- package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -0
- package/{es/common/curve → cjs/common/segment}/index.d.ts +2 -4
- package/cjs/common/{curve → segment}/index.js +1 -2
- package/cjs/common/segment/index.js.map +1 -0
- package/cjs/common/segment/linear-closed.d.ts +24 -0
- package/cjs/common/{curve → segment}/linear-closed.js +4 -4
- package/cjs/common/segment/linear-closed.js.map +1 -0
- package/cjs/common/segment/linear.d.ts +24 -0
- package/cjs/common/{curve → segment}/linear.js +4 -4
- package/cjs/common/segment/linear.js.map +1 -0
- package/{es/common/curve → cjs/common/segment}/monotone.d.ts +12 -5
- package/cjs/common/{curve → segment}/monotone.js +5 -5
- package/cjs/common/segment/monotone.js.map +1 -0
- package/cjs/common/segment/step.d.ts +25 -0
- package/cjs/common/{curve → segment}/step.js +4 -4
- package/cjs/common/segment/step.js.map +1 -0
- package/cjs/common/shape/arc.d.ts +3 -0
- package/cjs/common/shape/arc.js +17 -2
- package/cjs/common/shape/arc.js.map +1 -1
- package/cjs/common/shape/rect.d.ts +1 -1
- package/cjs/common/sort.js +1 -1
- package/cjs/common/split-path.js +1 -1
- package/cjs/common/split-path.js.map +1 -1
- package/cjs/common/store.js +1 -1
- package/cjs/common/text.js +1 -1
- package/cjs/common/utils.d.ts +2 -1
- package/cjs/common/utils.js +16 -7
- package/cjs/common/utils.js.map +1 -1
- package/cjs/container.js +2 -1
- package/cjs/container.js.map +1 -1
- package/cjs/core/application.js +1 -1
- package/cjs/core/camera.js +8 -8
- package/cjs/core/camera.js.map +1 -1
- package/cjs/core/constants.d.ts +1 -5
- package/cjs/core/constants.js +3 -20
- package/cjs/core/constants.js.map +1 -1
- package/cjs/core/contributions/env/browser-contribution.js +2 -2
- package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
- package/cjs/core/contributions/env/modules.js +2 -2
- package/cjs/core/contributions/env/modules.js.map +1 -1
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +2 -2
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/modules.js +2 -2
- package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/cjs/core/contributions/textMeasure/AtextMeasure.d.ts +1 -1
- package/cjs/core/contributions/textMeasure/AtextMeasure.js +4 -4
- package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/cjs/core/contributions/textMeasure/ITextMeasure.d.ts +1 -1
- package/cjs/core/contributions/textMeasure/ITextMeasure.js.map +1 -1
- package/cjs/core/contributions/textMeasure/modules.js +2 -2
- package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
- package/cjs/core/contributions/window/base-contribution.js +2 -2
- package/cjs/core/contributions/window/base-contribution.js.map +1 -1
- package/cjs/core/contributions/window/browser-contribution.js +2 -2
- package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
- package/cjs/core/contributions/window/feishu-contribution.js +2 -2
- package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
- package/cjs/core/contributions/window/lynx-contribution.js +2 -2
- package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
- package/cjs/core/contributions/window/modules.js +5 -5
- package/cjs/core/contributions/window/modules.js.map +1 -1
- package/cjs/core/contributions/window/node-contribution.js.map +1 -1
- package/cjs/core/contributions/window/taro-contribution.js +2 -2
- package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
- package/cjs/core/core-modules.js +5 -5
- package/cjs/core/core-modules.js.map +1 -1
- package/cjs/core/global-module.d.ts +5 -0
- package/cjs/core/global-module.js +19 -0
- package/cjs/core/global-module.js.map +1 -0
- package/cjs/core/global.d.ts +3 -3
- package/cjs/core/global.js +3 -3
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/graphic-utils.d.ts +3 -25
- package/cjs/core/graphic-utils.js +10 -11
- package/cjs/core/graphic-utils.js.map +1 -1
- package/cjs/core/index.d.ts +2 -0
- package/cjs/core/index.js +3 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +30 -0
- package/cjs/core/interface.js +6 -0
- package/cjs/core/interface.js.map +1 -0
- package/cjs/core/layer-service.d.ts +1 -8
- package/cjs/core/layer-service.js +2 -4
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/core/layer.d.ts +1 -1
- package/cjs/core/layer.js +8 -7
- package/cjs/core/layer.js.map +1 -1
- package/cjs/core/light.js +1 -1
- package/cjs/core/stage.js +8 -8
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.js +4 -4
- package/cjs/core/window.js.map +1 -1
- package/cjs/create.d.ts +1 -1
- package/cjs/create.js +4 -3
- package/cjs/create.js.map +1 -1
- package/cjs/event/constant.js +1 -1
- package/cjs/event/event-manager.js +1 -1
- package/cjs/event/event-system.js +1 -1
- package/cjs/event/event-target.js +1 -1
- package/cjs/event/extension/gesture.js +2 -2
- package/cjs/event/extension/gesture.js.map +1 -1
- package/cjs/event/index.js +1 -1
- package/cjs/event/interface.js +1 -1
- package/cjs/event/type.js +2 -1
- package/cjs/event/util.js +1 -1
- package/cjs/graphic/arc.d.ts +1 -2
- package/cjs/graphic/arc.js +7 -11
- package/cjs/graphic/arc.js.map +1 -1
- package/cjs/graphic/arc3d.d.ts +0 -1
- package/cjs/graphic/arc3d.js +6 -8
- package/cjs/graphic/arc3d.js.map +1 -1
- package/cjs/graphic/area.d.ts +1 -2
- package/cjs/graphic/area.js +8 -12
- package/cjs/graphic/area.js.map +1 -1
- package/cjs/graphic/bounds.js +1 -1
- package/cjs/graphic/builtin-symbol/utils.js +3 -3
- package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
- package/cjs/graphic/circle.d.ts +1 -2
- package/cjs/graphic/circle.js +7 -11
- package/cjs/graphic/circle.js.map +1 -1
- package/cjs/graphic/config.js +5 -7
- package/cjs/graphic/config.js.map +1 -1
- package/{es/graphic/constant.d.ts → cjs/graphic/constants.d.ts} +2 -1
- package/cjs/graphic/constants.js +21 -0
- package/cjs/graphic/constants.js.map +1 -0
- package/cjs/graphic/glyph.d.ts +0 -1
- package/cjs/graphic/glyph.js +4 -6
- package/cjs/graphic/glyph.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-module.js +8 -7
- package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.d.ts +4 -60
- package/cjs/graphic/graphic-service/graphic-service.js +48 -48
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +0 -1
- package/cjs/graphic/graphic.js +14 -23
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +0 -1
- package/cjs/graphic/group.js +16 -15
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/image.d.ts +0 -1
- package/cjs/graphic/image.js +5 -9
- package/cjs/graphic/image.js.map +1 -1
- package/cjs/graphic/index.d.ts +1 -0
- package/cjs/graphic/index.js +2 -1
- package/cjs/graphic/index.js.map +1 -1
- package/cjs/graphic/line.d.ts +1 -2
- package/cjs/graphic/line.js +7 -11
- package/cjs/graphic/line.js.map +1 -1
- package/cjs/graphic/node-tree.js +2 -2
- package/cjs/graphic/node-tree.js.map +1 -1
- package/cjs/graphic/path.d.ts +1 -2
- package/cjs/graphic/path.js +9 -13
- package/cjs/graphic/path.js.map +1 -1
- package/cjs/graphic/polygon.d.ts +1 -2
- package/cjs/graphic/polygon.js +5 -9
- package/cjs/graphic/polygon.js.map +1 -1
- package/cjs/graphic/pyramid3d.d.ts +0 -1
- package/cjs/graphic/pyramid3d.js +5 -7
- package/cjs/graphic/pyramid3d.js.map +1 -1
- package/cjs/graphic/rect.d.ts +1 -2
- package/cjs/graphic/rect.js +6 -10
- package/cjs/graphic/rect.js.map +1 -1
- package/cjs/graphic/rect3d.d.ts +0 -1
- package/cjs/graphic/rect3d.js +3 -7
- package/cjs/graphic/rect3d.js.map +1 -1
- package/cjs/graphic/richtext/icon.js +3 -3
- package/cjs/graphic/richtext/icon.js.map +1 -1
- package/cjs/graphic/richtext/paragraph.d.ts +1 -0
- package/cjs/graphic/richtext/paragraph.js +7 -2
- package/cjs/graphic/richtext/paragraph.js.map +1 -1
- package/cjs/graphic/richtext/utils.d.ts +0 -2
- package/cjs/graphic/richtext/utils.js +12 -25
- package/cjs/graphic/richtext/utils.js.map +1 -1
- package/cjs/graphic/richtext/wrapper.js +2 -2
- package/cjs/graphic/richtext/wrapper.js.map +1 -1
- package/cjs/graphic/richtext.d.ts +0 -1
- package/cjs/graphic/richtext.js +5 -9
- package/cjs/graphic/richtext.js.map +1 -1
- package/cjs/graphic/symbol.d.ts +1 -2
- package/cjs/graphic/symbol.js +7 -11
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/text.d.ts +0 -1
- package/cjs/graphic/text.js +12 -15
- package/cjs/graphic/text.js.map +1 -1
- package/cjs/graphic/tools.d.ts +1 -0
- package/cjs/graphic/tools.js +11 -3
- package/cjs/graphic/tools.js.map +1 -1
- package/cjs/graphic/wrap-text.js +2 -2
- package/cjs/graphic/wrap-text.js.map +1 -1
- package/cjs/index.d.ts +21 -3
- package/cjs/index.js +14 -12
- package/cjs/index.js.map +1 -1
- package/cjs/interface/common.d.ts +1 -0
- package/cjs/interface/common.js.map +1 -1
- package/cjs/interface/context.d.ts +3 -3
- package/cjs/interface/context.js.map +1 -1
- package/{es/common/curve/interface.d.ts → cjs/interface/curve.d.ts} +19 -19
- package/cjs/interface/curve.js +6 -0
- package/cjs/interface/curve.js.map +1 -0
- package/cjs/interface/graphic/area.d.ts +2 -2
- package/cjs/interface/graphic/area.js.map +1 -1
- package/cjs/interface/graphic/creator.js.map +1 -1
- package/cjs/interface/graphic/line.d.ts +2 -2
- package/cjs/interface/graphic/line.js.map +1 -1
- package/cjs/interface/graphic/path.d.ts +1 -2
- package/cjs/interface/graphic/path.js.map +1 -1
- package/cjs/interface/graphic/richText.d.ts +2 -4
- package/cjs/interface/graphic/richText.js.map +1 -1
- package/cjs/interface/graphic-service.d.ts +58 -0
- package/cjs/interface/graphic-service.js +6 -0
- package/cjs/interface/graphic-service.js.map +1 -0
- package/cjs/interface/graphic.d.ts +4 -4
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/index.d.ts +2 -0
- package/cjs/interface/index.js +2 -1
- package/cjs/interface/index.js.map +1 -1
- package/cjs/interface/path.d.ts +11 -19
- package/cjs/interface/path.js +1 -8
- package/cjs/interface/path.js.map +1 -1
- package/cjs/kits/env.js +3 -3
- package/cjs/kits/env.js.map +1 -1
- package/cjs/modules.d.ts +2 -19
- package/cjs/modules.js +12 -17
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/canvas-picker-service.d.ts +1 -1
- package/cjs/picker/canvas-picker-service.js +10 -9
- package/cjs/picker/canvas-picker-service.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc3d-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/area-picker.js +3 -3
- package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/circle-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js +2 -2
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/image-picker.js +2 -2
- package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/line-picker.js +5 -5
- package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/module.js +2 -2
- package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/path-picker.js +5 -5
- package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js +3 -3
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect3d-picker.js +4 -4
- package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/richtext-picker.js +2 -2
- package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js +5 -5
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/text-picker.js +5 -5
- package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/arc-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/area-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/circle-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/glyph-picker.js +2 -2
- package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/line-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/module.js +2 -2
- package/cjs/picker/contributions/math-picker/module.js.map +1 -1
- package/cjs/picker/contributions/math-picker/path-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/polygon-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/rect-picker.js +4 -4
- package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/symbol-picker.js +3 -3
- package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/text-picker.js +2 -2
- package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/cjs/picker/contributions/modules.js.map +1 -1
- package/cjs/picker/math-picker-service.d.ts +1 -1
- package/cjs/picker/math-picker-service.js +4 -3
- package/cjs/picker/math-picker-service.js.map +1 -1
- package/cjs/picker/pick-interceptor.js +2 -2
- package/cjs/picker/pick-interceptor.js.map +1 -1
- package/cjs/picker/pick-modules.js +2 -2
- package/cjs/picker/pick-modules.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +1 -1
- package/cjs/picker/picker-service.js +10 -10
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +2 -2
- package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/auto-render-plugin.js +6 -6
- package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +7 -7
- package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
- package/cjs/render/contributions/render/arc-render.d.ts +1 -2
- package/cjs/render/contributions/render/arc-render.js +22 -117
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/arc3d-render.js +10 -10
- package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
- package/cjs/render/contributions/render/area-render.d.ts +2 -2
- package/cjs/render/contributions/render/area-render.js +18 -17
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.js +3 -3
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-render.d.ts +1 -1
- package/cjs/render/contributions/render/circle-render.js +6 -5
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +5 -5
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-contribution-render.js +6 -2
- package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +3 -3
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +3 -3
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +7 -7
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +2 -2
- package/cjs/render/contributions/render/draw-contribution.js +6 -6
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/draw-interceptor.js +5 -5
- package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
- package/cjs/render/contributions/render/glyph-render.js +3 -3
- package/cjs/render/contributions/render/glyph-render.js.map +1 -1
- package/cjs/render/contributions/render/group-render.d.ts +1 -1
- package/cjs/render/contributions/render/group-render.js +9 -8
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-render.d.ts +1 -1
- package/cjs/render/contributions/render/image-render.js +6 -5
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-area-render.js +4 -4
- package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
- package/cjs/render/contributions/render/incremental-draw-contribution.js +4 -4
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/incremental-line-render.js +4 -4
- package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
- package/cjs/render/contributions/render/index.d.ts +1 -0
- package/cjs/render/contributions/render/index.js +1 -1
- package/cjs/render/contributions/render/index.js.map +1 -1
- package/cjs/render/contributions/render/line-render.d.ts +1 -2
- package/cjs/render/contributions/render/line-render.js +11 -11
- package/cjs/render/contributions/render/line-render.js.map +1 -1
- package/cjs/render/contributions/render/module.js +12 -12
- package/cjs/render/contributions/render/module.js.map +1 -1
- package/cjs/render/contributions/render/path-render.d.ts +1 -1
- package/cjs/render/contributions/render/path-render.js +9 -8
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-render.d.ts +1 -1
- package/cjs/render/contributions/render/polygon-render.js +6 -5
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/pyramid3d-render.js +7 -7
- package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.d.ts +1 -1
- package/cjs/render/contributions/render/rect-render.js +7 -6
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/rect3d-render.js +7 -7
- package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
- package/cjs/render/contributions/render/richtext-render.js +6 -6
- package/cjs/render/contributions/render/richtext-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.d.ts +1 -1
- package/cjs/render/contributions/render/symbol-render.js +7 -6
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/text-render.js +10 -10
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/contributions/render/utils.d.ts +13 -3
- package/cjs/render/contributions/render/utils.js +105 -7
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/resource-loader/loader.d.ts +1 -1
- package/cjs/resource-loader/loader.js +8 -8
- package/cjs/resource-loader/loader.js.map +1 -1
- package/cjs/{common → tapable}/interface.js +2 -0
- package/cjs/tapable/interface.js.map +1 -0
- package/dist/vrender.js.js +1 -1
- package/dist/vrender.js.min.js +1 -1
- package/es/allocator/allocator-modules.d.ts +1 -3
- package/es/allocator/allocator-modules.js +1 -22
- package/es/allocator/allocator-modules.js.map +1 -1
- package/es/allocator/canvas-allocate.d.ts +2 -5
- package/es/allocator/canvas-allocate.js +9 -27
- package/es/allocator/canvas-allocate.js.map +1 -1
- package/es/allocator/constants.d.ts +0 -2
- package/es/allocator/constants.js +1 -6
- package/es/allocator/constants.js.map +1 -1
- package/es/allocator/graphic-allocate.d.ts +1 -58
- package/es/allocator/graphic-allocate.js +1 -181
- package/es/allocator/graphic-allocate.js.map +1 -1
- package/es/allocator/interface.d.ts +10 -0
- package/es/allocator/interface.js.map +1 -1
- package/es/allocator/matrix-allocate.d.ts +2 -0
- package/es/allocator/matrix-allocate.js +7 -19
- package/es/allocator/matrix-allocate.js.map +1 -1
- package/es/animate/Ticker/default-ticker.js +5 -5
- package/es/animate/Ticker/default-ticker.js.map +1 -1
- package/es/animate/animate.d.ts +1 -1
- package/es/animate/animate.js +3 -1
- package/es/animate/animate.js.map +1 -1
- package/es/animate/custom-animate.d.ts +3 -3
- package/es/animate/custom-animate.js +20 -20
- package/es/animate/custom-animate.js.map +1 -1
- package/es/animate/default-ticker.d.ts +2 -0
- package/es/animate/default-ticker.js +12 -0
- package/es/animate/default-ticker.js.map +1 -0
- package/es/animate/morphing.d.ts +1 -1
- package/es/animate/morphing.js +15 -16
- package/es/animate/morphing.js.map +1 -1
- package/es/animate/timeline.js +5 -2
- package/es/animate/timeline.js.map +1 -1
- package/es/application.d.ts +11 -0
- package/es/application.js +3 -0
- package/es/application.js.map +1 -0
- package/es/canvas/contributions/browser/canvas.js +2 -2
- package/es/canvas/contributions/browser/canvas.js.map +1 -1
- package/es/canvas/contributions/browser/conical-gradient.js +4 -4
- package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
- package/es/canvas/contributions/browser/context.d.ts +2 -4
- package/es/canvas/contributions/browser/context.js +12 -11
- package/es/canvas/contributions/browser/context.js.map +1 -1
- package/es/canvas/contributions/taro/context.js +8 -7
- package/es/canvas/contributions/taro/context.js.map +1 -1
- package/es/canvas/empty-context.d.ts +1 -1
- package/es/canvas/empty-context.js +5 -3
- package/es/canvas/empty-context.js.map +1 -1
- package/es/canvas/index.d.ts +0 -3
- package/es/canvas/index.js +0 -12
- package/es/canvas/index.js.map +1 -1
- package/es/canvas/util.d.ts +3 -0
- package/es/canvas/util.js +15 -1
- package/es/canvas/util.js.map +1 -1
- package/es/color-string/colorName.js +1 -1
- package/es/color-string/index.js +1 -1
- package/es/color-string/interpolate.js +1 -1
- package/es/common/{bezier.d.ts → bezier-utils.d.ts} +0 -3
- package/es/common/{bezier.js → bezier-utils.js} +1 -13
- package/es/common/bezier-utils.js.map +1 -0
- package/es/common/canvas-utils.d.ts +1 -1
- package/es/common/canvas-utils.js +6 -3
- package/es/common/canvas-utils.js.map +1 -1
- package/es/common/custom-path2d.d.ts +47 -0
- package/es/common/{path.js → custom-path2d.js} +7 -207
- package/es/common/custom-path2d.js.map +1 -0
- package/es/common/enums.d.ts +12 -0
- package/es/common/enums.js +14 -0
- package/es/common/enums.js.map +1 -1
- package/es/common/generator.js +1 -2
- package/es/common/morphing-utils.d.ts +1 -2
- package/es/common/morphing-utils.js +3 -6
- package/es/common/morphing-utils.js.map +1 -1
- package/es/common/polygon.js +2 -1
- package/es/common/render-area.d.ts +2 -3
- package/es/common/render-area.js +5 -1
- package/es/common/render-area.js.map +1 -1
- package/es/common/render-curve.d.ts +1 -2
- package/es/common/render-curve.js +2 -2
- package/es/common/render-curve.js.map +1 -1
- package/es/common/seg-context.d.ts +7 -13
- package/es/common/seg-context.js +4 -6
- package/es/common/seg-context.js.map +1 -1
- package/es/common/{curve → segment}/basis.d.ts +12 -5
- package/es/common/{curve → segment}/basis.js +4 -4
- package/es/common/segment/basis.js.map +1 -0
- package/es/common/segment/common.d.ts +3 -0
- package/es/common/segment/common.js.map +1 -0
- package/es/common/segment/curve/arc.d.ts +14 -0
- package/es/common/segment/curve/arc.js +22 -0
- package/es/common/segment/curve/arc.js.map +1 -0
- package/es/common/segment/curve/base.d.ts +13 -0
- package/es/common/segment/curve/base.js +7 -0
- package/es/common/segment/curve/base.js.map +1 -0
- package/es/common/segment/curve/cubic-bezier.d.ts +17 -0
- package/es/common/segment/curve/cubic-bezier.js +37 -0
- package/es/common/segment/curve/cubic-bezier.js.map +1 -0
- package/es/common/segment/curve/curve-context.d.ts +19 -0
- package/es/common/segment/curve/curve-context.js +44 -0
- package/es/common/segment/curve/curve-context.js.map +1 -0
- package/es/common/segment/curve/ellipse.d.ts +18 -0
- package/es/common/segment/curve/ellipse.js +24 -0
- package/es/common/segment/curve/ellipse.js.map +1 -0
- package/es/common/segment/curve/line.d.ts +16 -0
- package/es/common/segment/curve/line.js +34 -0
- package/es/common/segment/curve/line.js.map +1 -0
- package/es/common/segment/curve/move.d.ts +13 -0
- package/es/common/segment/curve/move.js +22 -0
- package/es/common/segment/curve/move.js.map +1 -0
- package/es/common/segment/curve/path.d.ts +11 -0
- package/es/common/segment/curve/path.js +23 -0
- package/es/common/segment/curve/path.js.map +1 -0
- package/es/common/segment/curve/quadratic-bezier.d.ts +14 -0
- package/es/common/segment/curve/quadratic-bezier.js +23 -0
- package/es/common/segment/curve/quadratic-bezier.js.map +1 -0
- package/{cjs/common/curve → es/common/segment}/index.d.ts +2 -4
- package/es/common/{curve → segment}/index.js +0 -2
- package/es/common/segment/index.js.map +1 -0
- package/es/common/segment/linear-closed.d.ts +24 -0
- package/es/common/{curve → segment}/linear-closed.js +4 -4
- package/es/common/segment/linear-closed.js.map +1 -0
- package/es/common/segment/linear.d.ts +24 -0
- package/es/common/{curve → segment}/linear.js +4 -4
- package/es/common/segment/linear.js.map +1 -0
- package/{cjs/common/curve → es/common/segment}/monotone.d.ts +12 -5
- package/es/common/{curve → segment}/monotone.js +4 -4
- package/es/common/segment/monotone.js.map +1 -0
- package/es/common/segment/step.d.ts +25 -0
- package/es/common/{curve → segment}/step.js +4 -4
- package/es/common/segment/step.js.map +1 -0
- package/es/common/shape/arc.d.ts +3 -0
- package/es/common/shape/arc.js +13 -0
- package/es/common/shape/arc.js.map +1 -1
- package/es/common/shape/rect.d.ts +1 -1
- package/es/common/sort.js +1 -1
- package/es/common/split-path.js +1 -1
- package/es/common/split-path.js.map +1 -1
- package/es/common/store.js +1 -1
- package/es/common/text.js +1 -1
- package/es/common/utils.d.ts +2 -1
- package/es/common/utils.js +15 -6
- package/es/common/utils.js.map +1 -1
- package/es/container.js +2 -1
- package/es/container.js.map +1 -1
- package/es/core/application.js +1 -1
- package/es/core/camera.js +2 -2
- package/es/core/camera.js.map +1 -1
- package/es/core/constants.d.ts +1 -5
- package/es/core/constants.js +2 -10
- package/es/core/constants.js.map +1 -1
- package/es/core/contributions/env/browser-contribution.js +1 -1
- package/es/core/contributions/env/browser-contribution.js.map +1 -1
- package/es/core/contributions/env/modules.js +1 -1
- package/es/core/contributions/env/modules.js.map +1 -1
- package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -2
- package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/modules.js +1 -1
- package/es/core/contributions/layerHandler/modules.js.map +1 -1
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.d.ts +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.js +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/es/core/contributions/textMeasure/ITextMeasure.d.ts +1 -1
- package/es/core/contributions/textMeasure/ITextMeasure.js.map +1 -1
- package/es/core/contributions/textMeasure/modules.js +1 -1
- package/es/core/contributions/textMeasure/modules.js.map +1 -1
- package/es/core/contributions/window/base-contribution.js +1 -1
- package/es/core/contributions/window/base-contribution.js.map +1 -1
- package/es/core/contributions/window/browser-contribution.js +1 -1
- package/es/core/contributions/window/browser-contribution.js.map +1 -1
- package/es/core/contributions/window/feishu-contribution.js +1 -1
- package/es/core/contributions/window/feishu-contribution.js.map +1 -1
- package/es/core/contributions/window/lynx-contribution.js +1 -1
- package/es/core/contributions/window/lynx-contribution.js.map +1 -1
- package/es/core/contributions/window/modules.js +1 -1
- package/es/core/contributions/window/modules.js.map +1 -1
- package/es/core/contributions/window/node-contribution.js.map +1 -1
- package/es/core/contributions/window/taro-contribution.js +1 -1
- package/es/core/contributions/window/taro-contribution.js.map +1 -1
- package/es/core/core-modules.js +5 -3
- package/es/core/core-modules.js.map +1 -1
- package/es/core/global-module.d.ts +5 -0
- package/es/core/global-module.js +19 -0
- package/es/core/global-module.js.map +1 -0
- package/es/core/global.d.ts +3 -3
- package/es/core/global.js +2 -2
- package/es/core/global.js.map +1 -1
- package/es/core/graphic-utils.d.ts +3 -25
- package/es/core/graphic-utils.js +4 -8
- package/es/core/graphic-utils.js.map +1 -1
- package/es/core/index.d.ts +2 -0
- package/es/core/index.js +5 -1
- package/es/core/index.js.map +1 -1
- package/es/core/interface.d.ts +30 -0
- package/es/core/interface.js +2 -0
- package/es/core/interface.js.map +1 -0
- package/es/core/layer-service.d.ts +1 -8
- package/es/core/layer-service.js +1 -3
- package/es/core/layer-service.js.map +1 -1
- package/es/core/layer.d.ts +1 -1
- package/es/core/layer.js +9 -5
- package/es/core/layer.js.map +1 -1
- package/es/core/light.js +1 -1
- package/es/core/stage.js +3 -3
- package/es/core/stage.js.map +1 -1
- package/es/core/window.js +3 -3
- package/es/core/window.js.map +1 -1
- package/es/create.d.ts +1 -1
- package/es/create.js +3 -2
- package/es/create.js.map +1 -1
- package/es/event/constant.js +1 -1
- package/es/event/event-manager.js +1 -1
- package/es/event/event-system.js +1 -1
- package/es/event/event-target.js +1 -1
- package/es/event/extension/gesture.js +2 -2
- package/es/event/extension/gesture.js.map +1 -1
- package/es/event/index.js +1 -1
- package/es/event/interface.js +1 -1
- package/es/event/type.js +2 -1
- package/es/event/util.js +1 -1
- package/es/graphic/arc.d.ts +1 -2
- package/es/graphic/arc.js +8 -6
- package/es/graphic/arc.js.map +1 -1
- package/es/graphic/arc3d.d.ts +0 -1
- package/es/graphic/arc3d.js +5 -7
- package/es/graphic/arc3d.js.map +1 -1
- package/es/graphic/area.d.ts +1 -2
- package/es/graphic/area.js +8 -6
- package/es/graphic/area.js.map +1 -1
- package/es/graphic/bounds.js +1 -1
- package/es/graphic/builtin-symbol/utils.js +1 -1
- package/es/graphic/builtin-symbol/utils.js.map +1 -1
- package/es/graphic/circle.d.ts +1 -2
- package/es/graphic/circle.js +8 -6
- package/es/graphic/circle.js.map +1 -1
- package/es/graphic/config.js +4 -6
- package/es/graphic/config.js.map +1 -1
- package/{cjs/graphic/constant.d.ts → es/graphic/constants.d.ts} +2 -1
- package/es/graphic/{constant.js → constants.js} +6 -6
- package/es/graphic/constants.js.map +1 -0
- package/es/graphic/glyph.d.ts +0 -1
- package/es/graphic/glyph.js +4 -4
- package/es/graphic/glyph.js.map +1 -1
- package/es/graphic/graphic-service/graphic-module.js +7 -3
- package/es/graphic/graphic-service/graphic-module.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.d.ts +4 -60
- package/es/graphic/graphic-service/graphic-service.js +42 -40
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic.d.ts +0 -1
- package/es/graphic/graphic.js +13 -20
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +0 -1
- package/es/graphic/group.js +13 -13
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/image.d.ts +0 -1
- package/es/graphic/image.js +5 -5
- package/es/graphic/image.js.map +1 -1
- package/es/graphic/index.d.ts +1 -0
- package/es/graphic/index.js +2 -0
- package/es/graphic/index.js.map +1 -1
- package/es/graphic/line.d.ts +1 -2
- package/es/graphic/line.js +8 -6
- package/es/graphic/line.js.map +1 -1
- package/es/graphic/node-tree.js +1 -1
- package/es/graphic/node-tree.js.map +1 -1
- package/es/graphic/path.d.ts +1 -2
- package/es/graphic/path.js +7 -5
- package/es/graphic/path.js.map +1 -1
- package/es/graphic/polygon.d.ts +1 -2
- package/es/graphic/polygon.js +5 -5
- package/es/graphic/polygon.js.map +1 -1
- package/es/graphic/pyramid3d.d.ts +0 -1
- package/es/graphic/pyramid3d.js +4 -6
- package/es/graphic/pyramid3d.js.map +1 -1
- package/es/graphic/rect.d.ts +1 -2
- package/es/graphic/rect.js +7 -5
- package/es/graphic/rect.js.map +1 -1
- package/es/graphic/rect3d.d.ts +0 -1
- package/es/graphic/rect3d.js +1 -3
- package/es/graphic/rect3d.js.map +1 -1
- package/es/graphic/richtext/icon.js +1 -1
- package/es/graphic/richtext/icon.js.map +1 -1
- package/es/graphic/richtext/paragraph.d.ts +1 -0
- package/es/graphic/richtext/paragraph.js +5 -0
- package/es/graphic/richtext/paragraph.js.map +1 -1
- package/es/graphic/richtext/utils.d.ts +0 -2
- package/es/graphic/richtext/utils.js +9 -18
- package/es/graphic/richtext/utils.js.map +1 -1
- package/es/graphic/richtext/wrapper.js +3 -1
- package/es/graphic/richtext/wrapper.js.map +1 -1
- package/es/graphic/richtext.d.ts +0 -1
- package/es/graphic/richtext.js +5 -5
- package/es/graphic/richtext.js.map +1 -1
- package/es/graphic/symbol.d.ts +1 -2
- package/es/graphic/symbol.js +7 -5
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/text.d.ts +0 -1
- package/es/graphic/text.js +10 -8
- package/es/graphic/text.js.map +1 -1
- package/es/graphic/tools.d.ts +1 -0
- package/es/graphic/tools.js +8 -2
- package/es/graphic/tools.js.map +1 -1
- package/es/graphic/wrap-text.js +3 -3
- package/es/graphic/wrap-text.js.map +1 -1
- package/es/index.d.ts +21 -3
- package/es/index.js +38 -8
- package/es/index.js.map +1 -1
- package/es/interface/common.d.ts +1 -0
- package/es/interface/common.js.map +1 -1
- package/es/interface/context.d.ts +3 -3
- package/es/interface/context.js.map +1 -1
- package/{cjs/common/curve/interface.d.ts → es/interface/curve.d.ts} +19 -19
- package/es/interface/curve.js +2 -0
- package/es/interface/curve.js.map +1 -0
- package/es/interface/graphic/area.d.ts +2 -2
- package/es/interface/graphic/area.js.map +1 -1
- package/es/interface/graphic/creator.js.map +1 -1
- package/es/interface/graphic/line.d.ts +2 -2
- package/es/interface/graphic/line.js.map +1 -1
- package/es/interface/graphic/path.d.ts +1 -2
- package/es/interface/graphic/path.js.map +1 -1
- package/es/interface/graphic/richText.d.ts +2 -4
- package/es/interface/graphic/richText.js.map +1 -1
- package/es/interface/graphic-service.d.ts +58 -0
- package/es/interface/graphic-service.js +2 -0
- package/es/interface/graphic-service.js.map +1 -0
- package/es/interface/graphic.d.ts +4 -4
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/index.d.ts +2 -0
- package/es/interface/index.js +4 -0
- package/es/interface/index.js.map +1 -1
- package/es/interface/path.d.ts +11 -19
- package/es/interface/path.js +0 -8
- package/es/interface/path.js.map +1 -1
- package/es/kits/env.js +1 -1
- package/es/kits/env.js.map +1 -1
- package/es/modules.d.ts +2 -19
- package/es/modules.js +18 -37
- package/es/modules.js.map +1 -1
- package/es/picker/canvas-picker-service.d.ts +1 -1
- package/es/picker/canvas-picker-service.js +1 -1
- package/es/picker/canvas-picker-service.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc-picker.js +4 -2
- package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc3d-picker.js +4 -2
- package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/area-picker.js +3 -1
- package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/circle-picker.js +4 -2
- package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/glyph-picker.js +1 -1
- package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/image-picker.js +1 -1
- package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/line-picker.js +5 -3
- package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/module.js +1 -1
- package/es/picker/contributions/canvas-picker/module.js.map +1 -1
- package/es/picker/contributions/canvas-picker/path-picker.js +5 -3
- package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/polygon-picker.js +3 -1
- package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/pyramid3d-picker.js +4 -2
- package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect-picker.js +5 -3
- package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect3d-picker.js +4 -2
- package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/richtext-picker.js +1 -1
- package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/symbol-picker.js +5 -3
- package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/text-picker.js +5 -3
- package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/arc-picker.js +3 -1
- package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/area-picker.js +3 -1
- package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/circle-picker.js +3 -1
- package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/glyph-picker.js +1 -1
- package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/line-picker.js +3 -1
- package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/module.js +1 -1
- package/es/picker/contributions/math-picker/module.js.map +1 -1
- package/es/picker/contributions/math-picker/path-picker.js +3 -1
- package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/polygon-picker.js +3 -1
- package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/rect-picker.js +4 -2
- package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/symbol-picker.js +3 -1
- package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/text-picker.js +1 -1
- package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/es/picker/contributions/modules.js.map +1 -1
- package/es/picker/math-picker-service.d.ts +1 -1
- package/es/picker/math-picker-service.js +1 -1
- package/es/picker/math-picker-service.js.map +1 -1
- package/es/picker/pick-interceptor.js +1 -1
- package/es/picker/pick-interceptor.js.map +1 -1
- package/es/picker/pick-modules.js +1 -1
- package/es/picker/pick-modules.js.map +1 -1
- package/es/picker/picker-service.d.ts +1 -1
- package/es/picker/picker-service.js +4 -2
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/builtin-plugin/3dview-transform-plugin.js +1 -1
- package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/auto-render-plugin.js +6 -6
- package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +7 -7
- package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
- package/es/render/contributions/render/arc-render.d.ts +1 -2
- package/es/render/contributions/render/arc-render.js +10 -76
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/arc3d-render.js +10 -8
- package/es/render/contributions/render/arc3d-render.js.map +1 -1
- package/es/render/contributions/render/area-render.d.ts +2 -2
- package/es/render/contributions/render/area-render.js +12 -6
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.js +1 -1
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-render.d.ts +1 -1
- package/es/render/contributions/render/circle-render.js +5 -3
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.js +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js +5 -3
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +2 -2
- package/es/render/contributions/render/draw-contribution.js +7 -3
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/draw-interceptor.js +4 -2
- package/es/render/contributions/render/draw-interceptor.js.map +1 -1
- package/es/render/contributions/render/glyph-render.js +3 -1
- package/es/render/contributions/render/glyph-render.js.map +1 -1
- package/es/render/contributions/render/group-render.d.ts +1 -1
- package/es/render/contributions/render/group-render.js +8 -4
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-render.d.ts +1 -1
- package/es/render/contributions/render/image-render.js +4 -2
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-area-render.js +5 -3
- package/es/render/contributions/render/incremental-area-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
- package/es/render/contributions/render/incremental-draw-contribution.js +5 -3
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/incremental-line-render.js +5 -3
- package/es/render/contributions/render/incremental-line-render.js.map +1 -1
- package/es/render/contributions/render/index.d.ts +1 -0
- package/es/render/contributions/render/index.js +2 -0
- package/es/render/contributions/render/index.js.map +1 -1
- package/es/render/contributions/render/line-render.d.ts +1 -2
- package/es/render/contributions/render/line-render.js +11 -7
- package/es/render/contributions/render/line-render.js.map +1 -1
- package/es/render/contributions/render/module.js +1 -1
- package/es/render/contributions/render/module.js.map +1 -1
- package/es/render/contributions/render/path-render.d.ts +1 -1
- package/es/render/contributions/render/path-render.js +8 -4
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-render.d.ts +1 -1
- package/es/render/contributions/render/polygon-render.js +5 -3
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/pyramid3d-render.js +7 -5
- package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/es/render/contributions/render/rect-render.d.ts +1 -1
- package/es/render/contributions/render/rect-render.js +7 -3
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/rect3d-render.js +7 -5
- package/es/render/contributions/render/rect3d-render.js.map +1 -1
- package/es/render/contributions/render/richtext-render.js +4 -2
- package/es/render/contributions/render/richtext-render.js.map +1 -1
- package/es/render/contributions/render/symbol-render.d.ts +1 -1
- package/es/render/contributions/render/symbol-render.js +6 -4
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/text-render.js +9 -7
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/contributions/render/utils.d.ts +13 -3
- package/es/render/contributions/render/utils.js +76 -5
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/resource-loader/loader.d.ts +1 -1
- package/es/resource-loader/loader.js +8 -8
- package/es/resource-loader/loader.js.map +1 -1
- package/es/{common → tapable}/interface.js +2 -0
- package/es/tapable/interface.js.map +1 -0
- package/es/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/cjs/allocator/index.d.ts +0 -3
- package/cjs/allocator/index.js +0 -21
- package/cjs/allocator/index.js.map +0 -1
- package/cjs/canvas/constants.d.ts +0 -2
- package/cjs/canvas/constants.js +0 -7
- package/cjs/canvas/constants.js.map +0 -1
- package/cjs/canvas/creator.d.ts +0 -3
- package/cjs/canvas/creator.js +0 -18
- package/cjs/canvas/creator.js.map +0 -1
- package/cjs/common/bezier.js +0 -45
- package/cjs/common/bezier.js.map +0 -1
- package/cjs/common/curve/basis.js.map +0 -1
- package/cjs/common/curve/common.d.ts +0 -3
- package/cjs/common/curve/common.js.map +0 -1
- package/cjs/common/curve/index.js.map +0 -1
- package/cjs/common/curve/interface.js +0 -18
- package/cjs/common/curve/interface.js.map +0 -1
- package/cjs/common/curve/linear-closed.d.ts +0 -17
- package/cjs/common/curve/linear-closed.js.map +0 -1
- package/cjs/common/curve/linear.d.ts +0 -17
- package/cjs/common/curve/linear.js.map +0 -1
- package/cjs/common/curve/monotone.js.map +0 -1
- package/cjs/common/curve/step.d.ts +0 -18
- package/cjs/common/curve/step.js.map +0 -1
- package/cjs/common/index.d.ts +0 -20
- package/cjs/common/index.js +0 -30
- package/cjs/common/index.js.map +0 -1
- package/cjs/common/interface.js.map +0 -1
- package/cjs/common/path.d.ts +0 -160
- package/cjs/common/path.js.map +0 -1
- package/cjs/core/contributions/constants.d.ts +0 -1
- package/cjs/core/contributions/constants.js +0 -6
- package/cjs/core/contributions/constants.js.map +0 -1
- package/cjs/graphic/constant.js +0 -22
- package/cjs/graphic/constant.js.map +0 -1
- package/cjs/graphic/graphic-service/index.d.ts +0 -1
- package/cjs/graphic/graphic-service/index.js +0 -21
- package/cjs/graphic/graphic-service/index.js.map +0 -1
- package/cjs/interface/graphic-creator.d.ts +0 -39
- package/cjs/interface/graphic-creator.js +0 -6
- package/cjs/interface/graphic-creator.js.map +0 -1
- package/es/allocator/index.d.ts +0 -3
- package/es/allocator/index.js +0 -5
- package/es/allocator/index.js.map +0 -1
- package/es/canvas/constants.d.ts +0 -2
- package/es/canvas/constants.js +0 -4
- package/es/canvas/constants.js.map +0 -1
- package/es/canvas/creator.d.ts +0 -3
- package/es/canvas/creator.js +0 -14
- package/es/canvas/creator.js.map +0 -1
- package/es/common/bezier.js.map +0 -1
- package/es/common/curve/basis.js.map +0 -1
- package/es/common/curve/common.d.ts +0 -3
- package/es/common/curve/common.js.map +0 -1
- package/es/common/curve/index.js.map +0 -1
- package/es/common/curve/interface.js +0 -6
- package/es/common/curve/interface.js.map +0 -1
- package/es/common/curve/linear-closed.d.ts +0 -17
- package/es/common/curve/linear-closed.js.map +0 -1
- package/es/common/curve/linear.d.ts +0 -17
- package/es/common/curve/linear.js.map +0 -1
- package/es/common/curve/monotone.js.map +0 -1
- package/es/common/curve/step.d.ts +0 -18
- package/es/common/curve/step.js.map +0 -1
- package/es/common/index.d.ts +0 -20
- package/es/common/index.js +0 -40
- package/es/common/index.js.map +0 -1
- package/es/common/interface.js.map +0 -1
- package/es/common/path.d.ts +0 -160
- package/es/common/path.js.map +0 -1
- package/es/core/contributions/constants.d.ts +0 -1
- package/es/core/contributions/constants.js +0 -2
- package/es/core/contributions/constants.js.map +0 -1
- package/es/graphic/constant.js.map +0 -1
- package/es/graphic/graphic-service/index.d.ts +0 -1
- package/es/graphic/graphic-service/index.js +0 -2
- package/es/graphic/graphic-service/index.js.map +0 -1
- package/es/interface/graphic-creator.d.ts +0 -39
- package/es/interface/graphic-creator.js +0 -2
- package/es/interface/graphic-creator.js.map +0 -1
- /package/cjs/common/{curve → segment}/common.js +0 -0
- /package/cjs/{common → tapable}/interface.d.ts +0 -0
- /package/es/common/{curve → segment}/common.js +0 -0
- /package/es/{common → tapable}/interface.d.ts +0 -0
package/cjs/common/utils.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare enum Edge {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const parseStroke: (stroke: IStrokeStyle['stroke']) => {
|
|
11
11
|
isFullStroke: boolean;
|
|
12
|
-
stroke: boolean[];
|
|
12
|
+
stroke: (boolean | string)[];
|
|
13
13
|
};
|
|
14
14
|
export declare const parsePadding: (padding: IGraphicAttribute['boundsPadding']) => number | [
|
|
15
15
|
number,
|
|
@@ -25,3 +25,4 @@ export declare function pointInterpolationHighPerformance(pointA: IPointLike, po
|
|
|
25
25
|
export declare function pointsInterpolation(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike, ratio: number): IPointLike[];
|
|
26
26
|
export declare const transformKeys: string[];
|
|
27
27
|
export declare const isTransformKey: (key: string) => boolean;
|
|
28
|
+
export declare function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string): any;
|
package/cjs/common/utils.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.isTransformKey = exports.transformKeys = exports.pointsInterpolation = exports.pointInterpolationHighPerformance = exports.pointInterpolation = exports.pointEqual = exports.pointsEqual = exports.circleBounds = exports.parsePadding = exports.parseStroke = exports.Edge = void 0;
|
|
5
|
+
}), exports.getAttributeFromDefaultAttrList = exports.isTransformKey = exports.transformKeys = exports.pointsInterpolation = exports.pointInterpolationHighPerformance = exports.pointInterpolation = exports.pointEqual = exports.pointsEqual = exports.circleBounds = exports.parsePadding = exports.parseStroke = exports.Edge = void 0;
|
|
6
6
|
|
|
7
7
|
const vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
@@ -14,14 +14,14 @@ var Edge;
|
|
|
14
14
|
}(Edge = exports.Edge || (exports.Edge = {}));
|
|
15
15
|
|
|
16
16
|
const _strokeVec4 = [ !1, !1, !1, !1 ], parseStroke = stroke => {
|
|
17
|
+
var _a;
|
|
17
18
|
let isFullStroke = !0;
|
|
18
19
|
if ((0, vutils_1.isBoolean)(stroke, !0)) {
|
|
19
|
-
for (let i = 0; i < 4; i++) _strokeVec4[i] = stroke;
|
|
20
|
+
for (let i = 0; i < 4; i++) _strokeVec4[i] = stroke, isFullStroke && (isFullStroke = !(null !== (_a = _strokeVec4[i]) && void 0 !== _a && !_a));
|
|
20
21
|
isFullStroke = stroke;
|
|
21
22
|
} else if (Array.isArray(stroke)) for (let i = 0; i < 4; i++) _strokeVec4[i] = !!stroke[i],
|
|
22
|
-
isFullStroke && (isFullStroke = _strokeVec4[i]); else
|
|
23
|
-
_strokeVec4[
|
|
24
|
-
_strokeVec4[3] = !!(stroke & Edge.Left), isFullStroke = _strokeVec4[0] && _strokeVec4[1] && _strokeVec4[2] && _strokeVec4[3]);
|
|
23
|
+
isFullStroke && (isFullStroke = !!_strokeVec4[i]); else _strokeVec4[0] = !1, _strokeVec4[1] = !1,
|
|
24
|
+
_strokeVec4[2] = !1, _strokeVec4[3] = !1;
|
|
25
25
|
return {
|
|
26
26
|
isFullStroke: isFullStroke,
|
|
27
27
|
stroke: _strokeVec4
|
|
@@ -121,5 +121,14 @@ exports.pointsInterpolation = pointsInterpolation, exports.transformKeys = [ "x"
|
|
|
121
121
|
|
|
122
122
|
const isTransformKey = key => exports.transformKeys.includes(key);
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
function getAttributeFromDefaultAttrList(attr, key) {
|
|
125
|
+
if ((0, vutils_1.isArray)(attr)) {
|
|
126
|
+
let val;
|
|
127
|
+
for (let i = 0; i < attr.length && void 0 === val; i++) val = attr[i][key];
|
|
128
|
+
return val;
|
|
129
|
+
}
|
|
130
|
+
return attr[key];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
exports.isTransformKey = isTransformKey, exports.getAttributeFromDefaultAttrList = getAttributeFromDefaultAttrList;
|
|
134
|
+
//# sourceMappingURL=utils.js.map
|
package/cjs/common/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import {\n isBoolean,\n isNumber,\n halfPi,\n pi,\n pi2,\n max,\n min,\n sin,\n cos,\n IBounds,\n IPointLike,\n isArray,\n pointAt,\n Point\n} from '@visactor/vutils';\nimport { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean, boolean, boolean, boolean] = [false, false, false, false];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: boolean[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= _strokeVec4[i];\n }\n } else if (isNumber(stroke, true)) {\n // boolean\n _strokeVec4[0] = !!((stroke as number) & Edge.Top);\n _strokeVec4[1] = !!((stroke as number) & Edge.Right);\n _strokeVec4[2] = !!((stroke as number) & Edge.Bottom);\n _strokeVec4[3] = !!((stroke as number) & Edge.Left);\n isFullStroke = _strokeVec4[0] && _strokeVec4[1] && _strokeVec4[2] && _strokeVec4[3];\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import {\n isBoolean,\n isNumber,\n halfPi,\n pi,\n pi2,\n max,\n min,\n sin,\n cos,\n IBounds,\n IPointLike,\n isArray,\n pointAt,\n Point\n} from '@visactor/vutils';\nimport { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean | string, boolean | string, boolean | string, boolean | string] = [\n false,\n false,\n false,\n false\n];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: (boolean | string)[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n isFullStroke &&= !!(_strokeVec4[i] ?? true);\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= !!_strokeVec4[i];\n }\n } else {\n _strokeVec4[0] = false;\n _strokeVec4[1] = false;\n _strokeVec4[2] = false;\n _strokeVec4[3] = false;\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n\nexport function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string) {\n if (isArray(attr)) {\n let val;\n for (let i = 0; i < attr.length && val === undefined; i++) {\n val = attr[i][key];\n }\n return val;\n }\n return attr[key];\n}\n"]}
|
package/cjs/container.js
CHANGED
package/cjs/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/container.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;
|
|
1
|
+
{"version":3,"sources":["../../src/container.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACzB,QAAA,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC","file":"container.js","sourcesContent":["import { Container } from 'inversify';\nexport const container = new Container();\n"]}
|
package/cjs/core/application.js
CHANGED
package/cjs/core/camera.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.OrthoCamera = exports.transformMat4 = exports.multiply = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), matrix_allocate_1 = require("../allocator/matrix-allocate"),
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), matrix_allocate_1 = require("../allocator/matrix-allocate"), matrix_allocate_2 = require("../allocator/matrix-allocate");
|
|
8
8
|
|
|
9
9
|
function targetTo(out, eye, target, up) {
|
|
10
10
|
const eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2];
|
|
@@ -76,24 +76,24 @@ class OrthoCamera {
|
|
|
76
76
|
this.params = params;
|
|
77
77
|
}
|
|
78
78
|
getViewMatrix() {
|
|
79
|
-
return this._viewMatrixCached || (this._viewMatrixCached =
|
|
79
|
+
return this._viewMatrixCached || (this._viewMatrixCached = matrix_allocate_2.mat4Allocate.allocate()),
|
|
80
80
|
this._viewMatrixCached;
|
|
81
81
|
}
|
|
82
82
|
forceGetViewMatrix() {
|
|
83
|
-
this._viewMatrixCached || (this._viewMatrixCached =
|
|
83
|
+
this._viewMatrixCached || (this._viewMatrixCached = matrix_allocate_2.mat4Allocate.allocate());
|
|
84
84
|
const {pos: pos, center: center, up: up} = this.params.viewParams;
|
|
85
|
-
return lookAt(this._viewMatrixCached, pos, center, up), this._vp || (this._vp =
|
|
85
|
+
return lookAt(this._viewMatrixCached, pos, center, up), this._vp || (this._vp = matrix_allocate_2.mat4Allocate.allocate()),
|
|
86
86
|
this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix()),
|
|
87
87
|
this._viewMatrixCached;
|
|
88
88
|
}
|
|
89
89
|
getProjectionMatrix() {
|
|
90
|
-
return this._projectionMatrixCached || (this._projectionMatrixCached =
|
|
90
|
+
return this._projectionMatrixCached || (this._projectionMatrixCached = matrix_allocate_2.mat4Allocate.allocate()),
|
|
91
91
|
this._projectionMatrixCached;
|
|
92
92
|
}
|
|
93
93
|
forceGetProjectionMatrix() {
|
|
94
|
-
this._projectionMatrixCached || (this._projectionMatrixCached =
|
|
94
|
+
this._projectionMatrixCached || (this._projectionMatrixCached = matrix_allocate_2.mat4Allocate.allocate());
|
|
95
95
|
const {left: left, top: top, right: right, bottom: bottom} = this._params;
|
|
96
|
-
return ortho(this._projectionMatrixCached, left, right, bottom, top, 0, -2e6), this._vp || (this._vp =
|
|
96
|
+
return ortho(this._projectionMatrixCached, left, right, bottom, top, 0, -2e6), this._vp || (this._vp = matrix_allocate_2.mat4Allocate.allocate()),
|
|
97
97
|
this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix()),
|
|
98
98
|
this._projectionMatrixCached;
|
|
99
99
|
}
|
|
@@ -122,4 +122,4 @@ class OrthoCamera {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
exports.OrthoCamera = OrthoCamera;
|
|
125
|
-
//# sourceMappingURL=camera.js.map
|
|
125
|
+
//# sourceMappingURL=camera.js.map
|
package/cjs/core/camera.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/camera.ts"],"names":[],"mappings":"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GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EA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","file":"camera.js","sourcesContent":["import { epsilon, IPoint, IPointLike } from '@visactor/vutils';\nimport { DefaultMat4Allocate } from '../allocator/matrix-allocate';\nimport { ICamera, mat4, OrthoParameters, vec3 } from '../interface';\nimport { mat4Allocate } from '../modules';\n\n/**\n * 部分代码参考 https://github.com/toji/gl-matrix\n * Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nfunction targetTo(out: mat4, eye: vec3, target: vec3, up: vec3) {\n const eyex = eye[0];\n const eyey = eye[1];\n const eyez = eye[2];\n const upx = up[0];\n const upy = up[1];\n const upz = up[2];\n let z0 = eyex - target[0];\n let z1 = eyey - target[1];\n let z2 = eyez - target[2];\n let len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n let x0 = upy * z2 - upz * z1;\n let x1 = upz * z0 - upx * z2;\n let x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n\n// 代码来自gl-matrix https://github.com/toji/gl-matrix\nfunction lookAt(out: mat4, eye: vec3, center: vec3, up: vec3) {\n let x0;\n let x1;\n let x2;\n let y0;\n let y1;\n let y2;\n let z0;\n let z1;\n let z2;\n let len;\n const eyex = eye[0];\n const eyey = eye[1];\n const eyez = eye[2];\n const upx = up[0];\n const upy = up[1];\n const upz = up[2];\n const centerx = center[0];\n const centery = center[1];\n const centerz = center[2];\n\n if (Math.abs(eyex - centerx) < epsilon && Math.abs(eyey - centery) < epsilon && Math.abs(eyez - centerz) < epsilon) {\n return DefaultMat4Allocate.identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Generates a orthogonal projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction ortho(out: mat4, left: number, right: number, bottom: number, top: number, near: number, far: number) {\n const lr = 1 / (left - right);\n const bt = 1 / (bottom - top);\n const nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out: mat4, a: mat4, b: mat4) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15]; // Cache only the current line of the second matrix\n\n let b0 = b[0];\n let b1 = b[1];\n let b2 = b[2];\n let b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out: vec3, a: vec3, m: mat4) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n\n/**\n * 正交投影摄像机\n */\nexport class OrthoCamera implements ICamera {\n private _params: OrthoParameters;\n\n /* cache */\n private _projectionMatrixCached: mat4;\n private _viewMatrixCached: mat4;\n private _vp: mat4;\n\n set params(params: OrthoParameters) {\n this._params = { ...params };\n this._projectionMatrixCached = this.forceGetProjectionMatrix();\n this._viewMatrixCached = this.forceGetViewMatrix();\n }\n get params(): OrthoParameters {\n return { ...this._params };\n }\n\n constructor(params: OrthoParameters) {\n this.params = params;\n }\n\n /**\n * 获取视图矩阵\n */\n getViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n return this._viewMatrixCached;\n }\n forceGetViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n const { pos, center, up } = this.params.viewParams;\n lookAt(this._viewMatrixCached, pos, center, up);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._viewMatrixCached;\n }\n\n /**\n * 获取projection矩阵\n */\n getProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n return this._projectionMatrixCached;\n }\n forceGetProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n const { left, top, right, bottom } = this._params;\n // 从0到2000000的Z轴范围,小于0的会被裁剪\n ortho(this._projectionMatrixCached, left, right, bottom, top, 0.0, -2000000.0);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._projectionMatrixCached;\n }\n\n getField() {\n const { fieldRatio = 0.8, fieldDepth, left, right } = this._params;\n return (fieldDepth ?? right - left) * fieldRatio;\n }\n\n getProjectionScale(z: number): number {\n const field = this.getField();\n return field / (field + z);\n }\n\n view(x: number, y: number, z: number): [number, number, number] {\n const outP: vec3 = [0, 0, 0];\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n return outP;\n }\n\n // 部分参考:https://www.mamboleoo.be/articles/how-to-render-3d-in-2d-canvas\n vp(x: number, y: number, z: number): IPointLike {\n const outP: vec3 = [0, 0, 0];\n const { pos } = this._params.viewParams;\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n x = outP[0];\n y = outP[1];\n z = outP[2];\n\n const sizeProjection = this.getProjectionScale(z);\n const xProject = x * sizeProjection + pos[0];\n const yProject = y * sizeProjection + pos[1];\n return {\n x: xProject,\n y: yProject\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/camera.ts"],"names":[],"mappings":"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GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EA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","file":"camera.js","sourcesContent":["import { epsilon, IPoint, IPointLike } from '@visactor/vutils';\nimport { DefaultMat4Allocate } from '../allocator/matrix-allocate';\nimport { ICamera, mat4, OrthoParameters, vec3 } from '../interface';\nimport { mat4Allocate } from '../allocator/matrix-allocate';\n\n/**\n * 部分代码参考 https://github.com/toji/gl-matrix\n * Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nfunction targetTo(out: mat4, eye: vec3, target: vec3, up: vec3) {\n const eyex = eye[0];\n const eyey = eye[1];\n const eyez = eye[2];\n const upx = up[0];\n const upy = up[1];\n const upz = up[2];\n let z0 = eyex - target[0];\n let z1 = eyey - target[1];\n let z2 = eyez - target[2];\n let len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n let x0 = upy * z2 - upz * z1;\n let x1 = upz * z0 - upx * z2;\n let x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n\n// 代码来自gl-matrix https://github.com/toji/gl-matrix\nfunction lookAt(out: mat4, eye: vec3, center: vec3, up: vec3) {\n let x0;\n let x1;\n let x2;\n let y0;\n let y1;\n let y2;\n let z0;\n let z1;\n let z2;\n let len;\n const eyex = eye[0];\n const eyey = eye[1];\n const eyez = eye[2];\n const upx = up[0];\n const upy = up[1];\n const upz = up[2];\n const centerx = center[0];\n const centery = center[1];\n const centerz = center[2];\n\n if (Math.abs(eyex - centerx) < epsilon && Math.abs(eyey - centery) < epsilon && Math.abs(eyez - centerz) < epsilon) {\n return DefaultMat4Allocate.identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Generates a orthogonal projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nfunction ortho(out: mat4, left: number, right: number, bottom: number, top: number, near: number, far: number) {\n const lr = 1 / (left - right);\n const bt = 1 / (bottom - top);\n const nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out: mat4, a: mat4, b: mat4) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15]; // Cache only the current line of the second matrix\n\n let b0 = b[0];\n let b1 = b[1];\n let b2 = b[2];\n let b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n\n/**\n * 代码来自gl-matrix https://github.com/toji/gl-matrix\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out: vec3, a: vec3, m: mat4) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n\n/**\n * 正交投影摄像机\n */\nexport class OrthoCamera implements ICamera {\n private _params: OrthoParameters;\n\n /* cache */\n private _projectionMatrixCached: mat4;\n private _viewMatrixCached: mat4;\n private _vp: mat4;\n\n set params(params: OrthoParameters) {\n this._params = { ...params };\n this._projectionMatrixCached = this.forceGetProjectionMatrix();\n this._viewMatrixCached = this.forceGetViewMatrix();\n }\n get params(): OrthoParameters {\n return { ...this._params };\n }\n\n constructor(params: OrthoParameters) {\n this.params = params;\n }\n\n /**\n * 获取视图矩阵\n */\n getViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n return this._viewMatrixCached;\n }\n forceGetViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n const { pos, center, up } = this.params.viewParams;\n lookAt(this._viewMatrixCached, pos, center, up);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._viewMatrixCached;\n }\n\n /**\n * 获取projection矩阵\n */\n getProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n return this._projectionMatrixCached;\n }\n forceGetProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n const { left, top, right, bottom } = this._params;\n // 从0到2000000的Z轴范围,小于0的会被裁剪\n ortho(this._projectionMatrixCached, left, right, bottom, top, 0.0, -2000000.0);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._projectionMatrixCached;\n }\n\n getField() {\n const { fieldRatio = 0.8, fieldDepth, left, right } = this._params;\n return (fieldDepth ?? right - left) * fieldRatio;\n }\n\n getProjectionScale(z: number): number {\n const field = this.getField();\n return field / (field + z);\n }\n\n view(x: number, y: number, z: number): [number, number, number] {\n const outP: vec3 = [0, 0, 0];\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n return outP;\n }\n\n // 部分参考:https://www.mamboleoo.be/articles/how-to-render-3d-in-2d-canvas\n vp(x: number, y: number, z: number): IPointLike {\n const outP: vec3 = [0, 0, 0];\n const { pos } = this._params.viewParams;\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n x = outP[0];\n y = outP[1];\n z = outP[2];\n\n const sizeProjection = this.getProjectionScale(z);\n const xProject = x * sizeProjection + pos[0];\n const yProject = y * sizeProjection + pos[1];\n return {\n x: xProject,\n y: yProject\n };\n }\n}\n"]}
|
package/cjs/core/constants.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
export declare const GraphicUtil: unique symbol;
|
|
2
1
|
export declare const TransformUtil: unique symbol;
|
|
2
|
+
export declare const GraphicUtil: unique symbol;
|
|
3
3
|
export declare const LayerService: unique symbol;
|
|
4
|
-
export declare const LayerHandlerContribution: unique symbol;
|
|
5
|
-
export declare const Window: unique symbol;
|
|
6
|
-
export declare const WindowHandlerContribution: unique symbol;
|
|
7
|
-
export * from './contributions/constants';
|
package/cjs/core/constants.js
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
-
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
3
|
Object.defineProperty(exports, "__esModule", {
|
|
19
4
|
value: !0
|
|
20
|
-
}), exports.
|
|
21
|
-
exports.
|
|
22
|
-
exports.LayerService = Symbol.for("LayerService")
|
|
23
|
-
exports.Window = Symbol.for("Window"), exports.WindowHandlerContribution = Symbol.for("WindowHandlerContribution"),
|
|
24
|
-
__exportStar(require("./contributions/constants"), exports);
|
|
5
|
+
}), exports.LayerService = exports.GraphicUtil = exports.TransformUtil = void 0,
|
|
6
|
+
exports.TransformUtil = Symbol.for("TransformUtil"), exports.GraphicUtil = Symbol.for("GraphicUtil"),
|
|
7
|
+
exports.LayerService = Symbol.for("LayerService");
|
|
25
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/core/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC5C,QAAA,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC","file":"constants.js","sourcesContent":["export const TransformUtil = Symbol.for('TransformUtil');\nexport const GraphicUtil = Symbol.for('GraphicUtil');\nexport const LayerService = Symbol.for('LayerService');\n"]}
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
12
|
value: !0
|
|
13
13
|
}), exports.BrowserEnvContribution = exports.createImageElement = void 0;
|
|
14
14
|
|
|
15
|
-
const inversify_1 = require("inversify"),
|
|
15
|
+
const inversify_1 = require("inversify"), generator_1 = require("../../../common/generator"), base_contribution_1 = require("./base-contribution");
|
|
16
16
|
|
|
17
17
|
function createImageElement(src, isSvg = !1) {
|
|
18
18
|
const img = document.createElement("img");
|
|
@@ -66,7 +66,7 @@ let BrowserEnvContribution = class extends base_contribution_1.BaseEnvContributi
|
|
|
66
66
|
createCanvas(params) {
|
|
67
67
|
var _a, _b;
|
|
68
68
|
const canvas = document.createElement("canvas");
|
|
69
|
-
params.id && (canvas.id = null !== (_a = params.id) && void 0 !== _a ? _a :
|
|
69
|
+
params.id && (canvas.id = null !== (_a = params.id) && void 0 !== _a ? _a : generator_1.Generator.GenAutoIncrementId().toString());
|
|
70
70
|
const dpr = null !== (_b = params.dpr) && void 0 !== _b ? _b : window.devicePixelRatio;
|
|
71
71
|
return params.width && params.height && (canvas.style.width = `${params.width}px`,
|
|
72
72
|
canvas.style.height = `${params.height}px`, canvas.width = params.width * dpr, canvas.height = params.height * dpr),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/env/browser-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuC;AACvC,
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/env/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport { Generator } from '../../../common/generator';\nimport { ICanvasLike, EnvType, ICreateCanvasParams, IEnvContribution } from '../../../interface';\nimport { BaseEnvContribution } from './base-contribution';\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n img.crossOrigin = 'anonymous';\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\n@injectable()\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, true);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.addEventListener(type as any, listener as any, options as any);\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
const inversify_1 = require("inversify"),
|
|
7
|
+
const inversify_1 = require("inversify"), contribution_provider_1 = require("../../../common/contribution-provider"), interface_1 = require("../../../interface"), browser_contribution_1 = require("./browser-contribution"), feishu_contribution_1 = require("./feishu-contribution"), taro_contribution_1 = require("./taro-contribution"), lynx_contribution_1 = require("./lynx-contribution");
|
|
8
8
|
|
|
9
9
|
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
10
|
bind(browser_contribution_1.BrowserEnvContribution).toSelf().inSingletonScope(),
|
|
@@ -12,6 +12,6 @@ exports.default = new inversify_1.ContainerModule((bind => {
|
|
|
12
12
|
bind(feishu_contribution_1.FeishuEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(feishu_contribution_1.FeishuEnvContribution),
|
|
13
13
|
bind(taro_contribution_1.TaroEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(taro_contribution_1.TaroEnvContribution),
|
|
14
14
|
bind(lynx_contribution_1.LynxEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(lynx_contribution_1.LynxEnvContribution),
|
|
15
|
-
(0,
|
|
15
|
+
(0, contribution_provider_1.bindContributionProvider)(bind, interface_1.EnvContribution);
|
|
16
16
|
}));
|
|
17
17
|
//# sourceMappingURL=modules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/env/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/env/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,iFAAiF;AACjF,kDAAqD;AACrD,iEAAgE;AAChE,+DAA8D;AAC9D,2DAA0D;AAC1D,2DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,6CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,6CAAsB,CAAC,CAAC;IAGxD,IAAI,CAAC,2CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,2CAAqB,CAAC,CAAC;IAGvD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAGrD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAErD,IAAA,gDAAwB,EAAC,IAAI,EAAE,2BAAe,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { EnvContribution } from '../../../interface';\nimport { BrowserEnvContribution } from './browser-contribution';\nimport { FeishuEnvContribution } from './feishu-contribution';\nimport { TaroEnvContribution } from './taro-contribution';\nimport { LynxEnvContribution } from './lynx-contribution';\n\nexport default new ContainerModule(bind => {\n // browser\n bind(BrowserEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(BrowserEnvContribution);\n\n // feishu\n bind(FeishuEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(FeishuEnvContribution);\n\n // taro\n bind(TaroEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(TaroEnvContribution);\n\n // lynx\n bind(LynxEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(LynxEnvContribution);\n\n bindContributionProvider(bind, EnvContribution);\n});\n"]}
|
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
16
16
|
value: !0
|
|
17
17
|
}), exports.CanvasLayerHandlerContribution = void 0;
|
|
18
18
|
|
|
19
|
-
const
|
|
19
|
+
const inversify_1 = require("inversify"), util_1 = require("../../../canvas/util"), interface_1 = require("../../../interface");
|
|
20
20
|
|
|
21
21
|
let CanvasLayerHandlerContribution = class {
|
|
22
22
|
constructor(global) {
|
|
@@ -30,7 +30,7 @@ let CanvasLayerHandlerContribution = class {
|
|
|
30
30
|
height: window.height
|
|
31
31
|
});
|
|
32
32
|
const windowCanvas = window.getContext().getCanvas().nativeCanvas, canvas = (0,
|
|
33
|
-
|
|
33
|
+
util_1.wrapCanvas)({
|
|
34
34
|
nativeCanvas: nativeCanvas,
|
|
35
35
|
width: window.width,
|
|
36
36
|
height: window.height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":"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","file":"canvas2d-contribution.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport { wrapCanvas } from '../../../canvas/util';\nimport { ILayerHandlerContribution, IWindow, ILayerHandlerInitParams, ILayerHandlerDrawParams } from '../..';\nimport { Global, IGlobal, ICanvas, IContext2d, IDrawToParams, IGroup, ILayer } from '../../../interface';\nimport { IBounds } from '@visactor/vutils';\nimport { IDrawContext } from '../../../render';\n\n@injectable()\nexport class CanvasLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n\n constructor(@inject(Global) public readonly global: IGlobal) {\n this.offscreen = false;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n // 默认图层,那么直接拿window上的上下文和canvas即可\n if (params.main) {\n this.context = window.getContext();\n this.canvas = this.context.getCanvas();\n } else {\n let nativeCanvas: HTMLElement;\n if (params.canvasId) {\n nativeCanvas = this.global.getElementById(params.canvasId);\n } else {\n nativeCanvas = this.global.createCanvas({\n width: window.width,\n height: window.height\n });\n }\n const windowContext = window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n const canvas = wrapCanvas({\n nativeCanvas,\n width: window.width,\n height: window.height,\n dpr: window.dpr,\n canvasControled: true,\n container: window.getContainer(),\n x: windowCanvas.offsetLeft,\n y: windowCanvas.offsetTop\n });\n canvas.applyPosition();\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n params.renderService.render(group, {\n context: this.context,\n clear: params.background ?? '#ffffff',\n ...params,\n ...userParams\n });\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n layerHandlers.forEach(l => {\n const ctx = l.getContext();\n const canvas = ctx.canvas.nativeCanvas;\n this.context.drawImage(canvas, 0, 0);\n });\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n release() {\n this.canvas.release();\n }\n}\n"]}
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
const inversify_1 = require("inversify"),
|
|
7
|
+
const inversify_1 = require("inversify"), layer_1 = require("../../layer"), canvas2d_contribution_1 = require("./canvas2d-contribution"), offscreen2d_contribution_1 = require("./offscreen2d-contribution");
|
|
8
8
|
|
|
9
9
|
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
10
|
bind(canvas2d_contribution_1.CanvasLayerHandlerContribution).toSelf(), bind(offscreen2d_contribution_1.OffscreenLayerHandlerContribution).toSelf(),
|
|
11
|
-
bind(
|
|
11
|
+
bind(layer_1.LayerHandlerContribution).toService(canvas2d_contribution_1.CanvasLayerHandlerContribution);
|
|
12
12
|
}));
|
|
13
13
|
//# sourceMappingURL=modules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/layerHandler/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,uCAAuD;AACvD,mEAAyE;AACzE,yEAA+E;AAE/E,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,sDAA8B,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9C,IAAI,CAAC,4DAAiC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,IAAI,CAAC,gCAAwB,CAAC,CAAC,SAAS,CAAC,sDAA8B,CAAC,CAAC;AAQ3E,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { LayerHandlerContribution } from '../../layer';\nimport { CanvasLayerHandlerContribution } from './canvas2d-contribution';\nimport { OffscreenLayerHandlerContribution } from './offscreen2d-contribution';\n\nexport default new ContainerModule(bind => {\n bind(CanvasLayerHandlerContribution).toSelf();\n bind(OffscreenLayerHandlerContribution).toSelf();\n bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // try {\n // if (typeof OffscreenCanvas === 'function') {\n // bind(LayerHandlerContribution).toService(OffscreenLayerHandlerContribution);\n // }\n // } catch (err) {\n // bind(LayerHandlerContribution).toService(CanvasLayerHandlerContribution);\n // }\n});\n"]}
|
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
16
16
|
value: !0
|
|
17
17
|
}), exports.OffscreenLayerHandlerContribution = void 0;
|
|
18
18
|
|
|
19
|
-
const
|
|
19
|
+
const inversify_1 = require("inversify"), util_1 = require("../../../canvas/util"), interface_1 = require("../../../interface");
|
|
20
20
|
|
|
21
21
|
let OffscreenLayerHandlerContribution = class {
|
|
22
22
|
constructor(global) {
|
|
@@ -28,7 +28,7 @@ let OffscreenLayerHandlerContribution = class {
|
|
|
28
28
|
width: params.width,
|
|
29
29
|
height: params.height,
|
|
30
30
|
dpr: window.dpr
|
|
31
|
-
}), canvas = (0,
|
|
31
|
+
}), canvas = (0, util_1.wrapCanvas)({
|
|
32
32
|
nativeCanvas: nativeCanvas,
|
|
33
33
|
width: params.width,
|
|
34
34
|
height: params.height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":"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","file":"offscreen2d-contribution.js","sourcesContent":["import { inject, injectable } from 'inversify';\nimport { wrapCanvas } from '../../../canvas/util';\nimport { ILayerHandlerContribution, IWindow, ILayerHandlerInitParams, ILayerHandlerDrawParams } from '../..';\nimport { Global, IGlobal, ICanvas, IContext2d, IDrawToParams, IGroup, ILayer } from '../../../interface';\nimport { IBoundsLike } from '@visactor/vutils';\n\n@injectable()\nexport class OffscreenLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n\n constructor(@inject(Global) public readonly global: IGlobal) {\n this.offscreen = true;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n const nativeCanvas = this.global.createOffscreenCanvas({\n width: params.width,\n height: params.height,\n dpr: window.dpr\n });\n const canvas = wrapCanvas({\n nativeCanvas,\n width: params.width,\n height: params.height,\n dpr: window.dpr,\n canvasControled: true\n });\n\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams): void {\n params.renderService.render(group, {\n context: this.context,\n ...params,\n x: 0,\n y: 0,\n clear: params.background ?? '#ffffff'\n });\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n release() {\n this.canvas.release();\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n const targetDpr = target.dpr;\n\n const { x = 0, y = 0, width = this.layer.viewWidth, height = this.layer.viewHeight } = params;\n // 这个context可能是外部的,不要使用内置的状态,直接用原生的context\n context.nativeContext.save();\n context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0);\n if (params.clear) {\n context.clearRect(x, y, width, height);\n }\n context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height);\n context.nativeContext.restore();\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n}\n"]}
|