js-draw 0.17.4 → 0.18.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/.github/workflows/firebase-hosting-merge.yml +2 -0
- package/.github/workflows/firebase-hosting-pull-request.yml +2 -0
- package/.github/workflows/github-pages.yml +2 -0
- package/CHANGELOG.md +4 -0
- package/build_tools/postDist.ts +71 -0
- package/dist/bundle.js +9 -1
- package/dist/cjs/build_tools/BundledFile.js +163 -0
- package/dist/cjs/build_tools/buildTranslationTemplate.js +119 -0
- package/dist/cjs/build_tools/bundle.js +10 -0
- package/dist/cjs/build_tools/postDist.js +72 -0
- package/dist/{src → cjs/src}/Color4.d.ts +1 -0
- package/dist/cjs/src/Color4.js +197 -0
- package/dist/cjs/src/Editor.js +904 -0
- package/dist/cjs/src/EditorImage.js +486 -0
- package/dist/cjs/src/EventDispatcher.js +57 -0
- package/dist/cjs/src/Pointer.js +84 -0
- package/dist/cjs/src/SVGLoader.js +472 -0
- package/dist/cjs/src/UndoRedoHistory.js +93 -0
- package/dist/cjs/src/Viewport.js +264 -0
- package/dist/cjs/src/bundle/bundled.js +24 -0
- package/dist/cjs/src/commands/Command.js +34 -0
- package/dist/cjs/src/commands/Duplicate.js +39 -0
- package/dist/cjs/src/commands/Erase.js +63 -0
- package/dist/cjs/src/commands/SerializableCommand.js +42 -0
- package/dist/cjs/src/commands/UnresolvedCommand.js +28 -0
- package/dist/cjs/src/commands/invertCommand.js +49 -0
- package/dist/cjs/src/commands/lib.js +18 -0
- package/dist/cjs/src/commands/localization.js +24 -0
- package/dist/cjs/src/commands/uniteCommands.js +121 -0
- package/dist/cjs/src/components/AbstractComponent.js +258 -0
- package/dist/cjs/src/components/ImageBackground.js +146 -0
- package/dist/cjs/src/components/ImageComponent.js +152 -0
- package/dist/cjs/src/components/RestylableComponent.js +88 -0
- package/dist/cjs/src/components/SVGGlobalAttributesObject.js +65 -0
- package/dist/cjs/src/components/Stroke.js +191 -0
- package/dist/cjs/src/components/TextComponent.js +258 -0
- package/dist/cjs/src/components/UnknownSVGObject.js +50 -0
- package/dist/cjs/src/components/builders/ArrowBuilder.js +117 -0
- package/dist/cjs/src/components/builders/FreehandLineBuilder.js +173 -0
- package/dist/cjs/src/components/builders/LineBuilder.js +89 -0
- package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +347 -0
- package/dist/cjs/src/components/builders/RectangleBuilder.js +59 -0
- package/dist/cjs/src/components/builders/types.js +2 -0
- package/dist/cjs/src/components/lib.js +43 -0
- package/dist/cjs/src/components/localization.js +13 -0
- package/dist/cjs/src/components/util/StrokeSmoother.js +217 -0
- package/dist/cjs/src/components/util/describeComponentList.js +16 -0
- package/dist/cjs/src/lib.js +63 -0
- package/dist/cjs/src/localization.js +13 -0
- package/dist/cjs/src/localizations/de.js +6 -0
- package/dist/cjs/src/localizations/en.js +6 -0
- package/dist/cjs/src/localizations/es.js +20 -0
- package/dist/cjs/src/localizations/getLocalizationTable.js +50 -0
- package/dist/cjs/src/math/LineSegment2.js +131 -0
- package/dist/cjs/src/math/Mat33.js +332 -0
- package/dist/cjs/src/math/Path.js +655 -0
- package/dist/cjs/src/math/Rect2.js +234 -0
- package/dist/cjs/src/math/Triangle.js +22 -0
- package/dist/cjs/src/math/Vec2.js +19 -0
- package/dist/cjs/src/math/Vec3.js +177 -0
- package/dist/cjs/src/math/lib.js +18 -0
- package/dist/cjs/src/math/rounding.js +135 -0
- package/dist/cjs/src/rendering/Display.js +214 -0
- package/dist/cjs/src/rendering/RenderingStyle.js +48 -0
- package/dist/cjs/src/rendering/TextRenderingStyle.js +29 -0
- package/dist/cjs/src/rendering/caching/CacheRecord.js +61 -0
- package/dist/cjs/src/rendering/caching/CacheRecordManager.js +50 -0
- package/dist/cjs/src/rendering/caching/RenderingCache.js +51 -0
- package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +326 -0
- package/dist/cjs/src/rendering/caching/testUtils.js +27 -0
- package/dist/cjs/src/rendering/caching/types.js +2 -0
- package/dist/cjs/src/rendering/lib.js +16 -0
- package/dist/cjs/src/rendering/localization.js +12 -0
- package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +170 -0
- package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +236 -0
- package/dist/cjs/src/rendering/renderers/DummyRenderer.js +112 -0
- package/dist/cjs/src/rendering/renderers/SVGRenderer.js +311 -0
- package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +63 -0
- package/dist/cjs/src/testing/beforeEachFile.js +12 -0
- package/dist/cjs/src/testing/createEditor.js +14 -0
- package/dist/cjs/src/testing/lib.js +10 -0
- package/dist/cjs/src/testing/loadExpectExtensions.js +28 -0
- package/dist/cjs/src/testing/sendPenEvent.js +24 -0
- package/dist/cjs/src/testing/sendTouchEvent.js +87 -0
- package/dist/cjs/src/toolbar/HTMLToolbar.js +383 -0
- package/dist/cjs/src/toolbar/IconProvider.js +660 -0
- package/dist/cjs/src/toolbar/lib.js +24 -0
- package/dist/cjs/src/toolbar/localization.js +51 -0
- package/dist/cjs/src/toolbar/makeColorInput.js +120 -0
- package/dist/cjs/src/toolbar/types.js +2 -0
- package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +31 -0
- package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +50 -0
- package/dist/cjs/src/toolbar/widgets/BaseWidget.js +313 -0
- package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +126 -0
- package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +63 -0
- package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +201 -0
- package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +176 -0
- package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +77 -0
- package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +226 -0
- package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +153 -0
- package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +115 -0
- package/dist/cjs/src/toolbar/widgets/lib.js +26 -0
- package/dist/cjs/src/tools/BaseTool.js +66 -0
- package/dist/cjs/src/tools/Eraser.js +112 -0
- package/dist/cjs/src/tools/FindTool.js +121 -0
- package/dist/cjs/src/tools/PanZoom.js +421 -0
- package/dist/cjs/src/tools/PasteHandler.js +99 -0
- package/dist/cjs/src/tools/Pen.js +179 -0
- package/dist/cjs/src/tools/PipetteTool.js +45 -0
- package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +28 -0
- package/dist/cjs/src/tools/SelectionTool/Selection.js +488 -0
- package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +85 -0
- package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +405 -0
- package/dist/cjs/src/tools/SelectionTool/TransformMode.js +107 -0
- package/dist/cjs/src/tools/SelectionTool/types.js +14 -0
- package/dist/cjs/src/tools/TextTool.js +262 -0
- package/dist/cjs/src/tools/ToolController.js +187 -0
- package/dist/cjs/src/tools/ToolEnabledGroup.js +14 -0
- package/dist/cjs/src/tools/ToolSwitcherShortcut.js +38 -0
- package/dist/cjs/src/tools/ToolbarShortcutHandler.js +29 -0
- package/dist/cjs/src/tools/UndoRedoShortcut.js +28 -0
- package/dist/cjs/src/tools/lib.js +36 -0
- package/dist/cjs/src/tools/localization.js +30 -0
- package/dist/cjs/src/types.js +38 -0
- package/dist/cjs/src/util/assertions.js +51 -0
- package/dist/cjs/src/util/fileToBase64.js +15 -0
- package/dist/cjs/src/util/untilNextAnimationFrame.js +9 -0
- package/dist/cjs/src/util/waitForTimeout.js +9 -0
- package/dist/mjs/build_tools/BundledFile.d.ts +13 -0
- package/dist/{build_tools/buildTranslationTemplate.js → mjs/build_tools/buildTranslationTemplate.mjs} +1 -1
- package/dist/{build_tools/bundle.js → mjs/build_tools/bundle.mjs} +1 -1
- package/dist/mjs/build_tools/postDist.d.ts +1 -0
- package/dist/mjs/build_tools/postDist.mjs +67 -0
- package/dist/mjs/src/Color4.d.ts +61 -0
- package/dist/{src/Color4.js → mjs/src/Color4.mjs} +1 -0
- package/dist/mjs/src/Editor.d.ts +308 -0
- package/dist/{src/Editor.js → mjs/src/Editor.mjs} +26 -26
- package/dist/mjs/src/EditorImage.d.ts +97 -0
- package/dist/{src/EditorImage.js → mjs/src/EditorImage.mjs} +8 -8
- package/dist/mjs/src/EventDispatcher.d.ts +30 -0
- package/dist/mjs/src/Pointer.d.ts +24 -0
- package/dist/{src/Pointer.js → mjs/src/Pointer.mjs} +1 -1
- package/dist/mjs/src/SVGLoader.d.ts +48 -0
- package/dist/{src/SVGLoader.js → mjs/src/SVGLoader.mjs} +11 -11
- package/dist/mjs/src/UndoRedoHistory.d.ts +19 -0
- package/dist/{src/UndoRedoHistory.js → mjs/src/UndoRedoHistory.mjs} +1 -1
- package/dist/mjs/src/Viewport.d.ts +71 -0
- package/dist/{src/Viewport.js → mjs/src/Viewport.mjs} +5 -5
- package/dist/mjs/src/bundle/bundled.d.ts +4 -0
- package/dist/{src/bundle/bundled.js → mjs/src/bundle/bundled.mjs} +2 -2
- package/dist/mjs/src/commands/Command.d.ts +16 -0
- package/dist/mjs/src/commands/Duplicate.d.ts +14 -0
- package/dist/{src/commands/Duplicate.js → mjs/src/commands/Duplicate.mjs} +3 -3
- package/dist/mjs/src/commands/Erase.d.ts +14 -0
- package/dist/{src/commands/Erase.js → mjs/src/commands/Erase.mjs} +3 -3
- package/dist/mjs/src/commands/SerializableCommand.d.ts +12 -0
- package/dist/{src/commands/SerializableCommand.js → mjs/src/commands/SerializableCommand.mjs} +1 -1
- package/dist/mjs/src/commands/UnresolvedCommand.d.ts +14 -0
- package/dist/{src/commands/UnresolvedCommand.js → mjs/src/commands/UnresolvedCommand.mjs} +1 -1
- package/dist/mjs/src/commands/invertCommand.d.ts +4 -0
- package/dist/{src/commands/invertCommand.js → mjs/src/commands/invertCommand.mjs} +2 -2
- package/dist/mjs/src/commands/lib.mjs +7 -0
- package/dist/mjs/src/commands/localization.d.ts +23 -0
- package/dist/mjs/src/commands/uniteCommands.d.ts +4 -0
- package/dist/{src/commands/uniteCommands.js → mjs/src/commands/uniteCommands.mjs} +2 -2
- package/dist/mjs/src/components/AbstractComponent.d.ts +73 -0
- package/dist/{src/components/AbstractComponent.js → mjs/src/components/AbstractComponent.mjs} +4 -4
- package/dist/mjs/src/components/ImageBackground.d.ts +42 -0
- package/dist/{src/components/ImageBackground.js → mjs/src/components/ImageBackground.mjs} +5 -5
- package/dist/mjs/src/components/ImageComponent.d.ts +31 -0
- package/dist/{src/components/ImageComponent.js → mjs/src/components/ImageComponent.mjs} +3 -3
- package/dist/mjs/src/components/RestylableComponent.d.ts +24 -0
- package/dist/{src/components/RestylableComponent.js → mjs/src/components/RestylableComponent.mjs} +4 -4
- package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +21 -0
- package/dist/{src/components/SVGGlobalAttributesObject.js → mjs/src/components/SVGGlobalAttributesObject.mjs} +3 -3
- package/dist/mjs/src/components/Stroke.d.ts +40 -0
- package/dist/{src/components/Stroke.js → mjs/src/components/Stroke.mjs} +5 -5
- package/dist/mjs/src/components/TextComponent.d.ts +53 -0
- package/dist/{src/components/TextComponent.js → mjs/src/components/TextComponent.mjs} +7 -7
- package/dist/mjs/src/components/UnknownSVGObject.d.ts +18 -0
- package/dist/{src/components/UnknownSVGObject.js → mjs/src/components/UnknownSVGObject.mjs} +3 -3
- package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +19 -0
- package/dist/{src/components/builders/ArrowBuilder.js → mjs/src/components/builders/ArrowBuilder.mjs} +2 -2
- package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +33 -0
- package/dist/{src/components/builders/FreehandLineBuilder.js → mjs/src/components/builders/FreehandLineBuilder.mjs} +7 -7
- package/dist/mjs/src/components/builders/LineBuilder.d.ts +18 -0
- package/dist/{src/components/builders/LineBuilder.js → mjs/src/components/builders/LineBuilder.mjs} +2 -2
- package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +36 -0
- package/dist/{src/components/builders/PressureSensitiveFreehandLineBuilder.js → mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs} +6 -6
- package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +20 -0
- package/dist/{src/components/builders/RectangleBuilder.js → mjs/src/components/builders/RectangleBuilder.mjs} +4 -4
- package/dist/mjs/src/components/builders/types.d.ts +12 -0
- package/dist/mjs/src/components/builders/types.mjs +1 -0
- package/dist/{src/components/lib.js → mjs/src/components/lib.d.ts} +3 -3
- package/dist/mjs/src/components/lib.mjs +12 -0
- package/dist/mjs/src/components/localization.d.ts +11 -0
- package/dist/mjs/src/components/util/StrokeSmoother.d.ts +35 -0
- package/dist/{src/components/util/StrokeSmoother.js → mjs/src/components/util/StrokeSmoother.mjs} +3 -3
- package/dist/mjs/src/components/util/describeComponentList.d.ts +4 -0
- package/dist/{src/lib.js → mjs/src/lib.d.ts} +2 -2
- package/dist/mjs/src/lib.mjs +34 -0
- package/dist/mjs/src/localization.d.ts +14 -0
- package/dist/{src/localization.js → mjs/src/localization.mjs} +5 -5
- package/dist/mjs/src/localizations/de.d.ts +3 -0
- package/dist/{src/localizations/de.js → mjs/src/localizations/de.mjs} +1 -1
- package/dist/mjs/src/localizations/en.d.ts +3 -0
- package/dist/{src/localizations/en.js → mjs/src/localizations/en.mjs} +1 -1
- package/dist/mjs/src/localizations/es.d.ts +3 -0
- package/dist/{src/localizations/es.js → mjs/src/localizations/es.mjs} +1 -1
- package/dist/mjs/src/localizations/getLocalizationTable.d.ts +3 -0
- package/dist/{src/localizations/getLocalizationTable.js → mjs/src/localizations/getLocalizationTable.mjs} +4 -4
- package/dist/mjs/src/math/LineSegment2.d.ts +24 -0
- package/dist/{src/math/LineSegment2.js → mjs/src/math/LineSegment2.mjs} +2 -2
- package/dist/mjs/src/math/Mat33.d.ts +118 -0
- package/dist/{src/math/Mat33.js → mjs/src/math/Mat33.mjs} +2 -2
- package/dist/mjs/src/math/Path.d.ts +71 -0
- package/dist/{src/math/Path.js → mjs/src/math/Path.mjs} +5 -5
- package/dist/mjs/src/math/Rect2.d.ts +52 -0
- package/dist/{src/math/Rect2.js → mjs/src/math/Rect2.mjs} +2 -2
- package/dist/mjs/src/math/Triangle.d.ts +11 -0
- package/dist/mjs/src/math/Vec2.d.ts +13 -0
- package/dist/{src/math/Vec2.js → mjs/src/math/Vec2.mjs} +1 -1
- package/dist/mjs/src/math/Vec3.d.ts +106 -0
- package/dist/mjs/src/math/lib.mjs +7 -0
- package/dist/mjs/src/math/rounding.d.ts +4 -0
- package/dist/mjs/src/rendering/Display.d.ts +75 -0
- package/dist/{src/rendering/Display.js → mjs/src/rendering/Display.mjs} +7 -7
- package/dist/mjs/src/rendering/RenderingStyle.d.ts +31 -0
- package/dist/{src/rendering/RenderingStyle.js → mjs/src/rendering/RenderingStyle.mjs} +1 -1
- package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +36 -0
- package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +20 -0
- package/dist/{src/rendering/caching/CacheRecord.js → mjs/src/rendering/caching/CacheRecord.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +12 -0
- package/dist/{src/rendering/caching/CacheRecordManager.js → mjs/src/rendering/caching/CacheRecordManager.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +11 -0
- package/dist/{src/rendering/caching/RenderingCache.js → mjs/src/rendering/caching/RenderingCache.mjs} +3 -3
- package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +29 -0
- package/dist/{src/rendering/caching/RenderingCacheNode.js → mjs/src/rendering/caching/RenderingCacheNode.mjs} +3 -3
- package/dist/mjs/src/rendering/caching/testUtils.d.ts +9 -0
- package/dist/{src/rendering/caching/testUtils.js → mjs/src/rendering/caching/testUtils.mjs} +4 -4
- package/dist/mjs/src/rendering/caching/types.d.ts +19 -0
- package/dist/mjs/src/rendering/caching/types.mjs +1 -0
- package/dist/mjs/src/rendering/lib.mjs +5 -0
- package/dist/mjs/src/rendering/localization.d.ts +10 -0
- package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +68 -0
- package/dist/{src/rendering/renderers/AbstractRenderer.js → mjs/src/rendering/renderers/AbstractRenderer.mjs} +3 -3
- package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +63 -0
- package/dist/{src/rendering/renderers/CanvasRenderer.js → mjs/src/rendering/renderers/CanvasRenderer.mjs} +5 -5
- package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +35 -0
- package/dist/{src/rendering/renderers/DummyRenderer.js → mjs/src/rendering/renderers/DummyRenderer.mjs} +2 -2
- package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +57 -0
- package/dist/{src/rendering/renderers/SVGRenderer.js → mjs/src/rendering/renderers/SVGRenderer.mjs} +6 -6
- package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +29 -0
- package/dist/{src/rendering/renderers/TextOnlyRenderer.js → mjs/src/rendering/renderers/TextOnlyRenderer.mjs} +2 -2
- package/dist/mjs/src/testing/beforeEachFile.d.ts +1 -0
- package/dist/{src/testing/beforeEachFile.js → mjs/src/testing/beforeEachFile.mjs} +1 -1
- package/dist/mjs/src/testing/createEditor.d.ts +4 -0
- package/dist/{src/testing/createEditor.js → mjs/src/testing/createEditor.mjs} +2 -2
- package/dist/mjs/src/testing/lib.mjs +2 -0
- package/dist/mjs/src/testing/loadExpectExtensions.d.ts +2 -0
- package/dist/mjs/src/testing/sendPenEvent.d.ts +12 -0
- package/dist/{src/testing/sendPenEvent.js → mjs/src/testing/sendPenEvent.mjs} +2 -2
- package/dist/mjs/src/testing/sendTouchEvent.d.ts +42 -0
- package/dist/{src/testing/sendTouchEvent.js → mjs/src/testing/sendTouchEvent.mjs} +2 -2
- package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +103 -0
- package/dist/{src/toolbar/HTMLToolbar.js → mjs/src/toolbar/HTMLToolbar.mjs} +17 -17
- package/dist/mjs/src/toolbar/IconProvider.d.ts +62 -0
- package/dist/{src/toolbar/IconProvider.js → mjs/src/toolbar/IconProvider.mjs} +4 -4
- package/dist/mjs/src/toolbar/lib.mjs +3 -0
- package/dist/mjs/src/toolbar/localization.d.ts +49 -0
- package/dist/mjs/src/toolbar/makeColorInput.d.ts +6 -0
- package/dist/{src/toolbar/makeColorInput.js → mjs/src/toolbar/makeColorInput.mjs} +3 -3
- package/dist/mjs/src/toolbar/types.d.ts +4 -0
- package/dist/mjs/src/toolbar/types.mjs +1 -0
- package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +15 -0
- package/dist/{src/toolbar/widgets/ActionButtonWidget.js → mjs/src/toolbar/widgets/ActionButtonWidget.mjs} +1 -1
- package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +11 -0
- package/dist/{src/toolbar/widgets/BaseToolWidget.js → mjs/src/toolbar/widgets/BaseToolWidget.mjs} +2 -2
- package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +72 -0
- package/dist/{src/toolbar/widgets/BaseWidget.js → mjs/src/toolbar/widgets/BaseWidget.mjs} +3 -3
- package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +18 -0
- package/dist/{src/toolbar/widgets/DocumentPropertiesWidget.js → mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs} +6 -6
- package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +17 -0
- package/dist/{src/toolbar/widgets/EraserToolWidget.js → mjs/src/toolbar/widgets/EraserToolWidget.mjs} +3 -3
- package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +17 -0
- package/dist/{src/toolbar/widgets/HandToolWidget.js → mjs/src/toolbar/widgets/HandToolWidget.mjs} +7 -7
- package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +19 -0
- package/dist/{src/toolbar/widgets/InsertImageWidget.js → mjs/src/toolbar/widgets/InsertImageWidget.mjs} +8 -8
- package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +25 -0
- package/dist/{src/toolbar/widgets/OverflowWidget.js → mjs/src/toolbar/widgets/OverflowWidget.mjs} +1 -1
- package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +27 -0
- package/dist/{src/toolbar/widgets/PenToolWidget.js → mjs/src/toolbar/widgets/PenToolWidget.mjs} +10 -10
- package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +13 -0
- package/dist/{src/toolbar/widgets/SelectionToolWidget.js → mjs/src/toolbar/widgets/SelectionToolWidget.mjs} +8 -8
- package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +16 -0
- package/dist/{src/toolbar/widgets/TextToolWidget.js → mjs/src/toolbar/widgets/TextToolWidget.mjs} +5 -5
- package/dist/mjs/src/toolbar/widgets/lib.mjs +10 -0
- package/dist/mjs/src/tools/BaseTool.d.ts +22 -0
- package/dist/{src/tools/BaseTool.js → mjs/src/tools/BaseTool.mjs} +1 -1
- package/dist/mjs/src/tools/Eraser.d.ts +23 -0
- package/dist/{src/tools/Eraser.js → mjs/src/tools/Eraser.mjs} +8 -8
- package/dist/mjs/src/tools/FindTool.d.ts +21 -0
- package/dist/{src/tools/FindTool.js → mjs/src/tools/FindTool.mjs} +2 -2
- package/dist/mjs/src/tools/PanZoom.d.ts +52 -0
- package/dist/{src/tools/PanZoom.js → mjs/src/tools/PanZoom.mjs} +8 -8
- package/dist/mjs/src/tools/PasteHandler.d.ts +23 -0
- package/dist/{src/tools/PasteHandler.js → mjs/src/tools/PasteHandler.mjs} +7 -7
- package/dist/mjs/src/tools/Pen.d.ts +39 -0
- package/dist/{src/tools/Pen.js → mjs/src/tools/Pen.mjs} +5 -5
- package/dist/mjs/src/tools/PipetteTool.d.ts +18 -0
- package/dist/{src/tools/PipetteTool.js → mjs/src/tools/PipetteTool.mjs} +1 -1
- package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +8 -0
- package/dist/{src/tools/SelectionTool/SelectAllShortcutHandler.js → mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs} +2 -2
- package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +64 -0
- package/dist/{src/tools/SelectionTool/Selection.js → mjs/src/tools/SelectionTool/Selection.mjs} +12 -12
- package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +38 -0
- package/dist/{src/tools/SelectionTool/SelectionHandle.js → mjs/src/tools/SelectionTool/SelectionHandle.mjs} +3 -3
- package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +36 -0
- package/dist/{src/tools/SelectionTool/SelectionTool.js → mjs/src/tools/SelectionTool/SelectionTool.mjs} +8 -8
- package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +34 -0
- package/dist/{src/tools/SelectionTool/TransformMode.js → mjs/src/tools/SelectionTool/TransformMode.mjs} +4 -4
- package/dist/mjs/src/tools/SelectionTool/types.d.ts +9 -0
- package/dist/mjs/src/tools/TextTool.d.ts +33 -0
- package/dist/{src/tools/TextTool.js → mjs/src/tools/TextTool.mjs} +11 -11
- package/dist/mjs/src/tools/ToolController.d.ts +18 -0
- package/dist/{src/tools/ToolController.js → mjs/src/tools/ToolController.mjs} +16 -16
- package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +6 -0
- package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +16 -0
- package/dist/{src/tools/ToolSwitcherShortcut.js → mjs/src/tools/ToolSwitcherShortcut.mjs} +1 -1
- package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +12 -0
- package/dist/{src/tools/ToolbarShortcutHandler.js → mjs/src/tools/ToolbarShortcutHandler.mjs} +1 -1
- package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +8 -0
- package/dist/{src/tools/UndoRedoShortcut.js → mjs/src/tools/UndoRedoShortcut.mjs} +1 -1
- package/dist/{src/tools/lib.js → mjs/src/tools/lib.d.ts} +1 -1
- package/dist/mjs/src/tools/lib.mjs +16 -0
- package/dist/mjs/src/tools/localization.d.ts +28 -0
- package/dist/mjs/src/types.d.ts +151 -0
- package/dist/mjs/src/util/assertions.d.ts +23 -0
- package/dist/mjs/src/util/fileToBase64.d.ts +3 -0
- package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +3 -0
- package/dist/mjs/src/util/waitForTimeout.d.ts +2 -0
- package/package.json +34 -33
- package/src/Color4.ts +2 -0
- package/tsconfig.json +3 -2
- package/tsconfig.mjs.json +9 -0
- /package/dist/{build_tools → cjs/build_tools}/BundledFile.d.ts +0 -0
- /package/dist/{build_tools → cjs/build_tools}/buildTranslationTemplate.d.ts +0 -0
- /package/dist/{build_tools → cjs/build_tools}/bundle.d.ts +0 -0
- /package/dist/{src/components/builders/types.js → cjs/build_tools/postDist.d.ts} +0 -0
- /package/dist/{src → cjs/src}/Editor.d.ts +0 -0
- /package/dist/{src → cjs/src}/EditorImage.d.ts +0 -0
- /package/dist/{src → cjs/src}/EventDispatcher.d.ts +0 -0
- /package/dist/{src → cjs/src}/Pointer.d.ts +0 -0
- /package/dist/{src → cjs/src}/SVGLoader.d.ts +0 -0
- /package/dist/{src → cjs/src}/UndoRedoHistory.d.ts +0 -0
- /package/dist/{src → cjs/src}/Viewport.d.ts +0 -0
- /package/dist/{src → cjs/src}/bundle/bundled.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Command.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Duplicate.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Erase.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/SerializableCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/UnresolvedCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/invertCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/uniteCommands.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/AbstractComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/ImageBackground.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/ImageComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/RestylableComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/SVGGlobalAttributesObject.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/Stroke.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/TextComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/UnknownSVGObject.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/ArrowBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/FreehandLineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/LineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/RectangleBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/util/StrokeSmoother.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/util/describeComponentList.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/de.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/en.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/es.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/getLocalizationTable.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/LineSegment2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Mat33.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Path.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Rect2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Triangle.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Vec2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Vec3.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/rounding.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/Display.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/RenderingStyle.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/TextRenderingStyle.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/CacheRecord.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/CacheRecordManager.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/RenderingCache.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/RenderingCacheNode.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/testUtils.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/AbstractRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/CanvasRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/DummyRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/SVGRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/TextOnlyRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/beforeEachFile.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/createEditor.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/loadExpectExtensions.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/sendPenEvent.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/sendTouchEvent.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/HTMLToolbar.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/IconProvider.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/makeColorInput.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/ActionButtonWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/BaseToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/BaseWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/EraserToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/HandToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/InsertImageWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/OverflowWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/PenToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/SelectionToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/TextToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/BaseTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/Eraser.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/FindTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PanZoom.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PasteHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/Pen.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PipetteTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/Selection.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionHandle.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/TransformMode.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/TextTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolController.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolEnabledGroup.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolSwitcherShortcut.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolbarShortcutHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/UndoRedoShortcut.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/assertions.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/fileToBase64.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/untilNextAnimationFrame.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/waitForTimeout.d.ts +0 -0
- /package/dist/{build_tools/BundledFile.js → mjs/build_tools/BundledFile.mjs} +0 -0
- /package/dist/{src/rendering/caching/types.js → mjs/build_tools/buildTranslationTemplate.d.ts} +0 -0
- /package/dist/{src/toolbar/types.js → mjs/build_tools/bundle.d.ts} +0 -0
- /package/dist/{src/EventDispatcher.js → mjs/src/EventDispatcher.mjs} +0 -0
- /package/dist/{src/commands/Command.js → mjs/src/commands/Command.mjs} +0 -0
- /package/dist/{src/commands/lib.js → mjs/src/commands/lib.d.ts} +0 -0
- /package/dist/{src/commands/localization.js → mjs/src/commands/localization.mjs} +0 -0
- /package/dist/{src/components/localization.js → mjs/src/components/localization.mjs} +0 -0
- /package/dist/{src/components/util/describeComponentList.js → mjs/src/components/util/describeComponentList.mjs} +0 -0
- /package/dist/{src/math/Triangle.js → mjs/src/math/Triangle.mjs} +0 -0
- /package/dist/{src/math/Vec3.js → mjs/src/math/Vec3.mjs} +0 -0
- /package/dist/{src/math/lib.js → mjs/src/math/lib.d.ts} +0 -0
- /package/dist/{src/math/rounding.js → mjs/src/math/rounding.mjs} +0 -0
- /package/dist/{src/rendering/lib.js → mjs/src/rendering/lib.d.ts} +0 -0
- /package/dist/{src/rendering/localization.js → mjs/src/rendering/localization.mjs} +0 -0
- /package/dist/{src/testing/lib.js → mjs/src/testing/lib.d.ts} +0 -0
- /package/dist/{src/testing/loadExpectExtensions.js → mjs/src/testing/loadExpectExtensions.mjs} +0 -0
- /package/dist/{src/toolbar/lib.js → mjs/src/toolbar/lib.d.ts} +0 -0
- /package/dist/{src/toolbar/localization.js → mjs/src/toolbar/localization.mjs} +0 -0
- /package/dist/{src/toolbar/widgets/lib.js → mjs/src/toolbar/widgets/lib.d.ts} +0 -0
- /package/dist/{src/tools/SelectionTool/types.js → mjs/src/tools/SelectionTool/types.mjs} +0 -0
- /package/dist/{src/tools/ToolEnabledGroup.js → mjs/src/tools/ToolEnabledGroup.mjs} +0 -0
- /package/dist/{src/tools/localization.js → mjs/src/tools/localization.mjs} +0 -0
- /package/dist/{src/types.js → mjs/src/types.mjs} +0 -0
- /package/dist/{src/util/assertions.js → mjs/src/util/assertions.mjs} +0 -0
- /package/dist/{src/util/fileToBase64.js → mjs/src/util/fileToBase64.mjs} +0 -0
- /package/dist/{src/util/untilNextAnimationFrame.js → mjs/src/util/untilNextAnimationFrame.mjs} +0 -0
- /package/dist/{src/util/waitForTimeout.js → mjs/src/util/waitForTimeout.mjs} +0 -0
@@ -0,0 +1,106 @@
|
|
1
|
+
/**
|
2
|
+
* A vector with three components. Can also be used to represent a two-component vector.
|
3
|
+
*
|
4
|
+
* A `Vec3` is immutable.
|
5
|
+
*/
|
6
|
+
export default class Vec3 {
|
7
|
+
readonly x: number;
|
8
|
+
readonly y: number;
|
9
|
+
readonly z: number;
|
10
|
+
private constructor();
|
11
|
+
/** Returns the x, y components of this. */
|
12
|
+
get xy(): {
|
13
|
+
x: number;
|
14
|
+
y: number;
|
15
|
+
};
|
16
|
+
static of(x: number, y: number, z: number): Vec3;
|
17
|
+
/** Returns this' `idx`th component. For example, `Vec3.of(1, 2, 3).at(1) → 2`. */
|
18
|
+
at(idx: number): number;
|
19
|
+
/** Alias for this.magnitude. */
|
20
|
+
length(): number;
|
21
|
+
magnitude(): number;
|
22
|
+
magnitudeSquared(): number;
|
23
|
+
/**
|
24
|
+
* Return this' angle in the XY plane (treats this as a Vec2).
|
25
|
+
*
|
26
|
+
* This is equivalent to `Math.atan2(vec.y, vec.x)`.
|
27
|
+
*/
|
28
|
+
angle(): number;
|
29
|
+
/**
|
30
|
+
* Returns a unit vector in the same direction as this.
|
31
|
+
*
|
32
|
+
* If `this` has zero length, the resultant vector has `NaN` components.
|
33
|
+
*/
|
34
|
+
normalized(): Vec3;
|
35
|
+
/** @returns A copy of `this` multiplied by a scalar. */
|
36
|
+
times(c: number): Vec3;
|
37
|
+
plus(v: Vec3): Vec3;
|
38
|
+
minus(v: Vec3): Vec3;
|
39
|
+
dot(other: Vec3): number;
|
40
|
+
cross(other: Vec3): Vec3;
|
41
|
+
/**
|
42
|
+
* If `other` is a `Vec3`, multiplies `this` component-wise by `other`. Otherwise,
|
43
|
+
* if `other is a `number`, returns the result of scalar multiplication.
|
44
|
+
*
|
45
|
+
* @example
|
46
|
+
* ```
|
47
|
+
* Vec3.of(1, 2, 3).scale(Vec3.of(2, 4, 6)); // → Vec3(2, 8, 18)
|
48
|
+
* ```
|
49
|
+
*/
|
50
|
+
scale(other: Vec3 | number): Vec3;
|
51
|
+
/**
|
52
|
+
* Returns a vector orthogonal to this. If this is a Vec2, returns `this` rotated
|
53
|
+
* 90 degrees counter-clockwise.
|
54
|
+
*/
|
55
|
+
orthog(): Vec3;
|
56
|
+
/** Returns this plus a vector of length `distance` in `direction`. */
|
57
|
+
extend(distance: number, direction: Vec3): Vec3;
|
58
|
+
/** Returns a vector `fractionTo` of the way to target from this. */
|
59
|
+
lerp(target: Vec3, fractionTo: number): Vec3;
|
60
|
+
/**
|
61
|
+
* `zip` Maps a component of this and a corresponding component of
|
62
|
+
* `other` to a component of the output vector.
|
63
|
+
*
|
64
|
+
* @example
|
65
|
+
* ```
|
66
|
+
* const a = Vec3.of(1, 2, 3);
|
67
|
+
* const b = Vec3.of(0.5, 2.1, 2.9);
|
68
|
+
*
|
69
|
+
* const zipped = a.zip(b, (aComponent, bComponent) => {
|
70
|
+
* return Math.min(aComponent, bComponent);
|
71
|
+
* });
|
72
|
+
*
|
73
|
+
* console.log(zipped.toString()); // → Vec(0.5, 2, 2.9)
|
74
|
+
* ```
|
75
|
+
*/
|
76
|
+
zip(other: Vec3, zip: (componentInThis: number, componentInOther: number) => number): Vec3;
|
77
|
+
/**
|
78
|
+
* Returns a vector with each component acted on by `fn`.
|
79
|
+
*
|
80
|
+
* @example
|
81
|
+
* ```
|
82
|
+
* console.log(Vec3.of(1, 2, 3).map(val => val + 1)); // → Vec(2, 3, 4)
|
83
|
+
* ```
|
84
|
+
*/
|
85
|
+
map(fn: (component: number, index: number) => number): Vec3;
|
86
|
+
asArray(): [number, number, number];
|
87
|
+
/**
|
88
|
+
* [fuzz] The maximum difference between two components for this and [other]
|
89
|
+
* to be considered equal.
|
90
|
+
*
|
91
|
+
* @example
|
92
|
+
* ```
|
93
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 100); // → true
|
94
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 0.1); // → false
|
95
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3); // → true
|
96
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3.01); // → true
|
97
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 2.99); // → false
|
98
|
+
* ```
|
99
|
+
*/
|
100
|
+
eq(other: Vec3, fuzz?: number): boolean;
|
101
|
+
toString(): string;
|
102
|
+
static unitX: Vec3;
|
103
|
+
static unitY: Vec3;
|
104
|
+
static unitZ: Vec3;
|
105
|
+
static zero: Vec3;
|
106
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import LineSegment2 from './LineSegment2.mjs';
|
2
|
+
import Mat33 from './Mat33.mjs';
|
3
|
+
import Path from './Path.mjs';
|
4
|
+
import Rect2 from './Rect2.mjs';
|
5
|
+
import { Vec2 } from './Vec2.mjs';
|
6
|
+
import Vec3 from './Vec3.mjs';
|
7
|
+
export { LineSegment2, Mat33, Path, Rect2, Vec3, Vec2, };
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export declare const cleanUpNumber: (text: string) => string;
|
2
|
+
export declare const toRoundedString: (num: number) => string;
|
3
|
+
export declare const getLenAfterDecimal: (numberAsString: string) => number;
|
4
|
+
export declare const toStringOfSamePrecision: (num: number, ...references: string[]) => string;
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import AbstractRenderer from './renderers/AbstractRenderer';
|
2
|
+
import { Editor } from '../Editor';
|
3
|
+
import { Point2 } from '../math/Vec2';
|
4
|
+
import RenderingCache from './caching/RenderingCache';
|
5
|
+
import Color4 from '../Color4';
|
6
|
+
export declare enum RenderingMode {
|
7
|
+
DummyRenderer = 0,
|
8
|
+
CanvasRenderer = 1
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Handles `HTMLCanvasElement`s (or other drawing surfaces if being used) used to display the editor's contents.
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ```
|
15
|
+
* const editor = new Editor(document.body);
|
16
|
+
* const w = editor.display.width;
|
17
|
+
* const h = editor.display.height;
|
18
|
+
* const center = Vec2.of(w / 2, h / 2);
|
19
|
+
* const colorAtCenter = editor.display.getColorAt(center);
|
20
|
+
* ```
|
21
|
+
*/
|
22
|
+
export default class Display {
|
23
|
+
private editor;
|
24
|
+
private parent;
|
25
|
+
private dryInkRenderer;
|
26
|
+
private wetInkRenderer;
|
27
|
+
private textRenderer;
|
28
|
+
private textRerenderOutput;
|
29
|
+
private cache;
|
30
|
+
private resizeSurfacesCallback?;
|
31
|
+
private flattenCallback?;
|
32
|
+
/** @internal */
|
33
|
+
constructor(editor: Editor, mode: RenderingMode, parent: HTMLElement | null);
|
34
|
+
/**
|
35
|
+
* @returns the visible width of the display (e.g. how much
|
36
|
+
* space the display's element takes up in the x direction
|
37
|
+
* in the DOM).
|
38
|
+
*/
|
39
|
+
get width(): number;
|
40
|
+
get height(): number;
|
41
|
+
/** @internal */
|
42
|
+
getCache(): RenderingCache;
|
43
|
+
/**
|
44
|
+
* @returns the color at the given point on the dry ink renderer, or `null` if `screenPos`
|
45
|
+
* is not on the display.
|
46
|
+
*/
|
47
|
+
getColorAt: (_screenPos: Point2) => Color4 | null;
|
48
|
+
private initializeCanvasRendering;
|
49
|
+
private initializeTextRendering;
|
50
|
+
/**
|
51
|
+
* Rerenders the text-based display.
|
52
|
+
* The text-based display is intended for screen readers and can be navigated to by pressing `tab`.
|
53
|
+
*/
|
54
|
+
rerenderAsText(): void;
|
55
|
+
/**
|
56
|
+
* Clears the drawing surfaces and otherwise prepares for a rerender.
|
57
|
+
*
|
58
|
+
* @returns the dry ink renderer.
|
59
|
+
*/
|
60
|
+
startRerender(): AbstractRenderer;
|
61
|
+
/**
|
62
|
+
* If `draftMode`, the dry ink renderer is configured to render
|
63
|
+
* low-quality output.
|
64
|
+
*/
|
65
|
+
setDraftMode(draftMode: boolean): void;
|
66
|
+
/** @internal */
|
67
|
+
getDryInkRenderer(): AbstractRenderer;
|
68
|
+
/**
|
69
|
+
* @returns The renderer used for showing action previews (e.g. an unfinished stroke).
|
70
|
+
* The `wetInkRenderer`'s surface is stacked above the `dryInkRenderer`'s.
|
71
|
+
*/
|
72
|
+
getWetInkRenderer(): AbstractRenderer;
|
73
|
+
/** Re-renders the contents of the wetInkRenderer onto the dryInkRenderer. */
|
74
|
+
flatten(): void;
|
75
|
+
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
1
|
+
import CanvasRenderer from './renderers/CanvasRenderer.mjs';
|
2
|
+
import { EditorEventType } from '../types.mjs';
|
3
|
+
import DummyRenderer from './renderers/DummyRenderer.mjs';
|
4
|
+
import { Vec2 } from '../math/Vec2.mjs';
|
5
|
+
import RenderingCache from './caching/RenderingCache.mjs';
|
6
|
+
import TextOnlyRenderer from './renderers/TextOnlyRenderer.mjs';
|
7
|
+
import Color4 from '../Color4.mjs';
|
8
8
|
export var RenderingMode;
|
9
9
|
(function (RenderingMode) {
|
10
10
|
RenderingMode[RenderingMode["DummyRenderer"] = 0] = "DummyRenderer";
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import Color4 from '../Color4';
|
2
|
+
interface RenderingStyle {
|
3
|
+
fill: Color4;
|
4
|
+
stroke?: {
|
5
|
+
color: Color4;
|
6
|
+
width: number;
|
7
|
+
};
|
8
|
+
}
|
9
|
+
export default RenderingStyle;
|
10
|
+
export declare const cloneStyle: (style: RenderingStyle) => {
|
11
|
+
fill: Color4;
|
12
|
+
stroke: {
|
13
|
+
color: Color4;
|
14
|
+
width: number;
|
15
|
+
} | undefined;
|
16
|
+
};
|
17
|
+
export declare const stylesEqual: (a: RenderingStyle, b: RenderingStyle) => boolean;
|
18
|
+
export declare const styleToJSON: (style: RenderingStyle) => {
|
19
|
+
fill: string;
|
20
|
+
stroke: {
|
21
|
+
color: string;
|
22
|
+
width: number;
|
23
|
+
} | undefined;
|
24
|
+
};
|
25
|
+
export declare const styleFromJSON: (json: Record<string, any>) => {
|
26
|
+
fill: Color4;
|
27
|
+
stroke: {
|
28
|
+
color: Color4;
|
29
|
+
width: any;
|
30
|
+
} | undefined;
|
31
|
+
};
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import RenderingStyle from './RenderingStyle';
|
2
|
+
export interface TextStyle {
|
3
|
+
size: number;
|
4
|
+
fontFamily: string;
|
5
|
+
fontWeight?: string;
|
6
|
+
fontVariant?: string;
|
7
|
+
renderingStyle: RenderingStyle;
|
8
|
+
}
|
9
|
+
export default TextStyle;
|
10
|
+
export declare const cloneTextStyle: (style: TextStyle) => {
|
11
|
+
renderingStyle: {
|
12
|
+
fill: import("../Color4").default;
|
13
|
+
stroke: {
|
14
|
+
color: import("../Color4").default;
|
15
|
+
width: number;
|
16
|
+
} | undefined;
|
17
|
+
};
|
18
|
+
size: number;
|
19
|
+
fontFamily: string;
|
20
|
+
fontWeight?: string | undefined;
|
21
|
+
fontVariant?: string | undefined;
|
22
|
+
};
|
23
|
+
export declare const textStyleFromJSON: (json: any) => TextStyle;
|
24
|
+
export declare const textStyleToJSON: (style: TextStyle) => {
|
25
|
+
renderingStyle: {
|
26
|
+
fill: string;
|
27
|
+
stroke: {
|
28
|
+
color: string;
|
29
|
+
width: number;
|
30
|
+
} | undefined;
|
31
|
+
};
|
32
|
+
size: number;
|
33
|
+
fontFamily: string;
|
34
|
+
fontWeight?: string | undefined;
|
35
|
+
fontVariant?: string | undefined;
|
36
|
+
};
|
package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs}
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { cloneStyle, styleFromJSON, styleToJSON } from './RenderingStyle.mjs';
|
2
2
|
export const cloneTextStyle = (style) => {
|
3
3
|
return Object.assign(Object.assign({}, style), { renderingStyle: cloneStyle(style.renderingStyle) });
|
4
4
|
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import Mat33 from '../../math/Mat33';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
4
|
+
import { BeforeDeallocCallback, CacheState } from './types';
|
5
|
+
export default class CacheRecord {
|
6
|
+
private onBeforeDeallocCallback;
|
7
|
+
private cacheState;
|
8
|
+
private renderer;
|
9
|
+
private lastUsedCycle;
|
10
|
+
private allocd;
|
11
|
+
allocCount: number;
|
12
|
+
constructor(onBeforeDeallocCallback: BeforeDeallocCallback | null, cacheState: CacheState);
|
13
|
+
startRender(): AbstractRenderer;
|
14
|
+
dealloc(): void;
|
15
|
+
isAllocd(): boolean;
|
16
|
+
realloc(newDeallocCallback: BeforeDeallocCallback): void;
|
17
|
+
getLastUsedCycle(): number;
|
18
|
+
getTransform(drawTo: Rect2): Mat33;
|
19
|
+
setRenderingRegion(drawTo: Rect2): void;
|
20
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { BeforeDeallocCallback, CacheProps, CacheState } from './types';
|
2
|
+
import CacheRecord from './CacheRecord';
|
3
|
+
import Rect2 from '../../math/Rect2';
|
4
|
+
export declare class CacheRecordManager {
|
5
|
+
private cacheRecords;
|
6
|
+
private maxCanvases;
|
7
|
+
private cacheState;
|
8
|
+
constructor(cacheProps: CacheProps);
|
9
|
+
setSharedState(state: CacheState): void;
|
10
|
+
allocCanvas(drawTo: Rect2, onDealloc: BeforeDeallocCallback): CacheRecord;
|
11
|
+
private getLeastRecentlyUsedRecord;
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { ImageNode } from '../../EditorImage';
|
2
|
+
import Viewport from '../../Viewport';
|
3
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
4
|
+
import { CacheProps } from './types';
|
5
|
+
export default class RenderingCache {
|
6
|
+
private sharedState;
|
7
|
+
private recordManager;
|
8
|
+
private rootNode;
|
9
|
+
constructor(cacheProps: CacheProps);
|
10
|
+
render(screenRenderer: AbstractRenderer, image: ImageNode, viewport: Viewport): void;
|
11
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
1
|
+
import Rect2 from '../../math/Rect2.mjs';
|
2
|
+
import RenderingCacheNode from './RenderingCacheNode.mjs';
|
3
|
+
import { CacheRecordManager } from './CacheRecordManager.mjs';
|
4
4
|
export default class RenderingCache {
|
5
5
|
constructor(cacheProps) {
|
6
6
|
this.recordManager = new CacheRecordManager(cacheProps);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { ImageNode } from '../../EditorImage';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import Viewport from '../../Viewport';
|
4
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
5
|
+
import { CacheState } from './types';
|
6
|
+
export default class RenderingCacheNode {
|
7
|
+
readonly region: Rect2;
|
8
|
+
private readonly cacheState;
|
9
|
+
private instantiatedChildren;
|
10
|
+
private parent;
|
11
|
+
private cachedRenderer;
|
12
|
+
private renderedIds;
|
13
|
+
private renderedMaxZIndex;
|
14
|
+
constructor(region: Rect2, cacheState: CacheState);
|
15
|
+
generateParent(): RenderingCacheNode;
|
16
|
+
private generateChildren;
|
17
|
+
private getChildren;
|
18
|
+
smallestChildContaining(rect: Rect2): RenderingCacheNode | null;
|
19
|
+
private renderingWouldBeHighEnoughResolution;
|
20
|
+
private allChildrenCanRender;
|
21
|
+
private computeSortedByLeafIds;
|
22
|
+
private idsOfIntersecting;
|
23
|
+
private allRenderedIdsIn;
|
24
|
+
private renderingIsUpToDate;
|
25
|
+
renderItems(screenRenderer: AbstractRenderer, items: ImageNode[], viewport: Viewport): void;
|
26
|
+
private isEmpty;
|
27
|
+
private onRegionDealloc;
|
28
|
+
private checkRep;
|
29
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// A cache record with sub-nodes.
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
2
|
+
import Color4 from '../../Color4.mjs';
|
3
|
+
import { sortLeavesByZIndex } from '../../EditorImage.mjs';
|
4
|
+
import Rect2 from '../../math/Rect2.mjs';
|
5
5
|
// 3x3 divisions for each node.
|
6
6
|
const cacheDivisionSize = 3;
|
7
7
|
// True: Show rendering updates.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import DummyRenderer from '../renderers/DummyRenderer';
|
2
|
+
import RenderingCache from './RenderingCache';
|
3
|
+
import { CacheProps } from './types';
|
4
|
+
type RenderAllocCallback = (renderer: DummyRenderer) => void;
|
5
|
+
export declare const createCache: (onRenderAlloc?: RenderAllocCallback, cacheOptions?: Partial<CacheProps>) => {
|
6
|
+
cache: RenderingCache;
|
7
|
+
editor: import("../../Editor").Editor;
|
8
|
+
};
|
9
|
+
export {};
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
1
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
2
|
+
import DummyRenderer from '../renderers/DummyRenderer.mjs';
|
3
|
+
import createEditor from '../../testing/createEditor.mjs';
|
4
|
+
import RenderingCache from './RenderingCache.mjs';
|
5
5
|
// Override any default test options with [cacheOptions]
|
6
6
|
export const createCache = (onRenderAlloc, cacheOptions) => {
|
7
7
|
const editor = createEditor();
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Vec2 } from '../../math/Vec2';
|
2
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
3
|
+
import { CacheRecordManager } from './CacheRecordManager';
|
4
|
+
export type CacheAddress = number;
|
5
|
+
export type BeforeDeallocCallback = () => void;
|
6
|
+
export interface CacheProps {
|
7
|
+
createRenderer(): AbstractRenderer;
|
8
|
+
isOfCorrectType(renderer: AbstractRenderer): boolean;
|
9
|
+
blockResolution: Vec2;
|
10
|
+
cacheSize: number;
|
11
|
+
maxScale: number;
|
12
|
+
minProportionalRenderTimePerCache: number;
|
13
|
+
minProportionalRenderTimeToUseCache: number;
|
14
|
+
}
|
15
|
+
export interface CacheState {
|
16
|
+
currentRenderingCycle: number;
|
17
|
+
props: CacheProps;
|
18
|
+
recordManager: CacheRecordManager;
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { default as AbstractRenderer } from './renderers/AbstractRenderer.mjs';
|
2
|
+
export { default as DummyRenderer } from './renderers/DummyRenderer.mjs';
|
3
|
+
export { default as SVGRenderer } from './renderers/SVGRenderer.mjs';
|
4
|
+
export { default as CanvasRenderer } from './renderers/CanvasRenderer.mjs';
|
5
|
+
export { default as Display } from './Display.mjs';
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export interface TextRendererLocalization {
|
2
|
+
pathNodeCount(pathCount: number): string;
|
3
|
+
textNodeCount(nodeCount: number): string;
|
4
|
+
imageNodeCount(nodeCount: number): string;
|
5
|
+
textNode(content: string): string;
|
6
|
+
unlabeledImageNode: string;
|
7
|
+
imageNode(label: string): string;
|
8
|
+
rerenderAsText: string;
|
9
|
+
}
|
10
|
+
export declare const defaultTextRendererLocalization: TextRendererLocalization;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import Color4 from '../../Color4';
|
2
|
+
import { LoadSaveDataTable } from '../../components/AbstractComponent';
|
3
|
+
import Mat33 from '../../math/Mat33';
|
4
|
+
import Path, { PathCommand } from '../../math/Path';
|
5
|
+
import Rect2 from '../../math/Rect2';
|
6
|
+
import { Point2, Vec2 } from '../../math/Vec2';
|
7
|
+
import Viewport from '../../Viewport';
|
8
|
+
import RenderingStyle from '../RenderingStyle';
|
9
|
+
import TextStyle from '../TextRenderingStyle';
|
10
|
+
export interface RenderablePathSpec {
|
11
|
+
startPoint: Point2;
|
12
|
+
commands: PathCommand[];
|
13
|
+
style: RenderingStyle;
|
14
|
+
path?: Path;
|
15
|
+
}
|
16
|
+
export interface RenderableImage {
|
17
|
+
transform: Mat33;
|
18
|
+
image: HTMLImageElement | HTMLCanvasElement;
|
19
|
+
base64Url: string;
|
20
|
+
label?: string;
|
21
|
+
}
|
22
|
+
export default abstract class AbstractRenderer {
|
23
|
+
private viewport;
|
24
|
+
private selfTransform;
|
25
|
+
private transformStack;
|
26
|
+
protected constructor(viewport: Viewport);
|
27
|
+
protected getViewport(): Viewport;
|
28
|
+
abstract displaySize(): Vec2;
|
29
|
+
abstract clear(): void;
|
30
|
+
protected abstract beginPath(startPoint: Point2): void;
|
31
|
+
protected abstract endPath(style: RenderingStyle): void;
|
32
|
+
protected abstract lineTo(point: Point2): void;
|
33
|
+
protected abstract moveTo(point: Point2): void;
|
34
|
+
protected abstract traceCubicBezierCurve(p1: Point2, p2: Point2, p3: Point2): void;
|
35
|
+
protected abstract traceQuadraticBezierCurve(controlPoint: Point2, endPoint: Point2): void;
|
36
|
+
abstract drawText(text: string, transform: Mat33, style: TextStyle): void;
|
37
|
+
abstract drawImage(image: RenderableImage): void;
|
38
|
+
abstract isTooSmallToRender(rect: Rect2): boolean;
|
39
|
+
setDraftMode(_draftMode: boolean): void;
|
40
|
+
protected objectLevel: number;
|
41
|
+
private currentPaths;
|
42
|
+
private flushPath;
|
43
|
+
drawPath(path: RenderablePathSpec): void;
|
44
|
+
drawRect(rect: Rect2, lineWidth: number, lineFill: RenderingStyle): void;
|
45
|
+
fillRect(rect: Rect2, fill: Color4): void;
|
46
|
+
startObject(_boundingBox: Rect2, _clip?: boolean): void;
|
47
|
+
/**
|
48
|
+
* Notes the end of an object.
|
49
|
+
* @param _loaderData - a map from strings to JSON-ifyable objects
|
50
|
+
* and contains properties attached to the object by whatever loader loaded the image. This
|
51
|
+
* is used to preserve attributes not supported by js-draw when loading/saving an image.
|
52
|
+
* Renderers may ignore this.
|
53
|
+
*
|
54
|
+
* @param _objectTags - a list of labels (e.g. `className`s) to be attached to the object.
|
55
|
+
* Renderers may ignore this.
|
56
|
+
*/
|
57
|
+
endObject(_loaderData?: LoadSaveDataTable, _objectTags?: string[]): void;
|
58
|
+
protected getNestingLevel(): number;
|
59
|
+
abstract drawPoints(...points: Point2[]): void;
|
60
|
+
canRenderFromWithoutDataLoss(_other: AbstractRenderer): boolean;
|
61
|
+
renderFromOtherOfSameType(_renderTo: Mat33, other: AbstractRenderer): void;
|
62
|
+
setTransform(transform: Mat33 | null): void;
|
63
|
+
pushTransform(transform: Mat33): void;
|
64
|
+
popTransform(): void;
|
65
|
+
getCanvasToScreenTransform(): Mat33;
|
66
|
+
canvasToScreen(vec: Vec2): Vec2;
|
67
|
+
getSizeOfCanvasPixelOnScreen(): number;
|
68
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
1
|
+
import Path, { PathCommandType } from '../../math/Path.mjs';
|
2
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
3
|
+
import { stylesEqual } from '../RenderingStyle.mjs';
|
4
4
|
export default class AbstractRenderer {
|
5
5
|
constructor(viewport) {
|
6
6
|
this.viewport = viewport;
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import Mat33 from '../../math/Mat33';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import { Point2, Vec2 } from '../../math/Vec2';
|
4
|
+
import Vec3 from '../../math/Vec3';
|
5
|
+
import Viewport from '../../Viewport';
|
6
|
+
import RenderingStyle from '../RenderingStyle';
|
7
|
+
import TextStyle from '../TextRenderingStyle';
|
8
|
+
import AbstractRenderer, { RenderableImage, RenderablePathSpec } from './AbstractRenderer';
|
9
|
+
/**
|
10
|
+
* Renders onto a `CanvasRenderingContext2D`.
|
11
|
+
*
|
12
|
+
* @example
|
13
|
+
* ```ts
|
14
|
+
* const editor = new Editor(document.body);
|
15
|
+
*
|
16
|
+
* const canvas = document.createElement('canvas');
|
17
|
+
* const ctx = canvas.getContext('2d');
|
18
|
+
*
|
19
|
+
* // Ensure that the canvas can fit the entire rendering
|
20
|
+
* const viewport = editor.image.getImportExportViewport();
|
21
|
+
* canvas.width = viewport.getScreenRectSize().x;
|
22
|
+
* canvas.height = viewport.getScreenRectSize().y;
|
23
|
+
*
|
24
|
+
* // Render editor.image onto the renderer
|
25
|
+
* const renderer = new CanvasRenderer(ctx, viewport);
|
26
|
+
* editor.image.render(renderer, viewport);
|
27
|
+
* ```
|
28
|
+
*/
|
29
|
+
export default class CanvasRenderer extends AbstractRenderer {
|
30
|
+
private ctx;
|
31
|
+
private ignoreObjectsAboveLevel;
|
32
|
+
private ignoringObject;
|
33
|
+
private currentObjectBBox;
|
34
|
+
private minSquareCurveApproxDist;
|
35
|
+
private minRenderSizeAnyDimen;
|
36
|
+
private minRenderSizeBothDimens;
|
37
|
+
/**
|
38
|
+
* Creates a new `CanvasRenderer` that renders to the given rendering context.
|
39
|
+
* The `viewport` is used to determine the translation/rotation/scaling of the content
|
40
|
+
* to draw.
|
41
|
+
*/
|
42
|
+
constructor(ctx: CanvasRenderingContext2D, viewport: Viewport);
|
43
|
+
private transformBy;
|
44
|
+
canRenderFromWithoutDataLoss(other: AbstractRenderer): boolean;
|
45
|
+
renderFromOtherOfSameType(transformBy: Mat33, other: AbstractRenderer): void;
|
46
|
+
setDraftMode(draftMode: boolean): void;
|
47
|
+
displaySize(): Vec2;
|
48
|
+
clear(): void;
|
49
|
+
protected beginPath(startPoint: Point2): void;
|
50
|
+
protected endPath(style: RenderingStyle): void;
|
51
|
+
protected lineTo(point: Point2): void;
|
52
|
+
protected moveTo(point: Point2): void;
|
53
|
+
protected traceCubicBezierCurve(p1: Point2, p2: Point2, p3: Point2): void;
|
54
|
+
protected traceQuadraticBezierCurve(controlPoint: Vec3, endPoint: Vec3): void;
|
55
|
+
drawPath(path: RenderablePathSpec): void;
|
56
|
+
drawText(text: string, transform: Mat33, style: TextStyle): void;
|
57
|
+
drawImage(image: RenderableImage): void;
|
58
|
+
private clipLevels;
|
59
|
+
startObject(boundingBox: Rect2, clip?: boolean): void;
|
60
|
+
endObject(): void;
|
61
|
+
drawPoints(...points: Point2[]): void;
|
62
|
+
isTooSmallToRender(rect: Rect2): boolean;
|
63
|
+
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
1
|
+
import Color4 from '../../Color4.mjs';
|
2
|
+
import TextComponent from '../../components/TextComponent.mjs';
|
3
|
+
import Path from '../../math/Path.mjs';
|
4
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
5
|
+
import AbstractRenderer from './AbstractRenderer.mjs';
|
6
6
|
/**
|
7
7
|
* Renders onto a `CanvasRenderingContext2D`.
|
8
8
|
*
|