summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h
diff options
context:
space:
mode:
Diffstat (limited to 'ftnoir_tracker_hydra/ftnoir_tracker_hydra.h')
-rw-r--r--ftnoir_tracker_hydra/ftnoir_tracker_hydra.h74
1 files changed, 25 insertions, 49 deletions
diff --git a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h b/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h
index 3f7bf0a8..05a8b076 100644
--- a/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h
+++ b/ftnoir_tracker_hydra/ftnoir_tracker_hydra.h
@@ -1,89 +1,65 @@
#include "ftnoir_tracker_base/ftnoir_tracker_base.h"
#include "ui_ftnoir_hydra_clientcontrols.h"
#include <QMessageBox>
-#include <QSettings>
#include <QWaitCondition>
#include <math.h>
#include "facetracknoir/global-settings.h"
+#include "facetracknoir/options.h"
+using namespace options;
+
+struct settings {
+ pbundle b;
+ value<bool> bEnableRoll, bEnablePitch, bEnableYaw, bEnableX, bEnableY, bEnableZ;
+ settings() :
+ b(bundle("tracker-hydra")),
+ bEnableRoll(b, "enable-rz", true),
+ bEnablePitch(b, "enable-ry", true),
+ bEnableYaw(b, "enable-rx", true),
+ bEnableX(b, "enable-tx", true),
+ bEnableY(b, "enable-ty", true),
+ bEnableZ(b, "enable-tz", true)
+ {}
+};
+
class Hydra_Tracker : public ITracker
{
public:
Hydra_Tracker();
- ~Hydra_Tracker();
-
- void StartTracker( QFrame *videoframe );
- bool GiveHeadPoseData(double *data);
- void loadSettings();
+ ~Hydra_Tracker();
+ void StartTracker(QFrame *) virt_override;
+ void GetHeadPoseData(double *data) virt_override;
volatile bool should_quit;
- void WaitForExit() {
- return;
- }
protected:
void run(); // qthread override run method
-
private:
+ settings s;
bool isCalibrated;
-
double newHeadPose[6]; // Structure with new headpose
- bool bEnableRoll;
- bool bEnablePitch;
- bool bEnableYaw;
-
- bool bEnableX;
- bool bEnableY;
- bool bEnableZ;
-
QMutex mutex;
+ virtual int preferredHz() virt_override { return 250; }
};
-// Widget that has controls for FTNoIR protocol client-settings.
class TrackerControls: public QWidget, public ITrackerDialog
{
Q_OBJECT
public:
-
explicit TrackerControls();
- ~TrackerControls();
- void showEvent ( QShowEvent * event );
-
- void Initialize(QWidget *parent);
- void registerTracker(ITracker *tracker) {};
- void unRegisterTracker() {};
-
+ void registerTracker(ITracker *) {}
+ void unRegisterTracker() {}
private:
+ settings s;
Ui::UIHydraControls ui;
- void loadSettings();
- void save();
-
- /** helper **/
- bool settingsDirty;
-
private slots:
void doOK();
void doCancel();
- void settingChanged() { settingsDirty = true; };
- void settingChanged(int) { settingsDirty = true; };
};
-//*******************************************************************************************************
-// FaceTrackNoIR Tracker DLL. Functions used to get general info on the Tracker
-//*******************************************************************************************************
class FTNoIR_TrackerDll : public Metadata
{
public:
- FTNoIR_TrackerDll();
- ~FTNoIR_TrackerDll();
-
- void Initialize();
-
void getFullName(QString *strToBeFilled);
void getShortName(QString *strToBeFilled);
void getDescription(QString *strToBeFilled);
void getIcon(QIcon *icon);
-
-private:
- QString trackerFullName; // Trackers' name and description
- QString trackerShortName;
- QString trackerDescription;
};