This commit is contained in:
Ryan Di 2025-03-18 22:38:43 +11:00
parent 9412fcc6d7
commit 31d61dd99e
5 changed files with 19 additions and 81 deletions

View file

@ -18,6 +18,8 @@ import type {
import type App from "../components/App";
import type { LassoWorkerInput, LassoWorkerOutput } from "./types";
import LassoWorker from "./worker?worker&inline";
export class LassoTrail extends AnimatedTrail {
private intersectedElements: Set<ExcalidrawElement["id"]> = new Set();
private enclosedElements: Set<ExcalidrawElement["id"]> = new Set();
@ -56,9 +58,7 @@ export class LassoTrail extends AnimatedTrail {
this.enclosedElements.clear();
try {
this.worker = new Worker(new URL("./worker.ts", import.meta.url), {
type: "module",
});
this.worker = new LassoWorker();
this.worker.onmessage = (event: MessageEvent<LassoWorkerOutput>) => {
const { selectedElementIds } = event.data;

View file

@ -13,6 +13,8 @@ import type {
LassoWorkerOutput,
} from "./types";
const ctx = self as unknown as Worker;
// variables to track processing state and latest input data
// for "backpressure" purposes
let isProcessing: boolean = false;
@ -168,3 +170,5 @@ const intersectionTest = (
),
);
};
export default ctx;