internal Face(FaceData data) { Measurements = data.measurements; FeaturePoints = data.featurePoints; Expressions = new Dictionary <Affdex2.Expressions, float>(); for (int i = 0; i < data.expressions.Length; i++) { Expressions[data.expressions[i].expression] = data.expressions[i].value; } Emotions = new Dictionary <Affdex2.Emotions, float>(); for (int i = 0; i < data.emotions.Length; i++) { Emotions[data.emotions[i].emotion] = data.emotions[i].value; } }
/// <summary> /// ImageResults callback from native plugin! /// </summary> /// <param name="faceData">Platform-specific pointer to image results</param> public void onImageResults(IntPtr faceData) { System.Collections.Generic.Dictionary <int, Face> faces = new System.Collections.Generic.Dictionary <int, Face>(); if (faceData != IntPtr.Zero) { try { //todo: Face ID might not always be zero, or there might be more faces!!! FaceData f = (FaceData)Marshal.PtrToStructure(faceData, typeof(FaceData)); faces[0] = new Face(f); } catch (Exception e) { Debug.Log(e.Message + " " + e.StackTrace); } } detector.AddEvent(new NativeEvent(NativeEventType.ImageResults, faces)); }