@ahmafi/pixi-viewport
Version:
A highly configurable viewport/2D camera designed to work with pixi.js. Features include dragging, pinch-to-zoom, mouse wheel zooming, decelerated dragging, follow target, snap to point, snap to zoom, clamping, bouncing on edges, and move on mouse edges.
36 lines (35 loc) • 976 B
TypeScript
import type { FederatedEvent } from '@pixi/events';
import type { Point } from '@pixi/math';
import type { Viewport } from './Viewport';
export type DragEvent = {
event: FederatedEvent;
screen: Point;
world: Point;
viewport: Viewport;
};
export type ClickedEvent = DragEvent;
export type MovedEvent = {
viewport: Viewport;
type: 'wheel' | 'pinch' | 'animate' | 'ensureVisible' | 'snap' | 'mouse-edges' | 'follow' | 'drag' | 'decelerate' | 'clamp-x' | 'clamp-y' | 'bounce-x' | 'bounce-y';
original?: Point;
};
export type ZoomedEvent = {
viewport: Viewport;
type: 'wheel' | 'pinch' | 'animate' | 'ensureVisible' | 'clamp-zoom';
center?: Point;
original?: Point;
};
export type WheelStartEvent = {
event: WheelEvent;
viewport: Viewport;
};
export type Events = {
wheel: [
{
event: FederatedEvent;
screen: Point;
world: Point;
viewport: Viewport;
}
];
};