diff --git a/AffdexMe/AffdexMe.csproj b/AffdexMe/AffdexMe.csproj
index a176850..dd0b15f 100644
--- a/AffdexMe/AffdexMe.csproj
+++ b/AffdexMe/AffdexMe.csproj
@@ -37,7 +37,7 @@
4
-
+
False
c:\Program Files (x86)\Affectiva\Affdex SDK\bin\release\Affdex.dll
@@ -55,8 +55,14 @@
+
+ $(ProjectDir)packages\WpfAnimatedGif.1.4.13\lib\net\WpfAnimatedGif.dll
+
+
+
+
MSBuild:Compile
Designer
@@ -68,6 +74,10 @@
$(ProjectDir)MainWindow.xaml
Code
+
+ MSBuild:Compile
+ Designer
+
@@ -102,9 +112,59 @@
-
- PreserveNewest
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AffdexMe/MainWindow.xaml b/AffdexMe/MainWindow.xaml
index 3412242..790e98b 100644
--- a/AffdexMe/MainWindow.xaml
+++ b/AffdexMe/MainWindow.xaml
@@ -28,7 +28,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
@@ -103,7 +103,8 @@
-
+
@@ -127,13 +128,16 @@
-
+ Height="auto" Source="AffectivaLogo1.png" Visibility="Visible"/>
+
+
+
+
@@ -158,51 +162,51 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -224,7 +228,7 @@
+ Height="auto" Source="AffectivaLogo1.png" Margin="0,0,0,-34" Grid.RowSpan="2"/>
@@ -234,11 +238,13 @@
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/AffdexMe/MainWindow.xaml.cs b/AffdexMe/MainWindow.xaml.cs
index 79f2e83..3a05881 100644
--- a/AffdexMe/MainWindow.xaml.cs
+++ b/AffdexMe/MainWindow.xaml.cs
@@ -10,38 +10,21 @@ using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
+using System.Collections.Specialized;
using Microsoft.Win32;
+using System.Reflection;
namespace AffdexMe
{
///
/// Interaction logic for MainWindow.xaml
///
- public partial class MainWindow : Window
+ public partial class MainWindow : Window, Affdex.ImageListener, Affdex.ProcessStatusListener
{
- ///
- /// Location of Affdex Data files
- ///
- private const String AFFDEX_DATA_PATH = "C:\\Program Files (x86)\\Affectiva\\Affdex SDK\\data";
-
- ///
- /// Location of AffdexSDK Licence file
- ///
- private const String AFFDEX_LICENSE_FILE = "C:\\Program Files (x86)\\Affectiva\\Affdex SDK\\affdex.license";
#region Member Variables and Enums
- enum AffdexFaceClassifiers : int
- {
- Smile = 0,
- BrowFurrow = 1,
- BrowRaise = 2,
- LipCornerDepressor = 3,
- Engagement = 4,
- Valence = 5
- };
-
///
/// The minimum length of the Classifier Value textbox
///
@@ -71,8 +54,9 @@ namespace AffdexMe
private Affdex.CameraDetector mCameraDetector;
- private DateTime mStartTime;
+ private StringCollection mEnabledClassifiers;
+ private DateTime mStartTime;
private float mCurrentTimeStamp;
///
@@ -82,6 +66,7 @@ namespace AffdexMe
private double mImageYScaleFactor;
private bool mShowFacePoints;
+ private bool mShowMeasurements;
#endregion
@@ -109,65 +94,34 @@ namespace AffdexMe
#region Listener Implementation
- ///
- ///
- ///
- class Listener : Affdex.ImageListener, Affdex.ProcessStatusListener
+ public void onImageResults(Dictionary faces, Affdex.Frame image)
{
- public event EventHandler ImageCaptureUpdate;
- public event EventHandler ImageResultsUpdate;
- public event EventHandler ExceptionHandler;
-
- public void onImageResults(Dictionary faces, Affdex.Frame image)
+ // For now only single face is supported
+ if ((faces.Count() >= 1))
{
- // For now only single face is supported
- if ((faces.Count() >= 1))
- {
- Affdex.Face face = faces[0];
+ Affdex.Face face = faces[0];
- if (ImageResultsUpdate != null)
- {
- ImageResultsDataUpdateArgs imageResultsData = new ImageResultsDataUpdateArgs()
- {
- Image = image,
- ImageResultsTimeStamp = image.getTimestamp(),
- Face = face
- };
- ImageResultsUpdate(this, imageResultsData);
- }
- }
- }
-
- ///
- ///
- ///
- ///
- public void onImageCapture(Affdex.Frame image)
- {
- if (ImageCaptureUpdate != null)
- {
- ImageCaptureDataUpdateArgs imageCaptureData = new ImageCaptureDataUpdateArgs()
- {
- Image = image,
- ImageCaptureTimeStamp = image.getTimestamp()
- };
- ImageCaptureUpdate(this, imageCaptureData);
-
- }
+ UpdateClassifierPanel(face);
+ DisplayFeaturePoints(image, face);
+ DisplayMeasurements(face);
}
+ }
- public void onProcessingException(Affdex.AffdexException ex)
- {
- if (ExceptionHandler != null)
- {
- ExceptionHandler(this, ex);
- }
- }
+ public void onImageCapture(Affdex.Frame image)
+ {
+ UpdateClassifierPanel();
+ DisplayImageToOffscreenCanvas(image);
+ }
- public void onProcessingFinished()
- {
- }
- };
+ public void onProcessingException(Affdex.AffdexException ex)
+ {
+ String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message;
+ ShowExceptionAndShutDown(message);
+ }
+
+ public void onProcessingFinished()
+ {
+ }
#endregion
@@ -183,6 +137,67 @@ namespace AffdexMe
}));
}
+ private String GetClassifierDataFolder()
+ {
+ // First see if we can get the Install Path from the registry
+ RegistryKey rkCurrentUser = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
+ RegistryKey rkAffdexMe = rkCurrentUser.OpenSubKey("Software\\Affectiva\\AffdexMe");
+ String classifierPath = String.Empty;
+ if (rkAffdexMe != null && !String.IsNullOrEmpty((String)rkAffdexMe.GetValue("Install Directory")))
+ {
+ classifierPath = (String)rkAffdexMe.GetValue("Install Directory") + "\\data";
+ }
+ else
+ {
+ String affdexClassifierDir = Environment.GetEnvironmentVariable("AFFDEX_DATA_DIR");
+ if (String.IsNullOrEmpty(affdexClassifierDir))
+ {
+ ShowExceptionAndShutDown("AFFDEX_DATA_DIR environment variable (Classifier Data Directory) is not set");
+ }
+ else
+ {
+ classifierPath = affdexClassifierDir;
+ }
+ }
+
+ DirectoryInfo directoryInfo = new DirectoryInfo(classifierPath);
+ if (!directoryInfo.Exists)
+ {
+ ShowExceptionAndShutDown("AFFDEX_DATA_DIR (Classifier Data Directory) is set to an invalid folder location");
+ }
+
+ return classifierPath;
+ }
+
+ private String GetAffdexLicense()
+ {
+ // First see if we can get the License from the registry
+ RegistryKey rkCurrentUser = Registry.LocalMachine;
+ RegistryKey rkAffdexMe = rkCurrentUser.OpenSubKey("Software\\Affectiva\\AffdexMe");
+ String licensePath = String.Empty;
+ if ( rkAffdexMe != null && !String.IsNullOrEmpty((string)rkAffdexMe.GetValue("Install Directory")))
+ {
+ licensePath = (String)rkAffdexMe.GetValue("Install Directory");
+ }
+ else
+ {
+ licensePath = Environment.GetEnvironmentVariable("AFFDEX_LICENSE_DIR");
+ if (String.IsNullOrEmpty(licensePath))
+ {
+ ShowExceptionAndShutDown("AFFDEX_LICENSE_DIR environment variable (Affdex License Folder) is not set");
+ }
+ }
+
+ // Test the directory
+ DirectoryInfo directoryInfo = new DirectoryInfo(licensePath);
+ if (!directoryInfo.Exists)
+ {
+ ShowExceptionAndShutDown("AFFDEX_License_DIR (Affex License Folder) is set to an invalid folder location");
+ }
+
+ return licensePath + "\\affdex.license";
+ }
+
public MainWindow()
{
InitializeComponent();
@@ -193,6 +208,7 @@ namespace AffdexMe
{
InitializeCameraApp();
+ mEnabledClassifiers = AffdexMe.Settings.Default.Classifiers;
// Enable/Disable buttons on start
btnStartCamera.IsEnabled =
btnResetCamera.IsEnabled =
@@ -200,6 +216,16 @@ namespace AffdexMe
btnStopCamera.IsEnabled =
btnExit.IsEnabled = true;
+ if (AffdexMe.Settings.Default.ShowPoints)
+ {
+ btnShowPoints_Click(null, null);
+ }
+
+ if (AffdexMe.Settings.Default.ShowMeasurements)
+ {
+ btnShowMeasurements_Click(null, null);
+ }
+
this.ContentRendered += MainWindow_ContentRendered;
}
@@ -248,6 +274,29 @@ namespace AffdexMe
return null;
}
+ private void DisplayMeasurements(Affdex.Face affdexFace)
+ {
+ //Update measurements
+ try
+ {
+ var result = this.Dispatcher.BeginInvoke((Action)(() =>
+ {
+ if (mShowMeasurements && (affdexFace != null))
+ {
+ interocularDistanceDisplay.Text = String.Format("Interocular Distance: {0}", affdexFace.Measurements.InterocularDistance);
+ pitchDisplay.Text = String.Format("Pitch Angle: {0}", affdexFace.Measurements.Orientation.Pitch);
+ yawDisplay.Text = String.Format("Yaw Angle: {0}", affdexFace.Measurements.Orientation.Yaw);
+ rollDisplay.Text = String.Format("Roll Angle: {0}", affdexFace.Measurements.Orientation.Roll);
+ }
+ }));
+ }
+ catch(Exception ex)
+ {
+ String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message;
+ ShowExceptionAndShutDown(message);
+ }
+ }
+
private void DisplayFeaturePoints(Affdex.Frame affdexImage, Affdex.Face affdexFace)
{
try
@@ -255,7 +304,7 @@ namespace AffdexMe
// Plot Face Points
if ((mShowFacePoints) && (affdexFace != null))
{
- canvasFacePoints.Dispatcher.BeginInvoke((Action)(() =>
+ var result = this.Dispatcher.BeginInvoke((Action)(() =>
{
if ((mCameraDetector != null) && (mCameraDetector.isRunning()))
{
@@ -268,7 +317,7 @@ namespace AffdexMe
mImageYScaleFactor = imgAffdexFaceDisplay.ActualHeight / affdexImage.getHeight();
SolidColorBrush pointBrush = new SolidColorBrush(Colors.Cornsilk);
- var featurePoints = affdexFace.getFeaturePoints();
+ var featurePoints = affdexFace.FeaturePoints;
foreach (var point in featurePoints)
{
Ellipse ellipse = new Ellipse()
@@ -279,15 +328,15 @@ namespace AffdexMe
};
canvasFacePoints.Children.Add(ellipse);
- Canvas.SetLeft(ellipse, point.x * mImageXScaleFactor);
- Canvas.SetTop(ellipse, point.y * mImageYScaleFactor);
+ Canvas.SetLeft(ellipse, point.X * mImageXScaleFactor);
+ Canvas.SetTop(ellipse, point.Y * mImageYScaleFactor);
}
// Draw Face Bounding Rectangle
- var xMax = featurePoints.Max(r => r.x);
- var xMin = featurePoints.Min(r => r.x);
- var yMax = featurePoints.Max(r => r.y);
- var yMin = featurePoints.Min(r => r.y);
+ var xMax = featurePoints.Max(r => r.X);
+ var xMin = featurePoints.Min(r => r.X);
+ var yMax = featurePoints.Max(r => r.Y);
+ var yMin = featurePoints.Min(r => r.Y);
// Adjust the x/y min to accomodate all points
xMin -= 2;
@@ -312,14 +361,11 @@ namespace AffdexMe
Canvas.SetTop(boundingBox, yMin * mImageYScaleFactor);
mFeaturePointsSkipCount = 0;
-
- affdexFace.Dispose();
- affdexImage.Dispose();
}
}));
}
}
- catch (Exception ex)
+ catch(Exception ex)
{
String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message;
ShowExceptionAndShutDown(message);
@@ -343,13 +389,19 @@ namespace AffdexMe
// A Face was found - this comes from ImageResults CallBack
if (face != null)
{
- // Convert classifier value to Integer (percentage) for display purposes
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Smile] = Convert.ToInt32(Math.Round(face.getSmileScore(), MidpointRounding.AwayFromZero));
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.BrowFurrow] = Convert.ToInt32(Math.Round(face.getBrowFurrowScore(), MidpointRounding.AwayFromZero));
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.BrowRaise] = Convert.ToInt32(Math.Round(face.getBrowRaiseScore(), MidpointRounding.AwayFromZero));
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.LipCornerDepressor] = Convert.ToInt32(Math.Round(face.getLipCornerDepressorScore(), MidpointRounding.AwayFromZero));
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Engagement] = Convert.ToInt32(Math.Round(face.getEngagementScore(), MidpointRounding.AwayFromZero));
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Valence] = Convert.ToInt32(Math.Round(face.getValenceScore(), MidpointRounding.AwayFromZero));
+ int index = 0;
+ foreach (String metric in mEnabledClassifiers)
+ {
+ PropertyInfo info;
+ float value = -1;
+ if ((info = face.Expressions.GetType().GetProperty(NameMappings(metric))) != null) value = (float)info.GetValue(face.Expressions, null);
+ else if ((info = face.Emotions.GetType().GetProperty(NameMappings(metric))) != null) value = (float)info.GetValue(face.Emotions, null);
+
+ // Convert classifier value to Integer (percentage) for display purposes
+ mAffdexClassifierValues[index] = Convert.ToInt32(Math.Round(value, MidpointRounding.AwayFromZero));
+ index++;
+
+ }
// Reset the cache count
mCachedSkipFaceResultsCount = 0;
@@ -362,12 +414,7 @@ namespace AffdexMe
}
else if (++mCachedSkipFaceResultsCount > 10)
{
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Smile] =
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.BrowFurrow] =
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.BrowRaise] =
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.LipCornerDepressor] =
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Engagement] =
- mAffdexClassifierValues[(int)AffdexFaceClassifiers.Valence] = 0;
+ for (int r = 0; r < mAffdexClassifierValues.Count(); r++) mAffdexClassifierValues[r] = 0;
// If we haven't seen a face in the past 30 frames (roughly 30/15fps seconds), don't display the classifiers
if (mCachedSkipFaceResultsCount >= 30)
@@ -376,21 +423,26 @@ namespace AffdexMe
}
}
- // Only display the classifiers and FacePoints if we've had a re
- if (displayClassifiers)
+ var result = this.Dispatcher.BeginInvoke((Action)(() =>
{
- // Update the Classifier Display
- UpdateClassifier(txtSmileClassifierName, txtSmileClassifierValue, txtSmileClassifierValueBackground, AffdexFaceClassifiers.Smile);
- UpdateClassifier(txtFrownClassifierName, txtFrownClassifierValue, txtFrownClassifierValueBackground, AffdexFaceClassifiers.LipCornerDepressor);
- UpdateClassifier(txtBrowRaiseClassifierName, txtBrowRaiseClassifierValue, txtBrowRaiseClassifierValueBackground, AffdexFaceClassifiers.BrowRaise);
- UpdateClassifier(txtValenceClassifierName, txtValenceClassifierValue, txtValenceClassifierValueBackground, AffdexFaceClassifiers.Valence);
- UpdateClassifier(txtBrowLowerClassifierName, txtBrowLowerClassifierValue, txtBrowLowerClassifierValueBackground, AffdexFaceClassifiers.BrowFurrow);
- UpdateClassifier(txtEngagementClassifierName, txtEngagementClassifierValue, txtEngagementClassifierValueBackground, AffdexFaceClassifiers.Engagement);
- }
+ // Only display the classifiers and FacePoints if we've had a re
+ if (displayClassifiers)
+ {
+ int r = 0;
+ foreach (String classifier in mEnabledClassifiers)
+ {
+ String stackPanelName = String.Format("stackPanel{0}", r);
+ TextBlock ClassifierName = (TextBlock) gridClassifierDisplay.FindName(String.Format("{0}Name", stackPanelName));
+ TextBlock ClassifierValueBackgroud = (TextBlock)gridClassifierDisplay.FindName(String.Format("{0}ValueBackgroud", stackPanelName));
+ TextBlock ClassifierValue = (TextBlock)gridClassifierDisplay.FindName(String.Format("{0}Value", stackPanelName));
+ // Update the Classifier Display
+ UpdateClassifier(ClassifierName, ClassifierValue, ClassifierValueBackgroud, classifier, r);
+ r++;
- // Update the Image control from the UI thread
- stackPanelClassifiers.Dispatcher.BeginInvoke((Action)(() =>
- {
+ }
+ }
+
+ // Update the Image control from the UI thread
if ((mCameraDetector != null) && (mCameraDetector.isRunning()))
{
if (imgAffdexFaceDisplay.Visibility == Visibility.Hidden)
@@ -400,6 +452,10 @@ namespace AffdexMe
stackPanelLogoBackground.Visibility = Visibility.Visible;
}
stackPanelClassifiers.Visibility = (displayClassifiers)?Visibility.Visible : Visibility.Hidden;
+ interocularDistanceDisplay.Visibility = (displayClassifiers && mShowMeasurements) ? Visibility.Visible : Visibility.Hidden;
+ pitchDisplay.Visibility = (displayClassifiers && mShowMeasurements) ? Visibility.Visible : Visibility.Hidden;
+ yawDisplay.Visibility = (displayClassifiers && mShowMeasurements) ? Visibility.Visible : Visibility.Hidden;
+ rollDisplay.Visibility = (displayClassifiers && mShowMeasurements) ? Visibility.Visible : Visibility.Hidden;
}
}));
}
@@ -411,11 +467,22 @@ namespace AffdexMe
}
}
+ private String NameMappings(String classifierName)
+ {
+ if (classifierName == "Frown")
+ {
+ return "LipCornerDepressor";
+ }
+ return classifierName;
+ }
+
private void UpdateClassifier(TextBlock txtClassifier, TextBlock txtClassifierValue,
- TextBlock txtClassifierValueBackground, AffdexFaceClassifiers classifierIndex)
+ TextBlock txtClassifierValueBackground, String classifierName, int classifierIndex)
{
try
{
+ UpperCaseConverter conv = new UpperCaseConverter();
+ txtClassifier.Text = (String)conv.Convert(classifierName, null, null, null);
int classifierValue = mAffdexClassifierValues[(int)classifierIndex];
// Calculate the width
@@ -432,13 +499,9 @@ namespace AffdexMe
backgroundColor = Colors.Red;
}
- txtClassifierValue.Dispatcher.BeginInvoke((Action)(() =>
- {
- txtClassifierValueBackground.Background = new SolidColorBrush(backgroundColor);
- txtClassifierValueBackground.Width = width;
- txtClassifierValue.Text = String.Format("{0}%", classifierValue);
- }));
-
+ txtClassifierValueBackground.Background = new SolidColorBrush(backgroundColor);
+ txtClassifierValueBackground.Width = width;
+ txtClassifierValue.Text = String.Format("{0}%", classifierValue);
}
catch (Exception ex)
{
@@ -450,7 +513,7 @@ namespace AffdexMe
private void DisplayImageToOffscreenCanvas(Affdex.Frame image)
{
// Update the Image control from the UI thread
- imgAffdexFaceDisplay.Dispatcher.BeginInvoke((Action)(() =>
+ var result = this.Dispatcher.BeginInvoke((Action)(() =>
{
try
{
@@ -493,6 +556,7 @@ namespace AffdexMe
btnStartCamera.Click += btnStartCamera_Click;
btnStopCamera.Click += btnStopCamera_Click;
btnShowPoints.Click += btnShowPoints_Click;
+ btnShowMeasurements.Click += btnShowMeasurements_Click;
btnResetCamera.Click += btnResetCamera_Click;
btnExit.Click += btnExit_Click;
@@ -510,6 +574,7 @@ namespace AffdexMe
// Face Points are off by default
mShowFacePoints = false;
+ mShowMeasurements = false;
// Show the logo
imgAffdexLogoDisplay.Visibility = Visibility.Visible;
@@ -555,6 +620,44 @@ namespace AffdexMe
}
}
+ void btnShowMeasurements_Click(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ Style style;
+ String buttonText = String.Empty;
+
+ mShowMeasurements = !mShowMeasurements;
+ if (mShowMeasurements)
+ {
+ style = this.FindResource("PointsOnButtonStyle") as Style;
+ buttonText = "Hide Measurements";
+ interocularDistanceDisplay.Visibility = Visibility.Visible;
+ pitchDisplay.Visibility = Visibility.Visible;
+ yawDisplay.Visibility = Visibility.Visible;
+ rollDisplay.Visibility = Visibility.Visible;
+ }
+ else
+ {
+ style = this.FindResource("CustomButtonStyle") as Style;
+ buttonText = "Show Measurements";
+ interocularDistanceDisplay.Visibility = Visibility.Hidden;
+ pitchDisplay.Visibility = Visibility.Hidden;
+ yawDisplay.Visibility = Visibility.Hidden;
+ rollDisplay.Visibility = Visibility.Hidden;
+ }
+
+ btnShowMeasurements.Style = style;
+ btnShowMeasurements.Content = buttonText;
+
+ }
+ catch (Exception ex)
+ {
+ String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message;
+ ShowExceptionAndShutDown(message);
+ }
+ }
+
private void btnResetCamera_Click(object sender, RoutedEventArgs e)
{
ResetCameraProcessing();
@@ -581,9 +684,18 @@ namespace AffdexMe
void btnExit_Click(object sender, RoutedEventArgs e)
{
+ SaveSettings();
Application.Current.Shutdown();
}
+ void SaveSettings()
+ {
+ AffdexMe.Settings.Default.ShowPoints = mShowFacePoints;
+ AffdexMe.Settings.Default.ShowMeasurements = mShowMeasurements;
+ AffdexMe.Settings.Default.Classifiers = mEnabledClassifiers;
+ AffdexMe.Settings.Default.Save();
+ }
+
private void ClearClassifiersAndPointsDisplay()
{
// Hide AffdexFace Image
@@ -591,6 +703,12 @@ namespace AffdexMe
stackPanelLogoBackground.Visibility =
stackPanelClassifiersBackground.Visibility = Visibility.Hidden;
+ //Clean measurements
+ interocularDistanceDisplay.Text = String.Format("Interocular Distance: {0}", 0);
+ pitchDisplay.Text = String.Format("Pitch Angle: {0}", 0);
+ yawDisplay.Text = String.Format("Yaw Angle: {0}", 0);
+ rollDisplay.Text = String.Format("Roll Angle: {0}", 0);
+
// Hide the Classifier Panel
stackPanelClassifiers.Visibility = Visibility.Hidden;
@@ -614,21 +732,33 @@ namespace AffdexMe
}
}
+ private void TurnOnClassifiers()
+ {
+ mCameraDetector.setDetectAllEmotions(false);
+ mCameraDetector.setDetectAllExpressions(false);
+ foreach (String metric in mEnabledClassifiers)
+ {
+ MethodInfo setMethodInfo = mCameraDetector.GetType().GetMethod(String.Format("setDetect{0}", NameMappings(metric)));
+ setMethodInfo.Invoke(mCameraDetector, new object[] { true });
+ }
+ }
+
private void StartCameraProcessing()
{
try
{
+ btnStartCamera.IsEnabled = false;
+ btnResetCamera.IsEnabled =
+ btnShowPoints.IsEnabled =
+ btnStopCamera.IsEnabled =
+ btnExit.IsEnabled = true;
+
// Instantiate CameraDetector using default camera ID
mCameraDetector = new Affdex.CameraDetector();
- mCameraDetector.setClassifierPath(AFFDEX_DATA_PATH);
+ mCameraDetector.setClassifierPath(GetClassifierDataFolder());
// Set the Classifiers that we are interested in tracking
- mCameraDetector.setDetectSmile(true);
- mCameraDetector.setDetectBrowFurrow(true);
- mCameraDetector.setDetectBrowRaise(true);
- mCameraDetector.setDetectLipCornerDepressor(true);
- mCameraDetector.setDetectEngagement(true);
- mCameraDetector.setDetectValence(true);
+ TurnOnClassifiers();
// Initialize Classifier cache
for (int index = 0; index < mAffdexClassifierValues.Count(); index++)
@@ -637,23 +767,13 @@ namespace AffdexMe
}
mCachedSkipFaceResultsCount = 0;
+ mCameraDetector.setImageListener(this);
+ mCameraDetector.setProcessStatusListener(this);
- Listener listener = new Listener();
- listener.ImageCaptureUpdate += imageListener_ImageCaptureUpdate;
- listener.ImageResultsUpdate += imageListener_ImageResultsUpdate;
- listener.ExceptionHandler += imageListener_ExceptionHandler;
- mCameraDetector.setImageListener(listener);
- mCameraDetector.setProcessStatusListener(listener);
-
- btnStartCamera.IsEnabled = false;
- btnResetCamera.IsEnabled =
- btnShowPoints.IsEnabled =
- btnStopCamera.IsEnabled =
- btnExit.IsEnabled = true;
// Set the License Path
- mCameraDetector.setLicensePath(AFFDEX_LICENSE_FILE);
+ mCameraDetector.setLicensePath(GetAffdexLicense());
mStartTime = DateTime.Now;
mCameraDetector.start();
@@ -690,24 +810,6 @@ namespace AffdexMe
}
}
- void imageListener_ExceptionHandler(object sender, Affdex.AffdexException ex)
- {
- String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message;
- ShowExceptionAndShutDown(message);
- }
-
- void imageListener_ImageResultsUpdate(object sender, MainWindow.ImageResultsDataUpdateArgs e)
- {
- UpdateClassifierPanel(e.Face);
- DisplayFeaturePoints(e.Image, e.Face);
- }
-
- void imageListener_ImageCaptureUpdate(object sender, MainWindow.ImageCaptureDataUpdateArgs e)
- {
- UpdateClassifierPanel();
- DisplayImageToOffscreenCanvas(e.Image);
- }
-
private void ResetCameraProcessing()
{
try
@@ -748,8 +850,28 @@ namespace AffdexMe
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
StopCameraProcessing();
+ SaveSettings();
Application.Current.Shutdown();
}
+ private void btnChooseWin_Click(object sender, RoutedEventArgs e)
+ {
+ Boolean wasRunning = false;
+ if ((mCameraDetector != null) && (mCameraDetector.isRunning()))
+ {
+ StopCameraProcessing();
+ ResetDisplayArea();
+ wasRunning = true;
+ }
+
+ MetricSelectionUI w = new MetricSelectionUI(mEnabledClassifiers);
+ w.ShowDialog();
+ mEnabledClassifiers = w.Classifiers;
+ if (wasRunning)
+ {
+ StartCameraProcessing();
+ }
+ }
+
}
}
diff --git a/AffdexMe/MetricSelectionUI.xaml b/AffdexMe/MetricSelectionUI.xaml
new file mode 100644
index 0000000..2e3ce1f
--- /dev/null
+++ b/AffdexMe/MetricSelectionUI.xaml
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AffdexMe/MetricSelectionUI.xaml.cs b/AffdexMe/MetricSelectionUI.xaml.cs
new file mode 100644
index 0000000..4cdc078
--- /dev/null
+++ b/AffdexMe/MetricSelectionUI.xaml.cs
@@ -0,0 +1,200 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using WpfAnimatedGif;
+
+namespace AffdexMe
+{
+ ///
+ /// Interaction logic for Window1.xaml
+ ///
+ public partial class MetricSelectionUI : Window
+ {
+ const String SELECTMSG = "Please select 6 Emotions or Expressions to track.";
+ const String ACTIVEMSG = "{0} Metrics chosen, please select {1} more.";
+ const String DONEMSG = "{0} Metrics chosen.";
+ const String DESELECTMSG = "Reached max number of metrics selected.";
+
+ public MetricSelectionUI(StringCollection enabled_classifiers)
+ {
+ InitializeComponent();
+ CenterWindowOnScreen();
+ Classifiers = enabled_classifiers;
+ foreach (String classifier in enabled_classifiers)
+ {
+ Border border = getBorder(classifier);
+ border.BorderBrush = Brushes.Green;
+ }
+ }
+
+ private void CenterWindowOnScreen()
+ {
+ double screenWidth = System.Windows.SystemParameters.PrimaryScreenWidth;
+ double screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
+ double windowWidth = this.Width;
+ double windowHeight = this.Height;
+ this.Left = (screenWidth / 2) - (windowWidth / 2);
+ this.Top = (screenHeight / 2) - (windowHeight / 2);
+ }
+
+ private void StackPanel_MouseEnter(object sender, MouseEventArgs e)
+ {
+ Border border = (Border)((StackPanel)sender).Parent;
+ if (!isStackPanelSelected(border))
+ border.BorderBrush = Brushes.Coral;
+ var image = ((StackPanel)sender).Children.OfType().FirstOrDefault();
+ NameToResourceConverter conv = new NameToResourceConverter();
+ var gifUri = conv.Convert(((StackPanel)sender).Name, null, "gif", null);
+
+ var img = new BitmapImage();
+ img.BeginInit();
+ img.UriSource = (Uri) gifUri;
+ img.EndInit();
+ ImageBehavior.SetAnimatedSource(image, img);
+ playGif(image);
+ }
+
+ private void StackPanel_MouseLeave(object sender, MouseEventArgs e)
+ {
+ Border border = (Border)((StackPanel)sender).Parent;
+ var image = ((StackPanel)sender).Children.OfType().FirstOrDefault();
+ NameToResourceConverter conv = new NameToResourceConverter();
+ stopGif(image);
+ var img = new BitmapImage();
+ img.BeginInit();
+ img.UriSource = (Uri)conv.Convert(((StackPanel)sender).Name, null, "jpg", null);
+ img.EndInit();
+ ImageBehavior.SetAnimatedSource(image, img);
+
+ if (!isStackPanelSelected(border))
+ border.BorderBrush = Brushes.White;
+
+ int classifersCount = Classifiers.Count;
+ if (classifersCount == 6) txtBlkInfo.Text = String.Format(DONEMSG, classifersCount);
+ else txtBlkInfo.Text = String.Format(ACTIVEMSG, classifersCount, 6 - classifersCount);
+ }
+
+ private void stopGif(Image image)
+ {
+ var control = ImageBehavior.GetAnimationController(image);
+ if (control != null)
+ {
+ control.Pause();
+ control.GotoFrame(control.FrameCount - 1);
+ }
+ }
+
+ private void playGif(Image image)
+ {
+ var control = ImageBehavior.GetAnimationController(image);
+ control.GotoFrame(0);
+ control.Play();
+ }
+
+ private void StackPanel_MouseDown(object sender, MouseButtonEventArgs e)
+ {
+ Border border = (Border)((StackPanel)sender).Parent;
+ if (isStackPanelSelected(border))
+ {
+ border.BorderBrush = Brushes.White;
+ Classifiers.Remove(((StackPanel)sender).Name);
+ }
+ else {
+ int classifersCount = Classifiers.Count;
+ if ( classifersCount < 6)
+ {
+ border.BorderBrush = Brushes.Green;
+ Classifiers.Add(((StackPanel)sender).Name);
+ if (classifersCount + 1 == 6) txtBlkInfo.Text = String.Format(DONEMSG, classifersCount + 1);
+ else txtBlkInfo.Text = String.Format(ACTIVEMSG, classifersCount+1, 6 - classifersCount);
+ }
+ else
+ {
+ border.BorderBrush = Brushes.Red;
+ txtBlkInfo.Text = DESELECTMSG;
+ }
+
+ }
+
+ }
+
+ private Border getBorder(String name)
+ {
+ Border border = null;
+ foreach (StackPanel panel in theGrid.Children.OfType())
+ {
+ var tempBorder = panel.Children.OfType().FirstOrDefault();
+ var stackPanel = (StackPanel)tempBorder.Child;
+ if (stackPanel.Name == name) border = tempBorder;
+ }
+ return border;
+ }
+
+ private bool isStackPanelSelected(Border border)
+ {
+ return (border.BorderBrush == Brushes.Green);
+ }
+
+ public StringCollection Classifiers {get;set;}
+
+ public String ActiveClassifierList
+ {
+ get
+ {
+ String classifiers = "";
+ foreach(String key in Classifiers)
+ classifiers += String.Format("{0},", key);
+ return String.Format("{0} active classifiers: {1}", Classifiers.Count, classifiers);
+ }
+ }
+
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ int selectedClassifiersCount = Classifiers.Count;
+ if ( selectedClassifiersCount < 6)
+ {
+ int missing = 6 - selectedClassifiersCount;
+ List panels = theGrid.Children.OfType().ToList();
+ int index = 0;
+ while (selectedClassifiersCount < 6)
+ {
+ var tempBorder = panels[index].Children.OfType().FirstOrDefault();
+ var stackPanel = (StackPanel)tempBorder.Child;
+ Classifiers.Add(stackPanel.Name);
+ index++;
+ selectedClassifiersCount++;
+ }
+ }
+
+ }
+
+ private void btnClearAll_Click(object sender, RoutedEventArgs e)
+ {
+ foreach (String classifier in Classifiers)
+ {
+ Border border = getBorder(classifier);
+ border.BorderBrush = Brushes.White;
+ txtBlkInfo.Text = SELECTMSG;
+ }
+ Classifiers.Clear();
+ }
+
+ private void btnOK_Click(object sender, RoutedEventArgs e)
+ {
+ this.Close();
+ }
+ }
+}
diff --git a/AffdexMe/NameToResourceConverter.cs b/AffdexMe/NameToResourceConverter.cs
new file mode 100644
index 0000000..ce090cb
--- /dev/null
+++ b/AffdexMe/NameToResourceConverter.cs
@@ -0,0 +1,41 @@
+using AffdexMe.Properties;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+
+namespace AffdexMe
+{
+ public class NameToResourceConverter : System.Windows.Data.IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ String classifier_name = SplitCamelCase(((String)value));
+ classifier_name = classifier_name.ToLower().Replace(" ", "_");
+ return new Uri("pack://application:,,,/" + classifier_name + "." +((String) parameter));
+ //return new Uri(String.Format("pack://application:,,,/{0}.jpg", ((String)value).ToLower()));
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+
+ public string SplitCamelCase(String str)
+ {
+ return Regex.Replace(
+ Regex.Replace(
+ str,
+ @"(\P{Ll})(\P{Ll}\p{Ll})",
+ "$1 $2"
+ ),
+ @"(\p{Ll})(\P{Ll})",
+ "$1 $2"
+ );
+ }
+ }
+
+}
diff --git a/AffdexMe/Properties/Settings.Designer.cs b/AffdexMe/Properties/Settings.Designer.cs
index 20ed2e1..97e5fa4 100644
--- a/AffdexMe/Properties/Settings.Designer.cs
+++ b/AffdexMe/Properties/Settings.Designer.cs
@@ -1,30 +1,70 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.34209
+// Runtime Version:4.0.30319.18444
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
-namespace AffdexMe.Properties
-{
-
-
+namespace AffdexMe {
+
+
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
+
+ public static Settings Default {
+ get {
return defaultInstance;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute(@"
+
+ Joy
+ Sadness
+ Anger
+ Disgust
+ Surprise
+ Fear
+")]
+ public global::System.Collections.Specialized.StringCollection Classifiers {
+ get {
+ return ((global::System.Collections.Specialized.StringCollection)(this["Classifiers"]));
+ }
+ set {
+ this["Classifiers"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ShowPoints {
+ get {
+ return ((bool)(this["ShowPoints"]));
+ }
+ set {
+ this["ShowPoints"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ShowMeasurements {
+ get {
+ return ((bool)(this["ShowMeasurements"]));
+ }
+ set {
+ this["ShowMeasurements"] = value;
+ }
+ }
}
}
diff --git a/AffdexMe/Properties/Settings.settings b/AffdexMe/Properties/Settings.settings
index 033d7a5..e3c04fb 100644
--- a/AffdexMe/Properties/Settings.settings
+++ b/AffdexMe/Properties/Settings.settings
@@ -1,7 +1,23 @@
-
-
-
-
-
+
+
+
+
+ <?xml version="1.0" encoding="utf-16"?>
+<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <string>Joy</string>
+ <string>Sadness</string>
+ <string>Anger</string>
+ <string>Disgust</string>
+ <string>Surprise</string>
+ <string>Fear</string>
+</ArrayOfString>
+
+
+ False
+
+
+ False
+
+
\ No newline at end of file
diff --git a/AffdexMe/README.md b/AffdexMe/README.md
index 70b6497..f300403 100644
--- a/AffdexMe/README.md
+++ b/AffdexMe/README.md
@@ -18,7 +18,7 @@ This application runs on Windows 7.0, 8.0 and 8.1
* Visual Studio 2013
-* To download and install the Windows SDK from Affectiva By default, the Windows SDK is installed to the following location: C:\Program Files (x86)\Affectiva\Affdex SDK
+* To download and install the Windows SDK (32-bit) from Affectiva By default, the Windows SDK is installed to the following location: C:\Program Files (x86)\Affectiva\Affdex SDK
If you have installed the SDK to a location other than the default, you will have to modify the following String constants located in the MainWindow.xaml.cs file:
diff --git a/AffdexMe/UpperCaseConverter.cs b/AffdexMe/UpperCaseConverter.cs
new file mode 100644
index 0000000..f4d9047
--- /dev/null
+++ b/AffdexMe/UpperCaseConverter.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace AffdexMe
+{
+ public class UpperCaseConverter : System.Windows.Data.IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ return SplitCamelCase(((String)value)).ToUpper();
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ public string SplitCamelCase(String str)
+ {
+ return Regex.Replace(
+ Regex.Replace(
+ str,
+ @"(\P{Ll})(\P{Ll}\p{Ll})",
+ "$1 $2"
+ ),
+ @"(\p{Ll})(\P{Ll})",
+ "$1 $2"
+ );
+ }
+ }
+}
diff --git a/AffdexMe/anger.gif b/AffdexMe/anger.gif
new file mode 100644
index 0000000..49d6fc9
Binary files /dev/null and b/AffdexMe/anger.gif differ
diff --git a/AffdexMe/anger.jpg b/AffdexMe/anger.jpg
new file mode 100644
index 0000000..5787d92
Binary files /dev/null and b/AffdexMe/anger.jpg differ
diff --git a/AffdexMe/attention.gif b/AffdexMe/attention.gif
new file mode 100644
index 0000000..4f927b0
Binary files /dev/null and b/AffdexMe/attention.gif differ
diff --git a/AffdexMe/attention.jpg b/AffdexMe/attention.jpg
new file mode 100644
index 0000000..88f63d2
Binary files /dev/null and b/AffdexMe/attention.jpg differ
diff --git a/AffdexMe/brow_furrow.gif b/AffdexMe/brow_furrow.gif
new file mode 100644
index 0000000..ae6e5e0
Binary files /dev/null and b/AffdexMe/brow_furrow.gif differ
diff --git a/AffdexMe/brow_furrow.jpg b/AffdexMe/brow_furrow.jpg
new file mode 100644
index 0000000..1dc7ad6
Binary files /dev/null and b/AffdexMe/brow_furrow.jpg differ
diff --git a/AffdexMe/brow_raise.gif b/AffdexMe/brow_raise.gif
new file mode 100644
index 0000000..5a0dbd5
Binary files /dev/null and b/AffdexMe/brow_raise.gif differ
diff --git a/AffdexMe/brow_raise.jpg b/AffdexMe/brow_raise.jpg
new file mode 100644
index 0000000..935e9ff
Binary files /dev/null and b/AffdexMe/brow_raise.jpg differ
diff --git a/AffdexMe/chin_raise.gif b/AffdexMe/chin_raise.gif
new file mode 100644
index 0000000..a731170
Binary files /dev/null and b/AffdexMe/chin_raise.gif differ
diff --git a/AffdexMe/chin_raise.jpg b/AffdexMe/chin_raise.jpg
new file mode 100644
index 0000000..6ef3dbd
Binary files /dev/null and b/AffdexMe/chin_raise.jpg differ
diff --git a/AffdexMe/contempt.gif b/AffdexMe/contempt.gif
new file mode 100644
index 0000000..873adae
Binary files /dev/null and b/AffdexMe/contempt.gif differ
diff --git a/AffdexMe/contempt.jpg b/AffdexMe/contempt.jpg
new file mode 100644
index 0000000..872e7a7
Binary files /dev/null and b/AffdexMe/contempt.jpg differ
diff --git a/AffdexMe/disgust.gif b/AffdexMe/disgust.gif
new file mode 100644
index 0000000..19f5da3
Binary files /dev/null and b/AffdexMe/disgust.gif differ
diff --git a/AffdexMe/disgust.jpg b/AffdexMe/disgust.jpg
new file mode 100644
index 0000000..9a0610f
Binary files /dev/null and b/AffdexMe/disgust.jpg differ
diff --git a/AffdexMe/engagement.gif b/AffdexMe/engagement.gif
new file mode 100644
index 0000000..9e264ed
Binary files /dev/null and b/AffdexMe/engagement.gif differ
diff --git a/AffdexMe/engagement.jpg b/AffdexMe/engagement.jpg
new file mode 100644
index 0000000..6001e0e
Binary files /dev/null and b/AffdexMe/engagement.jpg differ
diff --git a/AffdexMe/eye_closure.gif b/AffdexMe/eye_closure.gif
new file mode 100644
index 0000000..12555ef
Binary files /dev/null and b/AffdexMe/eye_closure.gif differ
diff --git a/AffdexMe/eye_closure.jpg b/AffdexMe/eye_closure.jpg
new file mode 100644
index 0000000..ade5aa6
Binary files /dev/null and b/AffdexMe/eye_closure.jpg differ
diff --git a/AffdexMe/fear.gif b/AffdexMe/fear.gif
new file mode 100644
index 0000000..569ce17
Binary files /dev/null and b/AffdexMe/fear.gif differ
diff --git a/AffdexMe/fear.jpg b/AffdexMe/fear.jpg
new file mode 100644
index 0000000..f97b009
Binary files /dev/null and b/AffdexMe/fear.jpg differ
diff --git a/AffdexMe/frown.gif b/AffdexMe/frown.gif
new file mode 100644
index 0000000..8c747b6
Binary files /dev/null and b/AffdexMe/frown.gif differ
diff --git a/AffdexMe/frown.jpg b/AffdexMe/frown.jpg
new file mode 100644
index 0000000..4e7a934
Binary files /dev/null and b/AffdexMe/frown.jpg differ
diff --git a/AffdexMe/inner_brow_raise.gif b/AffdexMe/inner_brow_raise.gif
new file mode 100644
index 0000000..ebd6627
Binary files /dev/null and b/AffdexMe/inner_brow_raise.gif differ
diff --git a/AffdexMe/inner_brow_raise.jpg b/AffdexMe/inner_brow_raise.jpg
new file mode 100644
index 0000000..ef0b904
Binary files /dev/null and b/AffdexMe/inner_brow_raise.jpg differ
diff --git a/AffdexMe/joy.gif b/AffdexMe/joy.gif
new file mode 100644
index 0000000..fdd9be3
Binary files /dev/null and b/AffdexMe/joy.gif differ
diff --git a/AffdexMe/joy.jpg b/AffdexMe/joy.jpg
new file mode 100644
index 0000000..d08bf33
Binary files /dev/null and b/AffdexMe/joy.jpg differ
diff --git a/AffdexMe/lip_press.gif b/AffdexMe/lip_press.gif
new file mode 100644
index 0000000..9981010
Binary files /dev/null and b/AffdexMe/lip_press.gif differ
diff --git a/AffdexMe/lip_press.jpg b/AffdexMe/lip_press.jpg
new file mode 100644
index 0000000..442ce43
Binary files /dev/null and b/AffdexMe/lip_press.jpg differ
diff --git a/AffdexMe/lip_pucker.gif b/AffdexMe/lip_pucker.gif
new file mode 100644
index 0000000..e867d1b
Binary files /dev/null and b/AffdexMe/lip_pucker.gif differ
diff --git a/AffdexMe/lip_pucker.jpg b/AffdexMe/lip_pucker.jpg
new file mode 100644
index 0000000..2958181
Binary files /dev/null and b/AffdexMe/lip_pucker.jpg differ
diff --git a/AffdexMe/lip_suck.gif b/AffdexMe/lip_suck.gif
new file mode 100644
index 0000000..9d1430e
Binary files /dev/null and b/AffdexMe/lip_suck.gif differ
diff --git a/AffdexMe/lip_suck.jpg b/AffdexMe/lip_suck.jpg
new file mode 100644
index 0000000..777c573
Binary files /dev/null and b/AffdexMe/lip_suck.jpg differ
diff --git a/AffdexMe/mouth_open.gif b/AffdexMe/mouth_open.gif
new file mode 100644
index 0000000..fdc8627
Binary files /dev/null and b/AffdexMe/mouth_open.gif differ
diff --git a/AffdexMe/mouth_open.jpg b/AffdexMe/mouth_open.jpg
new file mode 100644
index 0000000..b8c983b
Binary files /dev/null and b/AffdexMe/mouth_open.jpg differ
diff --git a/AffdexMe/negative_valence.gif b/AffdexMe/negative_valence.gif
new file mode 100644
index 0000000..dbc7bf4
Binary files /dev/null and b/AffdexMe/negative_valence.gif differ
diff --git a/AffdexMe/negative_valence.jpg b/AffdexMe/negative_valence.jpg
new file mode 100644
index 0000000..a959ef5
Binary files /dev/null and b/AffdexMe/negative_valence.jpg differ
diff --git a/AffdexMe/nose_wrinkle.gif b/AffdexMe/nose_wrinkle.gif
new file mode 100644
index 0000000..7a10fe2
Binary files /dev/null and b/AffdexMe/nose_wrinkle.gif differ
diff --git a/AffdexMe/nose_wrinkle.jpg b/AffdexMe/nose_wrinkle.jpg
new file mode 100644
index 0000000..88a6a9b
Binary files /dev/null and b/AffdexMe/nose_wrinkle.jpg differ
diff --git a/AffdexMe/obj/Release/AffdexMe_Content.g.cs b/AffdexMe/obj/Release/AffdexMe_Content.g.cs
new file mode 100644
index 0000000..845589d
--- /dev/null
+++ b/AffdexMe/obj/Release/AffdexMe_Content.g.cs
@@ -0,0 +1,13 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("affdex-native.dll")]
+
+
diff --git a/AffdexMe/obj/Release/AffdexMe_Content.g.i.cs b/AffdexMe/obj/Release/AffdexMe_Content.g.i.cs
new file mode 100644
index 0000000..845589d
--- /dev/null
+++ b/AffdexMe/obj/Release/AffdexMe_Content.g.i.cs
@@ -0,0 +1,13 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("affdex-native.dll")]
+
+
diff --git a/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.cs b/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.cs
new file mode 100644
index 0000000..c65238f
--- /dev/null
+++ b/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.cs
@@ -0,0 +1,2 @@
+
+
diff --git a/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.i.cs b/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.i.cs
new file mode 100644
index 0000000..c89ce6d
--- /dev/null
+++ b/AffdexMe/obj/Release/GeneratedInternalTypeHelper.g.i.cs
@@ -0,0 +1,62 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace XamlGeneratedNamespace {
+
+
+ ///
+ /// GeneratedInternalTypeHelper
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper {
+
+ ///
+ /// CreateInstance
+ ///
+ protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) {
+ return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic)
+ | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture);
+ }
+
+ ///
+ /// GetPropertyValue
+ ///
+ protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) {
+ return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture);
+ }
+
+ ///
+ /// SetPropertyValue
+ ///
+ protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) {
+ propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture);
+ }
+
+ ///
+ /// CreateDelegate
+ ///
+ protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) {
+ return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod
+ | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] {
+ delegateType,
+ handler}, null)));
+ }
+
+ ///
+ /// AddEventHandler
+ ///
+ protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) {
+ eventInfo.AddEventHandler(target, handler);
+ }
+ }
+}
+
diff --git a/AffdexMe/obj/Release/MainWindow.g.cs b/AffdexMe/obj/Release/MainWindow.g.cs
new file mode 100644
index 0000000..d88826b
--- /dev/null
+++ b/AffdexMe/obj/Release/MainWindow.g.cs
@@ -0,0 +1,625 @@
+#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "146FBE3BEDB0723D05EFF2A31C5BB33E"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace AffdexMe {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 123 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridMainDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 125 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridContentDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 128 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelImage;
+
+ #line default
+ #line hidden
+
+
+ #line 130 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridAffdexFaceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 131 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexFaceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 133 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexLogoDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 136 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Canvas canvasFacePoints;
+
+ #line default
+ #line hidden
+
+
+ #line 137 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock interocularDistanceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 138 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock pitchDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 139 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock yawDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 140 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock rollDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 145 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelClassifiersBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 148 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelClassifiers;
+
+ #line default
+ #line hidden
+
+
+ #line 150 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridClassifierDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 165 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel0;
+
+ #line default
+ #line hidden
+
+
+ #line 166 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0Name;
+
+ #line default
+ #line hidden
+
+
+ #line 168 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 169 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0Value;
+
+ #line default
+ #line hidden
+
+
+ #line 173 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel1;
+
+ #line default
+ #line hidden
+
+
+ #line 174 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1Name;
+
+ #line default
+ #line hidden
+
+
+ #line 176 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 177 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1Value;
+
+ #line default
+ #line hidden
+
+
+ #line 181 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel2;
+
+ #line default
+ #line hidden
+
+
+ #line 182 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2Name;
+
+ #line default
+ #line hidden
+
+
+ #line 184 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 185 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2Value;
+
+ #line default
+ #line hidden
+
+
+ #line 189 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel3;
+
+ #line default
+ #line hidden
+
+
+ #line 190 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3Name;
+
+ #line default
+ #line hidden
+
+
+ #line 192 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 193 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3Value;
+
+ #line default
+ #line hidden
+
+
+ #line 197 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel4;
+
+ #line default
+ #line hidden
+
+
+ #line 198 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4Name;
+
+ #line default
+ #line hidden
+
+
+ #line 200 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 201 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4Value;
+
+ #line default
+ #line hidden
+
+
+ #line 205 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel5;
+
+ #line default
+ #line hidden
+
+
+ #line 206 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5Name;
+
+ #line default
+ #line hidden
+
+
+ #line 208 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 209 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5Value;
+
+ #line default
+ #line hidden
+
+
+ #line 215 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 216 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 229 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 241 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnStartCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 242 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnResetCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 243 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnShowPoints;
+
+ #line default
+ #line hidden
+
+
+ #line 244 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnShowMeasurements;
+
+ #line default
+ #line hidden
+
+
+ #line 245 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnChooseWin;
+
+ #line default
+ #line hidden
+
+
+ #line 246 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnStopCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 247 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnExit;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/AffdexMe;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 9 "..\..\MainWindow.xaml"
+ ((AffdexMe.MainWindow)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Window_Loaded);
+
+ #line default
+ #line hidden
+
+ #line 10 "..\..\MainWindow.xaml"
+ ((AffdexMe.MainWindow)(target)).Closing += new System.ComponentModel.CancelEventHandler(this.Window_Closing);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.gridMainDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.gridContentDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 4:
+ this.stackPanelImage = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 5:
+ this.gridAffdexFaceDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 6:
+ this.imgAffdexFaceDisplay = ((System.Windows.Controls.Image)(target));
+ return;
+ case 7:
+ this.imgAffdexLogoDisplay = ((System.Windows.Controls.Image)(target));
+ return;
+ case 8:
+ this.canvasFacePoints = ((System.Windows.Controls.Canvas)(target));
+ return;
+ case 9:
+ this.interocularDistanceDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 10:
+ this.pitchDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 11:
+ this.yawDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 12:
+ this.rollDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 13:
+ this.stackPanelClassifiersBackground = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 14:
+ this.stackPanelClassifiers = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 15:
+ this.gridClassifierDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 16:
+ this.stackPanel0 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 17:
+ this.stackPanel0Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 18:
+ this.stackPanel0ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 19:
+ this.stackPanel0Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 20:
+ this.stackPanel1 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 21:
+ this.stackPanel1Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 22:
+ this.stackPanel1ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 23:
+ this.stackPanel1Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 24:
+ this.stackPanel2 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 25:
+ this.stackPanel2Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 26:
+ this.stackPanel2ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 27:
+ this.stackPanel2Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 28:
+ this.stackPanel3 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 29:
+ this.stackPanel3Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 30:
+ this.stackPanel3ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 31:
+ this.stackPanel3Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 32:
+ this.stackPanel4 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 33:
+ this.stackPanel4Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 34:
+ this.stackPanel4ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 35:
+ this.stackPanel4Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 36:
+ this.stackPanel5 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 37:
+ this.stackPanel5Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 38:
+ this.stackPanel5ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 39:
+ this.stackPanel5Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 40:
+ this.stackPanelLogoBackground = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 41:
+ this.gridLogoBackground = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 42:
+ this.imgAffdexLogoBackground = ((System.Windows.Controls.Image)(target));
+ return;
+ case 43:
+ this.btnStartCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 44:
+ this.btnResetCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 45:
+ this.btnShowPoints = ((System.Windows.Controls.Button)(target));
+ return;
+ case 46:
+ this.btnShowMeasurements = ((System.Windows.Controls.Button)(target));
+ return;
+ case 47:
+ this.btnChooseWin = ((System.Windows.Controls.Button)(target));
+
+ #line 245 "..\..\MainWindow.xaml"
+ this.btnChooseWin.Click += new System.Windows.RoutedEventHandler(this.btnChooseWin_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 48:
+ this.btnStopCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 49:
+ this.btnExit = ((System.Windows.Controls.Button)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/AffdexMe/obj/Release/MainWindow.g.i.cs b/AffdexMe/obj/Release/MainWindow.g.i.cs
new file mode 100644
index 0000000..d88826b
--- /dev/null
+++ b/AffdexMe/obj/Release/MainWindow.g.i.cs
@@ -0,0 +1,625 @@
+#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "146FBE3BEDB0723D05EFF2A31C5BB33E"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+
+
+namespace AffdexMe {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 123 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridMainDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 125 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridContentDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 128 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelImage;
+
+ #line default
+ #line hidden
+
+
+ #line 130 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridAffdexFaceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 131 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexFaceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 133 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexLogoDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 136 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Canvas canvasFacePoints;
+
+ #line default
+ #line hidden
+
+
+ #line 137 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock interocularDistanceDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 138 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock pitchDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 139 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock yawDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 140 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock rollDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 145 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelClassifiersBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 148 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelClassifiers;
+
+ #line default
+ #line hidden
+
+
+ #line 150 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridClassifierDisplay;
+
+ #line default
+ #line hidden
+
+
+ #line 165 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel0;
+
+ #line default
+ #line hidden
+
+
+ #line 166 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0Name;
+
+ #line default
+ #line hidden
+
+
+ #line 168 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 169 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel0Value;
+
+ #line default
+ #line hidden
+
+
+ #line 173 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel1;
+
+ #line default
+ #line hidden
+
+
+ #line 174 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1Name;
+
+ #line default
+ #line hidden
+
+
+ #line 176 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 177 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel1Value;
+
+ #line default
+ #line hidden
+
+
+ #line 181 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel2;
+
+ #line default
+ #line hidden
+
+
+ #line 182 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2Name;
+
+ #line default
+ #line hidden
+
+
+ #line 184 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 185 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel2Value;
+
+ #line default
+ #line hidden
+
+
+ #line 189 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel3;
+
+ #line default
+ #line hidden
+
+
+ #line 190 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3Name;
+
+ #line default
+ #line hidden
+
+
+ #line 192 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 193 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel3Value;
+
+ #line default
+ #line hidden
+
+
+ #line 197 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel4;
+
+ #line default
+ #line hidden
+
+
+ #line 198 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4Name;
+
+ #line default
+ #line hidden
+
+
+ #line 200 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 201 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel4Value;
+
+ #line default
+ #line hidden
+
+
+ #line 205 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanel5;
+
+ #line default
+ #line hidden
+
+
+ #line 206 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5Name;
+
+ #line default
+ #line hidden
+
+
+ #line 208 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5ValueBackgroud;
+
+ #line default
+ #line hidden
+
+
+ #line 209 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock stackPanel5Value;
+
+ #line default
+ #line hidden
+
+
+ #line 215 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel stackPanelLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 216 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid gridLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 229 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Image imgAffdexLogoBackground;
+
+ #line default
+ #line hidden
+
+
+ #line 241 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnStartCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 242 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnResetCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 243 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnShowPoints;
+
+ #line default
+ #line hidden
+
+
+ #line 244 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnShowMeasurements;
+
+ #line default
+ #line hidden
+
+
+ #line 245 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnChooseWin;
+
+ #line default
+ #line hidden
+
+
+ #line 246 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnStopCamera;
+
+ #line default
+ #line hidden
+
+
+ #line 247 "..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnExit;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/AffdexMe;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 9 "..\..\MainWindow.xaml"
+ ((AffdexMe.MainWindow)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Window_Loaded);
+
+ #line default
+ #line hidden
+
+ #line 10 "..\..\MainWindow.xaml"
+ ((AffdexMe.MainWindow)(target)).Closing += new System.ComponentModel.CancelEventHandler(this.Window_Closing);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.gridMainDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.gridContentDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 4:
+ this.stackPanelImage = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 5:
+ this.gridAffdexFaceDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 6:
+ this.imgAffdexFaceDisplay = ((System.Windows.Controls.Image)(target));
+ return;
+ case 7:
+ this.imgAffdexLogoDisplay = ((System.Windows.Controls.Image)(target));
+ return;
+ case 8:
+ this.canvasFacePoints = ((System.Windows.Controls.Canvas)(target));
+ return;
+ case 9:
+ this.interocularDistanceDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 10:
+ this.pitchDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 11:
+ this.yawDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 12:
+ this.rollDisplay = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 13:
+ this.stackPanelClassifiersBackground = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 14:
+ this.stackPanelClassifiers = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 15:
+ this.gridClassifierDisplay = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 16:
+ this.stackPanel0 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 17:
+ this.stackPanel0Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 18:
+ this.stackPanel0ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 19:
+ this.stackPanel0Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 20:
+ this.stackPanel1 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 21:
+ this.stackPanel1Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 22:
+ this.stackPanel1ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 23:
+ this.stackPanel1Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 24:
+ this.stackPanel2 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 25:
+ this.stackPanel2Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 26:
+ this.stackPanel2ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 27:
+ this.stackPanel2Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 28:
+ this.stackPanel3 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 29:
+ this.stackPanel3Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 30:
+ this.stackPanel3ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 31:
+ this.stackPanel3Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 32:
+ this.stackPanel4 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 33:
+ this.stackPanel4Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 34:
+ this.stackPanel4ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 35:
+ this.stackPanel4Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 36:
+ this.stackPanel5 = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 37:
+ this.stackPanel5Name = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 38:
+ this.stackPanel5ValueBackgroud = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 39:
+ this.stackPanel5Value = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 40:
+ this.stackPanelLogoBackground = ((System.Windows.Controls.StackPanel)(target));
+ return;
+ case 41:
+ this.gridLogoBackground = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 42:
+ this.imgAffdexLogoBackground = ((System.Windows.Controls.Image)(target));
+ return;
+ case 43:
+ this.btnStartCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 44:
+ this.btnResetCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 45:
+ this.btnShowPoints = ((System.Windows.Controls.Button)(target));
+ return;
+ case 46:
+ this.btnShowMeasurements = ((System.Windows.Controls.Button)(target));
+ return;
+ case 47:
+ this.btnChooseWin = ((System.Windows.Controls.Button)(target));
+
+ #line 245 "..\..\MainWindow.xaml"
+ this.btnChooseWin.Click += new System.Windows.RoutedEventHandler(this.btnChooseWin_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 48:
+ this.btnStopCamera = ((System.Windows.Controls.Button)(target));
+ return;
+ case 49:
+ this.btnExit = ((System.Windows.Controls.Button)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/AffdexMe/obj/Release/MetricSelectionUI.g.cs b/AffdexMe/obj/Release/MetricSelectionUI.g.cs
new file mode 100644
index 0000000..68537c5
--- /dev/null
+++ b/AffdexMe/obj/Release/MetricSelectionUI.g.cs
@@ -0,0 +1,983 @@
+#pragma checksum "..\..\MetricSelectionUI.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "868313CECF2DE99BFAB8BDBC832BB827"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using AffdexMe;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using WpfAnimatedGif;
+
+
+namespace AffdexMe {
+
+
+ ///
+ /// MetricSelectionUI
+ ///
+ public partial class MetricSelectionUI : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 10 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid theGrid;
+
+ #line default
+ #line hidden
+
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Anger;
+
+ #line default
+ #line hidden
+
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Disgust;
+
+ #line default
+ #line hidden
+
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Fear;
+
+ #line default
+ #line hidden
+
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Joy;
+
+ #line default
+ #line hidden
+
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Sadness;
+
+ #line default
+ #line hidden
+
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Surprise;
+
+ #line default
+ #line hidden
+
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Contempt;
+
+ #line default
+ #line hidden
+
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Valence;
+
+ #line default
+ #line hidden
+
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Engagement;
+
+ #line default
+ #line hidden
+
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Attention;
+
+ #line default
+ #line hidden
+
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel BrowFurrow;
+
+ #line default
+ #line hidden
+
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel BrowRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel ChinRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel EyeClosure;
+
+ #line default
+ #line hidden
+
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel InnerBrowRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Frown;
+
+ #line default
+ #line hidden
+
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipPress;
+
+ #line default
+ #line hidden
+
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipPucker;
+
+ #line default
+ #line hidden
+
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipSuck;
+
+ #line default
+ #line hidden
+
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel MouthOpen;
+
+ #line default
+ #line hidden
+
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel NoseWrinkle;
+
+ #line default
+ #line hidden
+
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Smile;
+
+ #line default
+ #line hidden
+
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Smirk;
+
+ #line default
+ #line hidden
+
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel UpperLipRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 304 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnClearAll;
+
+ #line default
+ #line hidden
+
+
+ #line 305 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock txtBlkInfo;
+
+ #line default
+ #line hidden
+
+
+ #line 306 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnOK;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/AffdexMe;component/metricselectionui.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MetricSelectionUI.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 7 "..\..\MetricSelectionUI.xaml"
+ ((AffdexMe.MetricSelectionUI)(target)).Closing += new System.ComponentModel.CancelEventHandler(this.Window_Closing);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.theGrid = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.Anger = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.Disgust = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.Fear = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.Joy = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.Sadness = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.Surprise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.Contempt = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 10:
+ this.Valence = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 11:
+ this.Engagement = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+ this.Attention = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 13:
+ this.BrowFurrow = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 14:
+ this.BrowRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+ this.ChinRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 16:
+ this.EyeClosure = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.InnerBrowRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 18:
+ this.Frown = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 19:
+ this.LipPress = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 20:
+ this.LipPucker = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 21:
+ this.LipSuck = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 22:
+ this.MouthOpen = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 23:
+ this.NoseWrinkle = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 24:
+ this.Smile = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 25:
+ this.Smirk = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 26:
+ this.UpperLipRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 27:
+ this.btnClearAll = ((System.Windows.Controls.Button)(target));
+
+ #line 304 "..\..\MetricSelectionUI.xaml"
+ this.btnClearAll.Click += new System.Windows.RoutedEventHandler(this.btnClearAll_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 28:
+ this.txtBlkInfo = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 29:
+ this.btnOK = ((System.Windows.Controls.Button)(target));
+
+ #line 306 "..\..\MetricSelectionUI.xaml"
+ this.btnOK.Click += new System.Windows.RoutedEventHandler(this.btnOK_Click);
+
+ #line default
+ #line hidden
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/AffdexMe/obj/Release/MetricSelectionUI.g.i.cs b/AffdexMe/obj/Release/MetricSelectionUI.g.i.cs
new file mode 100644
index 0000000..68537c5
--- /dev/null
+++ b/AffdexMe/obj/Release/MetricSelectionUI.g.i.cs
@@ -0,0 +1,983 @@
+#pragma checksum "..\..\MetricSelectionUI.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "868313CECF2DE99BFAB8BDBC832BB827"
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using AffdexMe;
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using WpfAnimatedGif;
+
+
+namespace AffdexMe {
+
+
+ ///
+ /// MetricSelectionUI
+ ///
+ public partial class MetricSelectionUI : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 10 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Grid theGrid;
+
+ #line default
+ #line hidden
+
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Anger;
+
+ #line default
+ #line hidden
+
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Disgust;
+
+ #line default
+ #line hidden
+
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Fear;
+
+ #line default
+ #line hidden
+
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Joy;
+
+ #line default
+ #line hidden
+
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Sadness;
+
+ #line default
+ #line hidden
+
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Surprise;
+
+ #line default
+ #line hidden
+
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Contempt;
+
+ #line default
+ #line hidden
+
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Valence;
+
+ #line default
+ #line hidden
+
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Engagement;
+
+ #line default
+ #line hidden
+
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Attention;
+
+ #line default
+ #line hidden
+
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel BrowFurrow;
+
+ #line default
+ #line hidden
+
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel BrowRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel ChinRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel EyeClosure;
+
+ #line default
+ #line hidden
+
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel InnerBrowRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Frown;
+
+ #line default
+ #line hidden
+
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipPress;
+
+ #line default
+ #line hidden
+
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipPucker;
+
+ #line default
+ #line hidden
+
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel LipSuck;
+
+ #line default
+ #line hidden
+
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel MouthOpen;
+
+ #line default
+ #line hidden
+
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel NoseWrinkle;
+
+ #line default
+ #line hidden
+
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Smile;
+
+ #line default
+ #line hidden
+
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel Smirk;
+
+ #line default
+ #line hidden
+
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.StackPanel UpperLipRaise;
+
+ #line default
+ #line hidden
+
+
+ #line 304 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnClearAll;
+
+ #line default
+ #line hidden
+
+
+ #line 305 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBlock txtBlkInfo;
+
+ #line default
+ #line hidden
+
+
+ #line 306 "..\..\MetricSelectionUI.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button btnOK;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/AffdexMe;component/metricselectionui.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\MetricSelectionUI.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 7 "..\..\MetricSelectionUI.xaml"
+ ((AffdexMe.MetricSelectionUI)(target)).Closing += new System.ComponentModel.CancelEventHandler(this.Window_Closing);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.theGrid = ((System.Windows.Controls.Grid)(target));
+ return;
+ case 3:
+ this.Anger = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 42 "..\..\MetricSelectionUI.xaml"
+ this.Anger.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.Disgust = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 50 "..\..\MetricSelectionUI.xaml"
+ this.Disgust.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.Fear = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 58 "..\..\MetricSelectionUI.xaml"
+ this.Fear.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.Joy = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 66 "..\..\MetricSelectionUI.xaml"
+ this.Joy.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.Sadness = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 74 "..\..\MetricSelectionUI.xaml"
+ this.Sadness.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.Surprise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\MetricSelectionUI.xaml"
+ this.Surprise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 9:
+ this.Contempt = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 90 "..\..\MetricSelectionUI.xaml"
+ this.Contempt.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 10:
+ this.Valence = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 98 "..\..\MetricSelectionUI.xaml"
+ this.Valence.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 11:
+ this.Engagement = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 106 "..\..\MetricSelectionUI.xaml"
+ this.Engagement.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 12:
+ this.Attention = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 121 "..\..\MetricSelectionUI.xaml"
+ this.Attention.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 13:
+ this.BrowFurrow = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\MetricSelectionUI.xaml"
+ this.BrowFurrow.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 14:
+ this.BrowRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 137 "..\..\MetricSelectionUI.xaml"
+ this.BrowRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 15:
+ this.ChinRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 145 "..\..\MetricSelectionUI.xaml"
+ this.ChinRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 16:
+ this.EyeClosure = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 153 "..\..\MetricSelectionUI.xaml"
+ this.EyeClosure.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 17:
+ this.InnerBrowRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\MetricSelectionUI.xaml"
+ this.InnerBrowRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 18:
+ this.Frown = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 169 "..\..\MetricSelectionUI.xaml"
+ this.Frown.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 19:
+ this.LipPress = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 177 "..\..\MetricSelectionUI.xaml"
+ this.LipPress.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 20:
+ this.LipPucker = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 185 "..\..\MetricSelectionUI.xaml"
+ this.LipPucker.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 21:
+ this.LipSuck = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 193 "..\..\MetricSelectionUI.xaml"
+ this.LipSuck.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 22:
+ this.MouthOpen = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 201 "..\..\MetricSelectionUI.xaml"
+ this.MouthOpen.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 23:
+ this.NoseWrinkle = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 209 "..\..\MetricSelectionUI.xaml"
+ this.NoseWrinkle.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 24:
+ this.Smile = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 217 "..\..\MetricSelectionUI.xaml"
+ this.Smile.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 25:
+ this.Smirk = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 225 "..\..\MetricSelectionUI.xaml"
+ this.Smirk.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 26:
+ this.UpperLipRaise = ((System.Windows.Controls.StackPanel)(target));
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseEnter += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseEnter);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseLeave += new System.Windows.Input.MouseEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 233 "..\..\MetricSelectionUI.xaml"
+ this.UpperLipRaise.MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.StackPanel_MouseLeave);
+
+ #line default
+ #line hidden
+ return;
+ case 27:
+ this.btnClearAll = ((System.Windows.Controls.Button)(target));
+
+ #line 304 "..\..\MetricSelectionUI.xaml"
+ this.btnClearAll.Click += new System.Windows.RoutedEventHandler(this.btnClearAll_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 28:
+ this.txtBlkInfo = ((System.Windows.Controls.TextBlock)(target));
+ return;
+ case 29:
+ this.btnOK = ((System.Windows.Controls.Button)(target));
+
+ #line 306 "..\..\MetricSelectionUI.xaml"
+ this.btnOK.Click += new System.Windows.RoutedEventHandler(this.btnOK_Click);
+
+ #line default
+ #line hidden
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/AffdexMe/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/AffdexMe/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/AffdexMe/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/AffdexMe/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/AffdexMe/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/AffdexMe/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/AffdexMe/packages/WpfAnimatedGif.1.4.13/WpfAnimatedGif.1.4.13.nupkg b/AffdexMe/packages/WpfAnimatedGif.1.4.13/WpfAnimatedGif.1.4.13.nupkg
new file mode 100644
index 0000000..06f61b9
Binary files /dev/null and b/AffdexMe/packages/WpfAnimatedGif.1.4.13/WpfAnimatedGif.1.4.13.nupkg differ
diff --git a/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.dll b/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.dll
new file mode 100644
index 0000000..3f162ab
Binary files /dev/null and b/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.dll differ
diff --git a/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.xml b/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.xml
new file mode 100644
index 0000000..6446577
--- /dev/null
+++ b/AffdexMe/packages/WpfAnimatedGif.1.4.13/lib/net/WpfAnimatedGif.xml
@@ -0,0 +1,214 @@
+
+
+
+ WpfAnimatedGif
+
+
+
+
+ Provides a way to pause, resume or seek a GIF animation.
+
+
+
+
+ Returns the number of frames in the image.
+
+
+
+
+ Returns a value that indicates whether the animation is paused.
+
+
+
+
+ Returns a value that indicates whether the animation is complete.
+
+
+
+
+ Seeks the animation to the specified frame index.
+
+ The index of the frame to seek to
+
+
+
+ Returns the current frame index.
+
+
+
+
+ Pauses the animation.
+
+
+
+
+ Starts or resumes the animation. If the animation is complete, it restarts from the beginning.
+
+
+
+
+ Raised when the current frame changes.
+
+
+
+
+ Finalizes the current object.
+
+
+
+
+ Disposes the current object.
+
+
+
+
+ Disposes the current object
+
+ true to dispose both managed an unmanaged resources, false to dispose only managed resources
+
+
+
+ Provides attached properties that display animated GIFs in a standard Image control.
+
+
+
+
+ Gets the value of the AnimatedSource attached property for the specified object.
+
+ The element from which to read the property value.
+ The currently displayed animated image.
+
+
+
+ Sets the value of the AnimatedSource attached property for the specified object.
+
+ The element on which to set the property value.
+ The animated image to display.
+
+
+
+ Identifies the AnimatedSource attached property.
+
+
+
+
+ Gets the value of the RepeatBehavior attached property for the specified object.
+
+ The element from which to read the property value.
+ The repeat behavior of the animated image.
+
+
+
+ Sets the value of the RepeatBehavior attached property for the specified object.
+
+ The element on which to set the property value.
+ The repeat behavior of the animated image.
+
+
+
+ Identifies the RepeatBehavior attached property.
+
+
+
+
+ Gets the value of the AnimateInDesignMode attached property for the specified object.
+
+ The element from which to read the property value.
+ true if GIF animations are shown in design mode; false otherwise.
+
+
+
+ Sets the value of the AnimateInDesignMode attached property for the specified object.
+
+ The element on which to set the property value.
+ true to show GIF animations in design mode; false otherwise.
+
+
+
+ Identifies the AnimateInDesignMode attached property.
+
+
+
+
+ Gets the value of the AutoStart attached property for the specified object.
+
+ The element from which to read the property value.
+ true if the animation should start immediately when loaded. Otherwise, false.
+
+
+
+ Sets the value of the AutoStart attached property for the specified object.
+
+ The element from which to read the property value.
+ true if the animation should start immediately when loaded. Otherwise, false.
+ The default value is true.
+
+
+
+ Identifies the AutoStart attached property.
+
+
+
+
+ Gets the animation controller for the specified Image control.
+
+
+
+
+
+
+ Gets the value of the IsAnimationLoaded attached property for the specified object.
+
+ The element from which to read the property value.
+ true if the animation is loaded. Otherwise, false.
+
+
+
+ Identifies the IsAnimationLoaded attached property.
+
+
+
+
+ Identifies the AnimationLoaded attached event.
+
+
+
+
+ Adds a handler for the AnimationLoaded attached event.
+
+ The UIElement that listens to this event.
+ The event handler to be added.
+
+
+
+ Removes a handler for the AnimationLoaded attached event.
+
+ The UIElement that listens to this event.
+ The event handler to be removed.
+
+
+
+ Identifies the AnimationCompleted attached event.
+
+
+
+
+ Adds a handler for the AnimationCompleted attached event.
+
+ The UIElement that listens to this event.
+ The event handler to be added.
+
+
+
+ Removes a handler for the AnimationCompleted attached event.
+
+ The UIElement that listens to this event.
+ The event handler to be removed.
+
+
+
+ Single place to define version
+
+
+
+
diff --git a/AffdexMe/positive_valence.gif b/AffdexMe/positive_valence.gif
new file mode 100644
index 0000000..c54c9d2
Binary files /dev/null and b/AffdexMe/positive_valence.gif differ
diff --git a/AffdexMe/positive_valence.jpg b/AffdexMe/positive_valence.jpg
new file mode 100644
index 0000000..a9b04a9
Binary files /dev/null and b/AffdexMe/positive_valence.jpg differ
diff --git a/AffdexMe/sadness.gif b/AffdexMe/sadness.gif
new file mode 100644
index 0000000..856a0bb
Binary files /dev/null and b/AffdexMe/sadness.gif differ
diff --git a/AffdexMe/sadness.jpg b/AffdexMe/sadness.jpg
new file mode 100644
index 0000000..c379aef
Binary files /dev/null and b/AffdexMe/sadness.jpg differ
diff --git a/AffdexMe/smile.gif b/AffdexMe/smile.gif
new file mode 100644
index 0000000..0e7c122
Binary files /dev/null and b/AffdexMe/smile.gif differ
diff --git a/AffdexMe/smile.jpg b/AffdexMe/smile.jpg
new file mode 100644
index 0000000..385e79a
Binary files /dev/null and b/AffdexMe/smile.jpg differ
diff --git a/AffdexMe/smirk.gif b/AffdexMe/smirk.gif
new file mode 100644
index 0000000..873adae
Binary files /dev/null and b/AffdexMe/smirk.gif differ
diff --git a/AffdexMe/smirk.jpg b/AffdexMe/smirk.jpg
new file mode 100644
index 0000000..8dbdabc
Binary files /dev/null and b/AffdexMe/smirk.jpg differ
diff --git a/AffdexMe/surprise.gif b/AffdexMe/surprise.gif
new file mode 100644
index 0000000..ef2a90a
Binary files /dev/null and b/AffdexMe/surprise.gif differ
diff --git a/AffdexMe/surprise.jpg b/AffdexMe/surprise.jpg
new file mode 100644
index 0000000..4d4eb54
Binary files /dev/null and b/AffdexMe/surprise.jpg differ
diff --git a/AffdexMe/upper_lip_raise.gif b/AffdexMe/upper_lip_raise.gif
new file mode 100644
index 0000000..47ddb06
Binary files /dev/null and b/AffdexMe/upper_lip_raise.gif differ
diff --git a/AffdexMe/upper_lip_raise.jpg b/AffdexMe/upper_lip_raise.jpg
new file mode 100644
index 0000000..00adfe8
Binary files /dev/null and b/AffdexMe/upper_lip_raise.jpg differ
diff --git a/AffdexMe/valence.gif b/AffdexMe/valence.gif
new file mode 100644
index 0000000..6a87cb1
Binary files /dev/null and b/AffdexMe/valence.gif differ
diff --git a/AffdexMe/valence.jpg b/AffdexMe/valence.jpg
new file mode 100644
index 0000000..a959ef5
Binary files /dev/null and b/AffdexMe/valence.jpg differ
diff --git a/README.md b/README.md
index 7ff921d..93b9cbb 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
#Sample Apps for Affdex SDK for Windows
-Welcome to our repository on GitHub! Here you will find example code to get you started with our Affdex SDK for Windows and begin emotion-enabling you own app!
+Welcome to our repository on GitHub! Here you will find example code to get you started with our Affdex SDK 2.0 for Windows and begin emotion-enabling you own app!
OpenCV-webcam-demo
------------------
*Dependencies*
+- Affdex SDK 2.0 (32 bit)
- OpenCV for Windows 2.4.9: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.9/
- Visual Studio 2013 or higher
diff --git a/opencv-webcam-demo/opencv-webcam-demo.cpp b/opencv-webcam-demo/opencv-webcam-demo.cpp
index 8d7d55c..c5be8e6 100644
--- a/opencv-webcam-demo/opencv-webcam-demo.cpp
+++ b/opencv-webcam-demo/opencv-webcam-demo.cpp
@@ -25,39 +25,72 @@ class PlottingImageListener : public ImageListener
public:
void onImageResults(std::map faces, Frame image) {
+ const int spacing = 10;
+ const int left_margin = 30;
+ const int font = cv::FONT_HERSHEY_COMPLEX_SMALL;
+ float font_size = 0.5f;
+ cv::Scalar clr = cv::Scalar(0, 0, 255);
+ cv::Scalar header_clr = cv::Scalar(255, 0, 0);
shared_ptr imgdata = image.getBGRByteArray();
- cv::Mat img = cv::Mat(image.getHeight(), image.getWidth(), CV_8UC3, imgdata.get());
- for (int i = 0; i < faces.size(); i++)
+ cv::Mat mImg = cv::Mat(image.getHeight(), image.getWidth(), CV_8UC3, imgdata.get());
+
+ for (unsigned int i = 0; i < faces.size(); i++)
{
Face f = faces[i];
- float smile_score = f.getSmileScore();
- int n = f.getFeaturePointCount();
- VecFeaturePoint points = f.getFeaturePoints();
- for (auto& point : points ) //Draw face feature points.
+ VecFeaturePoint points = f.featurePoints;
+ for (auto& point : points) //Draw face feature points.
{
- cv::circle(img, cv::Point(point.x, point.y), 1.0f, cv::Scalar(0, 0, 255));
+ cv::circle(mImg, cv::Point(point.x, point.y), 1.0f, cv::Scalar(0, 0, 255));
}
+ Orientation headAngles = f.measurements.orientation;
+ std::string strAngles = "Pitch: " + std::to_string(headAngles.pitch) +
+ " Yaw: " + std::to_string(headAngles.yaw) +
+ " Roll: " + std::to_string(headAngles.roll) +
+ " InterOcularDist: " + std::to_string(f.measurements.interocularDistance);
//Output the results of the different classifiers.
- cv::putText(img, "Smile: "+ std::to_string(f.getSmileScore()), cv::Point(30, 30), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "BrowFurrow: " + std::to_string(f.getBrowFurrowScore()), cv::Point(30, 50), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "BrowRaise: " + std::to_string(f.getBrowRaiseScore()), cv::Point(30, 70), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "LipCornerDepressor: " + std::to_string(f.getLipCornerDepressorScore()), cv::Point(30, 90), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "Engagement: " + std::to_string(f.getEngagementScore()), cv::Point(30, 110), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "Valence: " + std::to_string(f.getValenceScore()), cv::Point(30, 130), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
+ int padding = 10;
+ std::vector expressions{ "smile", "innerBrowRaise", "browRaise", "browFurrow", "noseWrinkle",
+ "upperLipRaise", "lipCornerDepressor", "chinRaise", "lipPucker", "lipPress",
+ "lipSuck", "mouthOpen", "smirk", "eyeClosure", "attention" };
- //Calculate the processing framerate, output both the processing + capture framerate
- if (process_last_timestamp >= 0.0f)
+ std::vector emotions{ "joy", "fear", "disgust", "sadness", "anger", "surprise", "contempt", "valence", "engagement" };
+
+ cv::putText(mImg, "MEASUREMENTS", cv::Point(left_margin, padding += spacing), font, font_size, header_clr);
+
+ cv::putText(mImg, strAngles, cv::Point(left_margin, padding += spacing), font, font_size, clr);
+
+ cv::putText(mImg, "EXPRESSIONS", cv::Point(left_margin, padding += (spacing * 2)), font, font_size, header_clr);
+
+ float * values = (float *)&f.expressions;
+ for (string expression : expressions)
{
- process_fps = 1.0f / (image.getTimestamp() - process_last_timestamp);
- cv::putText(img, "capture fps: " + std::to_string(capture_fps), cv::Point(img.cols - 200, 30), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
- cv::putText(img, "process fps: " + std::to_string(process_fps), cv::Point(img.cols - 200, 50), cv::FONT_HERSHEY_COMPLEX, 0.5f, cv::Scalar(0, 0, 255));
+ cv::putText(mImg, expression + ": " + std::to_string(int(*values)), cv::Point(left_margin, padding += spacing), font, font_size, clr);
+ values++;
}
+
+ cv::putText(mImg, "EMOTIONS", cv::Point(left_margin, padding += (spacing * 2)), font, font_size, header_clr);
+
+ values = (float *)&f.emotions;
+
+ for (string emotion : emotions)
+ {
+ cv::putText(mImg, emotion + ": " + std::to_string(int(*values)), cv::Point(left_margin, padding += spacing), font, font_size, clr);
+ values++;
+ }
+ std::cerr << "Timestamp: " << image.getTimestamp()
+ << "," << image.getWidth()
+ << "x" << image.getHeight()
+ << " cfps: " << capture_fps
+ << " pnts: " << points.size() << endl;
process_last_timestamp = image.getTimestamp();
+
}
- cv::imshow("analyze-image", img);
-
+ cv::putText(mImg, "capture fps: " + std::to_string(int(capture_fps)), cv::Point(mImg.cols - 110, mImg.rows - left_margin - spacing), font, font_size, clr);
+
+ cv::imshow("analyze-image", mImg);
+
cv::waitKey(30);
};
@@ -91,12 +124,8 @@ int main(int argsc, char ** argsv)
}
//Initialize detectors
- frameDetector.setDetectSmile(true);
- frameDetector.setDetectBrowFurrow(true);
- frameDetector.setDetectBrowRaise(true);
- frameDetector.setDetectLipCornerDepressor(true);
- frameDetector.setDetectEngagement(true);
- frameDetector.setDetectValence(true);
+ frameDetector.setDetectAllEmotions(true);
+ frameDetector.setDetectAllExpressions(true);
frameDetector.setClassifierPath(AFFDEX_DATA_DIR);
frameDetector.setLicensePath(AFFDEX_LICENSE_FILE);
frameDetector.setImageListener(listenPtr.get());