summaryrefslogtreecommitdiffhomepage
path: root/FaceTrackNoIR
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2011-02-12 16:13:30 +0000
committerWim Vriend <facetracknoir@gmail.com>2011-02-12 16:13:30 +0000
commit63ce1b5dc62e5c1a079f8a675c0a4371adb27d29 (patch)
tree0a8ac58de927502c9f33d97a2c82966ae980e54a /FaceTrackNoIR
parenta8a619f078f543b56e8ae785d92844b806444195 (diff)
Displaying headpose-data seemed to cause crashes.
Update is now done in FaceTrackNoIR.cpp, using a timer. git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@51 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FaceTrackNoIR')
-rw-r--r--FaceTrackNoIR/FTNoIR_FGcontrols.ui8
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.cpp19
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.h6
-rw-r--r--FaceTrackNoIR/FaceTrackNoIR.ui384
-rw-r--r--FaceTrackNoIR/tracker.cpp79
-rw-r--r--FaceTrackNoIR/tracker.h12
6 files changed, 250 insertions, 258 deletions
diff --git a/FaceTrackNoIR/FTNoIR_FGcontrols.ui b/FaceTrackNoIR/FTNoIR_FGcontrols.ui
index 5f5d1563..c5f81c29 100644
--- a/FaceTrackNoIR/FTNoIR_FGcontrols.ui
+++ b/FaceTrackNoIR/FTNoIR_FGcontrols.ui
@@ -38,7 +38,7 @@
<number>255</number>
</property>
<property name="singleStep">
- <number>5</number>
+ <number>1</number>
</property>
</widget>
</item>
@@ -54,7 +54,7 @@
<number>255</number>
</property>
<property name="singleStep">
- <number>5</number>
+ <number>1</number>
</property>
</widget>
</item>
@@ -70,7 +70,7 @@
<number>255</number>
</property>
<property name="singleStep">
- <number>5</number>
+ <number>1</number>
</property>
</widget>
</item>
@@ -86,7 +86,7 @@
<number>255</number>
</property>
<property name="singleStep">
- <number>5</number>
+ <number>1</number>
</property>
</widget>
</item>
diff --git a/FaceTrackNoIR/FaceTrackNoIR.cpp b/FaceTrackNoIR/FaceTrackNoIR.cpp
index e9a0c8be..7197a5f7 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.cpp
+++ b/FaceTrackNoIR/FaceTrackNoIR.cpp
@@ -147,6 +147,11 @@ void FaceTrackNoIR::setupFaceTrackNoIR() {
//Setup the timer for automatically minimizing after StartTracker.
timMinimizeFTN = new QTimer(this);
connect(timMinimizeFTN, SIGNAL(timeout()), this, SLOT(showMinimized()));
+
+ //Setup the timer for showing the headpose.
+ timUpdateHeadPose = new QTimer(this);
+ connect(timUpdateHeadPose, SIGNAL(timeout()), this, SLOT(showHeadPose()));
+ timUpdateHeadPose->start(10);
}
/** destructor stops the engine and quits the faceapi **/
@@ -654,6 +659,20 @@ void FaceTrackNoIR::setUseFilter( int set ) {
settingsDirty = true;
}
+/** Show the headpose in the widget (triggered by timer) **/
+void FaceTrackNoIR::showHeadPose() {
+THeadPoseData newdata;
+
+ Tracker::getHeadPose(&newdata);
+ ui.lcdNumX->display((double) (((int)(newdata.x * 10.0f))/10.0f));
+ ui.lcdNumY->display((double) (((int)(newdata.y * 10.0f))/10.0f));
+ ui.lcdNumZ->display((double) (((int)(newdata.z * 10.0f))/10.0f));
+
+ ui.lcdNumRotX->display((double) (((int)(newdata.yaw * 10.0f))/10.0f));
+ ui.lcdNumRotY->display((double) (((int)(newdata.pitch * 10.0f))/10.0f));
+ ui.lcdNumRotZ->display((double) (((int)(newdata.roll * 10.0f))/10.0f));
+}
+
/** set the redhold from the slider **/
void FaceTrackNoIR::setMinSmooth( int redh ) {
Tracker::setMinSmooth ( redh );
diff --git a/FaceTrackNoIR/FaceTrackNoIR.h b/FaceTrackNoIR/FaceTrackNoIR.h
index 0498770a..7518d896 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.h
+++ b/FaceTrackNoIR/FaceTrackNoIR.h
@@ -75,7 +75,8 @@ public:
private:
Ui::FaceTrackNoIRClass ui;
Tracker *tracker;
- QTimer *timMinimizeFTN;
+ QTimer *timMinimizeFTN; // Timer to Auto-minimize
+ QTimer *timUpdateHeadPose; // Timer to display headpose
QStringList iniFileList; // List of INI-files, that are present in the Settings folder
ITrackerDialogPtr pTrackerDialog; // Pointer to Tracker dialog instance (in DLL)
@@ -147,8 +148,9 @@ private:
void setInvertZ( int invert );
void setUseFilter( int set );
+ void showHeadPose();
- // reduction factor sliders
+ // EWMA filter sliders
void setMinSmooth( int redh );
void setMaxSmooth( int redh );
void setPowCurve( int redh );
diff --git a/FaceTrackNoIR/FaceTrackNoIR.ui b/FaceTrackNoIR/FaceTrackNoIR.ui
index 25adf15f..b030f18b 100644
--- a/FaceTrackNoIR/FaceTrackNoIR.ui
+++ b/FaceTrackNoIR/FaceTrackNoIR.ui
@@ -154,6 +154,134 @@ QGroupBox {
<property name="spacing">
<number>6</number>
</property>
+ <item row="4" column="0">
+ <widget class="QWidget" name="widget4video" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>250</width>
+ <height>150</height>
+ </size>
+ </property>
+ <widget class="QFrame" name="video_frame">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>250</width>
+ <height>170</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>250</width>
+ <height>150</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>500</width>
+ <height>500</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QWidget" name="widget4logo" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>90</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>90</height>
+ </size>
+ </property>
+ <widget class="QPushButton" name="btnDonate">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>20</y>
+ <width>145</width>
+ <height>34</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Please help us: make gaming fun...</string>
+ </property>
+ <property name="text">
+ <string>Click here to
+Support FaceTrackNoIR!</string>
+ </property>
+ <property name="icon">
+ <iconset resource="FaceTrackNoIR.qrc">
+ <normaloff>:/UIElements/Donate.png</normaloff>:/UIElements/Donate.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>18</width>
+ <height>18</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QFrame" name="logoInstitute">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>90</width>
+ <height>90</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>90</width>
+ <height>90</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>90</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QFrame#logoInstitute {
+ background:#595959 url(UIElements/logoFaceTrackNoIR.png) no-repeat;
+border:none;
+}</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </item>
<item row="5" column="0">
<widget class="QWidget" name="headPoseWidget" native="true">
<property name="minimumSize">
@@ -171,60 +299,6 @@ QGroupBox {
<property name="styleSheet">
<string notr="true"/>
</property>
- <widget class="QLineEdit" name="headRotYLine">
- <property name="geometry">
- <rect>
- <x>151</x>
- <y>40</y>
- <width>80</width>
- <height>20</height>
- </rect>
- </property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
- </property>
- </widget>
- <widget class="QLineEdit" name="headRotXLine">
- <property name="geometry">
- <rect>
- <x>151</x>
- <y>10</y>
- <width>81</width>
- <height>20</height>
- </rect>
- </property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
- </property>
- </widget>
- <widget class="QLineEdit" name="headRotZLine">
- <property name="geometry">
- <rect>
- <x>150</x>
- <y>70</y>
- <width>81</width>
- <height>20</height>
- </rect>
- </property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
- </property>
- </widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
@@ -327,190 +401,86 @@ color:white;</string>
<string>rotX</string>
</property>
</widget>
- <widget class="QLineEdit" name="headZLine">
+ <widget class="QLCDNumber" name="lcdNumX">
<property name="geometry">
<rect>
<x>30</x>
- <y>70</y>
- <width>81</width>
- <height>20</height>
+ <y>10</y>
+ <width>71</width>
+ <height>23</height>
</rect>
</property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
</widget>
- <widget class="QLineEdit" name="headYLine">
+ <widget class="QLCDNumber" name="lcdNumY">
<property name="geometry">
<rect>
<x>30</x>
<y>40</y>
- <width>81</width>
- <height>20</height>
+ <width>71</width>
+ <height>23</height>
</rect>
</property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
</widget>
- <widget class="QLineEdit" name="headXLine">
+ <widget class="QLCDNumber" name="lcdNumZ">
<property name="geometry">
<rect>
<x>30</x>
- <y>10</y>
- <width>81</width>
- <height>20</height>
+ <y>70</y>
+ <width>71</width>
+ <height>23</height>
</rect>
</property>
- <property name="styleSheet">
- <string notr="true">border:1px solid #ccc;
-background:white;
-color:#000;</string>
- </property>
- <property name="text">
- <string>N/A</string>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
</widget>
- </widget>
- </item>
- <item row="4" column="0">
- <widget class="QWidget" name="widget4video" native="true">
- <property name="minimumSize">
- <size>
- <width>250</width>
- <height>150</height>
- </size>
- </property>
- <widget class="QFrame" name="video_frame">
+ <widget class="QLCDNumber" name="lcdNumRotX">
<property name="geometry">
<rect>
- <x>0</x>
- <y>0</y>
- <width>250</width>
- <height>170</height>
+ <x>150</x>
+ <y>10</y>
+ <width>71</width>
+ <height>23</height>
</rect>
</property>
- <property name="minimumSize">
- <size>
- <width>250</width>
- <height>150</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>500</width>
- <height>500</height>
- </size>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
- <property name="styleSheet">
- <string notr="true"/>
+ </widget>
+ <widget class="QLCDNumber" name="lcdNumRotY">
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>40</y>
+ <width>71</width>
+ <height>23</height>
+ </rect>
</property>
<property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
+ <enum>QFrame::NoFrame</enum>
</property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
+ </widget>
+ <widget class="QLCDNumber" name="lcdNumRotZ">
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>70</y>
+ <width>71</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
</widget>
</widget>
</item>
- <item row="0" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout_6">
- <item>
- <widget class="QWidget" name="widget4logo" native="true">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>90</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>90</height>
- </size>
- </property>
- <widget class="QPushButton" name="btnDonate">
- <property name="geometry">
- <rect>
- <x>100</x>
- <y>20</y>
- <width>145</width>
- <height>34</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Please help us: make gaming fun...</string>
- </property>
- <property name="text">
- <string>Click here to
-Support FaceTrackNoIR!</string>
- </property>
- <property name="icon">
- <iconset resource="FaceTrackNoIR.qrc">
- <normaloff>:/UIElements/Donate.png</normaloff>:/UIElements/Donate.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>18</width>
- <height>18</height>
- </size>
- </property>
- </widget>
- <widget class="QFrame" name="logoInstitute">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>90</width>
- <height>90</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>90</width>
- <height>90</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>90</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true">QFrame#logoInstitute {
- background:#595959 url(UIElements/logoFaceTrackNoIR.png) no-repeat;
-border:none;
-}</string>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
- </property>
- </widget>
- </widget>
- </item>
- </layout>
- </item>
</layout>
</item>
<item>
@@ -2181,12 +2151,6 @@ background:none;</string>
<tabstop>btnStopTracker</tabstop>
<tabstop>btnShowEngineControls</tabstop>
<tabstop>iconcomboBox</tabstop>
- <tabstop>headXLine</tabstop>
- <tabstop>headRotXLine</tabstop>
- <tabstop>headYLine</tabstop>
- <tabstop>headRotYLine</tabstop>
- <tabstop>headZLine</tabstop>
- <tabstop>headRotZLine</tabstop>
</tabstops>
<resources>
<include location="FaceTrackNoIR.qrc"/>
diff --git a/FaceTrackNoIR/tracker.cpp b/FaceTrackNoIR/tracker.cpp
index c8208023..6455f9b6 100644
--- a/FaceTrackNoIR/tracker.cpp
+++ b/FaceTrackNoIR/tracker.cpp
@@ -258,7 +258,7 @@ void Tracker::setup(QWidget *head, FaceTrackNoIR *parent) {
bool DLL_Ok;
// retrieve pointers to the User Interface and the main Application
- headPoseWidget = head;
+// headPoseWidget = head;
mainApp = parent;
if (selectedTracker == FT_SM_FACEAPI) {
@@ -277,15 +277,6 @@ void Tracker::setup(QWidget *head, FaceTrackNoIR *parent) {
pTracker->StartTracker();
}
- // set up the line edits for calling
- headXLine = headPoseWidget->findChild<QLineEdit *>("headXLine");
- headYLine = headPoseWidget->findChild<QLineEdit *>("headYLine");
- headZLine = headPoseWidget->findChild<QLineEdit *>("headZLine");
-
- headRotXLine = headPoseWidget->findChild<QLineEdit *>("headRotXLine");
- headRotYLine = headPoseWidget->findChild<QLineEdit *>("headRotYLine");
- headRotZLine = headPoseWidget->findChild<QLineEdit *>("headRotZLine");
-
//
// Check if the Protocol-server files were installed OK.
// Some servers also create a memory-mapping, for Inter Process Communication.
@@ -320,9 +311,6 @@ void Tracker::run() {
bool lastStartStopKey = false;
bool lastInhibitKey = false;
- float rawrotX, rawrotY, rawrotZ; // Locals...
- float rawposX, rawposY, rawposZ;
-
SYSTEMTIME now;
long newHeadPoseTime;
float dT;
@@ -336,6 +324,27 @@ void Tracker::run() {
smEngineHeadPoseData temp_head_pose; // headpose from faceAPI
# endif
+ current_camera_position.x = 0.0f;
+ current_camera_position.y = 0.0f;
+ current_camera_position.z = 0.0f;
+ current_camera_position.yaw = 0.0f;
+ current_camera_position.pitch = 0.0f;
+ current_camera_position.roll = 0.0f;
+
+ target_camera_position.x = 0.0f;
+ target_camera_position.y = 0.0f;
+ target_camera_position.z = 0.0f;
+ target_camera_position.yaw = 0.0f;
+ target_camera_position.pitch = 0.0f;
+ target_camera_position.roll = 0.0f;
+
+ new_camera_position.x = 0.0f;
+ new_camera_position.y = 0.0f;
+ new_camera_position.z = 0.0f;
+ new_camera_position.yaw = 0.0f;
+ new_camera_position.pitch = 0.0f;
+ new_camera_position.roll = 0.0f;
+
//
// Test some Filter-stuff
//
@@ -533,22 +542,6 @@ void Tracker::run() {
MessageBeep (MB_ICONASTERISK);
Tracker::set_initial = true;
}
-
- rawrotX = Tracker::Pitch.headPos- Tracker::Pitch.initial_headPos; // degrees
- rawrotY = Tracker::Yaw.headPos- Tracker::Yaw.initial_headPos;
- rawrotZ = Tracker::Roll.headPos - Tracker::Roll.initial_headPos;
- rawposX = Tracker::X.headPos - Tracker::X.initial_headPos; // centimeters
- rawposY = Tracker::Y.headPos - Tracker::Y.initial_headPos;
- rawposZ = Tracker::Z.headPos - Tracker::Z.initial_headPos;
-
- headRotXLine->setText(QString("%1").arg( rawrotX, 0, 'f', 1)); // show degrees
- headRotYLine->setText(QString("%1").arg( rawrotY, 0, 'f', 1));
- headRotZLine->setText(QString("%1").arg( rawrotZ, 0, 'f', 1));
-
- headXLine->setText(QString("%1").arg( rawposX, 0, 'f', 1)); // show centimeters
- headYLine->setText(QString("%1").arg( rawposY, 0, 'f', 1));
- headZLine->setText(QString("%1").arg( rawposZ, 0, 'f', 1));
-
}
//
@@ -614,21 +607,30 @@ void Tracker::run() {
server_Game->setHeadRotY( new_camera_position.yaw );
server_Game->setHeadRotZ( new_camera_position.roll );
- server_Game->setHeadPosX( new_camera_position.x ); // centimeters
+ server_Game->setHeadPosX( new_camera_position.x ); // centimeters
server_Game->setHeadPosY( new_camera_position.y );
server_Game->setHeadPosZ( new_camera_position.z );
}
// All Protocol server(s)
if (server_Game) {
- server_Game->setVirtRotX ( new_camera_position.pitch ); // degrees
+ server_Game->setVirtRotX ( new_camera_position.pitch ); // degrees
server_Game->setVirtRotY ( new_camera_position.yaw );
server_Game->setVirtRotZ ( new_camera_position.roll );
- server_Game->setVirtPosX ( new_camera_position.x ); // centimeters
+ server_Game->setVirtPosX ( new_camera_position.x ); // centimeters
server_Game->setVirtPosY ( new_camera_position.y );
server_Game->setVirtPosZ ( new_camera_position.z );
}
+// headRotXLine->setText(QString("%1").arg( new_camera_position.pitch, 0, 'f', 1)); // show degrees
+// headRotYLine->setText(QString("%1").arg( new_camera_position.yaw, 0, 'f', 1));
+// headRotZLine->setText(QString("%1").arg( new_camera_position.roll, 0, 'f', 1));
+//
+//// headXLine->setText(QString("%1").arg( new_camera_position.x, 0, 'f', 1)); // show centimeters
+// headYLine->setText(QString("%1").arg( new_camera_position.y, 0, 'f', 1));
+// headZLine->setText(QString("%1").arg( new_camera_position.z, 0, 'f', 1));
+
+
# ifdef USE_DEBUG_CLIENT
debug_Client->setHeadRotX( Tracker::Pitch.headPos ); // degrees
debug_Client->setHeadRotY( Tracker::Yaw.headPos );
@@ -848,6 +850,19 @@ void Tracker::setPowCurve( int x ) {
}
//
+// Set the filter-value from the GUI.
+//
+void Tracker::getHeadPose( THeadPoseData *data ) {
+ data->x = Tracker::X.headPos - Tracker::X.initial_headPos; // centimeters
+ data->y = Tracker::Y.headPos - Tracker::Y.initial_headPos;
+ data->z = Tracker::Z.headPos - Tracker::Z.initial_headPos;
+
+ data->pitch = Tracker::Pitch.headPos- Tracker::Pitch.initial_headPos; // degrees
+ data->yaw = Tracker::Yaw.headPos- Tracker::Yaw.initial_headPos;
+ data->roll = Tracker::Roll.headPos - Tracker::Roll.initial_headPos;
+}
+
+//
// Get the Smoothed value from the QList.
//
float Tracker::getSmoothFromList ( QList<float> *rawList ) {
diff --git a/FaceTrackNoIR/tracker.h b/FaceTrackNoIR/tracker.h
index 56be4771..3eeae2f2 100644
--- a/FaceTrackNoIR/tracker.h
+++ b/FaceTrackNoIR/tracker.h
@@ -181,16 +181,6 @@ private:
static bool setEngineStop; // Stop tracker->engine, when OFF
static long prevHeadPoseTime; // Time from previous sample
- /** QT objects **/
- QLineEdit *headXLine;
- QLineEdit *headYLine;
- QLineEdit *headZLine;
-
- QLineEdit *headRotXLine;
- QLineEdit *headRotYLine;
- QLineEdit *headRotZLine;
-
- QWidget *headPoseWidget;
FaceTrackNoIR *mainApp;
QSharedPointer<ProtocolServerBase> server_Game; // Protocol Server to communicate headpose-data to the Game!
@@ -228,6 +218,8 @@ public:
static void setMaxSmooth(int x);
static void setPowCurve(int x);
+ static void getHeadPose(THeadPoseData *data); // Return the current headpose data
+
static float getSmoothFromList ( QList<float> *rawList );
static float getDegreesFromRads ( float rads ) { return (rads * 57.295781f); }
static float getRadsFromDegrees ( float degrees ) { return (degrees * 0.017453f); }