aboutsummaryrefslogtreecommitdiff
path: root/src/pen-gestures
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2022-10-19 12:38:19 -0400
committerbobzel <zzzman@gmail.com>2022-10-19 12:38:19 -0400
commita81ab2e6f75681bc4fb3a7b49d2056144e396b94 (patch)
tree6f716c4507d486927914d609fef667d83345d777 /src/pen-gestures
parent0e3892e63758accd7dae274072ad7893934c3624 (diff)
fixed erasing straight line stroke segments caused by intersections with other strokes. cleaned up more with gestures. changed docView lock icon to be part of docDecorations.
Diffstat (limited to 'src/pen-gestures')
-rw-r--r--src/pen-gestures/GestureUtils.ts2
-rw-r--r--src/pen-gestures/ndollar.ts88
2 files changed, 37 insertions, 53 deletions
diff --git a/src/pen-gestures/GestureUtils.ts b/src/pen-gestures/GestureUtils.ts
index 2d3b1fdb8..41917aac9 100644
--- a/src/pen-gestures/GestureUtils.ts
+++ b/src/pen-gestures/GestureUtils.ts
@@ -19,8 +19,6 @@ export namespace GestureUtils {
export enum Gestures {
Line = 'line',
- StartBracket = 'startbracket',
- EndBracket = 'endbracket',
Stroke = 'stroke',
Scribble = 'scribble',
Text = 'text',
diff --git a/src/pen-gestures/ndollar.ts b/src/pen-gestures/ndollar.ts
index b10a9da17..3ee9506cb 100644
--- a/src/pen-gestures/ndollar.ts
+++ b/src/pen-gestures/ndollar.ts
@@ -145,7 +145,7 @@ export class Result {
//
// NDollarRecognizer constants
//
-const NumMultistrokes = 6;
+let NumMultistrokes = 0;
const NumPoints = 96;
const SquareSize = 250.0;
const OneDThreshold = 0.25; // customize to desired gesture set (usually 0.20 - 0.35)
@@ -162,73 +162,59 @@ const AngleSimilarityThreshold = Deg2Rad(30.0);
// NDollarRecognizer class
//
export class NDollarRecognizer {
- public Multistrokes: Multistroke[];
+ public Multistrokes: Multistroke[] = [];
- /**
- * @IMPORTANT - IF YOU'RE ADDING A NEW GESTURE, BE SURE TO INCREMENT THE NumMultiStrokes CONST RIGHT ABOVE THIS CLASS.
- */
constructor(
useBoundedRotationInvariance: boolean // constructor
) {
//
// one predefined multistroke for each multistroke type
//
- this.Multistrokes = new Array(NumMultistrokes);
- this.Multistrokes[0] = new Multistroke(
- GestureUtils.Gestures.Rectangle,
- useBoundedRotationInvariance,
- new Array(
+ this.Multistrokes.push(
+ new Multistroke(
+ GestureUtils.Gestures.Rectangle,
+ useBoundedRotationInvariance,
new Array(
- new Point(30, 146), //new Point(29, 160), new Point(30, 180), new Point(31, 200),
- new Point(30, 222), //new Point(50, 219), new Point(70, 225), new Point(90, 230),
- new Point(106, 225), //new Point(100, 200), new Point(106, 180), new Point(110, 160),
- new Point(106, 146), //new Point(80, 150), new Point(50, 146),
- new Point(30, 143)
+ new Array(
+ new Point(30, 146), //new Point(29, 160), new Point(30, 180), new Point(31, 200),
+ new Point(30, 222), //new Point(50, 219), new Point(70, 225), new Point(90, 230),
+ new Point(106, 225), //new Point(100, 200), new Point(106, 180), new Point(110, 160),
+ new Point(106, 146), //new Point(80, 150), new Point(50, 146),
+ new Point(30, 143)
+ )
)
)
);
- this.Multistrokes[1] = new Multistroke(GestureUtils.Gestures.Line, useBoundedRotationInvariance, new Array(new Array(new Point(12, 347), new Point(119, 347))));
- this.Multistrokes[2] = new Multistroke(
- GestureUtils.Gestures.StartBracket,
- useBoundedRotationInvariance,
- new Array(
- // new Array(new Point(145, 20), new Point(30, 21), new Point(34, 150))
- new Array(new Point(31, 25), new Point(145, 20), new Point(31, 25), new Point(34, 150))
+ this.Multistrokes.push(new Multistroke(GestureUtils.Gestures.Line, useBoundedRotationInvariance, new Array(new Array(new Point(12, 347), new Point(119, 347)))));
+ this.Multistrokes.push(
+ new Multistroke(
+ GestureUtils.Gestures.Triangle, // equilateral
+ useBoundedRotationInvariance,
+ new Array(new Array(new Point(40, 100), new Point(100, 200), new Point(140, 102), new Point(42, 100)))
)
);
- this.Multistrokes[3] = new Multistroke(
- GestureUtils.Gestures.EndBracket,
- useBoundedRotationInvariance,
- new Array(
- // new Array(new Point(150, 21), new Point(149, 150), new Point(26, 152))
- // new Array(new Point(150, 150), new Point(150, 0), new Point(150, 150), new Point(0, 150))
- new Array(new Point(10, 100), new Point(100, 100), new Point(150, 12), new Point(200, 103), new Point(300, 100))
- )
- );
- this.Multistrokes[4] = new Multistroke(
- GestureUtils.Gestures.Triangle, // equilateral
- useBoundedRotationInvariance,
- new Array(new Array(new Point(40, 100), new Point(100, 200), new Point(140, 102), new Point(42, 100)))
- );
- this.Multistrokes[5] = new Multistroke(
- GestureUtils.Gestures.Circle,
- useBoundedRotationInvariance,
- new Array(
+ this.Multistrokes.push(
+ new Multistroke(
+ GestureUtils.Gestures.Circle,
+ useBoundedRotationInvariance,
new Array(
- new Point(200, 250),
- new Point(240, 230),
- new Point(248, 210),
- new Point(248, 190),
- new Point(240, 170),
- new Point(200, 150),
- new Point(160, 170),
- new Point(151, 190),
- new Point(151, 210),
- new Point(160, 230),
- new Point(201, 250)
+ new Array(
+ new Point(200, 250),
+ new Point(240, 230),
+ new Point(248, 210),
+ new Point(248, 190),
+ new Point(240, 170),
+ new Point(200, 150),
+ new Point(160, 170),
+ new Point(151, 190),
+ new Point(151, 210),
+ new Point(160, 230),
+ new Point(201, 250)
+ )
)
)
);
+ NumMultistrokes = this.Multistrokes.length; // NumMultistrokes flags the end of the non user-defined gstures strokes
//
// PREDEFINED STROKES
//