From c681889ab4c37bfd0f049177459b7fda380fda51 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Wed, 2 Jan 2013 18:54:06 +0000 Subject: Added 'enable axis' parameters to the Trackers. Added 'none' to filter-listbox. git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@203 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_UDP/FTNoIR_FTNClientControls.ui | 184 ++++++++++++++++++++++- FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h | 7 + FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp | 45 ++++-- FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp | 31 ++-- 4 files changed, 239 insertions(+), 28 deletions(-) (limited to 'FTNoIR_Tracker_UDP') diff --git a/FTNoIR_Tracker_UDP/FTNoIR_FTNClientControls.ui b/FTNoIR_Tracker_UDP/FTNoIR_FTNClientControls.ui index 11e07cf3..7ac6c0f4 100644 --- a/FTNoIR_Tracker_UDP/FTNoIR_FTNClientControls.ui +++ b/FTNoIR_Tracker_UDP/FTNoIR_FTNClientControls.ui @@ -7,7 +7,7 @@ 0 0 411 - 129 + 210 @@ -58,6 +58,188 @@ + + + + + 0 + 85 + + + + Enable Axis + + + + + 10 + 20 + 143 + 60 + + + + + + + Roll: + + + + + + + Pitch: + + + + + + + Yaw: + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + X: + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + Y: + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + Z: + + + + + + + + 20 + 16777215 + + + + Qt::LeftToRight + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + diff --git a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h index b1638e7b..94645c84 100644 --- a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h +++ b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h @@ -38,6 +38,12 @@ private: THeadPoseData newHeadPose; // Structure with new headpose float portAddress; // Port-number + bool bEnableRoll; + bool bEnablePitch; + bool bEnableYaw; + bool bEnableX; + bool bEnableY; + bool bEnableZ; }; // Widget that has controls for FTNoIR protocol client-settings. @@ -66,6 +72,7 @@ private slots: void doOK(); void doCancel(); void settingChanged() { settingsDirty = true; }; + void settingChanged(int) { settingsDirty = true; }; }; //******************************************************************************************************* diff --git a/FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp b/FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp index ecf0e5dd..102c85bd 100644 --- a/FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp +++ b/FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp @@ -33,15 +33,12 @@ FTNoIR_Tracker::FTNoIR_Tracker() m_StopThread = CreateEvent(0, TRUE, FALSE, 0); m_WaitThread = CreateEvent(0, TRUE, FALSE, 0); - ////allocate memory for the parameters - //parameterValueAsFloat.clear(); - //parameterRange.clear(); - - //// Add the parameters to the list - //parameterRange.append(std::pair(1000.0f,9999.0f)); - //parameterValueAsFloat.append(0.0f); - //setParameterValue(kPortAddress,5551.0f); - + bEnableRoll = true; + bEnablePitch = true; + bEnableYaw = true; + bEnableX = true; + bEnableY = true; + bEnableZ = true; portAddress = 5551; newHeadPose.x = 0.0f; @@ -159,12 +156,24 @@ void FTNoIR_Tracker::StopTracker( bool exit ) bool FTNoIR_Tracker::GiveHeadPoseData(THeadPoseData *data) { - data->x = newHeadPose.x; - data->y = newHeadPose.y; - data->z = newHeadPose.z; - data->yaw = newHeadPose.yaw; - data->pitch = newHeadPose.pitch; - data->roll = newHeadPose.roll; + if (bEnableX) { + data->x = newHeadPose.x; + } + if (bEnableX) { + data->y = newHeadPose.y; + } + if (bEnableX) { + data->z = newHeadPose.z; + } + if (bEnableX) { + data->yaw = newHeadPose.yaw; + } + if (bEnableX) { + data->pitch = newHeadPose.pitch; + } + if (bEnableX) { + data->roll = newHeadPose.roll; + } return true; } @@ -182,6 +191,12 @@ void FTNoIR_Tracker::loadSettings() { qDebug() << "FTNoIR_Tracker::loadSettings says: iniFile = " << currentFile; iniFile.beginGroup ( "FTNClient" ); + bEnableRoll = iniFile.value ( "EnableRoll", 1 ).toBool(); + bEnablePitch = iniFile.value ( "EnablePitch", 1 ).toBool(); + bEnableYaw = iniFile.value ( "EnableYaw", 1 ).toBool(); + bEnableX = iniFile.value ( "EnableX", 1 ).toBool(); + bEnableY = iniFile.value ( "EnableY", 1 ).toBool(); + bEnableZ = iniFile.value ( "EnableZ", 1 ).toBool(); portAddress = (float) iniFile.value ( "PortNumber", 5550 ).toInt(); iniFile.endGroup (); } diff --git a/FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp b/FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp index c5bee64f..2857715a 100644 --- a/FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp +++ b/FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp @@ -39,12 +39,15 @@ QWidget() // Connect Qt signals to member-functions connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK())); connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel())); - //connect(ui.spinIPFirstNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged())); - //connect(ui.spinIPSecondNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged())); - //connect(ui.spinIPThirdNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged())); - //connect(ui.spinIPFourthNibble, SIGNAL(valueChanged(int)), this, SLOT(settingChanged())); connect(ui.spinPortNumber, SIGNAL(valueChanged(int)), this, SLOT(settingChanged())); + connect(ui.chkEnableRoll, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + connect(ui.chkEnablePitch, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + connect(ui.chkEnableYaw, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + connect(ui.chkEnableX, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + connect(ui.chkEnableY, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + connect(ui.chkEnableZ, SIGNAL(stateChanged(int)), this, SLOT(settingChanged(int))); + // Load the settings from the current .INI-file loadSettings(); } @@ -129,10 +132,12 @@ void TrackerControls::loadSettings() { // qDebug() << "loadSettings says: iniFile = " << currentFile; iniFile.beginGroup ( "FTNClient" ); - //ui.spinIPFirstNibble->setValue( iniFile.value ( "IP-1", 192 ).toInt() ); - //ui.spinIPSecondNibble->setValue( iniFile.value ( "IP-2", 168 ).toInt() ); - //ui.spinIPThirdNibble->setValue( iniFile.value ( "IP-3", 2 ).toInt() ); - //ui.spinIPFourthNibble->setValue( iniFile.value ( "IP-4", 1 ).toInt() ); + ui.chkEnableRoll->setChecked(iniFile.value ( "EnableRoll", 1 ).toBool()); + ui.chkEnablePitch->setChecked(iniFile.value ( "EnablePitch", 1 ).toBool()); + ui.chkEnableYaw->setChecked(iniFile.value ( "EnableYaw", 1 ).toBool()); + ui.chkEnableX->setChecked(iniFile.value ( "EnableX", 1 ).toBool()); + ui.chkEnableY->setChecked(iniFile.value ( "EnableY", 1 ).toBool()); + ui.chkEnableZ->setChecked(iniFile.value ( "EnableZ", 1 ).toBool()); ui.spinPortNumber->setValue( iniFile.value ( "PortNumber", 5550 ).toInt() ); iniFile.endGroup (); @@ -151,10 +156,12 @@ void TrackerControls::save() { QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) iniFile.beginGroup ( "FTNClient" ); - //iniFile.setValue ( "IP-1", ui.spinIPFirstNibble->value() ); - //iniFile.setValue ( "IP-2", ui.spinIPSecondNibble->value() ); - //iniFile.setValue ( "IP-3", ui.spinIPThirdNibble->value() ); - //iniFile.setValue ( "IP-4", ui.spinIPFourthNibble->value() ); + iniFile.setValue ( "EnableRoll", ui.chkEnableRoll->isChecked() ); + iniFile.setValue ( "EnablePitch", ui.chkEnablePitch->isChecked() ); + iniFile.setValue ( "EnableYaw", ui.chkEnableYaw->isChecked() ); + iniFile.setValue ( "EnableX", ui.chkEnableX->isChecked() ); + iniFile.setValue ( "EnableY", ui.chkEnableY->isChecked() ); + iniFile.setValue ( "EnableZ", ui.chkEnableZ->isChecked() ); iniFile.setValue ( "PortNumber", ui.spinPortNumber->value() ); iniFile.endGroup (); -- cgit v1.2.3