supervision 0.0.9000 → 0.1.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/LICENSE +21 -0
- package/README.md +23 -2
- package/dist/constants/media-renderer.d.ts +9 -0
- package/dist/constants/media-renderer.d.ts.map +1 -0
- package/dist/detections/browser-cold-detection-frame-store.d.ts +5 -0
- package/dist/detections/browser-cold-detection-frame-store.d.ts.map +1 -0
- package/dist/detections/chunked-detection-frame-source.d.ts +3 -0
- package/dist/detections/chunked-detection-frame-source.d.ts.map +1 -0
- package/dist/detections/offset-detection-frame-source.d.ts +10 -0
- package/dist/detections/offset-detection-frame-source.d.ts.map +1 -0
- package/dist/editing/mask-brush-editor.d.ts +47 -0
- package/dist/editing/mask-brush-editor.d.ts.map +1 -0
- package/dist/editing.d.ts +8 -0
- package/dist/editing.d.ts.map +1 -0
- package/dist/editing.js +265 -0
- package/dist/editing.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9419 -0
- package/dist/index.js.map +1 -0
- package/dist/mask-preparation.worker.js +823 -0
- package/dist/mask-preparation.worker.js.map +1 -0
- package/dist/media/decoded-video-sample-reader.d.ts +8 -0
- package/dist/media/decoded-video-sample-reader.d.ts.map +1 -0
- package/dist/media/media-metadata.d.ts +21 -0
- package/dist/media/media-metadata.d.ts.map +1 -0
- package/dist/media/media-normalization.d.ts +6 -0
- package/dist/media/media-normalization.d.ts.map +1 -0
- package/dist/media/media-preparation.d.ts +9 -0
- package/dist/media/media-preparation.d.ts.map +1 -0
- package/dist/media/media-probe.d.ts +3 -0
- package/dist/media/media-probe.d.ts.map +1 -0
- package/dist/media/media-source-state.d.ts +5 -0
- package/dist/media/media-source-state.d.ts.map +1 -0
- package/dist/media/media-source.d.ts +38 -0
- package/dist/media/media-source.d.ts.map +1 -0
- package/dist/media/media-stream-media-source.d.ts +27 -0
- package/dist/media/media-stream-media-source.d.ts.map +1 -0
- package/dist/media/mediabunny-media-source.d.ts +13 -0
- package/dist/media/mediabunny-media-source.d.ts.map +1 -0
- package/dist/media/static-image-media-source.d.ts +13 -0
- package/dist/media/static-image-media-source.d.ts.map +1 -0
- package/dist/playback/media-playback-controller.d.ts +24 -0
- package/dist/playback/media-playback-controller.d.ts.map +1 -0
- package/dist/render-preparation/default-render-preparation-worker.d.ts +8 -0
- package/dist/render-preparation/default-render-preparation-worker.d.ts.map +1 -0
- package/dist/render-preparation/embedded-mask-preparation-worker.d.ts +2 -0
- package/dist/render-preparation/embedded-mask-preparation-worker.d.ts.map +1 -0
- package/dist/render-preparation/mask-frame-artifact.d.ts +28 -0
- package/dist/render-preparation/mask-frame-artifact.d.ts.map +1 -0
- package/dist/render-preparation/mask-frame-compositor.d.ts +14 -0
- package/dist/render-preparation/mask-frame-compositor.d.ts.map +1 -0
- package/dist/render-preparation/mask-frame-preparer.d.ts +19 -0
- package/dist/render-preparation/mask-frame-preparer.d.ts.map +1 -0
- package/dist/render-preparation/mask-preparation-worker-count.d.ts +15 -0
- package/dist/render-preparation/mask-preparation-worker-count.d.ts.map +1 -0
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts +64 -0
- package/dist/render-preparation/mask-preparation-worker-protocol.d.ts.map +1 -0
- package/dist/render-preparation/mask-preparation.worker.d.ts +2 -0
- package/dist/render-preparation/mask-preparation.worker.d.ts.map +1 -0
- package/dist/render-preparation/prepared-render-window.d.ts +46 -0
- package/dist/render-preparation/prepared-render-window.d.ts.map +1 -0
- package/dist/render-preparation/prepared-window-timeline.d.ts +16 -0
- package/dist/render-preparation/prepared-window-timeline.d.ts.map +1 -0
- package/dist/renderers/media-renderer-core.d.ts +9 -0
- package/dist/renderers/media-renderer-core.d.ts.map +1 -0
- package/dist/renderers/media-renderer-scene.d.ts +77 -0
- package/dist/renderers/media-renderer-scene.d.ts.map +1 -0
- package/dist/renderers/media-renderer-state.d.ts +44 -0
- package/dist/renderers/media-renderer-state.d.ts.map +1 -0
- package/dist/renderers/media-renderer.d.ts +8 -0
- package/dist/renderers/media-renderer.d.ts.map +1 -0
- package/dist/renderers/pixi-annotation-overlay-layer.d.ts +25 -0
- package/dist/renderers/pixi-annotation-overlay-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-box-layer.d.ts +28 -0
- package/dist/renderers/pixi-box-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-focus-layer.d.ts +92 -0
- package/dist/renderers/pixi-focus-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-id-mask-shader.d.ts +62 -0
- package/dist/renderers/pixi-id-mask-shader.d.ts.map +1 -0
- package/dist/renderers/pixi-interaction-layer.d.ts +63 -0
- package/dist/renderers/pixi-interaction-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts +84 -0
- package/dist/renderers/pixi-interaction-presentation-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-label-layer.d.ts +32 -0
- package/dist/renderers/pixi-label-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-mask-brush-preview.d.ts +26 -0
- package/dist/renderers/pixi-mask-brush-preview.d.ts.map +1 -0
- package/dist/renderers/pixi-mask-layer.d.ts +98 -0
- package/dist/renderers/pixi-mask-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-media-scene.d.ts +6 -0
- package/dist/renderers/pixi-media-scene.d.ts.map +1 -0
- package/dist/renderers/pixi-path.d.ts +15 -0
- package/dist/renderers/pixi-path.d.ts.map +1 -0
- package/dist/renderers/pixi-polygon-layer.d.ts +32 -0
- package/dist/renderers/pixi-polygon-layer.d.ts.map +1 -0
- package/dist/renderers/pixi-scene-fit.d.ts +14 -0
- package/dist/renderers/pixi-scene-fit.d.ts.map +1 -0
- package/dist/renderers/pixi-scene-layer-slot.d.ts +23 -0
- package/dist/renderers/pixi-scene-layer-slot.d.ts.map +1 -0
- package/dist/renderers/pixi-vector-layer.d.ts +24 -0
- package/dist/renderers/pixi-vector-layer.d.ts.map +1 -0
- package/dist/sessions/media-session-defaults.d.ts +21 -0
- package/dist/sessions/media-session-defaults.d.ts.map +1 -0
- package/dist/sessions/media-session-detections.d.ts +16 -0
- package/dist/sessions/media-session-detections.d.ts.map +1 -0
- package/dist/sessions/media-session-media.d.ts +19 -0
- package/dist/sessions/media-session-media.d.ts.map +1 -0
- package/dist/sessions/media-session-state.d.ts +12 -0
- package/dist/sessions/media-session-state.d.ts.map +1 -0
- package/dist/sessions/media-session.d.ts +10 -0
- package/dist/sessions/media-session.d.ts.map +1 -0
- package/dist/types/media-normalization.d.ts +119 -0
- package/dist/types/media-normalization.d.ts.map +1 -0
- package/dist/types/media-preparation.d.ts +30 -0
- package/dist/types/media-preparation.d.ts.map +1 -0
- package/dist/types/media-renderer.d.ts +115 -0
- package/dist/types/media-renderer.d.ts.map +1 -0
- package/dist/types/media-session.d.ts +242 -0
- package/dist/types/media-session.d.ts.map +1 -0
- package/dist/types/render-preparation.d.ts +164 -0
- package/dist/types/render-preparation.d.ts.map +1 -0
- package/dist/workers/worker-rpc-client.d.ts +15 -0
- package/dist/workers/worker-rpc-client.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/array-detection-frame-source.d.ts +4 -0
- package/node_modules/supervision-js-core/dist/detections/array-detection-frame-source.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/buffered-detection-timeline.d.ts +14 -0
- package/node_modules/supervision-js-core/dist/detections/buffered-detection-timeline.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/cold-detection-frame-source.d.ts +6 -0
- package/node_modules/supervision-js-core/dist/detections/cold-detection-frame-source.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/composite-detection-frame-source.d.ts +3 -0
- package/node_modules/supervision-js-core/dist/detections/composite-detection-frame-source.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/editable-annotation-frame-session.d.ts +35 -0
- package/node_modules/supervision-js-core/dist/detections/editable-annotation-frame-session.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/memory-cold-detection-frame-store.d.ts +3 -0
- package/node_modules/supervision-js-core/dist/detections/memory-cold-detection-frame-store.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/detections/writable-detection-frame-source.d.ts +8 -0
- package/node_modules/supervision-js-core/dist/detections/writable-detection-frame-source.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/index.d.ts +65 -0
- package/node_modules/supervision-js-core/dist/index.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/index.js +4277 -0
- package/node_modules/supervision-js-core/dist/index.js.map +1 -0
- package/node_modules/supervision-js-core/dist/interactions/annotation-editing-engine.d.ts +3 -0
- package/node_modules/supervision-js-core/dist/interactions/annotation-editing-engine.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/interactions/annotation-handles.d.ts +13 -0
- package/node_modules/supervision-js-core/dist/interactions/annotation-handles.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/interactions/detection-picker.d.ts +7 -0
- package/node_modules/supervision-js-core/dist/interactions/detection-picker.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/interactions/viewport-controller.d.ts +6 -0
- package/node_modules/supervision-js-core/dist/interactions/viewport-controller.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/box-style.d.ts +44 -0
- package/node_modules/supervision-js-core/dist/styles/box-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/default-annotation-presentation.d.ts +20 -0
- package/node_modules/supervision-js-core/dist/styles/default-annotation-presentation.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/focus-style.d.ts +37 -0
- package/node_modules/supervision-js-core/dist/styles/focus-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/interaction-style.d.ts +64 -0
- package/node_modules/supervision-js-core/dist/styles/interaction-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/keypoint-style.d.ts +19 -0
- package/node_modules/supervision-js-core/dist/styles/keypoint-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/label-style.d.ts +61 -0
- package/node_modules/supervision-js-core/dist/styles/label-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/mask-style.d.ts +55 -0
- package/node_modules/supervision-js-core/dist/styles/mask-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/polygon-style.d.ts +15 -0
- package/node_modules/supervision-js-core/dist/styles/polygon-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/polyline-style.d.ts +14 -0
- package/node_modules/supervision-js-core/dist/styles/polyline-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/source-presentation.d.ts +22 -0
- package/node_modules/supervision-js-core/dist/styles/source-presentation.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/styles/style-value.d.ts +4 -0
- package/node_modules/supervision-js-core/dist/styles/style-value.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/box-style.d.ts +58 -0
- package/node_modules/supervision-js-core/dist/types/box-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/detection-timeline.d.ts +325 -0
- package/node_modules/supervision-js-core/dist/types/detection-timeline.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/detections.d.ts +183 -0
- package/node_modules/supervision-js-core/dist/types/detections.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/editing.d.ts +140 -0
- package/node_modules/supervision-js-core/dist/types/editing.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/focus-style.d.ts +36 -0
- package/node_modules/supervision-js-core/dist/types/focus-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/interaction-style.d.ts +44 -0
- package/node_modules/supervision-js-core/dist/types/interaction-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/interaction.d.ts +70 -0
- package/node_modules/supervision-js-core/dist/types/interaction.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/keypoint-style.d.ts +30 -0
- package/node_modules/supervision-js-core/dist/types/keypoint-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/label-style.d.ts +65 -0
- package/node_modules/supervision-js-core/dist/types/label-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/mask-style.d.ts +59 -0
- package/node_modules/supervision-js-core/dist/types/mask-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts +204 -0
- package/node_modules/supervision-js-core/dist/types/media-rendering.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/media.d.ts +42 -0
- package/node_modules/supervision-js-core/dist/types/media.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/polygon-style.d.ts +13 -0
- package/node_modules/supervision-js-core/dist/types/polygon-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/polyline-style.d.ts +12 -0
- package/node_modules/supervision-js-core/dist/types/polyline-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/session-lifecycle.d.ts +106 -0
- package/node_modules/supervision-js-core/dist/types/session-lifecycle.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/style.d.ts +28 -0
- package/node_modules/supervision-js-core/dist/types/style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/types/viewport.d.ts +19 -0
- package/node_modules/supervision-js-core/dist/types/viewport.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/annotation-visibility.d.ts +5 -0
- package/node_modules/supervision-js-core/dist/utils/annotation-visibility.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/color-palette.d.ts +12 -0
- package/node_modules/supervision-js-core/dist/utils/color-palette.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/color.d.ts +4 -0
- package/node_modules/supervision-js-core/dist/utils/color.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/detection-conversions.d.ts +24 -0
- package/node_modules/supervision-js-core/dist/utils/detection-conversions.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/detection-frames.d.ts +16 -0
- package/node_modules/supervision-js-core/dist/utils/detection-frames.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/detection-masks.d.ts +31 -0
- package/node_modules/supervision-js-core/dist/utils/detection-masks.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/geometry.d.ts +11 -0
- package/node_modules/supervision-js-core/dist/utils/geometry.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts +18 -0
- package/node_modules/supervision-js-core/dist/utils/id-mask-frame.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/mask-style.d.ts +4 -0
- package/node_modules/supervision-js-core/dist/utils/mask-style.d.ts.map +1 -0
- package/node_modules/supervision-js-core/dist/utils/object.d.ts +2 -0
- package/node_modules/supervision-js-core/dist/utils/object.d.ts.map +1 -0
- package/node_modules/supervision-js-core/package.json +51 -0
- package/package.json +92 -16
- package/index.js +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Roboflow
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
-
# supervision
|
|
1
|
+
# supervision-js
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Browser-native tools for building interactive computer vision applications.
|
|
4
|
+
|
|
5
|
+
`supervision-js` provides renderer-owned media sessions, detection rendering,
|
|
6
|
+
styling, interaction, and editing for images, video, and browser media streams.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
npm install supervision@next
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The first public browser release is staged on npm's `next` tag. Use
|
|
15
|
+
`npm install supervision` after it is promoted to `latest`. The package includes
|
|
16
|
+
its internal core dependency. Consumers import the public browser entrypoints:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { createMediaSession } from "supervision";
|
|
20
|
+
import { createMaskBrushEditor } from "supervision/editing";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
See the [project README](https://github.com/roboflow/supervision-js#readme) for
|
|
24
|
+
the public API, demo, and documentation links.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare enum RenderEnginePreference {
|
|
2
|
+
WebGL = "webgl"
|
|
3
|
+
}
|
|
4
|
+
export declare const ALREADY_PRESENTED_SAMPLE_EPSILON_SECONDS = 0.000001;
|
|
5
|
+
export declare const DEFAULT_BOX_STROKE_ALPHA = 1;
|
|
6
|
+
export declare const DEFAULT_BOX_STROKE_COLOR = 65382;
|
|
7
|
+
export declare const DEFAULT_BOX_STROKE_WIDTH = 2;
|
|
8
|
+
export declare const RENDER_ENGINE_PREFERENCE = RenderEnginePreference.WebGL;
|
|
9
|
+
//# sourceMappingURL=media-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-renderer.d.ts","sourceRoot":"","sources":["../../src/constants/media-renderer.ts"],"names":[],"mappings":"AAAA,oBAAY,sBAAsB;IAChC,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,wCAAwC,WAAO,CAAC;AAC7D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAW,CAAC;AACjD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,wBAAwB,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ColdDetectionFrameStore } from "supervision-js-core";
|
|
2
|
+
export declare function createBrowserColdDetectionFrameStore(options?: {
|
|
3
|
+
readonly databaseName?: string;
|
|
4
|
+
}): ColdDetectionFrameStore;
|
|
5
|
+
//# sourceMappingURL=browser-cold-detection-frame-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-cold-detection-frame-store.d.ts","sourceRoot":"","sources":["../../src/detections/browser-cold-detection-frame-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAIxB,MAAM,qBAAqB,CAAC;AA4B7B,wBAAgB,oCAAoC,CAAC,OAAO,CAAC,EAAE;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,uBAAuB,CA+M1B"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ChunkedDetectionFrameSourceOptions, DetectionFrameSource } from "supervision-js-core";
|
|
2
|
+
export declare function createChunkedDetectionFrameSource(options: ChunkedDetectionFrameSourceOptions): DetectionFrameSource;
|
|
3
|
+
//# sourceMappingURL=chunked-detection-frame-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunked-detection-frame-source.d.ts","sourceRoot":"","sources":["../../src/detections/chunked-detection-frame-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAIlC,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAS7B,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,oBAAoB,CA0DtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DetectionFrameSource } from "supervision-js-core";
|
|
2
|
+
/**
|
|
3
|
+
* Presents a detection source on a shifted media timeline.
|
|
4
|
+
*
|
|
5
|
+
* The wrapped source remains expressed in its own zero-based clock. Renderer
|
|
6
|
+
* reads, coverage waits, and incremental changes are translated in both
|
|
7
|
+
* directions so buffering and frame selection share the same timeline.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createOffsetDetectionFrameSource(source: DetectionFrameSource, offsetSeconds: number): DetectionFrameSource;
|
|
10
|
+
//# sourceMappingURL=offset-detection-frame-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offset-detection-frame-source.d.ts","sourceRoot":"","sources":["../../src/detections/offset-detection-frame-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,MAAM,GACpB,oBAAoB,CAwEtB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type DetectionMask, type Point, type Rect } from "supervision-js-core";
|
|
2
|
+
export declare enum MaskBrushMode {
|
|
3
|
+
Add = "add",
|
|
4
|
+
Erase = "erase"
|
|
5
|
+
}
|
|
6
|
+
export interface MaskBrushEditor {
|
|
7
|
+
readonly canvas: HTMLCanvasElement;
|
|
8
|
+
beginStroke(point: Point, options?: {
|
|
9
|
+
mode?: MaskBrushMode;
|
|
10
|
+
radius?: number;
|
|
11
|
+
}): void;
|
|
12
|
+
extendStroke(point: Point): void;
|
|
13
|
+
endStroke(): DetectionMask;
|
|
14
|
+
cancelStroke(): void;
|
|
15
|
+
seed(mask: DetectionMask): void;
|
|
16
|
+
clear(): void;
|
|
17
|
+
getMask(): DetectionMask;
|
|
18
|
+
getMaskBounds(): Rect | null;
|
|
19
|
+
getCursor(): {
|
|
20
|
+
point: Point | null;
|
|
21
|
+
radius: number;
|
|
22
|
+
mode: MaskBrushMode;
|
|
23
|
+
};
|
|
24
|
+
setCursor(point: Point | null, options?: {
|
|
25
|
+
mode?: MaskBrushMode;
|
|
26
|
+
radius?: number;
|
|
27
|
+
}): void;
|
|
28
|
+
subscribeTextureUpdates(listener: () => void): () => void;
|
|
29
|
+
subscribeCursorUpdates(listener: () => void): () => void;
|
|
30
|
+
}
|
|
31
|
+
/** Renderer-neutral connection between a brush editor and its live preview. */
|
|
32
|
+
export interface MaskBrushPreviewOptions {
|
|
33
|
+
readonly editor: MaskBrushEditor;
|
|
34
|
+
readonly color?: number;
|
|
35
|
+
readonly alpha?: number;
|
|
36
|
+
readonly cursorColor?: number;
|
|
37
|
+
}
|
|
38
|
+
/** Mutable live bridge for brush painting. Persistence remains host-owned. */
|
|
39
|
+
export declare function createMaskBrushEditor(options: {
|
|
40
|
+
readonly width: number;
|
|
41
|
+
readonly height: number;
|
|
42
|
+
readonly canvas?: HTMLCanvasElement;
|
|
43
|
+
readonly onCursorUpdate?: () => void;
|
|
44
|
+
readonly onTextureUpdate?: () => void;
|
|
45
|
+
readonly onCommit?: (mask: DetectionMask) => void;
|
|
46
|
+
}): MaskBrushEditor;
|
|
47
|
+
//# sourceMappingURL=mask-brush-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask-brush-editor.d.ts","sourceRoot":"","sources":["../../src/editing/mask-brush-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,IAAI,EACV,MAAM,qBAAqB,CAAC;AAE7B,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,WAAW,CACT,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,IAAI,CAAC;IACR,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACjC,SAAS,IAAI,aAAa,CAAC;IAC3B,YAAY,IAAI,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,aAAa,CAAC;IACzB,aAAa,IAAI,IAAI,GAAG,IAAI,CAAC;IAC7B,SAAS,IAAI;QAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAC1E,SAAS,CACP,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,IAAI,CAAC;IACR,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC1D;AAED,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD,GAAG,eAAe,CA4LlB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced annotation editing APIs. These remain renderer-neutral except for
|
|
3
|
+
* the browser canvas mask brush; hosts own persistence and undo.
|
|
4
|
+
*/
|
|
5
|
+
export { AnnotationFrameMutationKind, AnnotationGeometryKind, AnnotationGestureStateKind, AnnotationHandleKind, DetectionMaskPayloadFormat, applyAnnotationHandleDrag, centerRectToTopLeftRect, computeDetectionMaskRect, computeMaskBounds, convertDetectionBoxToMask, convertDetectionBoxToPolygon, convertDetectionMaskToBox, convertDetectionMaskToPolygon, convertDetectionPolygonToBox, convertDetectionPolygonToMask, createAnnotationEditingEngine, createEditableAnnotationFrameSession, decodeDetectionMaskPayload, deleteAnnotationVertex, detectMaskBorders, distanceToSegment, encodeBinaryMask, encodeCompressedRleCounts, encodeDetectionMaskPayload, extractMaskContour, extractMaskRectRuns, getAnnotationHandles, isDeflatedBase64DetectionMaskPayload, mergeDetectionMasks, mergeDetectionPolygonsByClass, offsetDetection, pickAnnotationHandle, pointInPolygon, polygonArea, polygonToRect, rasterizePolygonToMask, rasterizeRectToMask, rectToPolygon, topLeftRectToCenterRect, } from "supervision-js-core";
|
|
6
|
+
export type { AnnotationCreationTool, AnnotationEditingEngine, AnnotationEditingEngineOptions, AnnotationEditingPreviewStyleContext, AnnotationEditingState, AnnotationFrameMutation, AnnotationFrameMutationListener, AnnotationHandleDefinition, AnnotationOverlayStyle, AnnotationPointerInput, DetectionId, EditableDetection, DetectionMaskCompressionCodec, EditableAnnotationFrameSession, MaskRectRun, MediaDimensions, PreviewOverlayData, PreviewOverlayPoint, } from "supervision-js-core";
|
|
7
|
+
export { MaskBrushMode, createMaskBrushEditor, type MaskBrushEditor, type MaskBrushPreviewOptions, } from "#editing/mask-brush-editor";
|
|
8
|
+
//# sourceMappingURL=editing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../src/editing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,oCAAoC,EACpC,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oCAAoC,EACpC,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,oCAAoC,EACpC,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,6BAA6B,EAC7B,8BAA8B,EAC9B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC"}
|
package/dist/editing.js
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { decodeCompressedRleMask, encodeBinaryMaskWithBounds } from 'supervision-js-core';
|
|
2
|
+
export { AnnotationFrameMutationKind, AnnotationGeometryKind, AnnotationGestureStateKind, AnnotationHandleKind, DetectionMaskPayloadFormat, applyAnnotationHandleDrag, centerRectToTopLeftRect, computeDetectionMaskRect, computeMaskBounds, convertDetectionBoxToMask, convertDetectionBoxToPolygon, convertDetectionMaskToBox, convertDetectionMaskToPolygon, convertDetectionPolygonToBox, convertDetectionPolygonToMask, createAnnotationEditingEngine, createEditableAnnotationFrameSession, decodeDetectionMaskPayload, deleteAnnotationVertex, detectMaskBorders, distanceToSegment, encodeBinaryMask, encodeCompressedRleCounts, encodeDetectionMaskPayload, extractMaskContour, extractMaskRectRuns, getAnnotationHandles, isDeflatedBase64DetectionMaskPayload, mergeDetectionMasks, mergeDetectionPolygonsByClass, offsetDetection, pickAnnotationHandle, pointInPolygon, polygonArea, polygonToRect, rasterizePolygonToMask, rasterizeRectToMask, rectToPolygon, topLeftRectToCenterRect } from 'supervision-js-core';
|
|
3
|
+
|
|
4
|
+
var MaskBrushMode;
|
|
5
|
+
(function (MaskBrushMode) {
|
|
6
|
+
MaskBrushMode["Add"] = "add";
|
|
7
|
+
MaskBrushMode["Erase"] = "erase";
|
|
8
|
+
})(MaskBrushMode || (MaskBrushMode = {}));
|
|
9
|
+
/** Mutable live bridge for brush painting. Persistence remains host-owned. */
|
|
10
|
+
function createMaskBrushEditor(options) {
|
|
11
|
+
const canvas = options.canvas ?? document.createElement("canvas");
|
|
12
|
+
canvas.width = options.width;
|
|
13
|
+
canvas.height = options.height;
|
|
14
|
+
const context = canvas.getContext("2d", {
|
|
15
|
+
willReadFrequently: true,
|
|
16
|
+
});
|
|
17
|
+
if (!context)
|
|
18
|
+
throw new Error("Unable to create mask brush canvas context.");
|
|
19
|
+
const brushContext = context;
|
|
20
|
+
let lastPoint = null;
|
|
21
|
+
let binary = new Uint8Array(canvas.width * canvas.height);
|
|
22
|
+
let cachedOutput = null;
|
|
23
|
+
let strokeDirtyRect = null;
|
|
24
|
+
let strokePatches = [];
|
|
25
|
+
let stroking = false;
|
|
26
|
+
let radius = 12;
|
|
27
|
+
let mode = MaskBrushMode.Add;
|
|
28
|
+
let cursor = null;
|
|
29
|
+
const cursorListeners = new Set();
|
|
30
|
+
const textureListeners = new Set();
|
|
31
|
+
return {
|
|
32
|
+
canvas,
|
|
33
|
+
beginStroke(point, strokeOptions = {}) {
|
|
34
|
+
if (stroking)
|
|
35
|
+
return;
|
|
36
|
+
stroking = true;
|
|
37
|
+
strokeDirtyRect = null;
|
|
38
|
+
strokePatches = [];
|
|
39
|
+
radius = Math.max(0.5, strokeOptions.radius ?? radius);
|
|
40
|
+
mode = strokeOptions.mode ?? mode;
|
|
41
|
+
lastPoint = point;
|
|
42
|
+
cursor = point;
|
|
43
|
+
if (paintPoints([point]))
|
|
44
|
+
updateTexture();
|
|
45
|
+
updateCursor();
|
|
46
|
+
},
|
|
47
|
+
extendStroke(point) {
|
|
48
|
+
cursor = point;
|
|
49
|
+
if (!lastPoint || !stroking) {
|
|
50
|
+
updateCursor();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (paintPoints(bresenham(lastPoint, point)))
|
|
54
|
+
updateTexture();
|
|
55
|
+
lastPoint = point;
|
|
56
|
+
updateCursor();
|
|
57
|
+
},
|
|
58
|
+
endStroke() {
|
|
59
|
+
if (!stroking)
|
|
60
|
+
return getMask();
|
|
61
|
+
stroking = false;
|
|
62
|
+
strokeDirtyRect = null;
|
|
63
|
+
strokePatches = [];
|
|
64
|
+
lastPoint = null;
|
|
65
|
+
const mask = getMask();
|
|
66
|
+
options.onCommit?.(mask);
|
|
67
|
+
return mask;
|
|
68
|
+
},
|
|
69
|
+
cancelStroke() {
|
|
70
|
+
if (!stroking)
|
|
71
|
+
return;
|
|
72
|
+
for (let index = strokePatches.length - 1; index >= 0; index -= 1) {
|
|
73
|
+
restoreBinaryPatch(binary, canvas.width, strokePatches[index]);
|
|
74
|
+
}
|
|
75
|
+
if (strokeDirtyRect)
|
|
76
|
+
writeBinaryRect(strokeDirtyRect);
|
|
77
|
+
stroking = false;
|
|
78
|
+
strokeDirtyRect = null;
|
|
79
|
+
strokePatches = [];
|
|
80
|
+
lastPoint = null;
|
|
81
|
+
cachedOutput = null;
|
|
82
|
+
updateTexture();
|
|
83
|
+
updateCursor();
|
|
84
|
+
},
|
|
85
|
+
seed(mask) {
|
|
86
|
+
const decoded = decodeCompressedRleMask(mask);
|
|
87
|
+
if (decoded.width !== canvas.width || decoded.height !== canvas.height) {
|
|
88
|
+
throw new Error("Seed mask dimensions must match the brush canvas.");
|
|
89
|
+
}
|
|
90
|
+
binary = decoded.data.slice();
|
|
91
|
+
const image = brushContext.createImageData(canvas.width, canvas.height);
|
|
92
|
+
for (let index = 0; index < binary.length; index += 1) {
|
|
93
|
+
if (!binary[index])
|
|
94
|
+
continue;
|
|
95
|
+
const offset = index * 4;
|
|
96
|
+
image.data[offset] = 255;
|
|
97
|
+
image.data[offset + 1] = 255;
|
|
98
|
+
image.data[offset + 2] = 255;
|
|
99
|
+
image.data[offset + 3] = 255;
|
|
100
|
+
}
|
|
101
|
+
brushContext.putImageData(image, 0, 0);
|
|
102
|
+
cachedOutput = null;
|
|
103
|
+
updateTexture();
|
|
104
|
+
},
|
|
105
|
+
clear() {
|
|
106
|
+
brushContext.clearRect(0, 0, canvas.width, canvas.height);
|
|
107
|
+
binary.fill(0);
|
|
108
|
+
cachedOutput = null;
|
|
109
|
+
updateTexture();
|
|
110
|
+
},
|
|
111
|
+
getMask,
|
|
112
|
+
getMaskBounds: () => getOutput().bounds,
|
|
113
|
+
getCursor: () => ({ mode, point: cursor, radius }),
|
|
114
|
+
setCursor(point, cursorOptions = {}) {
|
|
115
|
+
cursor = point;
|
|
116
|
+
radius = Math.max(0.5, cursorOptions.radius ?? radius);
|
|
117
|
+
mode = cursorOptions.mode ?? mode;
|
|
118
|
+
updateCursor();
|
|
119
|
+
},
|
|
120
|
+
subscribeTextureUpdates(listener) {
|
|
121
|
+
textureListeners.add(listener);
|
|
122
|
+
return () => textureListeners.delete(listener);
|
|
123
|
+
},
|
|
124
|
+
subscribeCursorUpdates(listener) {
|
|
125
|
+
cursorListeners.add(listener);
|
|
126
|
+
return () => cursorListeners.delete(listener);
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
function paintPoints(points) {
|
|
130
|
+
const dirtyRect = getPaintRect(points, radius, canvas.width, canvas.height);
|
|
131
|
+
if (!dirtyRect)
|
|
132
|
+
return false;
|
|
133
|
+
strokePatches.push(copyBinaryPatch(binary, canvas.width, dirtyRect));
|
|
134
|
+
strokeDirtyRect = unionRasterRects(strokeDirtyRect, dirtyRect);
|
|
135
|
+
brushContext.save();
|
|
136
|
+
brushContext.globalCompositeOperation =
|
|
137
|
+
mode === MaskBrushMode.Erase ? "destination-out" : "source-over";
|
|
138
|
+
brushContext.fillStyle = "white";
|
|
139
|
+
for (const point of points) {
|
|
140
|
+
brushContext.beginPath();
|
|
141
|
+
brushContext.arc(point.x, point.y, radius, 0, Math.PI * 2);
|
|
142
|
+
brushContext.fill();
|
|
143
|
+
}
|
|
144
|
+
brushContext.restore();
|
|
145
|
+
syncBinaryRect(dirtyRect);
|
|
146
|
+
cachedOutput = null;
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
function getMask() {
|
|
150
|
+
return getOutput().mask;
|
|
151
|
+
}
|
|
152
|
+
function getOutput() {
|
|
153
|
+
cachedOutput ??= encodeBinaryMaskWithBounds(binary, canvas.width, canvas.height);
|
|
154
|
+
return cachedOutput;
|
|
155
|
+
}
|
|
156
|
+
function syncBinaryRect(rect) {
|
|
157
|
+
const rgba = brushContext.getImageData(rect.x, rect.y, rect.width, rect.height).data;
|
|
158
|
+
for (let y = 0; y < rect.height; y += 1) {
|
|
159
|
+
for (let x = 0; x < rect.width; x += 1) {
|
|
160
|
+
const target = (rect.y + y) * canvas.width + rect.x + x;
|
|
161
|
+
const source = (y * rect.width + x) * 4 + 3;
|
|
162
|
+
binary[target] = rgba[source] > 0 ? 1 : 0;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function writeBinaryRect(rect) {
|
|
167
|
+
const image = brushContext.createImageData(rect.width, rect.height);
|
|
168
|
+
for (let y = 0; y < rect.height; y += 1) {
|
|
169
|
+
for (let x = 0; x < rect.width; x += 1) {
|
|
170
|
+
if (!binary[(rect.y + y) * canvas.width + rect.x + x])
|
|
171
|
+
continue;
|
|
172
|
+
const offset = (y * rect.width + x) * 4;
|
|
173
|
+
image.data[offset] = 255;
|
|
174
|
+
image.data[offset + 1] = 255;
|
|
175
|
+
image.data[offset + 2] = 255;
|
|
176
|
+
image.data[offset + 3] = 255;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
brushContext.putImageData(image, rect.x, rect.y);
|
|
180
|
+
}
|
|
181
|
+
function updateTexture() {
|
|
182
|
+
options.onTextureUpdate?.();
|
|
183
|
+
for (const listener of textureListeners)
|
|
184
|
+
listener();
|
|
185
|
+
}
|
|
186
|
+
function updateCursor() {
|
|
187
|
+
options.onCursorUpdate?.();
|
|
188
|
+
for (const listener of cursorListeners)
|
|
189
|
+
listener();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function getPaintRect(points, radius, width, height) {
|
|
193
|
+
if (points.length === 0)
|
|
194
|
+
return null;
|
|
195
|
+
let minX = points[0].x;
|
|
196
|
+
let minY = points[0].y;
|
|
197
|
+
let maxX = minX;
|
|
198
|
+
let maxY = minY;
|
|
199
|
+
for (let index = 1; index < points.length; index += 1) {
|
|
200
|
+
const point = points[index];
|
|
201
|
+
minX = Math.min(minX, point.x);
|
|
202
|
+
minY = Math.min(minY, point.y);
|
|
203
|
+
maxX = Math.max(maxX, point.x);
|
|
204
|
+
maxY = Math.max(maxY, point.y);
|
|
205
|
+
}
|
|
206
|
+
const padding = radius + 1;
|
|
207
|
+
const left = Math.max(0, Math.floor(minX - padding));
|
|
208
|
+
const top = Math.max(0, Math.floor(minY - padding));
|
|
209
|
+
const right = Math.min(width, Math.ceil(maxX + padding));
|
|
210
|
+
const bottom = Math.min(height, Math.ceil(maxY + padding));
|
|
211
|
+
return right <= left || bottom <= top
|
|
212
|
+
? null
|
|
213
|
+
: { height: bottom - top, width: right - left, x: left, y: top };
|
|
214
|
+
}
|
|
215
|
+
function copyBinaryPatch(binary, stride, rect) {
|
|
216
|
+
const data = new Uint8Array(rect.width * rect.height);
|
|
217
|
+
for (let y = 0; y < rect.height; y += 1) {
|
|
218
|
+
data.set(binary.subarray((rect.y + y) * stride + rect.x, (rect.y + y) * stride + rect.x + rect.width), y * rect.width);
|
|
219
|
+
}
|
|
220
|
+
return { data, rect };
|
|
221
|
+
}
|
|
222
|
+
function restoreBinaryPatch(binary, stride, patch) {
|
|
223
|
+
for (let y = 0; y < patch.rect.height; y += 1) {
|
|
224
|
+
binary.set(patch.data.subarray(y * patch.rect.width, (y + 1) * patch.rect.width), (patch.rect.y + y) * stride + patch.rect.x);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function unionRasterRects(current, next) {
|
|
228
|
+
if (!current)
|
|
229
|
+
return next;
|
|
230
|
+
const x = Math.min(current.x, next.x);
|
|
231
|
+
const y = Math.min(current.y, next.y);
|
|
232
|
+
const right = Math.max(current.x + current.width, next.x + next.width);
|
|
233
|
+
const bottom = Math.max(current.y + current.height, next.y + next.height);
|
|
234
|
+
return { height: bottom - y, width: right - x, x, y };
|
|
235
|
+
}
|
|
236
|
+
function bresenham(from, to) {
|
|
237
|
+
const points = [];
|
|
238
|
+
let x = Math.round(from.x);
|
|
239
|
+
let y = Math.round(from.y);
|
|
240
|
+
const targetX = Math.round(to.x);
|
|
241
|
+
const targetY = Math.round(to.y);
|
|
242
|
+
const dx = Math.abs(targetX - x);
|
|
243
|
+
const sx = x < targetX ? 1 : -1;
|
|
244
|
+
const dy = -Math.abs(targetY - y);
|
|
245
|
+
const sy = y < targetY ? 1 : -1;
|
|
246
|
+
let error = dx + dy;
|
|
247
|
+
while (true) {
|
|
248
|
+
points.push({ x, y });
|
|
249
|
+
if (x === targetX && y === targetY)
|
|
250
|
+
break;
|
|
251
|
+
const twice = error * 2;
|
|
252
|
+
if (twice >= dy) {
|
|
253
|
+
error += dy;
|
|
254
|
+
x += sx;
|
|
255
|
+
}
|
|
256
|
+
if (twice <= dx) {
|
|
257
|
+
error += dx;
|
|
258
|
+
y += sy;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return points;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export { MaskBrushMode, createMaskBrushEditor };
|
|
265
|
+
//# sourceMappingURL=editing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editing.js","sources":["../src/editing/mask-brush-editor.ts"],"sourcesContent":[null],"names":[],"mappings":";;;IAQY;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAHW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAmCzB;AACM,SAAU,qBAAqB,CAAC,OAOrC,EAAA;AACC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjE,IAAA,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;AAC5B,IAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAC9B,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AACtC,QAAA,kBAAkB,EAAE,IAAI;AACzB,KAAA,CAAoC;AACrC,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAC5E,MAAM,YAAY,GAAG,OAAO;IAE5B,IAAI,SAAS,GAAiB,IAAI;AAClC,IAAA,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD,IAAI,YAAY,GAAyD,IAAI;IAC7E,IAAI,eAAe,GAAsB,IAAI;IAC7C,IAAI,aAAa,GAAkB,EAAE;IACrC,IAAI,QAAQ,GAAG,KAAK;IACpB,IAAI,MAAM,GAAG,EAAE;AACf,IAAA,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG;IAC5B,IAAI,MAAM,GAAiB,IAAI;AAC/B,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAc;AAC7C,IAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAc;IAE9C,OAAO;QACL,MAAM;AACN,QAAA,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAA;AACnC,YAAA,IAAI,QAAQ;gBAAE;YACd,QAAQ,GAAG,IAAI;YACf,eAAe,GAAG,IAAI;YACtB,aAAa,GAAG,EAAE;AAClB,YAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC;AACtD,YAAA,IAAI,GAAG,aAAa,CAAC,IAAI,IAAI,IAAI;YACjC,SAAS,GAAG,KAAK;YACjB,MAAM,GAAG,KAAK;AACd,YAAA,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AAAE,gBAAA,aAAa,EAAE;AACzC,YAAA,YAAY,EAAE;QAChB,CAAC;AACD,QAAA,YAAY,CAAC,KAAK,EAAA;YAChB,MAAM,GAAG,KAAK;AACd,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAA,YAAY,EAAE;gBACd;YACF;YACA,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAAE,gBAAA,aAAa,EAAE;YAC7D,SAAS,GAAG,KAAK;AACjB,YAAA,YAAY,EAAE;QAChB,CAAC;QACD,SAAS,GAAA;AACP,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO,OAAO,EAAE;YAC/B,QAAQ,GAAG,KAAK;YAChB,eAAe,GAAG,IAAI;YACtB,aAAa,GAAG,EAAE;YAClB,SAAS,GAAG,IAAI;AAChB,YAAA,MAAM,IAAI,GAAG,OAAO,EAAE;AACtB,YAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,YAAA,OAAO,IAAI;QACb,CAAC;QACD,YAAY,GAAA;AACV,YAAA,IAAI,CAAC,QAAQ;gBAAE;AACf,YAAA,KAAK,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AACjE,gBAAA,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAE,CAAC;YACjE;AACA,YAAA,IAAI,eAAe;gBAAE,eAAe,CAAC,eAAe,CAAC;YACrD,QAAQ,GAAG,KAAK;YAChB,eAAe,GAAG,IAAI;YACtB,aAAa,GAAG,EAAE;YAClB,SAAS,GAAG,IAAI;YAChB,YAAY,GAAG,IAAI;AACnB,YAAA,aAAa,EAAE;AACf,YAAA,YAAY,EAAE;QAChB,CAAC;AACD,QAAA,IAAI,CAAC,IAAI,EAAA;AACP,YAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC7C,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACtE,gBAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;YACtE;AACA,YAAA,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACvE,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE;AACpB,gBAAA,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC;AACxB,gBAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;gBACxB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;YAC9B;YACA,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,YAAY,GAAG,IAAI;AACnB,YAAA,aAAa,EAAE;QACjB,CAAC;QACD,KAAK,GAAA;AACH,YAAA,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACzD,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,YAAY,GAAG,IAAI;AACnB,YAAA,aAAa,EAAE;QACjB,CAAC;QACD,OAAO;AACP,QAAA,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC,MAAM;AACvC,QAAA,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClD,QAAA,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAA;YACjC,MAAM,GAAG,KAAK;AACd,YAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC;AACtD,YAAA,IAAI,GAAG,aAAa,CAAC,IAAI,IAAI,IAAI;AACjC,YAAA,YAAY,EAAE;QAChB,CAAC;AACD,QAAA,uBAAuB,CAAC,QAAQ,EAAA;AAC9B,YAAA,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,OAAO,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,CAAC;AACD,QAAA,sBAAsB,CAAC,QAAQ,EAAA;AAC7B,YAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7B,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/C,CAAC;KACF;IAED,SAAS,WAAW,CAAC,MAAwB,EAAA;AAC3C,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK;AAC5B,QAAA,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACpE,QAAA,eAAe,GAAG,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC;QAE9D,YAAY,CAAC,IAAI,EAAE;AACnB,QAAA,YAAY,CAAC,wBAAwB;AACnC,YAAA,IAAI,KAAK,aAAa,CAAC,KAAK,GAAG,iBAAiB,GAAG,aAAa;AAClE,QAAA,YAAY,CAAC,SAAS,GAAG,OAAO;AAChC,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,YAAY,CAAC,SAAS,EAAE;YACxB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1D,YAAY,CAAC,IAAI,EAAE;QACrB;QACA,YAAY,CAAC,OAAO,EAAE;QACtB,cAAc,CAAC,SAAS,CAAC;QACzB,YAAY,GAAG,IAAI;AACnB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,SAAS,OAAO,GAAA;AACd,QAAA,OAAO,SAAS,EAAE,CAAC,IAAI;IACzB;AAEA,IAAA,SAAS,SAAS,GAAA;AAChB,QAAA,YAAY,KAAK,0BAA0B,CACzC,MAAM,EACN,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,CACd;AACD,QAAA,OAAO,YAAY;IACrB;IAEA,SAAS,cAAc,CAAC,IAAgB,EAAA;QACtC,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CACpC,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC,IAAI;AACN,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;AACtC,gBAAA,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;AACvD,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,gBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5C;QACF;IACF;IAEA,SAAS,eAAe,CAAC,IAAgB,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AACnE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAE;AACvD,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;AACvC,gBAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;gBACxB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;YAC9B;QACF;AACA,QAAA,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD;AAEA,IAAA,SAAS,aAAa,GAAA;AACpB,QAAA,OAAO,CAAC,eAAe,IAAI;QAC3B,KAAK,MAAM,QAAQ,IAAI,gBAAgB;AAAE,YAAA,QAAQ,EAAE;IACrD;AAEA,IAAA,SAAS,YAAY,GAAA;AACnB,QAAA,OAAO,CAAC,cAAc,IAAI;QAC1B,KAAK,MAAM,QAAQ,IAAI,eAAe;AAAE,YAAA,QAAQ,EAAE;IACpD;AACF;AAcA,SAAS,YAAY,CACnB,MAAwB,EACxB,MAAc,EACd,KAAa,EACb,MAAc,EAAA;AAEd,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IACpC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,IAAI;IACf,IAAI,IAAI,GAAG,IAAI;AACf,IAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACrD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAE;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAChC;AACA,IAAA,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC;AAC1B,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AACpD,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AACxD,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAC1D,IAAA,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI;AAChC,UAAE;UACA,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AACpE;AAEA,SAAS,eAAe,CACtB,MAAkB,EAClB,MAAc,EACd,IAAgB,EAAA;AAEhB,IAAA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AACrD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,IAAI,CAAC,GAAG,CACN,MAAM,CAAC,QAAQ,CACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,EAC9B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAC5C,EACD,CAAC,GAAG,IAAI,CAAC,KAAK,CACf;IACH;AACA,IAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;AACvB;AAEA,SAAS,kBAAkB,CACzB,MAAkB,EAClB,MAAc,EACd,KAAkB,EAAA;AAElB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EACrE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAC3C;IACH;AACF;AAEA,SAAS,gBAAgB,CACvB,OAA0B,EAC1B,IAAgB,EAAA;AAEhB,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AACzB,IAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,IAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACzE,IAAA,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvD;AAEA,SAAS,SAAS,CAAC,IAAW,EAAE,EAAS,EAAA;IACvC,MAAM,MAAM,GAAY,EAAE;IAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AAChC,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE;IAC/B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AACjC,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE;AAC/B,IAAA,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE;IACnB,OAAO,IAAI,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO;YAAE;AACpC,QAAA,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC;AACvB,QAAA,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,KAAK,IAAI,EAAE;YACX,CAAC,IAAI,EAAE;QACT;AACA,QAAA,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,KAAK,IAAI,EAAE;YACX,CAAC,IAAI,EAAE;QACT;IACF;AACA,IAAA,OAAO,MAAM;AACf;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export { createArrayDetectionFrameSource } from "supervision-js-core";
|
|
2
|
+
export { createBrowserColdDetectionFrameStore } from "#detections/browser-cold-detection-frame-store";
|
|
3
|
+
export { createBufferedDetectionTimeline } from "supervision-js-core";
|
|
4
|
+
export { createChunkedDetectionFrameSource } from "#detections/chunked-detection-frame-source";
|
|
5
|
+
export { createColdDetectionFrameSource } from "supervision-js-core";
|
|
6
|
+
export { createCompositeDetectionFrameSource } from "supervision-js-core";
|
|
7
|
+
export { createMemoryColdDetectionFrameStore } from "supervision-js-core";
|
|
8
|
+
export { createWritableDetectionFrameSource } from "supervision-js-core";
|
|
9
|
+
export { pickDetectionAtPoint } from "supervision-js-core";
|
|
10
|
+
export { normalizeMedia, normalizeMediaProgressively, } from "#media/media-normalization";
|
|
11
|
+
export { prepareMedia, prepareMediaProgressively, MediaPreparationError, } from "#media/media-preparation";
|
|
12
|
+
export { probeMedia } from "#media/media-probe";
|
|
13
|
+
export type { DecodedMediaSource, DecodedMediaSourceMetadata, DecodedVideoSample, DecodedVideoSampleSink, DisposableMediaInput, } from "#media/media-source";
|
|
14
|
+
export { createImageUrlMediaSource, createStaticImageMediaSource, type HostFrameSource, type StaticImageSource, } from "#media/static-image-media-source";
|
|
15
|
+
export { createMediaStreamRendererSource, type MediaStreamRendererSourceOptions, } from "#media/media-stream-media-source";
|
|
16
|
+
export { createMediaRenderer } from "#renderers/media-renderer";
|
|
17
|
+
export { createMediaSession } from "#sessions/media-session";
|
|
18
|
+
export { BaseBoxStyle } from "supervision-js-core";
|
|
19
|
+
export type { BaseBoxStyleOptions } from "supervision-js-core";
|
|
20
|
+
export { BaseFocusStyle } from "supervision-js-core";
|
|
21
|
+
export type { BaseFocusStyleOptions } from "supervision-js-core";
|
|
22
|
+
export { BaseInteractionStyle } from "supervision-js-core";
|
|
23
|
+
export type { BaseInteractionStyleOptions } from "supervision-js-core";
|
|
24
|
+
export { BaseLabelStyle } from "supervision-js-core";
|
|
25
|
+
export type { BaseLabelStyleOptions } from "supervision-js-core";
|
|
26
|
+
export { BaseMaskStyle } from "supervision-js-core";
|
|
27
|
+
export type { BaseMaskStyleOptions } from "supervision-js-core";
|
|
28
|
+
export { BasePolygonStyle } from "supervision-js-core";
|
|
29
|
+
export type { BasePolygonStyleOptions } from "supervision-js-core";
|
|
30
|
+
export { BasePolylineStyle } from "supervision-js-core";
|
|
31
|
+
export type { BasePolylineStyleOptions } from "supervision-js-core";
|
|
32
|
+
export { BaseKeypointStyle, KeypointMarkerShape } from "supervision-js-core";
|
|
33
|
+
export type { BaseKeypointStyleOptions } from "supervision-js-core";
|
|
34
|
+
export { createDefaultAnnotationPresentation, type DefaultAnnotationPresentationOptions, } from "supervision-js-core";
|
|
35
|
+
export { DEFAULT_DETECTION_CLASS_STYLES, DEFAULT_DETECTION_COLOR_SEQUENCE, SUPERVISION_ROBOFLOW_COLOR, normalizeDetectionClassName, resolveDetectionClassColorStyle, type DetectionClassColorStyle, } from "supervision-js-core";
|
|
36
|
+
export { BoxShape, BoxStrokeAlignment } from "supervision-js-core";
|
|
37
|
+
export type { BoxDrawInstruction, BoxFillStyle, BoxStrokeStyle, BoxStyle, BoxStyleContext, } from "supervision-js-core";
|
|
38
|
+
export type { FocusDrawInstruction, FocusFallbackStyle, FocusFillStyle, FocusStyle, FocusStyleContext, FocusStyleValue, } from "supervision-js-core";
|
|
39
|
+
export { FocusTargetMode } from "supervision-js-core";
|
|
40
|
+
export type { LabelBackgroundStyle, LabelDrawInstruction, LabelOffsetStyle, LabelStyle, LabelStyleContext, LabelTextStyle, } from "supervision-js-core";
|
|
41
|
+
export { LabelPlacement, LabelVisibilityMode } from "supervision-js-core";
|
|
42
|
+
export type { DetectionStylePredicate, DetectionStyleValue, } from "supervision-js-core";
|
|
43
|
+
export type { MaskDrawInstruction, MaskStrokeStyle, MaskStrokeStyleOptions, MaskStyle, MaskStyleContext, } from "supervision-js-core";
|
|
44
|
+
export { MaskRenderMode } from "supervision-js-core";
|
|
45
|
+
export type { PolygonDrawInstruction, PolygonStyle, PolygonStyleContext, PolylineDrawInstruction, PolylineStyle, PolylineStyleContext, KeypointDrawInstruction, KeypointEdgeDrawInstruction, KeypointMarkerDrawInstruction, KeypointStyle, KeypointStyleContext, } from "supervision-js-core";
|
|
46
|
+
export type { AnnotationEditingPreviewStyleContext, AnnotationOverlayStyle, AnnotationVisibility, MediaDisplayAdjustments, PreviewOverlayData, ViewportTransform, } from "supervision-js-core";
|
|
47
|
+
export type { MediaPreparationOptions, PreparedMedia, ProgressivePreparedMedia, } from "#types/media-preparation";
|
|
48
|
+
export type { MaskBrushPreviewOptions } from "./editing";
|
|
49
|
+
export { DetectionBufferStatus, DetectionFrameRetentionMode, DetectionFrameSelectionMode, type BufferedDetectionTimeline, type ColdDetectionFrameStore, type ColdDetectionFrameStoreLoadOptions, type ColdDetectionFrameStoreWriteOptions, type ColdDetectionFrameStoreWriteSummary, type ChunkedDetectionFrameSourceOptions, type CompositeDetectionFrameSourceEntry, type CompositeDetectionFrameSourceOptions, type DetectionBufferOptions, type DetectionBufferPrepareOptions, type DetectionBufferState, type DetectionFrameChunk, type DetectionFrameChunkDescriptor, type DetectionFrameChunkFetch, type DetectionFrameChunkManifest, type DetectionFrameRetentionOptions, type DetectionFrameSelectionOptions, type DetectionFrameSource, type DetectionFrameSourceVersionRange, type DetectionPlaybackGateOptions, type DetectionTimelineContext, type WritableDetectionFrameSource, } from "supervision-js-core";
|
|
50
|
+
export { DetectionMaskEncoding, KeypointVisibility, type CompressedRleDetectionMask, type Detection, type DetectionFrame, type DetectionMask, type KeypointEdge, type KeypointGeometry, type Point, type PolygonGeometry, type PolylineGeometry, type Rect, type SkeletonDefinition, type SkeletonDefinitions, type SkeletonEdgeDefinition, type SkeletonVertexDefinition, type TopLeftRect, } from "supervision-js-core";
|
|
51
|
+
export type { MediaFrameMetadata, MediaTimelineMetadata, PlatformMediaFrame, PlatformMediaFrameSource, } from "supervision-js-core";
|
|
52
|
+
export { DetectionPickTarget, MediaInteractionMode, type DetectionPickOptions, type DetectionPickPoint, type DetectionPickResult, type DetectionSelectionOptions, type MediaInteractionOptions, } from "supervision-js-core";
|
|
53
|
+
export { DetectionInteractionState, type InteractionPresentation, type InteractionStyle, type InteractionStyleContext, } from "supervision-js-core";
|
|
54
|
+
export { MediaNormalizationAudioCodec, MediaNormalizationContainer, MediaNormalizationFit, MediaNormalizationVideoCodec, MediaProbeIssueCode, MediaProbeStatus, type MediaNormalizationAudioOptions, type MediaNormalizationInputMetadata, type MediaNormalizationOptions, type MediaNormalizationOutputProgress, type MediaNormalizationProgress, type MediaNormalizationVideoOptions, type MediaProbeIssue, type MediaProbeOptions, type MediaProbeResult, type MediaProbeTargetProfile, type MediaProbeVideoTrack, type NormalizedMedia, type ProgressiveNormalizedMedia, } from "#types/media-normalization";
|
|
55
|
+
export { type MediaSession, MediaSessionActivityKind, MediaSessionActivityStatus, MediaSessionMode, MediaSessionStatus, type MediaSessionActivity, type MediaSessionAppendableDetectionOptions, type MediaSessionDetectionOptions, type MediaSessionDetectionSourceOptions, type MediaSessionDetectionSourcePresentation, type MediaSessionDetectionSyncOptions, type MediaSessionDetectionWriteOptions, type MediaSessionMedia, type MediaSessionMediaState, type MediaSessionNormalizationState, type MediaSessionNormalizationOptions, type MediaSessionOptions, type MediaSessionRendererOptions, type MediaSessionState, type MediaSessionStateListener, type MediaSessionStateUnsubscribe, type MediaSessionWritableDetectionOptions, } from "#types/media-session";
|
|
56
|
+
export { DetectionTimelineOrigin, MediaRendererFit, MediaRendererPlaybackState, MediaSourceStatus, type MediaRendererDiagnosticsOptions, type DetectionLabelBounds, type MediaFrameDiagnostics, type MediaFrameRenderTimings, type MediaRenderer, type MediaRendererOptions, type MediaRendererPresentation, type MediaRendererQuality, type MediaRendererSource, type MediaRendererState, type MediaSourceState, } from "#types/media-renderer";
|
|
57
|
+
export { RenderPreparationArtifactFrameStatus, RenderPreparationArtifactKind, RenderPreparationExecutionMode, RenderPreparationMode, RenderPreparationWorkerStatus, type RenderPreparationActiveFrameDiagnostics, type RenderPreparationArtifactDiagnostics, type RenderPreparationArtifactWindowDiagnostics, type RenderPreparationDiagnostics, type RenderPreparationMaskFrameOptions, type RenderPreparationOptions, type RenderPreparationPlaybackGateOptions, type RenderPreparationWorkerFactory, } from "#types/render-preparation";
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|