mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-06-25 17:10:43 +00:00
wip
This commit is contained in:
parent
1a57b8177b
commit
b69efeeb79
5 changed files with 28 additions and 4 deletions
|
|
@ -182,9 +182,9 @@ export abstract class EngineControllerBase {
|
|||
if (prevTwoTouchPointsDistance > 0) {
|
||||
const delta = distance - prevTwoTouchPointsDistance;
|
||||
if (this.worker != null) {
|
||||
this.worker.postMessage({ type: 'input:wheel', ev: { deltaY: -delta * 3 } });
|
||||
this.worker.postMessage({ type: 'input:zoom', ev: { delta: delta } });
|
||||
} else if (this.engine != null) {
|
||||
this.engine.inputs.emit('wheel', { deltaY: -delta * 3 });
|
||||
this.engine.inputs.emit('zoom', { delta: delta });
|
||||
}
|
||||
}
|
||||
prevTwoTouchPointsDistance = distance;
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ export class RoomEngine extends EventEmitter {
|
|||
'keydown': (event: { code: string; shiftKey: boolean; }) => void;
|
||||
'keyup': (event: { code: string; shiftKey: boolean; }) => void;
|
||||
'wheel': (event: { deltaY: number; }) => void;
|
||||
'zoom': (event: { delta: number; }) => void;
|
||||
'pointer': (event: { x: number; y: number; }) => void;
|
||||
}> = new EventEmitter();
|
||||
|
||||
|
|
@ -444,6 +445,15 @@ export class RoomEngine extends EventEmitter {
|
|||
}
|
||||
});
|
||||
|
||||
this.inputs.on('zoom', (ev) => {
|
||||
if (this.grabbingCtx != null) {
|
||||
this.changeGrabbingDistance(ev.delta * 0.1);
|
||||
} else {
|
||||
this.camera.fov += -ev.delta * 0.003;
|
||||
this.camera.fov = Math.max(0.25, Math.min(1, this.camera.fov));
|
||||
}
|
||||
});
|
||||
|
||||
this.inputs.on('click', (ev) => {
|
||||
if (this.grabbingCtx != null) return;
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ export class RoomObjectPreviewEngine extends EventEmitter {
|
|||
'keydown': (event: { code: string; shiftKey: boolean; }) => void;
|
||||
'keyup': (event: { code: string; shiftKey: boolean; }) => void;
|
||||
'wheel': (event: { deltaY: number; }) => void;
|
||||
'zoom': (event: { delta: number; }) => void;
|
||||
'pointer': (event: { x: number; y: number; }) => void;
|
||||
}> = new EventEmitter();
|
||||
|
||||
|
|
@ -207,6 +208,11 @@ export class RoomObjectPreviewEngine extends EventEmitter {
|
|||
this.camera.fov = Math.max(0.25, Math.min(0.5, this.camera.fov));
|
||||
});
|
||||
|
||||
this.inputs.on('zoom', (ev) => {
|
||||
this.camera.fov += -ev.delta * 0.0015;
|
||||
this.camera.fov = Math.max(0.25, Math.min(0.5, this.camera.fov));
|
||||
});
|
||||
|
||||
this.inputs.on('pointer', (ev) => {
|
||||
(this.camera.inputs.attached.manual as ArcRotateCameraManualInput).setRotationVector({ x: ev.x, y: ev.y });
|
||||
});
|
||||
|
|
@ -244,8 +250,6 @@ export class RoomObjectPreviewEngine extends EventEmitter {
|
|||
this.camera.upperRadiusLimit = cm(1000);
|
||||
this.camera.useAutoRotationBehavior = true;
|
||||
this.camera.autoRotationBehavior!.idleRotationSpeed = 0.3;
|
||||
this.camera.panningSensibility = 0;
|
||||
this.camera.wheelDeltaPercentage = 0.01;
|
||||
//this.camera.mode = BABYLON.Camera.ORTHOGRAPHIC_CAMERA;
|
||||
this.camera.setTarget(new BABYLON.Vector3(0, boundingInfo.centerWorld.y, 0));
|
||||
this.camera.inputs.clear();
|
||||
|
|
|
|||
|
|
@ -63,6 +63,11 @@ onmessage = async (event) => {
|
|||
engine.inputs.emit('wheel', event.data.ev);
|
||||
break;
|
||||
}
|
||||
case 'input:zoom': {
|
||||
if (engine == null) break;
|
||||
engine.inputs.emit('zoom', event.data.ev);
|
||||
break;
|
||||
}
|
||||
case 'input:pointer': {
|
||||
if (engine == null) break;
|
||||
engine.inputs.emit('pointer', event.data.ev);
|
||||
|
|
|
|||
|
|
@ -65,6 +65,11 @@ onmessage = async (event) => {
|
|||
engine.inputs.emit('wheel', event.data.ev);
|
||||
break;
|
||||
}
|
||||
case 'input:zoom': {
|
||||
if (engine == null) break;
|
||||
engine.inputs.emit('zoom', event.data.ev);
|
||||
break;
|
||||
}
|
||||
case 'input:pointer': {
|
||||
if (engine == null) break;
|
||||
engine.inputs.emit('pointer', event.data.ev);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue