Beispiel #1
0
        public InkRecognitionRoot(InkRecognitionResponse response)
        {
            recognizedLines           = new Dictionary <UInt64, InkLine>();
            recognizedDrawings        = new Dictionary <UInt64, InkDrawing>();
            recognizedUnits           = new Dictionary <UInt64, InkRecognitionUnit>();
            childrenOfRecognizedUnits = new Dictionary <UInt64, List <InkRecognitionUnit> >();

            foreach (var recoUnit in response.RecognitionUnits)
            {
                switch (recoUnit.Kind)
                {
                case RecognitionUnitKind.Line:
                    var line = recoUnit as InkLine;
                    recognizedLines.Add(recoUnit.Id, line);
                    break;

                case RecognitionUnitKind.InkDrawing:
                    var drawing = recoUnit as InkDrawing;
                    recognizedDrawings.Add(recoUnit.Id, drawing);
                    break;
                }
                recognizedUnits.Add(recoUnit.Id, recoUnit);
            }

            // mapping of parent to children
            foreach (var recoUnit in response.RecognitionUnits)
            {
                var childUnits = new List <InkRecognitionUnit>();
                if (recoUnit.ChildIds != null)
                {
                    foreach (var childId in recoUnit.ChildIds)
                    {
                        var childUnit = recognizedUnits[childId];
                        childUnits.Add(childUnit);
                    }
                }
                childrenOfRecognizedUnits.Add(recoUnit.Id, childUnits);
            }
        }
 /// <summary>
 /// Ink Reco root.
 /// </summary>
 /// <param name="responseContent"></param>
 /// <returns></returns>
 public static RecognitionRoot InkRecognitionRoot(string responseContent)
 {
     return(InkRecognitionResponse.Parse(responseContent));
 }