722c498abe
* Bump prettier from 1.19.1 to 2.0.1 Bumps [prettier](https://github.com/prettier/prettier) from 1.19.1 to 2.0.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/1.19.1...2.0.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> * Update formatting Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Panayiotis Lipiridis <lipiridis@gmail.com>
19 lines
632 B
TypeScript
19 lines
632 B
TypeScript
import { PointerCoords } from "./types";
|
|
import { normalizeScroll } from "./scene";
|
|
|
|
export function getCenter(pointers: Map<number, PointerCoords>) {
|
|
const allCoords = Array.from(pointers.values());
|
|
return {
|
|
x: normalizeScroll(sum(allCoords, (coords) => coords.x) / allCoords.length),
|
|
y: normalizeScroll(sum(allCoords, (coords) => coords.y) / allCoords.length),
|
|
};
|
|
}
|
|
|
|
export function getDistance([a, b]: readonly PointerCoords[]) {
|
|
return Math.hypot(a.x - b.x, a.y - b.y);
|
|
}
|
|
|
|
function sum<T>(array: readonly T[], mapper: (item: T) => number): number {
|
|
return array.reduce((acc, item) => acc + mapper(item), 0);
|
|
}
|