Skip to content

VistaPointers Class

The VistaPointers class provides a unified interface for tracking mouse and touch pointer events. It normalizes pointer data across different input types and manages multi-touch gestures.

VistaPointers handles:

  • Mouse, touch, and pen input tracking
  • Multi-pointer gestures (pinch, pan)
  • Pointer movement calculations
  • Event normalization across input types

Use Case: Primarily used internally by VistaView for handling interactions. Extensions can access pointer data through event listeners.

None - all properties are private.

constructor(args: VistaPointerArgs)

Creates a new pointer tracking system.

Parameters:

  • args.elm - Element to attach listeners to (defaults to document)
  • args.listeners - Array of pointer listeners

Example:

import { VistaPointers } from 'vistaview';
const pointers = new VistaPointers({
elm: element,
listeners: [
(e) => {
console.log('Pointer event:', e.event, e.pointers.length);
},
],
});
startListeners(): void

Starts listening to pointer events. Called automatically by constructor.

removeListeners(): void

Removes all pointer event listeners. Call this when cleaning up.

Example:

pointers.removeListeners();
addEventListener(listener: VistaPointerListener): void

Adds a pointer event listener.

Example:

pointers.addEventListener((e) => {
if (e.event === 'down') {
console.log('Pointer down at:', e.pointer.x, e.pointer.y);
}
});
removeEventListener(listener: VistaPointerListener): void

Removes a specific pointer event listener.

getPointerDistance(p1: VistaPointer, p2: VistaPointer): number

Calculates the distance between two pointers. Useful for pinch-to-zoom gestures.

Parameters:

Returns: Distance in pixels

Example:

if (pointers.length >= 2) {
const distance = pointers.getPointerDistance(pointers[0], pointers[1]);
console.log('Pinch distance:', distance);
}
getCentroid(): { x: number; y: number } | null

Calculates the center point of all active pointers. Returns null if no pointers are active.

Returns: Center coordinates or null

Example:

const center = pointers.getCentroid();
if (center) {
console.log('Center point:', center.x, center.y);
}
GitHubnpmllms.txtContext7

© 2026 • MIT License