mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
feat: Remove GA code from binding (#9042)
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
This commit is contained in:
parent
31e8476c78
commit
0ffeaeaecf
44 changed files with 2112 additions and 1832 deletions
23
packages/math/rectangle.ts
Normal file
23
packages/math/rectangle.ts
Normal file
|
@ -0,0 +1,23 @@
|
|||
import { pointFrom } from "./point";
|
||||
import { lineSegment, lineSegmentIntersectionPoints } from "./segment";
|
||||
import type { GlobalPoint, LineSegment, LocalPoint, Rectangle } from "./types";
|
||||
|
||||
export function rectangle<P extends GlobalPoint | LocalPoint>(
|
||||
topLeft: P,
|
||||
bottomRight: P,
|
||||
): Rectangle<P> {
|
||||
return [topLeft, bottomRight] as Rectangle<P>;
|
||||
}
|
||||
|
||||
export function rectangleIntersectLineSegment<
|
||||
Point extends LocalPoint | GlobalPoint,
|
||||
>(r: Rectangle<Point>, l: LineSegment<Point>): Point[] {
|
||||
return [
|
||||
lineSegment(r[0], pointFrom(r[1][0], r[0][1])),
|
||||
lineSegment(pointFrom(r[1][0], r[0][1]), r[1]),
|
||||
lineSegment(r[1], pointFrom(r[0][0], r[1][1])),
|
||||
lineSegment(pointFrom(r[0][0], r[1][1]), r[0]),
|
||||
]
|
||||
.map((s) => lineSegmentIntersectionPoints(l, s))
|
||||
.filter((i): i is Point => !!i);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue