Worker Task Director Three.js Extenstions (wtd-three-ext)
three.js related extensions of wtd-core and additional three.js related utility functions.
Examples
There are multiple examples available demonstarting the features described above (listed from simpler to more advanced):
- WorkerTaskDirector: Transferables: html, ts, Worker: 1, 2, 3, 4
- WorkerTaskDirector: Three.js: html, ts, Worker: 1, 2
- WorkerTaskDirector: Potentially Infinite Execution: html, ts, Worker: 1, 2, 3, 4
Try out all examples here: https://kaisalmen.github.io/wtd
Usage
This shall give you an idea how you can use module worker with WorkerTask
(derived from WorkerTask: Hello World):
// let WorkerTask create the worker
const workerTask = new WorkerTask({
taskName,
workerId: 1,
workerConfig: {
$type: 'WorkerConfigParams',
url: new URL('./HelloWorldWorker.js', import.meta.url),
workerType: 'module',
},
verbose: true
});
try {
// cteates and connects the worker callback functions and the WorkerTask
workerTask.connectWorker();
// execute without init and an empty message
const resultExec = await workerTask.executeWorker({
message: WorkerTaskMessage.createEmpty()
});
// once you awaited the resulting WorkerTaskMessage extract the RawPayload
const rawPayload = resultExec.payloads?.[0] as RawPayload;
// log the hello from the HelloWorldWorker
console.log(`Worker said: ${rawPayload.message.raw?.hello}`);
} catch (e) {
// error handling
console.error(e);
}
Further information is found in the main README of the overall repository.
All changes are noted in the overall CHANGELOG.