/// <summary> /// Recognizes a sketch of a circuit using the Flow. /// </summary> /// <param name="args">An unlabeled Sketch and a UserTriggered flag</param> /// <returns>A Labeled Sketch and </returns> public override RecognitionResult Recognize(RecognitionArgs args) { RecognitionResult result = new RecognitionResult(); result.UserTriggered = args.UserTriggered; // Only recognize when necessary if (!args.UserTriggered) { return(result); } // Run recognition and fill result Flow.Flow flow; try { // Try to run the flow flow = new Flow.Flow(args.Sketch); // Grab sketch result.Sketch = flow.SketchHolder; } catch (Exception e) { // Catch all other exceptions System.Windows.MessageBox.Show("General Exception from sketch recognizer component: \n" + e.Message); // Return unrecognized sketch result.Sketch = args.Sketch; } return(result); }