From 0202ad67ae352b970ebb9c8ee3b04b7f3bebf0e9 Mon Sep 17 00:00:00 2001 From: Zachary Zhang Date: Wed, 31 Jul 2024 14:10:39 -0400 Subject: working scribble erase --- src/client/views/GestureOverlay.tsx | 71 +++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/client/views/GestureOverlay.tsx b/src/client/views/GestureOverlay.tsx index d439c3f48..6f01d3f3e 100644 --- a/src/client/views/GestureOverlay.tsx +++ b/src/client/views/GestureOverlay.tsx @@ -133,30 +133,38 @@ export class GestureOverlay extends ObservableReactComponent view.ComponentView instanceof CollectionFreeFormView); const points = this._points.map(p => ({ X: p.X, Y: p.Y })); - const cuspArray = this.getNumberOfCusps(inkPoints); + console.log(points); + const cuspArray = this.getNumberOfCusps(points); + console.log(cuspArray); let cuspBooleanArray: boolean[] = []; let docsToDelete: Doc[] = []; const childDocs = (ffView?.ComponentView as CollectionFreeFormView).childDocs; childDocs.map(doc => DocumentView.getDocumentView(doc, DocumentView.getDocumentView(doc))).filter(inkView => inkView?.ComponentView instanceof InkingStroke); - for (let doc of childDocs) { - console.log((DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData.map(point => ({ X: point.X, Y: point.Y }))); - } if ((ffView?.ComponentView as CollectionFreeFormView).childDocs) { if (cuspArray.length > 4) { + console.log('there are enough cusps'); for (let i = 0; i < cuspArray.length - 2; i++) { outerLoop: for (let doc of childDocs) { const point1 = cuspArray[i]; const point2 = cuspArray[i + 1]; const point3 = cuspArray[i + 2]; const triangleObject = { p1: { X: point1.X, Y: point1.Y }, p2: { X: point2.X, Y: point2.Y }, p3: { X: point3.X, Y: point3.Y } }; - //console.log(triangleObject + ' ' + (DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData); - if (this.isAnyPointInTriangle(triangleObject, (DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData)) { - docsToDelete.push(doc); - cuspBooleanArray.push(true); - break outerLoop; + console.log((DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData.map(point => ({ X: point.X, Y: point.Y }))); + console.log(doc.title); + if (doc.title === 'line') { + if (this.doesLineIntersectTriangle((DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData, triangleObject)) { + docsToDelete.push(doc); + cuspBooleanArray.push(true); + break outerLoop; + } + } else { + if (this.isAnyPointInTriangle(triangleObject, (DocumentView.getDocumentView(doc)?.ComponentView as InkingStroke).inkScaledData().inkData)) { + docsToDelete.push(doc); + cuspBooleanArray.push(true); + break outerLoop; + } } } cuspBooleanArray.push(false); @@ -170,6 +178,9 @@ export class GestureOverlay extends ObservableReactComponent value).length; const percentageTrues = trueCount / cuspBooleanArray.length; + if (percentageTrues > 0.75 || hasObjectInFirstAndLast25) { + console.log('requirements are met'); + } return percentageTrues > 0.75 || hasObjectInFirstAndLast25; } isRectangleOverlap(rect1: any, rect2: any): boolean { @@ -203,12 +217,47 @@ export class GestureOverlay extends ObservableReactComponent= 0 && r <= 1 && s >= 0 && s <= 1; + } @action onPointerUp = () => { console.log('pointer up'); -- cgit v1.2.3-70-g09d2