Skip to content

Commit

Permalink
[Web] Simplify PointerTracker methods (#3139)
Browse files Browse the repository at this point in the history
## Description

This PR simplifies some methods found in `PointerTracker`. I've also found a little bug which was not caught because of how 
`tracker` worked before. 


## Test plan

Verified on example app (mostly `Draggable`/`Double Draggable` examples)
  • Loading branch information
m-bert authored Oct 8, 2024
1 parent ca0d63e commit 5846054
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 35 deletions.
8 changes: 1 addition & 7 deletions src/web/tools/GestureHandlerOrchestrator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -343,13 +343,7 @@ export default class GestureHandlerOrchestrator {
);
};

const handlerPointers: number[] = handler.getTrackedPointersID();
const otherPointers: number[] = otherHandler.getTrackedPointersID();

return (
handlerPointers.some(isPointerWithinBothBounds) ||
otherPointers.some(isPointerWithinBothBounds)
);
return handler.getTrackedPointersID().some(isPointerWithinBothBounds);
}

private isFinished(state: State): boolean {
Expand Down
34 changes: 6 additions & 28 deletions src/web/tools/PointerTracker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ export default class PointerTracker {

private lastMovedPointerId: number;

private cachedAbsoluteAverages: { x: number; y: number } = { x: 0, y: 0 };
private cachedRelativeAverages: { x: number; y: number } = { x: 0, y: 0 };
private cachedAbsoluteAverages: Point = { x: 0, y: 0 };
private cachedRelativeAverages: Point = { x: 0, y: 0 };

public constructor() {
this.lastMovedPointerId = NaN;
Expand Down Expand Up @@ -121,35 +121,13 @@ export default class PointerTracker {
}

public getLastAbsoluteCoords(pointerId?: number) {
if (pointerId !== undefined) {
return {
x: this.trackedPointers.get(pointerId)?.abosoluteCoords.x as number,
y: this.trackedPointers.get(pointerId)?.abosoluteCoords.y as number,
};
} else {
return {
x: this.trackedPointers.get(this.lastMovedPointerId)?.abosoluteCoords
.x as number,
y: this.trackedPointers.get(this.lastMovedPointerId)?.abosoluteCoords
.y as number,
};
}
return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
?.abosoluteCoords as Point;
}

public getLastRelativeCoords(pointerId?: number) {
if (pointerId !== undefined) {
return {
x: this.trackedPointers.get(pointerId)?.relativeCoords.x as number,
y: this.trackedPointers.get(pointerId)?.relativeCoords.y as number,
};
} else {
return {
x: this.trackedPointers.get(this.lastMovedPointerId)?.relativeCoords
.x as number,
y: this.trackedPointers.get(this.lastMovedPointerId)?.relativeCoords
.y as number,
};
}
return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
?.relativeCoords as Point;
}

// Some handlers use these methods to send average values in native event.
Expand Down

0 comments on commit 5846054

Please sign in to comment.