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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BoxFillStyle, BoxStrokeStyle } from "#types/box-style";
|
|
2
|
+
import { type Detection, type SkeletonDefinitions } from "#types/detections";
|
|
3
|
+
import { type KeypointDrawInstruction, type KeypointStyle, type KeypointStyleContext } from "#types/keypoint-style";
|
|
4
|
+
import type { DetectionStylePredicate, DetectionStyleValue } from "#types/style";
|
|
5
|
+
export interface BaseKeypointStyleOptions {
|
|
6
|
+
readonly definitions?: SkeletonDefinitions;
|
|
7
|
+
readonly markerFill?: DetectionStyleValue<Partial<BoxFillStyle>, KeypointStyleContext>;
|
|
8
|
+
readonly markerStroke?: DetectionStyleValue<Partial<BoxStrokeStyle>, KeypointStyleContext>;
|
|
9
|
+
readonly edgeStroke?: DetectionStyleValue<Partial<BoxStrokeStyle>, KeypointStyleContext>;
|
|
10
|
+
readonly edgeShadowStroke?: DetectionStyleValue<Partial<BoxStrokeStyle> | null, KeypointStyleContext>;
|
|
11
|
+
readonly radius?: DetectionStyleValue<number, KeypointStyleContext>;
|
|
12
|
+
readonly shouldRender?: DetectionStylePredicate<KeypointStyleContext>;
|
|
13
|
+
}
|
|
14
|
+
export declare class BaseKeypointStyle implements KeypointStyle {
|
|
15
|
+
private readonly options;
|
|
16
|
+
constructor(options?: BaseKeypointStyleOptions);
|
|
17
|
+
resolve(detection: Detection, context: KeypointStyleContext): KeypointDrawInstruction | undefined;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=keypoint-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypoint-style.d.ts","sourceRoot":"","sources":["../../src/styles/keypoint-style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CACvC,OAAO,CAAC,YAAY,CAAC,EACrB,oBAAoB,CACrB,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CACzC,OAAO,CAAC,cAAc,CAAC,EACvB,oBAAoB,CACrB,CAAC;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CACvC,OAAO,CAAC,cAAc,CAAC,EACvB,oBAAoB,CACrB,CAAC;IACF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAC7C,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,EAC9B,oBAAoB,CACrB,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;CACvE;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,wBAA6B;IAEnE,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,oBAAoB,GAC5B,uBAAuB,GAAG,SAAS;CA0FvC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Detection } from "#types/detections";
|
|
2
|
+
import type { LabelBackgroundStyle, LabelDrawInstruction, LabelOffsetStyle, LabelStyle, LabelStyleContext, LabelTextStyle } from "#types/label-style";
|
|
3
|
+
import { LabelPlacement } from "#types/label-style";
|
|
4
|
+
import { LabelVisibilityMode } from "#types/label-style";
|
|
5
|
+
import type { DetectionStylePredicate, DetectionStyleValue } from "#types/style";
|
|
6
|
+
export interface BaseLabelStyleOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Label background style. Pass a resolver for per-class label backgrounds.
|
|
9
|
+
*/
|
|
10
|
+
readonly background?: DetectionStyleValue<Partial<LabelBackgroundStyle> | undefined, LabelStyleContext>;
|
|
11
|
+
/**
|
|
12
|
+
* Include confidence percentage in the default label text.
|
|
13
|
+
*/
|
|
14
|
+
readonly includeConfidence?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Label offset in media pixels. Pass a resolver for per-detection label
|
|
17
|
+
* placement.
|
|
18
|
+
*/
|
|
19
|
+
readonly offset?: DetectionStyleValue<LabelOffsetStyle | null | undefined, LabelStyleContext>;
|
|
20
|
+
/**
|
|
21
|
+
* Compatibility shorthand for `offset: { y }`.
|
|
22
|
+
*
|
|
23
|
+
* Prefer `offset` for new code.
|
|
24
|
+
*/
|
|
25
|
+
readonly offsetY?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Label placement relative to the detection rectangle.
|
|
28
|
+
*/
|
|
29
|
+
readonly placement?: DetectionStyleValue<LabelPlacement, LabelStyleContext>;
|
|
30
|
+
/**
|
|
31
|
+
* Custom label text. Return undefined to fall back to the default class label.
|
|
32
|
+
*/
|
|
33
|
+
readonly text?: DetectionStyleValue<string | undefined, LabelStyleContext>;
|
|
34
|
+
/**
|
|
35
|
+
* Label text style. Pass a resolver for per-class text colors or sizes.
|
|
36
|
+
*/
|
|
37
|
+
readonly textStyle?: DetectionStyleValue<Partial<LabelTextStyle> | undefined, LabelStyleContext>;
|
|
38
|
+
/**
|
|
39
|
+
* Return false to skip rendering a detection in this label style.
|
|
40
|
+
*/
|
|
41
|
+
readonly shouldRender?: DetectionStylePredicate<LabelStyleContext>;
|
|
42
|
+
readonly visibilityMode?: LabelVisibilityMode;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Default label style.
|
|
46
|
+
*
|
|
47
|
+
* Resolves labels from `className`, `metadata.label`, or a custom text
|
|
48
|
+
* resolver, optionally including confidence.
|
|
49
|
+
*/
|
|
50
|
+
export declare class BaseLabelStyle implements LabelStyle {
|
|
51
|
+
private readonly includeConfidence;
|
|
52
|
+
private readonly offsetY;
|
|
53
|
+
private readonly options;
|
|
54
|
+
constructor(options?: BaseLabelStyleOptions);
|
|
55
|
+
resolve(detection: Detection, context: LabelStyleContext): LabelDrawInstruction | undefined;
|
|
56
|
+
private resolveBackground;
|
|
57
|
+
private resolveTextStyle;
|
|
58
|
+
private resolveOffset;
|
|
59
|
+
private resolvePlacement;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=label-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-style.d.ts","sourceRoot":"","sources":["../../src/styles/label-style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CACvC,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS,EACzC,iBAAiB,CAClB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CACnC,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACnC,iBAAiB,CAClB,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC5E;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,GAAG,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CACtC,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,EACnC,iBAAiB,CAClB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CAC/C;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,GAAE,qBAA0B;IAM/C,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,GACzB,oBAAoB,GAAG,SAAS;IA+BnC,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,gBAAgB;CASzB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Detection } from "#types/detections";
|
|
2
|
+
import type { MaskDrawInstruction, MaskStrokeStyleOptions, MaskStyle, MaskStyleContext } from "#types/mask-style";
|
|
3
|
+
import { MaskRenderMode } from "#types/mask-style";
|
|
4
|
+
import type { DetectionStylePredicate, DetectionStyleValue } from "#types/style";
|
|
5
|
+
export interface BaseMaskStyleOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Mask fill color. Pass a resolver for per-class mask colors.
|
|
8
|
+
*/
|
|
9
|
+
readonly color?: DetectionStyleValue<number, MaskStyleContext>;
|
|
10
|
+
/**
|
|
11
|
+
* Global mask-layer opacity. This stays outside the prepared artifact so it
|
|
12
|
+
* can be updated cheaply at render time.
|
|
13
|
+
*/
|
|
14
|
+
readonly opacity?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Compatibility alias for `opacity`.
|
|
17
|
+
*
|
|
18
|
+
* Prefer `opacity` for new code. Mask draw instructions still use `alpha`
|
|
19
|
+
* internally because renderer backends operate on RGBA-like primitives.
|
|
20
|
+
*/
|
|
21
|
+
readonly alpha?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Opacity baked into the prepared mask fill. Unlike `opacity`, this does not
|
|
24
|
+
* attenuate a mask outline, so callers can use translucent fills with opaque
|
|
25
|
+
* borders.
|
|
26
|
+
*/
|
|
27
|
+
readonly fillAlpha?: DetectionStyleValue<number, MaskStyleContext>;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to render mask fill, stroke, or both.
|
|
30
|
+
*/
|
|
31
|
+
readonly mode?: DetectionStyleValue<MaskRenderMode, MaskStyleContext>;
|
|
32
|
+
/**
|
|
33
|
+
* Optional mask outline. Pass a resolver for per-detection outlines.
|
|
34
|
+
*/
|
|
35
|
+
readonly stroke?: DetectionStyleValue<MaskStrokeStyleOptions | null | undefined, MaskStyleContext>;
|
|
36
|
+
/**
|
|
37
|
+
* Return false to skip rendering a detection in this mask style.
|
|
38
|
+
*/
|
|
39
|
+
readonly shouldRender?: DetectionStylePredicate<MaskStyleContext>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Default compressed-RLE mask style.
|
|
43
|
+
*
|
|
44
|
+
* Static color/stroke options can reuse prepared mask artifacts by key. Dynamic
|
|
45
|
+
* color or stroke resolvers intentionally do not expose an artifact key, so new
|
|
46
|
+
* style objects rebuild prepared palettes instead of reusing stale ones.
|
|
47
|
+
*/
|
|
48
|
+
export declare class BaseMaskStyle implements MaskStyle {
|
|
49
|
+
readonly artifactKey: string | undefined;
|
|
50
|
+
readonly opacity: number;
|
|
51
|
+
private readonly options;
|
|
52
|
+
constructor(options?: BaseMaskStyleOptions);
|
|
53
|
+
resolve(detection: Detection, context: MaskStyleContext): MaskDrawInstruction | undefined;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=mask-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask-style.d.ts","sourceRoot":"","sources":["../../src/styles/mask-style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,mBAAmB,EAEnB,sBAAsB,EACtB,SAAS,EACT,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnE;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACtE;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CACnC,sBAAsB,GAAG,IAAI,GAAG,SAAS,EACzC,gBAAgB,CACjB,CAAC;IACF;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,GAAE,oBAAyB;IAM9C,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,gBAAgB,GACxB,mBAAmB,GAAG,SAAS;CAkCnC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BoxFillStyle, BoxStrokeStyle } from "#types/box-style";
|
|
2
|
+
import type { Detection } from "#types/detections";
|
|
3
|
+
import type { PolygonDrawInstruction, PolygonStyle, PolygonStyleContext } from "#types/polygon-style";
|
|
4
|
+
import type { DetectionStylePredicate, DetectionStyleValue } from "#types/style";
|
|
5
|
+
export interface BasePolygonStyleOptions {
|
|
6
|
+
readonly fill?: DetectionStyleValue<Partial<BoxFillStyle> | null, PolygonStyleContext>;
|
|
7
|
+
readonly stroke?: DetectionStyleValue<Partial<BoxStrokeStyle> | null, PolygonStyleContext>;
|
|
8
|
+
readonly shouldRender?: DetectionStylePredicate<PolygonStyleContext>;
|
|
9
|
+
}
|
|
10
|
+
export declare class BasePolygonStyle implements PolygonStyle {
|
|
11
|
+
private readonly options;
|
|
12
|
+
constructor(options?: BasePolygonStyleOptions);
|
|
13
|
+
resolve(detection: Detection, context: PolygonStyleContext): PolygonDrawInstruction | undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=polygon-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polygon-style.d.ts","sourceRoot":"","sources":["../../src/styles/polygon-style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CACjC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,EAC5B,mBAAmB,CACpB,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CACnC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,EAC9B,mBAAmB,CACpB,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,uBAA4B;IAElE,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,mBAAmB,GAC3B,sBAAsB,GAAG,SAAS;CAsCtC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BoxStrokeStyle } from "#types/box-style";
|
|
2
|
+
import type { Detection } from "#types/detections";
|
|
3
|
+
import type { PolylineDrawInstruction, PolylineStyle, PolylineStyleContext } from "#types/polyline-style";
|
|
4
|
+
import type { DetectionStylePredicate, DetectionStyleValue } from "#types/style";
|
|
5
|
+
export interface BasePolylineStyleOptions {
|
|
6
|
+
readonly stroke?: DetectionStyleValue<Partial<BoxStrokeStyle> | null, PolylineStyleContext>;
|
|
7
|
+
readonly shouldRender?: DetectionStylePredicate<PolylineStyleContext>;
|
|
8
|
+
}
|
|
9
|
+
export declare class BasePolylineStyle implements PolylineStyle {
|
|
10
|
+
private readonly options;
|
|
11
|
+
constructor(options?: BasePolylineStyleOptions);
|
|
12
|
+
resolve(detection: Detection, context: PolylineStyleContext): PolylineDrawInstruction | undefined;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=polyline-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyline-style.d.ts","sourceRoot":"","sources":["../../src/styles/polyline-style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CACnC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,EAC9B,oBAAoB,CACrB,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;CACvE;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,wBAA6B;IAEnE,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,oBAAoB,GAC5B,uBAAuB,GAAG,SAAS;CA6BvC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BoxStyle } from "#types/box-style";
|
|
2
|
+
import type { LabelStyle } from "#types/label-style";
|
|
3
|
+
import type { MaskStyle } from "#types/mask-style";
|
|
4
|
+
import type { PolygonStyle } from "#types/polygon-style";
|
|
5
|
+
import type { PolylineStyle } from "#types/polyline-style";
|
|
6
|
+
import type { KeypointStyle } from "#types/keypoint-style";
|
|
7
|
+
export interface PresentationStyleSet {
|
|
8
|
+
readonly boxStyle?: BoxStyle | null;
|
|
9
|
+
readonly keypointStyle?: KeypointStyle | null;
|
|
10
|
+
readonly labelStyle?: LabelStyle | null;
|
|
11
|
+
readonly maskStyle?: MaskStyle | null;
|
|
12
|
+
readonly polygonStyle?: PolygonStyle | null;
|
|
13
|
+
readonly polylineStyle?: PolylineStyle | null;
|
|
14
|
+
}
|
|
15
|
+
export type SourcePresentation = PresentationStyleSet;
|
|
16
|
+
export interface SourcePresentationEntry {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly presentation?: SourcePresentation;
|
|
19
|
+
}
|
|
20
|
+
export declare function createSourceAwarePresentation<TPresentation extends PresentationStyleSet>(globalPresentation: TPresentation, sources: readonly SourcePresentationEntry[]): TPresentation;
|
|
21
|
+
export declare function createSourceAwarePresentation(globalPresentation: PresentationStyleSet | undefined, sources: readonly SourcePresentationEntry[]): PresentationStyleSet;
|
|
22
|
+
//# sourceMappingURL=source-presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-presentation.d.ts","sourceRoot":"","sources":["../../src/styles/source-presentation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAEV,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,SAAS,oBAAoB,EAE1C,kBAAkB,EAAE,aAAa,EACjC,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAC1C,aAAa,CAAC;AACjB,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,EACpD,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAC1C,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Detection } from "#types/detections";
|
|
2
|
+
import type { DetectionStyleValue } from "#types/style";
|
|
3
|
+
export declare function resolveStyleValue<TValue, TContext>(value: DetectionStyleValue<TValue, TContext> | undefined, detection: Detection, context: TContext): TValue | undefined;
|
|
4
|
+
//# sourceMappingURL=style-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-value.d.ts","sourceRoot":"","sources":["../../src/styles/style-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAChD,KAAK,EAAE,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EACxD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,sBAQlB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Detection, Rect } from "#types/detections";
|
|
2
|
+
import type { AnnotationStyleContext } from "#types/style";
|
|
3
|
+
export declare enum BoxShape {
|
|
4
|
+
Rect = "rect",
|
|
5
|
+
RoundedRect = "roundedRect"
|
|
6
|
+
}
|
|
7
|
+
export declare enum BoxStrokeAlignment {
|
|
8
|
+
Inside = "inside",
|
|
9
|
+
Center = "center",
|
|
10
|
+
Outside = "outside"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Stroke applied to a rendered detection rectangle.
|
|
14
|
+
*
|
|
15
|
+
* This belongs to presentation styling, not to the underlying detection data.
|
|
16
|
+
*/
|
|
17
|
+
export interface BoxStrokeStyle {
|
|
18
|
+
readonly color: number;
|
|
19
|
+
readonly alpha: number;
|
|
20
|
+
readonly width: number;
|
|
21
|
+
readonly alignment?: BoxStrokeAlignment;
|
|
22
|
+
/** Alternating dash and gap lengths in screen pixels. */
|
|
23
|
+
readonly dash?: readonly number[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Fill applied behind or inside a rendered detection rectangle.
|
|
27
|
+
*/
|
|
28
|
+
export interface BoxFillStyle {
|
|
29
|
+
readonly color: number;
|
|
30
|
+
readonly alpha: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Per-frame context passed to a box style while resolving draw instructions.
|
|
34
|
+
*/
|
|
35
|
+
export type BoxStyleContext = AnnotationStyleContext;
|
|
36
|
+
/**
|
|
37
|
+
* Renderer-neutral box drawing instruction.
|
|
38
|
+
*
|
|
39
|
+
* Style implementations return this shape. Renderer backends translate it into
|
|
40
|
+
* their own drawing commands.
|
|
41
|
+
*/
|
|
42
|
+
export interface BoxDrawInstruction {
|
|
43
|
+
readonly rect: Rect;
|
|
44
|
+
readonly shape: BoxShape;
|
|
45
|
+
readonly stroke?: BoxStrokeStyle;
|
|
46
|
+
readonly fill?: BoxFillStyle;
|
|
47
|
+
readonly cornerRadius?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Box presentation contract.
|
|
51
|
+
*
|
|
52
|
+
* A style receives semantic detections and returns renderer-neutral draw
|
|
53
|
+
* instructions. Return `undefined` to skip a detection for this layer.
|
|
54
|
+
*/
|
|
55
|
+
export interface BoxStyle {
|
|
56
|
+
resolve(detection: Detection, context: BoxStyleContext): BoxDrawInstruction | undefined;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=box-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box-style.d.ts","sourceRoot":"","sources":["../../src/types/box-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,eAAe,GACvB,kBAAkB,GAAG,SAAS,CAAC;CACnC"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import type { DetectionFrame } from "#types/detections";
|
|
2
|
+
export declare enum DetectionBufferStatus {
|
|
3
|
+
Idle = "idle",
|
|
4
|
+
Loading = "loading",
|
|
5
|
+
Ready = "ready",
|
|
6
|
+
Error = "error",
|
|
7
|
+
Destroyed = "destroyed"
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* How the renderer selects the active detection frame for a media timestamp.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum DetectionFrameSelectionMode {
|
|
13
|
+
/**
|
|
14
|
+
* Select the frame whose `[mediaTime, endTime)` interval contains the media
|
|
15
|
+
* time. This is the default for interval annotations and timestamped sources.
|
|
16
|
+
*/
|
|
17
|
+
Interval = "interval",
|
|
18
|
+
/**
|
|
19
|
+
* Select from a known inference frame grid using `frameIndex`, `frameRate`,
|
|
20
|
+
* and optional `frameIndexOriginTime`. This is useful when inference was run
|
|
21
|
+
* on normalized frames and playback should snap detections to that grid.
|
|
22
|
+
*/
|
|
23
|
+
NearestFrameIndex = "nearestFrameIndex"
|
|
24
|
+
}
|
|
25
|
+
export interface DetectionFrameSelectionOptions {
|
|
26
|
+
/**
|
|
27
|
+
* Selection strategy for matching media playback time to detection frames.
|
|
28
|
+
*/
|
|
29
|
+
readonly selectionMode?: DetectionFrameSelectionMode;
|
|
30
|
+
/**
|
|
31
|
+
* Inference frame rate used by `NearestFrameIndex`.
|
|
32
|
+
*/
|
|
33
|
+
readonly frameRate?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Media timestamp for inference frame index 0. Defaults to the first indexed
|
|
36
|
+
* frame's time minus `frameIndex / frameRate`.
|
|
37
|
+
*/
|
|
38
|
+
readonly frameIndexOriginTime?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface DetectionFrameSourceVersionRange {
|
|
41
|
+
/**
|
|
42
|
+
* Inclusive media-time start in seconds.
|
|
43
|
+
*/
|
|
44
|
+
readonly startTime: number;
|
|
45
|
+
/**
|
|
46
|
+
* Exclusive media-time end in seconds.
|
|
47
|
+
*/
|
|
48
|
+
readonly endTime: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Incremental source changes since a previously observed source version.
|
|
52
|
+
*
|
|
53
|
+
* `requiresReload` is true when the source can no longer describe every
|
|
54
|
+
* intervening change (for example after replacement, clearing, or journal
|
|
55
|
+
* compaction). Buffered timelines then reload their complete hot window.
|
|
56
|
+
*/
|
|
57
|
+
export interface DetectionFrameSourceChanges {
|
|
58
|
+
readonly version: number;
|
|
59
|
+
readonly ranges: readonly DetectionFrameSourceVersionRange[];
|
|
60
|
+
readonly requiresReload: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface DetectionBufferOptions extends DetectionFrameSelectionOptions {
|
|
63
|
+
/**
|
|
64
|
+
* Seconds of detections to keep loaded ahead of playback.
|
|
65
|
+
*/
|
|
66
|
+
readonly bufferAheadSeconds?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Seconds of detections to keep loaded behind playback.
|
|
69
|
+
*/
|
|
70
|
+
readonly bufferBehindSeconds?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Minimum media-time movement before refreshing the hot detection window.
|
|
73
|
+
*/
|
|
74
|
+
readonly refreshIntervalSeconds?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Optional playback gate based on detection availability.
|
|
77
|
+
*/
|
|
78
|
+
readonly playbackGate?: DetectionPlaybackGateOptions;
|
|
79
|
+
}
|
|
80
|
+
export interface DetectionTimelineContext {
|
|
81
|
+
readonly duration: number | null;
|
|
82
|
+
readonly loop: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface DetectionPlaybackGateOptions {
|
|
85
|
+
/**
|
|
86
|
+
* Pause playback while the requested detection window is unavailable.
|
|
87
|
+
*/
|
|
88
|
+
readonly enabled?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Required detections ahead of the active playback time.
|
|
91
|
+
*/
|
|
92
|
+
readonly requiredAheadSeconds?: number;
|
|
93
|
+
}
|
|
94
|
+
export declare enum DetectionFrameRetentionMode {
|
|
95
|
+
/**
|
|
96
|
+
* Keep writable detections only in an in-memory store. Useful for ephemeral
|
|
97
|
+
* live streams where old predictions should disappear when evicted.
|
|
98
|
+
*/
|
|
99
|
+
MemoryOnly = "memoryOnly",
|
|
100
|
+
/**
|
|
101
|
+
* Persist every written detection frame. Useful for finite media where seek
|
|
102
|
+
* and replay should not require recomputing detections.
|
|
103
|
+
*/
|
|
104
|
+
PersistAll = "persistAll",
|
|
105
|
+
/**
|
|
106
|
+
* Persist only the most recent retention window. Useful for long-running
|
|
107
|
+
* streams where replay is bounded to a recent time horizon.
|
|
108
|
+
*/
|
|
109
|
+
PersistWindow = "persistWindow"
|
|
110
|
+
}
|
|
111
|
+
export interface DetectionFrameRetentionOptions {
|
|
112
|
+
readonly mode?: DetectionFrameRetentionMode;
|
|
113
|
+
/**
|
|
114
|
+
* Retention horizon in seconds for `MemoryOnly` and `PersistWindow`.
|
|
115
|
+
*/
|
|
116
|
+
readonly windowSeconds?: number;
|
|
117
|
+
}
|
|
118
|
+
export interface DetectionBufferPrepareOptions {
|
|
119
|
+
readonly duration?: number | null;
|
|
120
|
+
readonly firstTimestamp?: number;
|
|
121
|
+
readonly gatePlayback?: boolean;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Current hot detection-buffer state.
|
|
125
|
+
*/
|
|
126
|
+
export interface DetectionBufferState {
|
|
127
|
+
readonly status: DetectionBufferStatus;
|
|
128
|
+
readonly requestedStartTime: number | null;
|
|
129
|
+
readonly requestedEndTime: number | null;
|
|
130
|
+
readonly bufferStartTime: number | null;
|
|
131
|
+
readonly bufferEndTime: number | null;
|
|
132
|
+
readonly frameCount: number;
|
|
133
|
+
readonly detectionCount: number;
|
|
134
|
+
readonly errorMessage: string | null;
|
|
135
|
+
}
|
|
136
|
+
export interface DetectionFrameSource {
|
|
137
|
+
/**
|
|
138
|
+
* Load semantic detection frames for the requested media-time range.
|
|
139
|
+
*
|
|
140
|
+
* Sources should return detection data, not renderer artifacts. Implementers
|
|
141
|
+
* should prefer sorted frames and avoid mutating returned frames after handing
|
|
142
|
+
* them to the renderer.
|
|
143
|
+
*/
|
|
144
|
+
loadFrames(startTime: number, endTime: number): Promise<readonly DetectionFrame[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Optional backpressure hook used by playback gates. Resolve when the source
|
|
147
|
+
* has enough data to answer `loadFrames` for the requested range.
|
|
148
|
+
*/
|
|
149
|
+
waitForRange?(range: DetectionFrameSourceVersionRange): Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Optional source coverage report for timeline UI and buffering decisions.
|
|
152
|
+
*/
|
|
153
|
+
getAvailableRanges?(): readonly DetectionFrameSourceVersionRange[];
|
|
154
|
+
/**
|
|
155
|
+
* Optional monotonically increasing source version. Buffered timelines use
|
|
156
|
+
* this to refresh only when the current range changed. Sources that can
|
|
157
|
+
* revise an existing frame must implement this hook; without it, overlapping
|
|
158
|
+
* frame identities are treated as immutable across rolling window loads.
|
|
159
|
+
*/
|
|
160
|
+
getVersion?(range?: DetectionFrameSourceVersionRange): number;
|
|
161
|
+
/**
|
|
162
|
+
* Optionally describe changes after `version` that overlap `ranges`.
|
|
163
|
+
*
|
|
164
|
+
* This allows a hot timeline to patch a small progressive-inference append
|
|
165
|
+
* without reloading and copying its complete buffered window.
|
|
166
|
+
*/
|
|
167
|
+
getChangesSince?(version: number, ranges: readonly DetectionFrameSourceVersionRange[]): DetectionFrameSourceChanges;
|
|
168
|
+
destroy?(): void;
|
|
169
|
+
}
|
|
170
|
+
export interface CompositeDetectionFrameSourceEntry {
|
|
171
|
+
/**
|
|
172
|
+
* Renderer-neutral source identity copied into composed detections.
|
|
173
|
+
*/
|
|
174
|
+
readonly id: string;
|
|
175
|
+
/**
|
|
176
|
+
* Static detection frames for this source.
|
|
177
|
+
*/
|
|
178
|
+
readonly frames?: readonly DetectionFrame[];
|
|
179
|
+
/**
|
|
180
|
+
* Caller-owned frame source for this source.
|
|
181
|
+
*/
|
|
182
|
+
readonly source?: DetectionFrameSource;
|
|
183
|
+
/**
|
|
184
|
+
* Lower order sources are composed first. Later detections render on top.
|
|
185
|
+
*/
|
|
186
|
+
readonly order?: number;
|
|
187
|
+
/**
|
|
188
|
+
* Detection-frame selection options for this source.
|
|
189
|
+
*/
|
|
190
|
+
readonly sync?: DetectionFrameSelectionOptions;
|
|
191
|
+
/**
|
|
192
|
+
* When false, playback gates skip this source's `waitForRange` hook.
|
|
193
|
+
*/
|
|
194
|
+
readonly requiredForPlayback?: boolean;
|
|
195
|
+
}
|
|
196
|
+
export interface CompositeDetectionFrameSourceOptions extends DetectionFrameSelectionOptions {
|
|
197
|
+
readonly sources: readonly CompositeDetectionFrameSourceEntry[];
|
|
198
|
+
}
|
|
199
|
+
export interface DetectionFrameChunkDescriptor {
|
|
200
|
+
/**
|
|
201
|
+
* Zero-based chunk index.
|
|
202
|
+
*/
|
|
203
|
+
readonly chunkIndex: number;
|
|
204
|
+
/**
|
|
205
|
+
* Inclusive chunk start time in seconds.
|
|
206
|
+
*/
|
|
207
|
+
readonly startTime: number;
|
|
208
|
+
/**
|
|
209
|
+
* Exclusive chunk end time in seconds.
|
|
210
|
+
*/
|
|
211
|
+
readonly endTime: number;
|
|
212
|
+
readonly frameCount: number;
|
|
213
|
+
readonly src: string;
|
|
214
|
+
}
|
|
215
|
+
export interface DetectionFrameChunk {
|
|
216
|
+
readonly frames: readonly DetectionFrame[];
|
|
217
|
+
}
|
|
218
|
+
export interface DetectionFrameChunkManifest {
|
|
219
|
+
readonly schema: "supervision-js.detection-frame-chunk-manifest";
|
|
220
|
+
readonly version: 1;
|
|
221
|
+
/**
|
|
222
|
+
* Stable identifier for the detection dataset.
|
|
223
|
+
*/
|
|
224
|
+
readonly datasetId: string;
|
|
225
|
+
readonly duration: number;
|
|
226
|
+
readonly frameRate: number;
|
|
227
|
+
readonly chunkDurationSeconds: number;
|
|
228
|
+
readonly frameCount?: number;
|
|
229
|
+
readonly detectionCount?: number;
|
|
230
|
+
readonly chunks: readonly DetectionFrameChunkDescriptor[];
|
|
231
|
+
}
|
|
232
|
+
export type DetectionFrameChunkFetch = (chunk: DetectionFrameChunkDescriptor) => Promise<DetectionFrameChunk>;
|
|
233
|
+
export interface ChunkedDetectionFrameSourceOptions {
|
|
234
|
+
readonly manifest: DetectionFrameChunkManifest;
|
|
235
|
+
/**
|
|
236
|
+
* Base href used by platform adapters to resolve relative chunk `src` values.
|
|
237
|
+
*/
|
|
238
|
+
readonly baseUrl?: string;
|
|
239
|
+
/**
|
|
240
|
+
* Custom chunk loader supplied by a platform adapter or host application.
|
|
241
|
+
*/
|
|
242
|
+
readonly fetchChunk?: DetectionFrameChunkFetch;
|
|
243
|
+
/**
|
|
244
|
+
* Maximum number of decoded chunks cached in memory.
|
|
245
|
+
*/
|
|
246
|
+
readonly maxCachedChunks?: number;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Hot detection timeline controller.
|
|
250
|
+
*/
|
|
251
|
+
export interface BufferedDetectionTimeline {
|
|
252
|
+
prepare(mediaTime: number, options?: DetectionBufferPrepareOptions): Promise<void>;
|
|
253
|
+
prefetch(mediaTime: number): void;
|
|
254
|
+
setTimelineContext?(context: DetectionTimelineContext): void;
|
|
255
|
+
selectFrame(mediaTime: number): DetectionFrame | undefined;
|
|
256
|
+
getBufferedFrames(): readonly DetectionFrame[];
|
|
257
|
+
getState(): DetectionBufferState;
|
|
258
|
+
destroy(): void;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Write options for semantic detection frames.
|
|
262
|
+
*/
|
|
263
|
+
export interface ColdDetectionFrameStoreWriteOptions {
|
|
264
|
+
readonly datasetId: string;
|
|
265
|
+
/**
|
|
266
|
+
* Frames to validate, sort, and write.
|
|
267
|
+
*/
|
|
268
|
+
readonly frames: readonly DetectionFrame[];
|
|
269
|
+
/**
|
|
270
|
+
* Chunk duration used for summaries and chunked persistence.
|
|
271
|
+
*/
|
|
272
|
+
readonly chunkDurationSeconds?: number;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Summary returned after detection-frame writes.
|
|
276
|
+
*/
|
|
277
|
+
export interface ColdDetectionFrameStoreWriteSummary {
|
|
278
|
+
readonly datasetId: string;
|
|
279
|
+
readonly chunkDurationSeconds: number;
|
|
280
|
+
readonly chunkCount: number;
|
|
281
|
+
readonly frameCount: number;
|
|
282
|
+
readonly detectionCount: number;
|
|
283
|
+
readonly startTime: number | null;
|
|
284
|
+
readonly endTime: number | null;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Load options for semantic detection frames.
|
|
288
|
+
*/
|
|
289
|
+
export interface ColdDetectionFrameStoreLoadOptions {
|
|
290
|
+
readonly datasetId: string;
|
|
291
|
+
readonly startTime: number;
|
|
292
|
+
readonly endTime: number;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Cold semantic detection storage.
|
|
296
|
+
*
|
|
297
|
+
* Stores validated detection frames outside the active render path. Browser
|
|
298
|
+
* implementations may use IndexedDB; memory implementations are useful for
|
|
299
|
+
* tests, demos, and ephemeral streams.
|
|
300
|
+
*/
|
|
301
|
+
export interface ColdDetectionFrameStore {
|
|
302
|
+
putFrames(options: ColdDetectionFrameStoreWriteOptions): Promise<ColdDetectionFrameStoreWriteSummary>;
|
|
303
|
+
appendFrames(options: ColdDetectionFrameStoreWriteOptions): Promise<ColdDetectionFrameStoreWriteSummary>;
|
|
304
|
+
loadFrames(options: ColdDetectionFrameStoreLoadOptions): Promise<readonly DetectionFrame[]>;
|
|
305
|
+
clearDataset(datasetId: string): Promise<void>;
|
|
306
|
+
destroy?(): void;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Detection source that accepts new frames over time.
|
|
310
|
+
*
|
|
311
|
+
* This is the ingestion shape used for streaming inference and long-running
|
|
312
|
+
* media sessions. It remains semantic: render artifacts are prepared later by
|
|
313
|
+
* the renderer.
|
|
314
|
+
*/
|
|
315
|
+
export interface WritableDetectionFrameSource extends DetectionFrameSource {
|
|
316
|
+
readonly datasetId: string;
|
|
317
|
+
appendFrames(frames: readonly DetectionFrame[]): Promise<ColdDetectionFrameStoreWriteSummary>;
|
|
318
|
+
replaceFrames(frames: readonly DetectionFrame[]): Promise<ColdDetectionFrameStoreWriteSummary>;
|
|
319
|
+
clear(): Promise<void>;
|
|
320
|
+
waitForRange(range: DetectionFrameSourceVersionRange): Promise<void>;
|
|
321
|
+
getAvailableRanges(): readonly DetectionFrameSourceVersionRange[];
|
|
322
|
+
getSummary(): ColdDetectionFrameStoreWriteSummary | null;
|
|
323
|
+
getVersion(range?: DetectionFrameSourceVersionRange): number;
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=detection-timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection-timeline.d.ts","sourceRoot":"","sources":["../../src/types/detection-timeline.ts"],"names":[],"mappings":"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"}
|