open-plant 1.2.7 → 1.2.9
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/README.md +3 -0
- package/dist/assets/roi-clip-worker-BRaTL8Jd.js +2 -0
- package/dist/assets/roi-clip-worker-BRaTL8Jd.js.map +1 -0
- package/dist/index.cjs +10 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1769 -1620
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/react/draw-layer.d.ts +8 -2
- package/dist/types/react/draw-layer.d.ts.map +1 -1
- package/dist/types/react/wsi-viewer-canvas.d.ts +4 -3
- package/dist/types/react/wsi-viewer-canvas.d.ts.map +1 -1
- package/dist/types/wsi/brush-stroke.d.ts +1 -0
- package/dist/types/wsi/brush-stroke.d.ts.map +1 -1
- package/dist/types/wsi/point-clip-hybrid.d.ts.map +1 -1
- package/dist/types/wsi/point-clip.d.ts +3 -2
- package/dist/types/wsi/point-clip.d.ts.map +1 -1
- package/dist/types/wsi/roi-geometry.d.ts +23 -0
- package/dist/types/wsi/roi-geometry.d.ts.map +1 -0
- package/dist/types/wsi/roi-term-stats.d.ts.map +1 -1
- package/dist/types/wsi/types.d.ts +5 -1
- package/dist/types/wsi/types.d.ts.map +1 -1
- package/dist/types/wsi/wsi-tile-renderer.d.ts +3 -0
- package/dist/types/wsi/wsi-tile-renderer.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/assets/roi-clip-worker-D3hALtsJ.js +0 -2
- package/dist/assets/roi-clip-worker-D3hALtsJ.js.map +0 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { M1TileRenderer } from "./core/m1-tile-renderer";
|
|
2
2
|
export type { ViewState } from "./core/ortho-camera";
|
|
3
3
|
export type { Bounds, TileDefinition } from "./core/types";
|
|
4
|
-
export type { BrushOptions, DrawBounds, DrawCoordinate, DrawIntent, DrawOverlayCoordinates, DrawOverlayInvertedFillStyle, DrawOverlayShape, DrawProjector, DrawRegion, DrawResult, DrawTool, PatchDrawResult, RegionLabelStyle, RegionStrokeStyle, RegionStrokeStyleResolver, RegionStyleContext, StampDrawTool, StampOptions, } from "./react/draw-layer";
|
|
4
|
+
export type { BrushOptions, DrawBounds, DrawCoordinate, DrawIntent, DrawOverlayCoordinates, DrawOverlayInvertedFillStyle, DrawOverlayShape, DrawProjector, DrawRegionCoordinates, DrawRegion, DrawResult, DrawTool, PatchDrawResult, RegionLabelStyle, RegionStrokeStyle, RegionStrokeStyleResolver, RegionStyleContext, StampDrawTool, StampOptions, } from "./react/draw-layer";
|
|
5
5
|
export { closeRing, createCircle, createRectangle, DrawLayer, } from "./react/draw-layer";
|
|
6
6
|
export type { OverviewMapOptions, OverviewMapPosition } from "./react/overview-map";
|
|
7
7
|
export { OverviewMap } from "./react/overview-map";
|
|
@@ -21,7 +21,7 @@ export type { RoiPointGroup, RoiPointGroupOptions, RoiPointGroupStats, RoiTermCo
|
|
|
21
21
|
export { computeRoiPointGroups } from "./wsi/roi-term-stats";
|
|
22
22
|
export type { ScheduledTile, TileBounds, TileSchedulerOptions, TileSchedulerSnapshot, } from "./wsi/tile-scheduler";
|
|
23
23
|
export { TileScheduler } from "./wsi/tile-scheduler";
|
|
24
|
-
export type { TermPalette, WsiCoordinate, WsiImageSource, WsiPointData, WsiRegion, WsiRenderStats, WsiTerm, WsiViewState, } from "./wsi/types";
|
|
24
|
+
export type { TermPalette, WsiCoordinate, WsiImageSource, WsiMultiPolygonCoordinates, WsiPointData, WsiPolygonCoordinates, WsiRegionCoordinates, WsiRingCoordinates, WsiRegion, WsiRenderStats, WsiTerm, WsiViewState, } from "./wsi/types";
|
|
25
25
|
export { buildTermPalette, calcScaleLength, calcScaleResolution, clamp, hexToRgba, isSameViewState, toBearerToken, } from "./wsi/utils";
|
|
26
26
|
export type { WebGpuCapabilities } from "./wsi/webgpu";
|
|
27
27
|
export { getWebGpuCapabilities, prefilterPointsByBoundsWebGpu } from "./wsi/webgpu";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EACV,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,OAAO,EACP,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACpF,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -3,6 +3,7 @@ export type StampDrawTool = "stamp-rectangle" | "stamp-circle" | "stamp-rectangl
|
|
|
3
3
|
export type DrawTool = "cursor" | "freehand" | "rectangle" | "circular" | "brush" | StampDrawTool;
|
|
4
4
|
export type DrawCoordinate = [number, number];
|
|
5
5
|
export type DrawBounds = [number, number, number, number];
|
|
6
|
+
export type DrawRegionCoordinates = DrawCoordinate[] | DrawCoordinate[][] | DrawCoordinate[][][];
|
|
6
7
|
export type DrawIntent = "roi" | "patch" | "brush";
|
|
7
8
|
export interface DrawResult {
|
|
8
9
|
tool: Exclude<DrawTool, "cursor">;
|
|
@@ -17,7 +18,7 @@ export type PatchDrawResult = DrawResult & {
|
|
|
17
18
|
};
|
|
18
19
|
export interface DrawRegion {
|
|
19
20
|
id?: string | number;
|
|
20
|
-
coordinates:
|
|
21
|
+
coordinates: DrawRegionCoordinates;
|
|
21
22
|
label?: string;
|
|
22
23
|
}
|
|
23
24
|
export interface RegionStyleContext {
|
|
@@ -86,6 +87,11 @@ export interface BrushOptions {
|
|
|
86
87
|
* Range: 0.25 ~ 4. Default: 1.
|
|
87
88
|
*/
|
|
88
89
|
edgeDetail?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Post-smoothing passes for brush outline to reduce stair-stepping.
|
|
92
|
+
* Range: 0 ~ 4. Default: 1.
|
|
93
|
+
*/
|
|
94
|
+
edgeSmoothing?: number;
|
|
89
95
|
/**
|
|
90
96
|
* When true, a brush "tap" (click without drag) on ROI selects that ROI
|
|
91
97
|
* instead of creating a brush stroke.
|
|
@@ -114,7 +120,7 @@ export interface DrawLayerProps {
|
|
|
114
120
|
viewStateSignal?: unknown;
|
|
115
121
|
persistedRegions?: DrawRegion[];
|
|
116
122
|
patchRegions?: DrawRegion[];
|
|
117
|
-
persistedPolygons?:
|
|
123
|
+
persistedPolygons?: DrawRegionCoordinates[];
|
|
118
124
|
regionStrokeStyle?: Partial<RegionStrokeStyle>;
|
|
119
125
|
regionStrokeHoverStyle?: Partial<RegionStrokeStyle>;
|
|
120
126
|
regionStrokeActiveStyle?: Partial<RegionStrokeStyle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw-layer.d.ts","sourceRoot":"","sources":["../../../src/react/draw-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAA0C,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"draw-layer.d.ts","sourceRoot":"","sources":["../../../src/react/draw-layer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { type PointClipMode } from "../wsi/point-clip-worker-client";
|
|
|
3
3
|
import { type RoiPointGroupStats } from "../wsi/roi-term-stats";
|
|
4
4
|
import type { WsiImageSource, WsiPointData, WsiRegion, WsiRenderStats, WsiViewState } from "../wsi/types";
|
|
5
5
|
import { type PointSizeByZoom, type WsiTileErrorEvent } from "../wsi/wsi-tile-renderer";
|
|
6
|
-
import type { BrushOptions, DrawCoordinate, DrawOverlayShape, DrawResult, DrawTool, PatchDrawResult, RegionLabelStyle, RegionStrokeStyle, RegionStrokeStyleResolver, StampOptions } from "./draw-layer";
|
|
6
|
+
import type { BrushOptions, DrawCoordinate, DrawOverlayShape, DrawRegionCoordinates, DrawResult, DrawTool, PatchDrawResult, RegionLabelStyle, RegionStrokeStyle, RegionStrokeStyleResolver, StampOptions } from "./draw-layer";
|
|
7
7
|
import { type OverviewMapOptions } from "./overview-map";
|
|
8
8
|
export interface RegionHoverEvent {
|
|
9
9
|
region: WsiRegion | null;
|
|
@@ -82,8 +82,9 @@ export interface WsiViewerCanvasProps {
|
|
|
82
82
|
pointData?: WsiPointData | null;
|
|
83
83
|
pointPalette?: Uint8Array | null;
|
|
84
84
|
pointSizeByZoom?: PointSizeByZoom;
|
|
85
|
+
pointStrokeScale?: number;
|
|
85
86
|
roiRegions?: WsiRegion[];
|
|
86
|
-
roiPolygons?:
|
|
87
|
+
roiPolygons?: DrawRegionCoordinates[];
|
|
87
88
|
clipPointsToRois?: boolean;
|
|
88
89
|
clipMode?: PointClipMode;
|
|
89
90
|
onClipStats?: (event: PointClipStatsEvent) => void;
|
|
@@ -116,5 +117,5 @@ export interface WsiViewerCanvasProps {
|
|
|
116
117
|
className?: string;
|
|
117
118
|
style?: CSSProperties;
|
|
118
119
|
}
|
|
119
|
-
export declare function WsiViewerCanvas({ source, viewState, onViewStateChange, onStats, onTileError, onContextLost, onContextRestored, debugOverlay, debugOverlayStyle, fitNonce, rotationResetNonce, authToken, ctrlDragRotate, pointData, pointPalette, pointSizeByZoom, roiRegions, roiPolygons, clipPointsToRois, clipMode, onClipStats, onRoiPointGroups, roiPaletteIndexToTermId, interactionLock, drawTool, stampOptions, brushOptions, regionStrokeStyle, regionStrokeHoverStyle, regionStrokeActiveStyle, patchStrokeStyle, resolveRegionStrokeStyle, overlayShapes, customLayers, patchRegions, regionLabelStyle, onPointerWorldMove, onPointHover, onPointClick, onRegionHover, onRegionClick, onActiveRegionChange, getCellByCoordinatesRef, onDrawComplete, onPatchComplete, showOverviewMap, overviewMapOptions, className, style, }: WsiViewerCanvasProps): React.ReactElement;
|
|
120
|
+
export declare function WsiViewerCanvas({ source, viewState, onViewStateChange, onStats, onTileError, onContextLost, onContextRestored, debugOverlay, debugOverlayStyle, fitNonce, rotationResetNonce, authToken, ctrlDragRotate, pointData, pointPalette, pointSizeByZoom, pointStrokeScale, roiRegions, roiPolygons, clipPointsToRois, clipMode, onClipStats, onRoiPointGroups, roiPaletteIndexToTermId, interactionLock, drawTool, stampOptions, brushOptions, regionStrokeStyle, regionStrokeHoverStyle, regionStrokeActiveStyle, patchStrokeStyle, resolveRegionStrokeStyle, overlayShapes, customLayers, patchRegions, regionLabelStyle, onPointerWorldMove, onPointHover, onPointClick, onRegionHover, onRegionClick, onActiveRegionChange, getCellByCoordinatesRef, onDrawComplete, onPatchComplete, showOverviewMap, overviewMapOptions, className, style, }: WsiViewerCanvasProps): React.ReactElement;
|
|
120
121
|
//# sourceMappingURL=wsi-viewer-canvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsi-viewer-canvas.d.ts","sourceRoot":"","sources":["../../../src/react/wsi-viewer-canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAsC,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAA6F,MAAM,OAAO,CAAC;AAGjN,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"wsi-viewer-canvas.d.ts","sourceRoot":"","sources":["../../../src/react/wsi-viewer-canvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export interface BrushStrokePolygonOptions {
|
|
|
8
8
|
maxRasterSize?: number;
|
|
9
9
|
simplifyTolerance?: number;
|
|
10
10
|
circleSides?: number;
|
|
11
|
+
smoothingPasses?: number;
|
|
11
12
|
}
|
|
12
13
|
export declare function buildBrushStrokePolygon(path: BrushStrokeCoordinate[], options: BrushStrokePolygonOptions): BrushStrokeCoordinate[];
|
|
13
14
|
//# sourceMappingURL=brush-stroke.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brush-stroke.d.ts","sourceRoot":"","sources":["../../../src/wsi/brush-stroke.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"brush-stroke.d.ts","sourceRoot":"","sources":["../../../src/wsi/brush-stroke.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AA8gBD,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,qBAAqB,EAAE,EAC7B,OAAO,EAAE,yBAAyB,GAChC,qBAAqB,EAAE,CAwDzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point-clip-hybrid.d.ts","sourceRoot":"","sources":["../../../src/wsi/point-clip-hybrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"point-clip-hybrid.d.ts","sourceRoot":"","sources":["../../../src/wsi/point-clip-hybrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,eAAe,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AASD,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EAC1C,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAuNhC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WsiPointData } from "./types";
|
|
2
|
-
|
|
3
|
-
export type
|
|
2
|
+
import { type RoiCoordinate, type RoiGeometry } from "./roi-geometry";
|
|
3
|
+
export type { RoiCoordinate };
|
|
4
|
+
export type RoiPolygon = RoiGeometry;
|
|
4
5
|
export declare function filterPointDataByPolygons(pointData: WsiPointData | null | undefined, polygons: RoiPolygon[] | null | undefined): WsiPointData | null;
|
|
5
6
|
export declare function filterPointIndicesByPolygons(pointData: WsiPointData | null | undefined, polygons: RoiPolygon[] | null | undefined): Uint32Array;
|
|
6
7
|
//# sourceMappingURL=point-clip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point-clip.d.ts","sourceRoot":"","sources":["../../../src/wsi/point-clip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"point-clip.d.ts","sourceRoot":"","sources":["../../../src/wsi/point-clip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAGN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,aAAa,EAAE,CAAC;AAC9B,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAarC,wBAAgB,yBAAyB,CACxC,SAAS,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EAC1C,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,YAAY,GAAG,IAAI,CAiDrB;AAED,wBAAgB,4BAA4B,CAC3C,SAAS,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EAC1C,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,WAAW,CA4Bb"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type RoiCoordinate = [number, number];
|
|
2
|
+
export type RoiLinearRing = RoiCoordinate[];
|
|
3
|
+
export type RoiPolygonRings = RoiLinearRing[];
|
|
4
|
+
export type RoiMultiPolygon = RoiPolygonRings[];
|
|
5
|
+
export type RoiGeometry = RoiLinearRing | RoiPolygonRings | RoiMultiPolygon;
|
|
6
|
+
export interface PreparedRoiPolygon {
|
|
7
|
+
outer: RoiLinearRing;
|
|
8
|
+
holes: RoiLinearRing[];
|
|
9
|
+
minX: number;
|
|
10
|
+
minY: number;
|
|
11
|
+
maxX: number;
|
|
12
|
+
maxY: number;
|
|
13
|
+
area: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function closeRoiRing(coordinates: readonly RoiCoordinate[]): RoiLinearRing;
|
|
16
|
+
export declare function polygonSignedArea(ring: RoiLinearRing): number;
|
|
17
|
+
export declare function normalizeRoiGeometry(geometry: RoiGeometry | null | undefined): RoiMultiPolygon;
|
|
18
|
+
export declare function pointInRing(x: number, y: number, ring: RoiLinearRing): boolean;
|
|
19
|
+
export declare function pointInPolygonWithHoles(x: number, y: number, polygon: RoiPolygonRings): boolean;
|
|
20
|
+
export declare function prepareRoiPolygons(geometries: readonly (RoiGeometry | null | undefined)[] | null | undefined): PreparedRoiPolygon[];
|
|
21
|
+
export declare function pointInPreparedPolygon(x: number, y: number, polygon: PreparedRoiPolygon): boolean;
|
|
22
|
+
export declare function pointInAnyPreparedPolygon(x: number, y: number, polygons: readonly PreparedRoiPolygon[]): boolean;
|
|
23
|
+
//# sourceMappingURL=roi-geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roi-geometry.d.ts","sourceRoot":"","sources":["../../../src/wsi/roi-geometry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;AAC5C,MAAM,MAAM,eAAe,GAAG,aAAa,EAAE,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,eAAe,EAAE,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AA2BD,wBAAgB,YAAY,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,CAmBjF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAS7D;AA6BD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAuB9F;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAa9E;AAED,wBAAgB,uBAAuB,CACtC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,eAAe,GACtB,OAAO,CAWT;AAED,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GACxE,kBAAkB,EAAE,CAyCtB;AAED,wBAAgB,sBAAsB,CACrC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAST;AAED,wBAAgB,yBAAyB,CACxC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACrC,OAAO,CAMT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roi-term-stats.d.ts","sourceRoot":"","sources":["../../../src/wsi/roi-term-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"roi-term-stats.d.ts","sourceRoot":"","sources":["../../../src/wsi/roi-term-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQvD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACpC,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AA8CD,wBAAgB,qBAAqB,CACpC,SAAS,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EAChD,OAAO,GAAE,oBAAyB,GAChC,kBAAkB,CAiHpB"}
|
|
@@ -47,9 +47,13 @@ export interface WsiPointData {
|
|
|
47
47
|
drawIndices?: Uint32Array;
|
|
48
48
|
}
|
|
49
49
|
export type WsiCoordinate = [number, number];
|
|
50
|
+
export type WsiRingCoordinates = WsiCoordinate[];
|
|
51
|
+
export type WsiPolygonCoordinates = WsiRingCoordinates[];
|
|
52
|
+
export type WsiMultiPolygonCoordinates = WsiPolygonCoordinates[];
|
|
53
|
+
export type WsiRegionCoordinates = WsiRingCoordinates | WsiPolygonCoordinates | WsiMultiPolygonCoordinates;
|
|
50
54
|
export interface WsiRegion {
|
|
51
55
|
id?: string | number;
|
|
52
|
-
coordinates:
|
|
56
|
+
coordinates: WsiRegionCoordinates;
|
|
53
57
|
label?: string;
|
|
54
58
|
}
|
|
55
59
|
export interface TermPalette {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/wsi/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChE;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,WAAW,CAAC;IAC5B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/wsi/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChE;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,WAAW,CAAC;IAC5B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;AACjD,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,EAAE,CAAC;AACzD,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,EAAE,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAC7B,kBAAkB,GAClB,qBAAqB,GACrB,0BAA0B,CAAC;AAE9B,MAAM,WAAW,SAAS;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,WAAW,EAAE,oBAAoB,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC"}
|
|
@@ -14,6 +14,7 @@ export interface WsiTileRendererOptions {
|
|
|
14
14
|
onStats?: (stats: WsiRenderStats) => void;
|
|
15
15
|
authToken?: string;
|
|
16
16
|
pointSizeByZoom?: PointSizeByZoom;
|
|
17
|
+
pointStrokeScale?: number;
|
|
17
18
|
maxCacheTiles?: number;
|
|
18
19
|
ctrlDragRotate?: boolean;
|
|
19
20
|
rotationDragSensitivityDegPerPixel?: number;
|
|
@@ -65,6 +66,7 @@ export declare class WsiTileRenderer {
|
|
|
65
66
|
private pointBuffersDirty;
|
|
66
67
|
private pointPaletteSize;
|
|
67
68
|
private pointSizeStops;
|
|
69
|
+
private pointStrokeScale;
|
|
68
70
|
private lastPointData;
|
|
69
71
|
private lastPointPalette;
|
|
70
72
|
private cache;
|
|
@@ -85,6 +87,7 @@ export declare class WsiTileRenderer {
|
|
|
85
87
|
private sanitizeDrawIndices;
|
|
86
88
|
setInteractionLock(locked: boolean): void;
|
|
87
89
|
setPointSizeByZoom(pointSizeByZoom: PointSizeByZoom | null | undefined): void;
|
|
90
|
+
setPointStrokeScale(scale: number | null | undefined): void;
|
|
88
91
|
cancelDrag(): void;
|
|
89
92
|
private getPointerAngleRad;
|
|
90
93
|
screenToWorld(clientX: number, clientY: number): [number, number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsi-tile-renderer.d.ts","sourceRoot":"","sources":["../../../src/wsi/wsi-tile-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,MAAM,SAAS,CAAC;AAGjB,KAAK,MAAM,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"wsi-tile-renderer.d.ts","sourceRoot":"","sources":["../../../src/wsi/wsi-tile-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(){"use strict";function d(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function g(n){if(!Array.isArray(n)||n.length<3)return[];const t=n.map(([i,s])=>[i,s]),o=t[0],e=t[t.length-1];return!o||!e?[]:((o[0]!==e[0]||o[1]!==e[1])&&t.push([o[0],o[1]]),t)}function w(n){const t=[];for(const o of n??[]){const e=g(o);if(e.length<4)continue;let i=1/0,s=1/0,a=-1/0,r=-1/0;for(const[c,u]of e)c<i&&(i=c),c>a&&(a=c),u<s&&(s=u),u>r&&(r=u);!Number.isFinite(i)||!Number.isFinite(s)||t.push({ring:e,minX:i,minY:s,maxX:a,maxY:r})}return t}function U(n,t,o){let e=!1;for(let i=0,s=o.length-1;i<o.length;s=i,i+=1){const a=o[i][0],r=o[i][1],c=o[s][0],u=o[s][1];r>t!=u>t&&n<(c-a)*(t-r)/(u-r||Number.EPSILON)+a&&(e=!e)}return e}function M(n,t,o){for(const e of o)if(!(n<e.minX||n>e.maxX||t<e.minY||t>e.maxY)&&U(n,t,e.ring))return!0;return!1}function P(n){if(n instanceof Error)return n.message;try{return String(n)}catch{return"unknown worker error"}}const h=self;function F(n){const t=d(),o=Math.max(0,Math.floor(n.count)),e=new Float32Array(n.positions),i=new Uint16Array(n.paletteIndices),s=n.ids?new Uint32Array(n.ids):null,a=Math.floor(e.length/2),r=Math.max(0,Math.min(o,a,i.length)),c=s instanceof Uint32Array&&s.length>=r,u=w(n.polygons??[]);if(r===0||u.length===0){const p={type:"roi-clip-success",id:n.id,count:0,positions:new Float32Array(0).buffer,paletteIndices:new Uint16Array(0).buffer,durationMs:d()-t};return c&&(p.ids=new Uint32Array(0).buffer),p}const f=new Float32Array(r*2),x=new Uint16Array(r),y=c?new Uint32Array(r):null;let l=0;for(let p=0;p<r;p+=1){const I=e[p*2],b=e[p*2+1];M(I,b,u)&&(f[l*2]=I,f[l*2+1]=b,x[l]=i[p],y&&(y[l]=s[p]),l+=1)}const C=f.slice(0,l*2),E=x.slice(0,l),m=y?y.slice(0,l):null,A={type:"roi-clip-success",id:n.id,count:l,positions:C.buffer,paletteIndices:E.buffer,durationMs:d()-t};return m&&(A.ids=m.buffer),A}function q(n){const t=d(),o=Math.max(0,Math.floor(n.count)),e=new Float32Array(n.positions),i=Math.floor(e.length/2),s=Math.max(0,Math.min(o,i)),a=w(n.polygons??[]);if(s===0||a.length===0)return{type:"roi-clip-index-success",id:n.id,count:0,indices:new Uint32Array(0).buffer,durationMs:d()-t};const r=new Uint32Array(s);let c=0;for(let f=0;f<s;f+=1){const x=e[f*2],y=e[f*2+1];M(x,y,a)&&(r[c]=f,c+=1)}const u=r.slice(0,c);return{type:"roi-clip-index-success",id:n.id,count:c,indices:u.buffer,durationMs:d()-t}}h.addEventListener("message",n=>{const t=n.data;if(!(!t||t.type!=="roi-clip-request"&&t.type!=="roi-clip-index-request"))try{if(t.type==="roi-clip-index-request"){const i=q(t);h.postMessage(i,[i.indices]);return}const o=F(t),e=[o.positions,o.paletteIndices];o.ids&&e.push(o.ids),h.postMessage(o,e)}catch(o){const e={type:"roi-clip-failure",id:t.id,error:P(o)};h.postMessage(e)}})})();
|
|
2
|
-
//# sourceMappingURL=roi-clip-worker-D3hALtsJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"roi-clip-worker-D3hALtsJ.js","sources":["../src/workers/roi-clip-worker.ts"],"sourcesContent":["import type { RoiCoordinate, RoiPolygon } from \"../wsi/point-clip\";\nimport type {\n RoiClipWorkerDataRequest,\n RoiClipWorkerIndexRequest,\n RoiClipWorkerIndexSuccess,\n RoiClipWorkerRequest,\n RoiClipWorkerResponse,\n RoiClipWorkerSuccess,\n} from \"../wsi/point-clip-worker-protocol\";\n\ninterface PreparedPolygon {\n ring: RoiPolygon;\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n}\n\nfunction nowMs(): number {\n if (typeof performance !== \"undefined\" && typeof performance.now === \"function\") {\n return performance.now();\n }\n return Date.now();\n}\n\nfunction closeRing(coords: RoiPolygon): RoiPolygon {\n if (!Array.isArray(coords) || coords.length < 3) return [];\n const out = coords.map(([x, y]) => [x, y] as RoiCoordinate);\n const first = out[0];\n const last = out[out.length - 1];\n if (!first || !last) return [];\n if (first[0] !== last[0] || first[1] !== last[1]) {\n out.push([first[0], first[1]]);\n }\n return out;\n}\n\nfunction preparePolygons(polygons: RoiPolygon[]): PreparedPolygon[] {\n const prepared: PreparedPolygon[] = [];\n for (const poly of polygons ?? []) {\n const ring = closeRing(poly);\n if (ring.length < 4) continue;\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const [x, y] of ring) {\n if (x < minX) minX = x;\n if (x > maxX) maxX = x;\n if (y < minY) minY = y;\n if (y > maxY) maxY = y;\n }\n if (!Number.isFinite(minX) || !Number.isFinite(minY)) continue;\n prepared.push({ ring, minX, minY, maxX, maxY });\n }\n return prepared;\n}\n\nfunction isInsideRing(x: number, y: number, ring: RoiPolygon): boolean {\n let inside = false;\n for (let i = 0, j = ring.length - 1; i < ring.length; j = i, i += 1) {\n const xi = ring[i][0];\n const yi = ring[i][1];\n const xj = ring[j][0];\n const yj = ring[j][1];\n const intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi || Number.EPSILON) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\n\nfunction isInsideAnyPolygon(x: number, y: number, polygons: PreparedPolygon[]): boolean {\n for (const poly of polygons) {\n if (x < poly.minX || x > poly.maxX || y < poly.minY || y > poly.maxY) {\n continue;\n }\n if (isInsideRing(x, y, poly.ring)) {\n return true;\n }\n }\n return false;\n}\n\nfunction toErrorMessage(error: unknown): string {\n if (error instanceof Error) return error.message;\n try {\n return String(error);\n } catch {\n return \"unknown worker error\";\n }\n}\n\ninterface WorkerScope {\n postMessage(message: unknown, transfer?: Transferable[]): void;\n addEventListener(type: \"message\", listener: (event: MessageEvent<RoiClipWorkerRequest>) => void): void;\n}\n\nconst workerScope = self as unknown as WorkerScope;\n\nfunction handleDataRequest(msg: RoiClipWorkerDataRequest): RoiClipWorkerSuccess {\n const start = nowMs();\n const count = Math.max(0, Math.floor(msg.count));\n const positions = new Float32Array(msg.positions);\n const terms = new Uint16Array(msg.paletteIndices);\n const ids = msg.ids ? new Uint32Array(msg.ids) : null;\n\n const maxCountByPositions = Math.floor(positions.length / 2);\n const safeCount = Math.max(0, Math.min(count, maxCountByPositions, terms.length));\n const hasIds = ids instanceof Uint32Array && ids.length >= safeCount;\n const prepared = preparePolygons(msg.polygons ?? []);\n\n if (safeCount === 0 || prepared.length === 0) {\n const empty: RoiClipWorkerSuccess = {\n type: \"roi-clip-success\",\n id: msg.id,\n count: 0,\n positions: new Float32Array(0).buffer,\n paletteIndices: new Uint16Array(0).buffer,\n durationMs: nowMs() - start,\n };\n if (hasIds) {\n empty.ids = new Uint32Array(0).buffer;\n }\n return empty;\n }\n\n const nextPositions = new Float32Array(safeCount * 2);\n const nextTerms = new Uint16Array(safeCount);\n const nextIds = hasIds ? new Uint32Array(safeCount) : null;\n let cursor = 0;\n\n for (let i = 0; i < safeCount; i += 1) {\n const x = positions[i * 2];\n const y = positions[i * 2 + 1];\n if (!isInsideAnyPolygon(x, y, prepared)) continue;\n nextPositions[cursor * 2] = x;\n nextPositions[cursor * 2 + 1] = y;\n nextTerms[cursor] = terms[i];\n if (nextIds) {\n nextIds[cursor] = ids![i];\n }\n cursor += 1;\n }\n\n const outPositions = nextPositions.slice(0, cursor * 2);\n const outTerms = nextTerms.slice(0, cursor);\n const outIds = nextIds ? nextIds.slice(0, cursor) : null;\n\n const success: RoiClipWorkerSuccess = {\n type: \"roi-clip-success\",\n id: msg.id,\n count: cursor,\n positions: outPositions.buffer,\n paletteIndices: outTerms.buffer,\n durationMs: nowMs() - start,\n };\n if (outIds) {\n success.ids = outIds.buffer;\n }\n return success;\n}\n\nfunction handleIndexRequest(msg: RoiClipWorkerIndexRequest): RoiClipWorkerIndexSuccess {\n const start = nowMs();\n const count = Math.max(0, Math.floor(msg.count));\n const positions = new Float32Array(msg.positions);\n const maxCountByPositions = Math.floor(positions.length / 2);\n const safeCount = Math.max(0, Math.min(count, maxCountByPositions));\n const prepared = preparePolygons(msg.polygons ?? []);\n\n if (safeCount === 0 || prepared.length === 0) {\n return {\n type: \"roi-clip-index-success\",\n id: msg.id,\n count: 0,\n indices: new Uint32Array(0).buffer,\n durationMs: nowMs() - start,\n };\n }\n\n const out = new Uint32Array(safeCount);\n let cursor = 0;\n for (let i = 0; i < safeCount; i += 1) {\n const x = positions[i * 2];\n const y = positions[i * 2 + 1];\n if (!isInsideAnyPolygon(x, y, prepared)) continue;\n out[cursor] = i;\n cursor += 1;\n }\n\n const outIndices = out.slice(0, cursor);\n return {\n type: \"roi-clip-index-success\",\n id: msg.id,\n count: cursor,\n indices: outIndices.buffer,\n durationMs: nowMs() - start,\n };\n}\n\nworkerScope.addEventListener(\"message\", (event: MessageEvent<RoiClipWorkerRequest>) => {\n const data = event.data;\n if (!data || (data.type !== \"roi-clip-request\" && data.type !== \"roi-clip-index-request\")) return;\n\n try {\n if (data.type === \"roi-clip-index-request\") {\n const response = handleIndexRequest(data);\n workerScope.postMessage(response, [response.indices]);\n return;\n }\n const response = handleDataRequest(data);\n const transfer: Transferable[] = [response.positions, response.paletteIndices];\n if (response.ids) {\n transfer.push(response.ids);\n }\n workerScope.postMessage(response, transfer);\n } catch (error) {\n const fail: RoiClipWorkerResponse = {\n type: \"roi-clip-failure\",\n id: data.id,\n error: toErrorMessage(error),\n };\n workerScope.postMessage(fail);\n }\n});\n"],"names":["nowMs","closeRing","coords","out","x","y","first","last","preparePolygons","polygons","prepared","poly","ring","minX","minY","maxX","maxY","isInsideRing","inside","j","xi","yi","xj","yj","isInsideAnyPolygon","toErrorMessage","error","workerScope","handleDataRequest","msg","start","count","positions","terms","ids","maxCountByPositions","safeCount","hasIds","empty","nextPositions","nextTerms","nextIds","cursor","i","outPositions","outTerms","outIds","success","handleIndexRequest","outIndices","event","data","response","transfer","fail"],"mappings":"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"}
|