multiple interaction points
This commit is contained in:
@ -8,6 +8,27 @@ interface WorkerMessage {
|
||||
renderMode?: string;
|
||||
mouseX?: number;
|
||||
mouseY?: number;
|
||||
mousePressed?: boolean;
|
||||
mouseVX?: number;
|
||||
mouseVY?: number;
|
||||
mouseClickTime?: number;
|
||||
touchCount?: number;
|
||||
touch0X?: number;
|
||||
touch0Y?: number;
|
||||
touch1X?: number;
|
||||
touch1Y?: number;
|
||||
pinchScale?: number;
|
||||
pinchRotation?: number;
|
||||
accelX?: number;
|
||||
accelY?: number;
|
||||
accelZ?: number;
|
||||
gyroX?: number;
|
||||
gyroY?: number;
|
||||
gyroZ?: number;
|
||||
audioLevel?: number;
|
||||
bassLevel?: number;
|
||||
midLevel?: number;
|
||||
trebleLevel?: number;
|
||||
}
|
||||
|
||||
interface WorkerResponse {
|
||||
@ -31,6 +52,27 @@ export class FakeShader {
|
||||
private renderMode: string = 'classic';
|
||||
private mouseX: number = 0;
|
||||
private mouseY: number = 0;
|
||||
private mousePressed: boolean = false;
|
||||
private mouseVX: number = 0;
|
||||
private mouseVY: number = 0;
|
||||
private mouseClickTime: number = 0;
|
||||
private touchCount: number = 0;
|
||||
private touch0X: number = 0;
|
||||
private touch0Y: number = 0;
|
||||
private touch1X: number = 0;
|
||||
private touch1Y: number = 0;
|
||||
private pinchScale: number = 1;
|
||||
private pinchRotation: number = 0;
|
||||
private accelX: number = 0;
|
||||
private accelY: number = 0;
|
||||
private accelZ: number = 0;
|
||||
private gyroX: number = 0;
|
||||
private gyroY: number = 0;
|
||||
private gyroZ: number = 0;
|
||||
private audioLevel: number = 0;
|
||||
private bassLevel: number = 0;
|
||||
private midLevel: number = 0;
|
||||
private trebleLevel: number = 0;
|
||||
|
||||
// Frame rate limiting
|
||||
private targetFPS: number = 30;
|
||||
@ -120,7 +162,28 @@ export class FakeShader {
|
||||
time: currentTime,
|
||||
renderMode: this.renderMode,
|
||||
mouseX: this.mouseX,
|
||||
mouseY: this.mouseY
|
||||
mouseY: this.mouseY,
|
||||
mousePressed: this.mousePressed,
|
||||
mouseVX: this.mouseVX,
|
||||
mouseVY: this.mouseVY,
|
||||
mouseClickTime: this.mouseClickTime,
|
||||
touchCount: this.touchCount,
|
||||
touch0X: this.touch0X,
|
||||
touch0Y: this.touch0Y,
|
||||
touch1X: this.touch1X,
|
||||
touch1Y: this.touch1Y,
|
||||
pinchScale: this.pinchScale,
|
||||
pinchRotation: this.pinchRotation,
|
||||
accelX: this.accelX,
|
||||
accelY: this.accelY,
|
||||
accelZ: this.accelZ,
|
||||
gyroX: this.gyroX,
|
||||
gyroY: this.gyroY,
|
||||
gyroZ: this.gyroZ,
|
||||
audioLevel: this.audioLevel,
|
||||
bassLevel: this.bassLevel,
|
||||
midLevel: this.midLevel,
|
||||
trebleLevel: this.trebleLevel
|
||||
} as WorkerMessage);
|
||||
}
|
||||
|
||||
@ -192,9 +255,39 @@ export class FakeShader {
|
||||
this.renderMode = mode;
|
||||
}
|
||||
|
||||
setMousePosition(x: number, y: number): void {
|
||||
setMousePosition(x: number, y: number, pressed: boolean = false, vx: number = 0, vy: number = 0, clickTime: number = 0): void {
|
||||
this.mouseX = x;
|
||||
this.mouseY = y;
|
||||
this.mousePressed = pressed;
|
||||
this.mouseVX = vx;
|
||||
this.mouseVY = vy;
|
||||
this.mouseClickTime = clickTime;
|
||||
}
|
||||
|
||||
setTouchPosition(count: number, x0: number = 0, y0: number = 0, x1: number = 0, y1: number = 0, scale: number = 1, rotation: number = 0): void {
|
||||
this.touchCount = count;
|
||||
this.touch0X = x0;
|
||||
this.touch0Y = y0;
|
||||
this.touch1X = x1;
|
||||
this.touch1Y = y1;
|
||||
this.pinchScale = scale;
|
||||
this.pinchRotation = rotation;
|
||||
}
|
||||
|
||||
setDeviceMotion(ax: number, ay: number, az: number, gx: number, gy: number, gz: number): void {
|
||||
this.accelX = ax;
|
||||
this.accelY = ay;
|
||||
this.accelZ = az;
|
||||
this.gyroX = gx;
|
||||
this.gyroY = gy;
|
||||
this.gyroZ = gz;
|
||||
}
|
||||
|
||||
setAudioData(level: number, bass: number, mid: number, treble: number): void {
|
||||
this.audioLevel = level;
|
||||
this.bassLevel = bass;
|
||||
this.midLevel = mid;
|
||||
this.trebleLevel = treble;
|
||||
}
|
||||
|
||||
destroy(): void {
|
||||
|
||||
Reference in New Issue
Block a user