mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
More refactor
This commit is contained in:
parent
392dd5b0b8
commit
b697f63cad
18 changed files with 206 additions and 199 deletions
|
@ -65,7 +65,7 @@ import {
|
|||
} from "./heading";
|
||||
import type { LocalPoint, Radians } from "../../math";
|
||||
import {
|
||||
lineSegment,
|
||||
segment,
|
||||
point,
|
||||
pointRotateRads,
|
||||
type GlobalPoint,
|
||||
|
@ -1615,7 +1615,7 @@ const intersectElementWithLine = (
|
|||
elementsMap: ElementsMap,
|
||||
): GlobalPoint[] | undefined => {
|
||||
if (isRectangularElement(element)) {
|
||||
return segmentIntersectRectangleElement(element, lineSegment(a, b), gap);
|
||||
return segmentIntersectRectangleElement(element, segment(a, b), gap);
|
||||
}
|
||||
|
||||
const relateToCenter = relativizationToElementCenter(element, elementsMap);
|
||||
|
|
|
@ -21,10 +21,10 @@ import type { Bounds } from "./bounds";
|
|||
import { getElementAbsoluteCoords } from "./bounds";
|
||||
import { SIDE_RESIZING_THRESHOLD } from "../constants";
|
||||
import { isLinearElement } from "./typeChecks";
|
||||
import type { GlobalPoint, LineSegment, LocalPoint } from "../../math";
|
||||
import type { GlobalPoint, Segment, LocalPoint } from "../../math";
|
||||
import {
|
||||
point,
|
||||
pointOnLineSegment,
|
||||
segmentIncludesPoint,
|
||||
pointRotateRads,
|
||||
type Radians,
|
||||
} from "../../math";
|
||||
|
@ -101,9 +101,9 @@ export const resizeTest = <Point extends GlobalPoint | LocalPoint>(
|
|||
for (const [dir, side] of Object.entries(sides)) {
|
||||
// test to see if x, y are on the line segment
|
||||
if (
|
||||
pointOnLineSegment(
|
||||
segmentIncludesPoint(
|
||||
point<Point>(x, y),
|
||||
side as LineSegment<Point>,
|
||||
side as Segment<Point>,
|
||||
SPACING,
|
||||
)
|
||||
) {
|
||||
|
@ -187,9 +187,9 @@ export const getTransformHandleTypeFromCoords = (
|
|||
for (const [dir, side] of Object.entries(sides)) {
|
||||
// test to see if x, y are on the line segment
|
||||
if (
|
||||
pointOnLineSegment(
|
||||
segmentIncludesPoint(
|
||||
scenePointer,
|
||||
side as LineSegment<GlobalPoint>,
|
||||
side as Segment<GlobalPoint>,
|
||||
SPACING,
|
||||
)
|
||||
) {
|
||||
|
|
|
@ -33,10 +33,10 @@ import {
|
|||
isLinearElement,
|
||||
} from "./element/typeChecks";
|
||||
import type { ReadonlySetLike } from "./utility-types";
|
||||
import type { GlobalPoint, LineSegment } from "../math";
|
||||
import type { GlobalPoint, Segment } from "../math";
|
||||
import {
|
||||
isPointWithinBounds,
|
||||
lineSegment,
|
||||
segment,
|
||||
point,
|
||||
pointRotateRads,
|
||||
segmentsIntersectAt,
|
||||
|
@ -82,7 +82,7 @@ export const bindElementsToFramesAfterDuplication = (
|
|||
const getElementLineSegments = (
|
||||
element: ExcalidrawElement,
|
||||
elementsMap: ElementsMap,
|
||||
): LineSegment<GlobalPoint>[] => {
|
||||
): Segment<GlobalPoint>[] => {
|
||||
const [x1, y1, x2, y2, cx, cy] = getElementAbsoluteCoords(
|
||||
element,
|
||||
elementsMap,
|
||||
|
@ -91,13 +91,13 @@ const getElementLineSegments = (
|
|||
const center: GlobalPoint = point(cx, cy);
|
||||
|
||||
if (isLinearElement(element) || isFreeDrawElement(element)) {
|
||||
const segments: LineSegment<GlobalPoint>[] = [];
|
||||
const segments: Segment<GlobalPoint>[] = [];
|
||||
|
||||
let i = 0;
|
||||
|
||||
while (i < element.points.length - 1) {
|
||||
segments.push(
|
||||
lineSegment(
|
||||
segment(
|
||||
pointRotateRads(
|
||||
point(
|
||||
element.points[i][0] + element.x,
|
||||
|
@ -137,35 +137,35 @@ const getElementLineSegments = (
|
|||
|
||||
if (element.type === "diamond") {
|
||||
return [
|
||||
lineSegment(n, w),
|
||||
lineSegment(n, e),
|
||||
lineSegment(s, w),
|
||||
lineSegment(s, e),
|
||||
segment(n, w),
|
||||
segment(n, e),
|
||||
segment(s, w),
|
||||
segment(s, e),
|
||||
];
|
||||
}
|
||||
|
||||
if (element.type === "ellipse") {
|
||||
return [
|
||||
lineSegment(n, w),
|
||||
lineSegment(n, e),
|
||||
lineSegment(s, w),
|
||||
lineSegment(s, e),
|
||||
lineSegment(n, w),
|
||||
lineSegment(n, e),
|
||||
lineSegment(s, w),
|
||||
lineSegment(s, e),
|
||||
segment(n, w),
|
||||
segment(n, e),
|
||||
segment(s, w),
|
||||
segment(s, e),
|
||||
segment(n, w),
|
||||
segment(n, e),
|
||||
segment(s, w),
|
||||
segment(s, e),
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
lineSegment(nw, ne),
|
||||
lineSegment(sw, se),
|
||||
lineSegment(nw, sw),
|
||||
lineSegment(ne, se),
|
||||
lineSegment(nw, e),
|
||||
lineSegment(sw, e),
|
||||
lineSegment(ne, w),
|
||||
lineSegment(se, w),
|
||||
segment(nw, ne),
|
||||
segment(sw, se),
|
||||
segment(nw, sw),
|
||||
segment(ne, se),
|
||||
segment(nw, e),
|
||||
segment(sw, e),
|
||||
segment(ne, w),
|
||||
segment(se, w),
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
import {
|
||||
fireEvent,
|
||||
|
@ -27,8 +26,8 @@ import { KEYS } from "../keys";
|
|||
import { getBoundTextElementPosition } from "../element/textElement";
|
||||
import { createPasteEvent } from "../clipboard";
|
||||
import { arrayToMap, cloneJSON } from "../utils";
|
||||
import type { LocalPoint } from "../../math";
|
||||
import { point, type Radians } from "../../math";
|
||||
import type { LocalPoint, Radians } from "../../math";
|
||||
import { point, radians } from "../../math";
|
||||
|
||||
const { h } = window;
|
||||
const mouse = new Pointer("mouse");
|
||||
|
@ -132,7 +131,7 @@ const createLinearElementWithCurveInsideMinMaxPoints = (
|
|||
y: -2412.5069664197654,
|
||||
width: 1750.4888916015625,
|
||||
height: 410.51605224609375,
|
||||
angle: 0 as Radians,
|
||||
angle: radians(0),
|
||||
strokeColor: "#000000",
|
||||
backgroundColor: "#fa5252",
|
||||
fillStyle: "hachure",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import type { LineSegment } from "../math";
|
||||
import { isLineSegment, lineSegment, point, type GlobalPoint } from "../math";
|
||||
import type { Segment } from "../math";
|
||||
import { isSegment, segment, point, type GlobalPoint } from "../math";
|
||||
import type { Bounds } from "./element/bounds";
|
||||
import { isBounds } from "./element/typeChecks";
|
||||
|
||||
|
@ -15,20 +15,20 @@ declare global {
|
|||
|
||||
export type DebugElement = {
|
||||
color: string;
|
||||
data: LineSegment<GlobalPoint>;
|
||||
data: Segment<GlobalPoint>;
|
||||
permanent: boolean;
|
||||
};
|
||||
|
||||
export const debugDrawLine = (
|
||||
segment: LineSegment<GlobalPoint> | LineSegment<GlobalPoint>[],
|
||||
segment: Segment<GlobalPoint> | Segment<GlobalPoint>[],
|
||||
opts?: {
|
||||
color?: string;
|
||||
permanent?: boolean;
|
||||
},
|
||||
) => {
|
||||
const segments = (
|
||||
isLineSegment(segment) ? [segment] : segment
|
||||
) as LineSegment<GlobalPoint>[];
|
||||
isSegment(segment) ? [segment] : segment
|
||||
) as Segment<GlobalPoint>[];
|
||||
|
||||
segments.forEach((data) =>
|
||||
addToCurrentFrame({
|
||||
|
@ -51,7 +51,7 @@ export const debugDrawPoint = (
|
|||
const yOffset = opts?.fuzzy ? Math.random() * 3 : 0;
|
||||
|
||||
debugDrawLine(
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(p[0] + xOffset - 10, p[1] + yOffset - 10),
|
||||
point<GlobalPoint>(p[0] + xOffset + 10, p[1] + yOffset + 10),
|
||||
),
|
||||
|
@ -61,7 +61,7 @@ export const debugDrawPoint = (
|
|||
},
|
||||
);
|
||||
debugDrawLine(
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(p[0] + xOffset - 10, p[1] + yOffset + 10),
|
||||
point<GlobalPoint>(p[0] + xOffset + 10, p[1] + yOffset - 10),
|
||||
),
|
||||
|
@ -82,19 +82,19 @@ export const debugDrawBounds = (
|
|||
(isBounds(box) ? [box] : box).forEach((bbox) =>
|
||||
debugDrawLine(
|
||||
[
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(bbox[0], bbox[1]),
|
||||
point<GlobalPoint>(bbox[2], bbox[1]),
|
||||
),
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(bbox[2], bbox[1]),
|
||||
point<GlobalPoint>(bbox[2], bbox[3]),
|
||||
),
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(bbox[2], bbox[3]),
|
||||
point<GlobalPoint>(bbox[0], bbox[3]),
|
||||
),
|
||||
lineSegment(
|
||||
segment(
|
||||
point<GlobalPoint>(bbox[0], bbox[3]),
|
||||
point<GlobalPoint>(bbox[0], bbox[1]),
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue