@mui/x-internal-gestures
Version:
The core engine of GestureEvents, a modern and robust multi-pointer gesture detection library for JavaScript.
29 lines (26 loc) • 729 B
JavaScript
import { getDistance } from "./getDistance.js";
/**
* Calculate the average distance between all pairs of pointers
*/
export function calculateAverageDistance(pointers) {
if (pointers.length < 2) {
return 0;
}
let totalDistance = 0;
let pairCount = 0;
// Calculate distance between each pair of pointers
for (let i = 0; i < pointers.length; i += 1) {
for (let j = i + 1; j < pointers.length; j += 1) {
totalDistance += getDistance({
x: pointers[i].clientX,
y: pointers[i].clientY
}, {
x: pointers[j].clientX,
y: pointers[j].clientY
});
pairCount += 1;
}
}
// Return average distance
return pairCount > 0 ? totalDistance / pairCount : 0;
}