Added NodeJS Demo.
This commit is contained in:
97
demos/Texture3/GpuWorker.js
Normal file
97
demos/Texture3/GpuWorker.js
Normal file
@@ -0,0 +1,97 @@
|
||||
// worker.js
|
||||
|
||||
import { ParticleSimulation } from "./demo.js";
|
||||
|
||||
|
||||
var particleSimulation = new ParticleSimulation();
|
||||
|
||||
export class Controller {
|
||||
|
||||
setup( request ) {
|
||||
|
||||
var canvas = request.canvas;
|
||||
|
||||
console.log( canvas );
|
||||
|
||||
particleSimulation.setup( canvas, request.width, request.height );
|
||||
|
||||
//self.postMessage({ type: "pong", id: request.id });
|
||||
}
|
||||
|
||||
resetParticlePositions() {
|
||||
|
||||
particleSimulation.resetParticlePositions();
|
||||
|
||||
}
|
||||
|
||||
mousemove( request ) {
|
||||
|
||||
particleSimulation.eventManager.mousemove( request );
|
||||
|
||||
}
|
||||
|
||||
mousedown( request ) {
|
||||
|
||||
console.log("onMouseDown");
|
||||
|
||||
particleSimulation.eventManager.mousedown( request );
|
||||
|
||||
}
|
||||
|
||||
mouseup( request ) {
|
||||
|
||||
particleSimulation.eventManager.mouseup( request );
|
||||
|
||||
}
|
||||
|
||||
mouseleave( request ) {
|
||||
|
||||
particleSimulation.eventManager.mouseleave( request );
|
||||
|
||||
}
|
||||
|
||||
wheel( request ) {
|
||||
|
||||
particleSimulation.eventManager.wheel( request );
|
||||
|
||||
}
|
||||
|
||||
resize( request ) {
|
||||
|
||||
particleSimulation.eventManager.resize( request );
|
||||
|
||||
}
|
||||
|
||||
resetParticlePositions() {
|
||||
|
||||
particleSimulation.resetParticlePositions( );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const controller = new Controller();
|
||||
|
||||
self.onmessage = function (event) {
|
||||
|
||||
const data = event.data;
|
||||
|
||||
if (typeof data !== "object" || typeof data.method !== "string") {
|
||||
console.warn("Invalid request received:", data);
|
||||
return;
|
||||
}
|
||||
|
||||
// Optional: wrap the data into a Request instance (if you need its methods)
|
||||
// const request = new Request(data.method, data.payload);
|
||||
|
||||
// Or just use plain data object
|
||||
const request = data;
|
||||
|
||||
const methodName = request.method;
|
||||
|
||||
if (typeof controller[methodName] !== "function") {
|
||||
console.warn("No method found for:", request.method);
|
||||
return;
|
||||
}
|
||||
|
||||
controller[methodName](request);
|
||||
};
|
||||
Reference in New Issue
Block a user