From eb515cb291f48269bf39f7f8962025885d3e1823 Mon Sep 17 00:00:00 2001 From: Amir Tadros Date: Tue, 26 Aug 2025 18:33:07 -0700 Subject: [PATCH] pass through eventState with eventData --- packages/dev/core/src/Gizmos/positionGizmo.ts | 14 ++++++++++---- packages/dev/core/src/Gizmos/rotationGizmo.ts | 14 ++++++++++---- packages/dev/core/src/Gizmos/scaleGizmo.ts | 14 ++++++++++---- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/packages/dev/core/src/Gizmos/positionGizmo.ts b/packages/dev/core/src/Gizmos/positionGizmo.ts index a33fdda411f..8ad347eae1c 100644 --- a/packages/dev/core/src/Gizmos/positionGizmo.ts +++ b/packages/dev/core/src/Gizmos/positionGizmo.ts @@ -1,5 +1,5 @@ import { Logger } from "../Misc/logger"; -import type { Observer } from "../Misc/observable"; +import type { EventState, Observer } from "../Misc/observable"; import { Observable } from "../Misc/observable"; import type { Nullable } from "../types"; import { Vector3 } from "../Maths/math.vector"; @@ -210,9 +210,15 @@ export class PositionGizmo extends Gizmo implements IPositionGizmo { // Relay drag events const gizmos = [this.xGizmo, this.yGizmo, this.zGizmo, this.xPlaneGizmo, this.yPlaneGizmo, this.zPlaneGizmo]; for (const gizmo of gizmos) { - gizmo.dragBehavior.onDragStartObservable.add(this.onDragStartObservable.notifyObservers.bind(this.onDragStartObservable)); - gizmo.dragBehavior.onDragObservable.add(this.onDragObservable.notifyObservers.bind(this.onDragObservable)); - gizmo.dragBehavior.onDragEndObservable.add(this.onDragEndObservable.notifyObservers.bind(this.onDragEndObservable)); + gizmo.dragBehavior.onDragStartObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragStartObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragObservable.add((eventData: DragEvent, eventState: EventState) => + this.onDragObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragEndObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragEndObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); } this.attachedMesh = null; diff --git a/packages/dev/core/src/Gizmos/rotationGizmo.ts b/packages/dev/core/src/Gizmos/rotationGizmo.ts index 00d0a3cc6c6..3fc7903517e 100644 --- a/packages/dev/core/src/Gizmos/rotationGizmo.ts +++ b/packages/dev/core/src/Gizmos/rotationGizmo.ts @@ -1,5 +1,5 @@ import { Logger } from "../Misc/logger"; -import type { Observer } from "../Misc/observable"; +import type { EventState, Observer } from "../Misc/observable"; import { Observable } from "../Misc/observable"; import type { Nullable } from "../types"; import { Vector3 } from "../Maths/math.vector"; @@ -244,9 +244,15 @@ export class RotationGizmo extends Gizmo implements IRotationGizmo { if (options && options.updateScale != undefined) { gizmo.updateScale = options.updateScale; } - gizmo.dragBehavior.onDragStartObservable.add(this.onDragStartObservable.notifyObservers.bind(this.onDragStartObservable)); - gizmo.dragBehavior.onDragObservable.add(this.onDragObservable.notifyObservers.bind(this.onDragObservable)); - gizmo.dragBehavior.onDragEndObservable.add(this.onDragEndObservable.notifyObservers.bind(this.onDragEndObservable)); + gizmo.dragBehavior.onDragStartObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragStartObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragObservable.add((eventData: DragEvent, eventState: EventState) => + this.onDragObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragEndObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragEndObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); } this.attachedMesh = null; diff --git a/packages/dev/core/src/Gizmos/scaleGizmo.ts b/packages/dev/core/src/Gizmos/scaleGizmo.ts index b968e115af9..06e87d35cbc 100644 --- a/packages/dev/core/src/Gizmos/scaleGizmo.ts +++ b/packages/dev/core/src/Gizmos/scaleGizmo.ts @@ -1,5 +1,5 @@ import { Logger } from "../Misc/logger"; -import type { Observer } from "../Misc/observable"; +import type { EventState, Observer } from "../Misc/observable"; import { Observable } from "../Misc/observable"; import type { Nullable } from "../types"; import { Vector3 } from "../Maths/math.vector"; @@ -221,9 +221,15 @@ export class ScaleGizmo extends Gizmo implements IScaleGizmo { // Relay drag events const gizmos = [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo]; for (const gizmo of gizmos) { - gizmo.dragBehavior.onDragStartObservable.add(this.onDragStartObservable.notifyObservers.bind(this.onDragStartObservable)); - gizmo.dragBehavior.onDragObservable.add(this.onDragObservable.notifyObservers.bind(this.onDragObservable)); - gizmo.dragBehavior.onDragEndObservable.add(this.onDragEndObservable.notifyObservers.bind(this.onDragEndObservable)); + gizmo.dragBehavior.onDragStartObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragStartObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragObservable.add((eventData: DragEvent, eventState: EventState) => + this.onDragObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); + gizmo.dragBehavior.onDragEndObservable.add((eventData: DragStartEndEvent, eventState: EventState) => + this.onDragEndObservable.notifyObservers(eventData, eventState.mask, eventState.target, eventState.currentTarget, eventState.userInfo) + ); } this.attachedMesh = null;