summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--FaceTrackNoIR.suobin310784 -> 310784 bytes
-rw-r--r--FaceTrackNoIR/Debug/BuildLog.htmbin32430 -> 30550 bytes
-rw-r--r--FaceTrackNoIR/Debug/FTServer.objbin112552 -> 112552 bytes
-rw-r--r--FaceTrackNoIR/Debug/main.objbin167871 -> 167943 bytes
-rw-r--r--FaceTrackNoIR/Debug/moc_FTServer.objbin66888 -> 66888 bytes
-rw-r--r--FaceTrackNoIR/Debug/moc_tracker.objbin166418 -> 166554 bytes
-rw-r--r--FaceTrackNoIR/Debug/mt.dep2
-rw-r--r--FaceTrackNoIR/Debug/tracker.objbin410641 -> 413066 bytes
-rw-r--r--FaceTrackNoIR/ExcelServer.cpp22
-rw-r--r--FaceTrackNoIR/FTNoIR_cxx_protocolserver.h9
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.cpp63
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.h2
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.ui71
-rw-r--r--FaceTrackNoIR/tracker.cpp21
-rw-r--r--FaceTrackNoIR/tracker.h2
-rw-r--r--List of compatible games.xlsbin26112 -> 26112 bytes
-rw-r--r--List of compatible webcams.xlsbin20480 -> 20480 bytes
-rw-r--r--bin/FaceTrackNoIR.exebin729088 -> 733184 bytes
-rw-r--r--bin/Settings/SimConnect.ini83
-rw-r--r--bin_dbg/FaceTrackNoIR.exebin1048576 -> 1064960 bytes
-rw-r--r--bin_dbg/FaceTrackNoIR.ilkbin4232332 -> 4316092 bytes
-rw-r--r--bin_dbg/FaceTrackNoIR.pdbbin4287488 -> 4402176 bytes
22 files changed, 202 insertions, 73 deletions
diff --git a/FaceTrackNoIR.suo b/FaceTrackNoIR.suo
index 846c4be4..21734805 100644
--- a/FaceTrackNoIR.suo
+++ b/FaceTrackNoIR.suo
Binary files differ
diff --git a/FaceTrackNoIR/Debug/BuildLog.htm b/FaceTrackNoIR/Debug/BuildLog.htm
index 8e1ff11f..5edbad60 100644
--- a/FaceTrackNoIR/Debug/BuildLog.htm
+++ b/FaceTrackNoIR/Debug/BuildLog.htm
Binary files differ
diff --git a/FaceTrackNoIR/Debug/FTServer.obj b/FaceTrackNoIR/Debug/FTServer.obj
index 7b150608..4c10fe9d 100644
--- a/FaceTrackNoIR/Debug/FTServer.obj
+++ b/FaceTrackNoIR/Debug/FTServer.obj
Binary files differ
diff --git a/FaceTrackNoIR/Debug/main.obj b/FaceTrackNoIR/Debug/main.obj
index 606d4b13..3e1bd4e3 100644
--- a/FaceTrackNoIR/Debug/main.obj
+++ b/FaceTrackNoIR/Debug/main.obj
Binary files differ
diff --git a/FaceTrackNoIR/Debug/moc_FTServer.obj b/FaceTrackNoIR/Debug/moc_FTServer.obj
index 430d91b2..c65e85ad 100644
--- a/FaceTrackNoIR/Debug/moc_FTServer.obj
+++ b/FaceTrackNoIR/Debug/moc_FTServer.obj
Binary files differ
diff --git a/FaceTrackNoIR/Debug/moc_tracker.obj b/FaceTrackNoIR/Debug/moc_tracker.obj
index c444fd14..4b3d94fd 100644
--- a/FaceTrackNoIR/Debug/moc_tracker.obj
+++ b/FaceTrackNoIR/Debug/moc_tracker.obj
Binary files differ
diff --git a/FaceTrackNoIR/Debug/mt.dep b/FaceTrackNoIR/Debug/mt.dep
index 406f9682..f1a7b210 100644
--- a/FaceTrackNoIR/Debug/mt.dep
+++ b/FaceTrackNoIR/Debug/mt.dep
@@ -1 +1 @@
-Manifest resource last updated at 21:57:49.28 on ma 03-01-2011
+Manifest resource last updated at 22:38:23.47 on di 18-01-2011
diff --git a/FaceTrackNoIR/Debug/tracker.obj b/FaceTrackNoIR/Debug/tracker.obj
index f6e3d396..520a2178 100644
--- a/FaceTrackNoIR/Debug/tracker.obj
+++ b/FaceTrackNoIR/Debug/tracker.obj
Binary files differ
diff --git a/FaceTrackNoIR/ExcelServer.cpp b/FaceTrackNoIR/ExcelServer.cpp
index 097be513..0f046e98 100644
--- a/FaceTrackNoIR/ExcelServer.cpp
+++ b/FaceTrackNoIR/ExcelServer.cpp
@@ -62,7 +62,7 @@ SYSTEMTIME now;
QFile data(QCoreApplication::applicationDirPath() + "\\output.txt");
if (data.open(QFile::WriteOnly | QFile::Append)) {
QTextStream out(&data);
- out << newHeadPoseTime << "\t" << headRotX << "\t" << virtRotX << "\t" << headRotY << "\t" << virtRotY << "\t" << headRotZ << "\t" << virtRotZ << '\n';
+ out << newHeadPoseTime << "\t" << newSample << "\t" << confidence << "\t" << dT << "\t" << smoothvalue << "\t" << headRotX << "\t" << virtRotX << "\t" << prev_value << '\n';
}
}
@@ -75,9 +75,25 @@ bool ExcelServer::checkServerInstallationOK( HANDLE handle )
// Use this for some debug-output to file...
QFile data(QCoreApplication::applicationDirPath() + "\\output.txt");
if (data.open(QFile::WriteOnly)) {
+
+
+ //
+ // Get the settings for the header
+ //
+ QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
+
+ QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
+ QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+
+ iniFile.beginGroup ( "Tracking" );
+ int smoothing = iniFile.value ( "Smooth", 10 ).toInt();
+ bool useEWMA = iniFile.value ( "useEWMA", 1 ).toBool();
+ iniFile.endGroup ();
+
QTextStream out(&data);
- out << "Time" << "\t" << "RotX (Pitch)" << "\t" << "RotX (Pitch)" << "\t" << "RotY (Yaw)" << "\t" << "RotY (Yaw)" << "\t" << "RotY (Roll)" << "\t" << "RotY (Roll)" << '\n';
- out << "(long)" << "\t" << "Raw" << "\t" << "Filtered" << "\t" << "Raw" << "\t" << "Filtered" << "\t" << "Raw" << "\t" << "Filtered" << '\n';
+ out << "Smoothing = \t" << smoothing << "\n" << "EWMA used = \t" << useEWMA << "\n" << "\n";
+ out << "Time" << "\t" << "New Sample" << "\t" << "Confidence" << "\t" << "dT" << "\t" << "Smoothed" << "\t" << "RotX (Pitch)" << "\t" << "RotX (Pitch)" << "\t" << "Previous" << '\n';
+ out << "(long)" << "\t" << "(bool)" << "\t" << "(float)" << "\t" << "(float)" << "\t" << "(float)" << "\t" << "Raw" << "\t" << "Filtered" << "\t" << "-" << '\n';
}
return true;
diff --git a/FaceTrackNoIR/FTNoIR_cxx_protocolserver.h b/FaceTrackNoIR/FTNoIR_cxx_protocolserver.h
index a14b198d..6548a82f 100644
--- a/FaceTrackNoIR/FTNoIR_cxx_protocolserver.h
+++ b/FaceTrackNoIR/FTNoIR_cxx_protocolserver.h
@@ -88,6 +88,15 @@ namespace v4friend
float prevRotY;
float prevRotZ;
+ //
+ // Values for analysis of tracking...
+ //
+ float confidence;
+ float smoothvalue;
+ float prev_value;
+ bool newSample;
+ float dT;
+
private:
ProtocolServerBase(const ProtocolServerBase &);
ProtocolServerBase &operator=(const ProtocolServerBase &);
diff --git a/FaceTrackNoIR/FaceTrackNoIR.cpp b/FaceTrackNoIR/FaceTrackNoIR.cpp
index fda8ea84..fb48b149 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.cpp
+++ b/FaceTrackNoIR/FaceTrackNoIR.cpp
@@ -80,8 +80,11 @@ void FaceTrackNoIR::setupFaceTrackNoIR() {
// menu objects will be connected with the functions in FaceTrackNoIR class
connect(ui.actionOpen, SIGNAL(triggered()), this, SLOT(open()));
+ connect(ui.btnLoad, SIGNAL(clicked()), this, SLOT(open()));
connect(ui.actionSave, SIGNAL(triggered()), this, SLOT(save()));
+ connect(ui.btnSave, SIGNAL(clicked()), this, SLOT(save()));
connect(ui.actionSave_As, SIGNAL(triggered()), this, SLOT(saveAs()));
+ connect(ui.btnSaveAs, SIGNAL(clicked()), this, SLOT(saveAs()));
connect(ui.actionExit, SIGNAL(triggered()), this, SLOT(exit()));
connect(ui.actionPreferences, SIGNAL(triggered()), this, SLOT(showPreferences()));
@@ -132,14 +135,16 @@ void FaceTrackNoIR::setupFaceTrackNoIR() {
createActions();
createTrayIcon();
- connect(ui.iconcomboTrackerSource, SIGNAL(currentIndexChanged(int)), this, SLOT(trackingSourceSelected(int)));
- connect(ui.iconcomboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setIcon(int)));
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
//Load the tracker-settings, from the INI-file
loadSettings();
trayIcon->show();
+ connect(ui.iconcomboProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(profileSelected(int)));
+ connect(ui.iconcomboTrackerSource, SIGNAL(currentIndexChanged(int)), this, SLOT(trackingSourceSelected(int)));
+ connect(ui.iconcomboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setIcon(int)));
+
//Setup the timer for automatically minimizing after StartTracker.
timMinimizeFTN = new QTimer(this);
connect(timMinimizeFTN, SIGNAL(timeout()), this, SLOT(showMinimized()));
@@ -349,7 +354,7 @@ void FaceTrackNoIR::saveAs()
// Remove the file, if it already exists.
//
QFileInfo newFileInfo ( fileName );
- if (newFileInfo.exists()) {
+ if ((newFileInfo.exists()) && (oldFile != fileName)) {
QFile newFileFile ( fileName );
newFileFile.remove();
}
@@ -385,6 +390,34 @@ void FaceTrackNoIR::loadSettings() {
QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
+ //
+ // Put the filename in the window-title.
+ //
+ QFileInfo pathInfo ( currentFile );
+ setWindowTitle ( "FaceTrackNoIR (1.5) - " + pathInfo.fileName() );
+
+ //
+ // Get a List of all the INI-files in the (currently active) Settings-folder.
+ //
+ QDir settingsDir( pathInfo.dir() );
+ QStringList filters;
+ filters << "*.ini";
+ iniFileList.clear();
+ iniFileList = settingsDir.entryList( filters, QDir::Files, QDir::Name );
+
+ //
+ // Add strings to the Listbox.
+ //
+ disconnect(ui.iconcomboProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(profileSelected(int)));
+ ui.iconcomboProfile->clear();
+ for ( int i = 0; i < iniFileList.size(); i++) {
+ ui.iconcomboProfile->addItem(iniFileList.at(i));
+ if (iniFileList.at(i) == pathInfo.fileName()) {
+ ui.iconcomboProfile->setCurrentIndex( i );
+ }
+ }
+ connect(ui.iconcomboProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(profileSelected(int)));
+
qDebug() << "loadSettings says: iniFile = " << currentFile;
iniFile.beginGroup ( "Tracking" );
@@ -414,11 +447,6 @@ void FaceTrackNoIR::loadSettings() {
iniFile.endGroup ();
settingsDirty = false;
-
- // Put the filename in the window-title
- QFileInfo pathInfo ( currentFile );
- setWindowTitle ( "FaceTrackNoIR (1.5) - " + pathInfo.fileName() );
-
}
/** show support page in web-browser **/
@@ -916,6 +944,25 @@ void FaceTrackNoIR::trackingSourceSelected(int index)
}
}
+//
+// Handle changes of the Profile selection
+//
+void FaceTrackNoIR::profileSelected(int index)
+{
+ //
+ // Read the current INI-file setting, to get the folder in which it's located...
+ //
+ QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
+ QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
+ QFileInfo pathInfo ( currentFile );
+
+ //
+ // Get a List of all the INI-files in the (currently active) Settings-folder.
+ //
+ settings.setValue ("SettingsFile", pathInfo.absolutePath() + "/" + iniFileList.at(ui.iconcomboProfile->currentIndex()));
+ loadSettings();
+}
+
//
// Constructor for FaceTrackNoIR=Preferences-dialog
diff --git a/FaceTrackNoIR/FaceTrackNoIR.h b/FaceTrackNoIR/FaceTrackNoIR.h
index 8be8b6d6..984b09c0 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.h
+++ b/FaceTrackNoIR/FaceTrackNoIR.h
@@ -65,6 +65,7 @@ private:
Ui::FaceTrackNoIRClass ui;
Tracker *tracker;
QTimer *timMinimizeFTN;
+ QStringList iniFileList; // List of INI-files, that are present in the Settings folder
/** face api variables **/
VideoDisplayWidget *_display;
@@ -114,6 +115,7 @@ private:
void setIcon(int index);
void iconActivated(QSystemTrayIcon::ActivationReason reason);
void trackingSourceSelected(int index);
+ void profileSelected(int index);
void showVideoWidget();
void showHeadPoseWidget();
diff --git a/FaceTrackNoIR/FaceTrackNoIR.ui b/FaceTrackNoIR/FaceTrackNoIR.ui
index 56660d49..15d960bd 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.ui
+++ b/FaceTrackNoIR/FaceTrackNoIR.ui
@@ -10,7 +10,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>923</width>
+ <width>925</width>
<height>371</height>
</rect>
</property>
@@ -808,7 +808,7 @@ border:none;
<property name="title">
<string>Profile</string>
</property>
- <widget class="QComboBox" name="iconcomboTrackerSource_2">
+ <widget class="QComboBox" name="iconcomboProfile">
<property name="geometry">
<rect>
<x>10</x>
@@ -824,7 +824,70 @@ border:none;
<number>-1</number>
</property>
<property name="maxVisibleItems">
- <number>3</number>
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnSaveAs">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>80</y>
+ <width>161</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Change tracker settings</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Save As ...</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnLoad">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>75</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Start the Tracker</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Load</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="btnSave">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>96</x>
+ <y>50</y>
+ <width>75</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Stop the Tracker</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>Save</string>
</property>
</widget>
</widget>
@@ -1950,7 +2013,7 @@ background:none;</string>
<rect>
<x>0</x>
<y>0</y>
- <width>923</width>
+ <width>925</width>
<height>21</height>
</rect>
</property>
diff --git a/FaceTrackNoIR/tracker.cpp b/FaceTrackNoIR/tracker.cpp
index 633af24e..d1ebe6ea 100644
--- a/FaceTrackNoIR/tracker.cpp
+++ b/FaceTrackNoIR/tracker.cpp
@@ -53,7 +53,7 @@
// Definitions for testing purposes
//
#define USE_HEADPOSE_CALLBACK
-#define USE_DEBUG_CLIENT
+//#define USE_DEBUG_CLIENT
using namespace sm::faceapi;
using namespace sm::faceapi::qt;
@@ -489,6 +489,7 @@ void Tracker::run() {
// Pitch
if (Tracker::useFilter) {
rotX = lowPassFilter ( getSmoothFromList( &Pitch.rawList ) - Pitch.offset_headPos - Pitch.initial_headPos,
+// rotX = lowPassFilter ( getSmoothFromList( &Pitch.rawList ),
&Pitch.prevPos, dT, Tracker::Pitch.red );
}
else {
@@ -615,13 +616,21 @@ void Tracker::run() {
}
}
}
- ReleaseMutex(Tracker::hTrackMutex);
- server_Game->sendHeadposeToGame();
# ifdef USE_DEBUG_CLIENT
- debug_Client->sendHeadposeToGame();
+ debug_Client->confidence = Tracker::Pitch.confidence;
+ debug_Client->newSample = Tracker::Pitch.newSample;
+ debug_Client->smoothvalue = getSmoothFromList( &Pitch.rawList );
+ debug_Client->prev_value = Tracker::Pitch.prevPos;
+ debug_Client->dT = dT;
+ debug_Client->sendHeadposeToGame(); // Log to Excel
+ Tracker::Pitch.newSample = false;
# endif
+ ReleaseMutex(Tracker::hTrackMutex);
+ server_Game->sendHeadposeToGame();
+
+
//for lower cpu load
usleep(10000);
yieldCurrentThread();
@@ -664,6 +673,8 @@ void Tracker::addHeadPose( smEngineHeadPoseData head_pose )
// Pitch
Tracker::Pitch.headPos = head_pose.head_rot.x_rads * 57.295781f; // degrees
addRaw2List ( &Pitch.rawList, Pitch.maxItems, Tracker::Pitch.headPos );
+ Tracker::Pitch.confidence = head_pose.confidence; // Just this one ...
+ Tracker::Pitch.newSample = true;
// Yaw
Tracker::Yaw.headPos = head_pose.head_rot.y_rads * 57.295781f; // degrees
@@ -781,7 +792,7 @@ float Tracker::getCorrectedNewRaw ( float NewRaw, float rotNeutral ) {
// The code was adopted from Melchior Franz, who created it for FlightGear (aircraft.nas).
//
// The function takes the new value, the delta-time (sec) and a weighing coefficient (>0 and <1)
-// All previou values are taken into account, the weight of this is determined by 'coeff'.
+// All previous values are taken into account, the weight of this is determined by 'coeff'.
//
float Tracker::lowPassFilter ( float newvalue, float *oldvalue, float dt, float coeff) {
float c = 0.0f;
diff --git a/FaceTrackNoIR/tracker.h b/FaceTrackNoIR/tracker.h
index 49d24f86..b7a653d9 100644
--- a/FaceTrackNoIR/tracker.h
+++ b/FaceTrackNoIR/tracker.h
@@ -94,6 +94,8 @@ struct THeadPoseDOF {
QPainterPath curve; // Bezier curve to translate input -> output
int NeutralZone; // Neutral zone
int MaxInput; // Maximum raw input
+ float confidence; // Current confidence
+ bool newSample; // Indicate new sample from tracker
};
//
diff --git a/List of compatible games.xls b/List of compatible games.xls
index 915c359e..bbe78b3b 100644
--- a/List of compatible games.xls
+++ b/List of compatible games.xls
Binary files differ
diff --git a/List of compatible webcams.xls b/List of compatible webcams.xls
index 3c975443..a3c7398e 100644
--- a/List of compatible webcams.xls
+++ b/List of compatible webcams.xls
Binary files differ
diff --git a/bin/FaceTrackNoIR.exe b/bin/FaceTrackNoIR.exe
index de14308a..5c314b2b 100644
--- a/bin/FaceTrackNoIR.exe
+++ b/bin/FaceTrackNoIR.exe
Binary files differ
diff --git a/bin/Settings/SimConnect.ini b/bin/Settings/SimConnect.ini
index 6d8d382f..05f5d972 100644
--- a/bin/Settings/SimConnect.ini
+++ b/bin/Settings/SimConnect.ini
@@ -7,62 +7,41 @@ invertX=false
invertY=false
invertZ=false
useEWMA=true
-redYaw=70
-redPitch=70
-redRoll=70
-redX=71
-redY=70
-redZ=70
+redYaw=95
+redPitch=90
+redRoll=90
+redX=90
+redY=90
+redZ=90
[GameProtocol]
-Selection=5
+Selection=1
[TrackerSource]
Selection=0
[Curves]
-Yaw_point1=@Variant(\0\0\0\x1a@\x14\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
-Yaw_point2=@Variant(\0\0\0\x1a@O\0\0\0\0\0\0@2\0\0\0\0\0\0)
-Yaw_point3=@Variant(\0\0\0\x1a@`\xa0\0\0\0\0\0@?\0\0\0\0\0\0)
-Yaw_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0\0\0\0\0)
-Pitch_point1=@Variant(\0\0\0\x1a@\x18\0\0\0\0\0\0@\x18\0\0\0\0\0\0)
-Pitch_point2=@Variant(\0\0\0\x1a@H\0\0\0\0\0\0@3\0\0\0\0\0\0)
-Pitch_point3=@Variant(\0\0\0\x1a@b`\0\0\0\0\0@A\x80\0\0\0\0\0)
-Pitch_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0\0\0\0\0)
-Roll_point1=@Variant(\0\0\0\x1a@\x14\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
-Roll_point2=@Variant(\0\0\0\x1a@R\0\0\0\0\0\0@1\0\0\0\0\0\0)
-Roll_point3=@Variant(\0\0\0\x1a@[@\0\0\0\0\0@A\0\0\0\0\0\0)
-Roll_point4=@Variant(\0\0\0\x1a@f\x80\0\0\0\0\0@I\0\0\0\0\0\0)
-X_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0)
-X_point2=@Variant(\0\0\0\x1a@R\xc0\0\0\0\0\0@2\0\0\0\0\0\0)
-X_point3=@Variant(\0\0\0\x1a@Y\0\0\0\0\0\0@A\0\0\0\0\0\0)
-X_point4=@Variant(\0\0\0\x1a@c\xc0\0\0\0\0\0@I\0\0\0\0\0\0)
-Y_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0)
-Y_point2=@Variant(\0\0\0\x1a@T@\0\0\0\0\0@3\0\0\0\0\0\0)
-Y_point3=@Variant(\0\0\0\x1a@Y\xc0\0\0\0\0\0@A\0\0\0\0\0\0)
-Y_point4=@Variant(\0\0\0\x1a@a\xa0\0\0\0\0\0@I\0\0\0\0\0\0)
-Z_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0)
-Z_point2=@Variant(\0\0\0\x1a@X\x80\0\0\0\0\0@5\0\0\0\0\0\0)
-Z_point3=@Variant(\0\0\0\x1a@\\\x80\0\0\0\0\0@C\0\0\0\0\0\0)
-Z_point4=@Variant(\0\0\0\x1a@c \0\0\0\0\0@I\0\0\0\0\0\0)
-
-[KB_Shortcuts]
-Keycode_Center=199
-Shift_Center=false
-Ctrl_Center=false
-Alt_Center=false
-Keycode_StartStop=207
-Shift_StartStop=false
-Ctrl_StartStop=false
-Alt_StartStop=false
-Keycode_Inhibit=0
-Shift_Inhibit=false
-Ctrl_Inhibit=false
-Alt_Inhibit=false
-Inhibit_Pitch=false
-Inhibit_Yaw=false
-Inhibit_Roll=false
-Inhibit_X=false
-Inhibit_Y=false
-Inhibit_Z=false
-SetZero=false
+Yaw_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+Yaw_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+Yaw_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+Yaw_point4=@Variant(\0\0\0\x1a@d\x80\0\0\0\0\0@I\0\0\0\0\0\0)
+Pitch_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+Pitch_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+Pitch_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+Pitch_point4=@Variant(\0\0\0\x1a@c\xd0\0\0\0\0\0@I\0\0\0\0\0\0)
+Roll_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+Roll_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+Roll_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+Roll_point4=@Variant(\0\0\0\x1a@d\x10\0\0\0\0\0@I\0\0\0\0\0\0)
+X_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+X_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+X_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+X_point4=@Variant(\0\0\0\x1a@I\0\0\0\0\0\0@I\0\0\0\0\0\0)
+Y_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+Y_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+Y_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+Y_point4=@Variant(\0\0\0\x1a@I\0\0\0\0\0\0@I\0\0\0\0\0\0)
+Z_point1=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0@\x14\0\0\0\0\0\0)
+Z_point2=@Variant(\0\0\0\x1a@1\0\0\0\0\0\0@1\0\0\0\0\0\0)
+Z_point3=@Variant(\0\0\0\x1a@@\x80\0\0\0\0\0@@\x80\0\0\0\0\0)
+Z_point4=@Variant(\0\0\0\x1a@I\0\0\0\0\0\0@I\0\0\0\0\0\0)
diff --git a/bin_dbg/FaceTrackNoIR.exe b/bin_dbg/FaceTrackNoIR.exe
index fe99adfe..8fe88707 100644
--- a/bin_dbg/FaceTrackNoIR.exe
+++ b/bin_dbg/FaceTrackNoIR.exe
Binary files differ
diff --git a/bin_dbg/FaceTrackNoIR.ilk b/bin_dbg/FaceTrackNoIR.ilk
index 5c2feb07..1b2e383a 100644
--- a/bin_dbg/FaceTrackNoIR.ilk
+++ b/bin_dbg/FaceTrackNoIR.ilk
Binary files differ
diff --git a/bin_dbg/FaceTrackNoIR.pdb b/bin_dbg/FaceTrackNoIR.pdb
index a102e79e..802a13b2 100644
--- a/bin_dbg/FaceTrackNoIR.pdb
+++ b/bin_dbg/FaceTrackNoIR.pdb
Binary files differ