import { pointCenter, pointFrom, pointRotateRads } from "./point"; import type { GlobalPoint, Line, LocalPoint, Radians } from "./types"; /** * Create a line from two points. * * @param points The two points lying on the line * @returns The line on which the points lie */ export function line
(a: P, b: P): Line
{ return [a, b] as Line
; } /** * Convenient point creation from an array of two points. * * @param param0 The array with the two points to convert to a line * @returns The created line */ export function lineFromPointPair
([a, b]: [ P, P, ]): Line
{ return line(a, b); } /** * TODO * * @param pointArray * @returns */ export function lineFromPointArray
( pointArray: P[], ): Line
| undefined { return pointArray.length === 2 ? line
(pointArray[0], pointArray[1])
: undefined;
}
/**
* Return the coordinates resulting from rotating the given line about an
* origin by an angle in degrees note that when the origin is not given,
* the midpoint of the given line is used as the origin
*
* @param l
* @param angle
* @param origin
* @returns
*/
export const lineRotate =