aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/InkStrokeProperties.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2021-09-29 22:51:21 -0400
committerbobzel <zzzman@gmail.com>2021-09-29 22:51:21 -0400
commit1d2f03125cbfd1c7a03f0000454de4d70e73d690 (patch)
tree22ff01b179e1430b7a59b6a5356eb54966486bb1 /src/client/views/InkStrokeProperties.ts
parentb9adc2fec10d4509cd96558bb832f7c02bc70b25 (diff)
made IsClosed a static function. fixed warnings and errors.
Diffstat (limited to 'src/client/views/InkStrokeProperties.ts')
-rw-r--r--src/client/views/InkStrokeProperties.ts9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/client/views/InkStrokeProperties.ts b/src/client/views/InkStrokeProperties.ts
index d5033f44b..72912ff20 100644
--- a/src/client/views/InkStrokeProperties.ts
+++ b/src/client/views/InkStrokeProperties.ts
@@ -10,6 +10,7 @@ import { DocumentType } from "../documents/DocumentTypes";
import { CurrentUserUtils } from "../util/CurrentUserUtils";
import { SelectionManager } from "../util/SelectionManager";
import { undoBatch } from "../util/UndoManager";
+import { InkingStroke } from "./InkingStroke";
export class InkStrokeProperties {
static Instance: InkStrokeProperties | undefined;
@@ -187,7 +188,7 @@ export class InkStrokeProperties {
moveControl = (deltaX: number, deltaY: number, controlIndex: number) =>
this.applyFunction((doc: Doc, ink: InkData, xScale: number, yScale: number) => {
const order = controlIndex % 4;
- const closed = ink.lastElement().X === ink[0].X && ink.lastElement().Y === ink[0].Y;
+ const closed = InkingStroke.IsClosed(ink);
const newpts = ink.map((pt, i) => {
const leftHandlePoint = order === 0 && i === controlIndex + 1;
@@ -237,7 +238,7 @@ export class InkStrokeProperties {
snapControl = (inkDoc: Doc, controlIndex: number) => {
const ink = Cast(inkDoc.data, InkField)?.inkData;
if (ink) {
- const closed = ink.lastElement().X === ink[0].X && ink.lastElement().Y === ink[0].Y;
+ const closed = InkingStroke.IsClosed(ink);
// figure out which segments we don't want to snap to - avoid the dragged control point's segment and the next and prev segments (when they exist -- ie not for endpoints of unclosed curve)
const thisseg = Math.floor(controlIndex / 4) * 4;
@@ -257,7 +258,7 @@ export class InkStrokeProperties {
(nearestPt.Y - refPt.Y) * (nearestPt.Y - refPt.Y) * ptsYscale * ptsYscale);
if (near / (this.selectedInk?.lastElement().props.ScreenToLocalTransform().Scale || 1) < 10) {
- return this.moveControl((nearestPt.X - ink[controlIndex].X) * ptsXscale, (nearestPt.Y - ink[controlIndex].Y) * ptsYscale, controlIndex)
+ return this.moveControl((nearestPt.X - ink[controlIndex].X) * ptsXscale, (nearestPt.Y - ink[controlIndex].Y) * ptsYscale, controlIndex);
}
}
return false;
@@ -331,7 +332,7 @@ export class InkStrokeProperties {
@action
moveHandle = (deltaX: number, deltaY: number, handleIndex: number, oppositeHandleIndex: number, controlIndex: number) =>
this.applyFunction((doc: Doc, ink: InkData, xScale: number, yScale: number) => {
- const closed = ink.lastElement().X === ink[0].X && ink.lastElement().Y === ink[0].Y;
+ const closed = InkingStroke.IsClosed(ink);
const oldHandlePoint = ink[handleIndex];
const oppositeHandlePoint = ink[oppositeHandleIndex];
const controlPoint = ink[controlIndex];