Skip to content
VistaView v2

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:

pointers.addEventListener((e) => {
  if (e.pointers.length >= 2) {
    const distance = pointers.getPointerDistance(e.pointers[0], e.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