public void RecordRecognizedGesture(RecognizedGesture gestureReco) { if (gestureReco == null) throw new ArgumentNullException("gestureReco"); if (!recognizedGestures.Contains(gestureReco)) recognizedGestures.Add(gestureReco); }
public void RecordSingleRecognizedGesture(RecognizedGestureEventHandler actionDelegate, params SimpleGesture[] gestures) { if (actionDelegate != null) { var gestureReco = new RecognizedGesture(gestures); gestureReco.Activated += delegate(object sender, RecognizedGestureEventArgs e) { actionDelegate(sender, e); }; RecordRecognizedGesture(gestureReco); } }
private double ComputeGestureScore(DateTime now, BlobGestureFollower follower, RecognizedGesture desiredGesture) { var sequence = follower.Sequence; if ((now - sequence.LastModificationTime) >= gestureDetectionLatency) { var machine = desiredGesture.Machine; if (sequence.Count >= machine.Descriptor.Count) { machine.Reset(); for (int i = 0; i < sequence.Count && !machine.Valid; i++) { var gesture = sequence[sequence.Count - i - 1]; if (gesture != null) { machine.Update(gesture.Gesture); } } return machine.Valid ? machine.Score : 0; } else return 0; } else return 0; }