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)); }