homemanager-fe/src/utils/extract-line-points.ts

15 lines
485 B
TypeScript

import { Line, Vec2 } from '../modules/house-planner/interfaces';
import { vec2Equals } from '../modules/house-planner/utils';
export default function extractLinePoints(line: Line) {
return line.segments
.reduce<Vec2[]>((list, segment) => {
if (segment.start) return [...list, segment.start, segment.end];
return [...list, segment.end];
}, [])
.filter(
(vec, index, arry) =>
arry.findIndex((point) => vec2Equals(point, vec)) === index
);
}