コード例 #1
0
        private void OnTouchesEnded(List <CCTouch> touches, CCEvent touchEvent)
        {
            touches = FindUniqueTouches(touches);

            if (_trackedShape != null)
            {
                _trackedShape = null;
                return;
            }

            var lines = _lineRecognizer.End();

            // Concept
            if (lines.Count == 0 && _shapeNode.ChildrenCount > 0)
            {
                // Most likely a touch, evaulate the touch on known child nodes
                foreach (var node in _shapeNode.Children.OfType <ShapeNode>())
                {
                    node.EvaulateTap(touches.First().Location);
                }
            }
            else if (lines.Count > 0)
            {
                EvaluateLines(lines);
                Debug.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(_lineRecognizer.AllPoints));
            }
        }
コード例 #2
0
        public void ShadyRectangleTest3()
        {
            // Arrange
            var json    = "[{\"X\":188.64,\"Y\":760.510132,\"Magnitude\":783.55644978191685},{\"X\":344.16,\"Y\":760.510132,\"Magnitude\":834.75850923834139},{\"X\":491.04,\"Y\":760.510132,\"Magnitude\":905.26015631801226},{\"X\":594.720032,\"Y\":751.868,\"Magnitude\":958.64350878686128},{\"X\":650.88,\"Y\":751.868,\"Magnitude\":994.45977371870242},{\"X\":696.96,\"Y\":751.868,\"Magnitude\":1025.2115552492219},{\"X\":735.84,\"Y\":754.748657,\"Magnitude\":1054.0901672570312},{\"X\":741.6,\"Y\":754.748657,\"Magnitude\":1058.1191139821462},{\"X\":743.040039,\"Y\":746.106567,\"Magnitude\":1052.98789619908},{\"X\":741.6,\"Y\":679.85,\"Magnitude\":1006.0648652513728},{\"X\":732.959961,\"Y\":615.033752,\"Magnitude\":956.81598072965869},{\"X\":730.08,\"Y\":573.263367,\"Magnitude\":928.24981494920291},{\"X\":728.639954,\"Y\":553.098267,\"Magnitude\":914.78624526127294},{\"X\":718.56,\"Y\":545.8965,\"Magnitude\":902.403148124158},{\"X\":637.92,\"Y\":524.2911,\"Magnitude\":825.72576419871984},{\"X\":580.319946,\"Y\":524.2911,\"Magnitude\":782.08207569692217},{\"X\":478.080017,\"Y\":540.135,\"Magnitude\":721.32262650989753},{\"X\":336.960022,\"Y\":553.098267,\"Magnitude\":647.65712296358333},{\"X\":247.68,\"Y\":558.8597,\"Magnitude\":611.2851387838997},{\"X\":224.64,\"Y\":563.1808,\"Magnitude\":606.32971821852334},{\"X\":220.319992,\"Y\":609.272339,\"Magnitude\":647.8840033620246},{\"X\":200.159988,\"Y\":733.1433,\"Magnitude\":759.975746163816},{\"X\":197.28,\"Y\":782.11554,\"Magnitude\":806.612741732468},{\"X\":195.84,\"Y\":784.9963,\"Magnitude\":809.05652388604642}]";
            var points  = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Point> >(json);
            var lineRec = new LineRecognizer();

            lineRec.RegisterPoints(points);
            var path = lineRec.End();
        }
コード例 #3
0
        public void ShadyRectangleTest1()
        {
            // Arrange
            var json    = "[{ \"X\":267.042267,\"Y\":921.1268} ,{ \"X\":322.8169,\"Y\":921.1268} ,{ \"X\":365.0704,\"Y\":921.1268} ,{ \"X\":417.4648,\"Y\":921.1268} ,{ \"X\":456.338,\"Y\":921.1268} ,{ \"X\":485.0704,\"Y\":921.1268} ,{ \"X\":498.591553,\"Y\":921.1268} ,{ \"X\":508.7324,\"Y\":921.1268} ,{ \"X\":520.563354,\"Y\":921.1268} ,{ \"X\":523.943665,\"Y\":921.1268} ,{ \"X\":527.324,\"Y\":921.1268} ,{ \"X\":527.324,\"Y\":917.74646} ,{ \"X\":527.324,\"Y\":907.605652} ,{ \"X\":527.324,\"Y\":890.7042} ,{ \"X\":530.7042,\"Y\":868.7324} ,{ \"X\":534.084534,\"Y\":843.3803} ,{ \"X\":537.4648,\"Y\":816.338} ,{ \"X\":537.4648,\"Y\":797.74646} ,{ \"X\":537.4648,\"Y\":774.0845} ,{ \"X\":537.4648,\"Y\":758.8732} ,{ \"X\":537.4648,\"Y\":748.7324} ,{ \"X\":537.4648,\"Y\":745.3521} ,{ \"X\":537.4648,\"Y\":741.971863} ,{ \"X\":537.4648,\"Y\":736.9014} ,{ \"X\":534.084534,\"Y\":736.9014} ,{ \"X\":508.7324,\"Y\":736.9014} ,{ \"X\":488.4507,\"Y\":736.9014} ,{ \"X\":427.605652,\"Y\":736.9014} ,{ \"X\":378.591553,\"Y\":736.9014} ,{ \"X\":329.577454,\"Y\":736.9014} ,{ \"X\":287.323944,\"Y\":736.9014} ,{ \"X\":258.591553,\"Y\":736.9014} ,{ \"X\":241.690155,\"Y\":736.9014} ,{ \"X\":234.929581,\"Y\":736.9014} ,{ \"X\":224.788742,\"Y\":736.9014} ,{ \"X\":221.408447,\"Y\":736.9014} ,{ \"X\":218.028168,\"Y\":736.9014} ,{ \"X\":214.647873,\"Y\":736.9014} ,{ \"X\":212.957748,\"Y\":747.0423} ,{ \"X\":209.577454,\"Y\":767.324} ,{ \"X\":206.197189,\"Y\":799.436646} ,{ \"X\":206.197189,\"Y\":848.450745} ,{ \"X\":206.197189,\"Y\":880.563354} ,{ \"X\":206.197189,\"Y\":905.9155} ,{ \"X\":206.197189,\"Y\":922.8169} ,{ \"X\":206.197189,\"Y\":932.9577} ,{ \"X\":206.197189,\"Y\":939.7183} ,{ \"X\":206.197189,\"Y\":944.788757} ,{ \"X\":206.197189,\"Y\":949.859131} ,{ \"X\":209.577454,\"Y\":949.859131} ]";
            var points  = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Point> >(json);
            var lineRec = new LineRecognizer();

            lineRec.RegisterPoints(points);
            var path = lineRec.End();

            var evaluator = new PatternEvaluator();

            evaluator.Add("rect").When(Pattern.WideRectangle);

            // Act
            var result = evaluator.Evaluate(path);

            // Assert
            Assert.True(result.IsValid);
        }