15 lines
485 B
TypeScript
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
|
|
);
|
|
}
|