From cc3bc1c6d14de535f87e6601ed562b505d902fce Mon Sep 17 00:00:00 2001 From: Patrick Ruoff Date: Mon, 17 Sep 2012 16:32:04 +0000 Subject: added pointtracker created VC9 solution and project files for available projects git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@143 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_PT/ftnoir_tracker_pt.h | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 FTNoIR_Tracker_PT/ftnoir_tracker_pt.h (limited to 'FTNoIR_Tracker_PT/ftnoir_tracker_pt.h') diff --git a/FTNoIR_Tracker_PT/ftnoir_tracker_pt.h b/FTNoIR_Tracker_PT/ftnoir_tracker_pt.h new file mode 100644 index 00000000..a3390cbf --- /dev/null +++ b/FTNoIR_Tracker_PT/ftnoir_tracker_pt.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2012 Patrick Ruoff + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + */ + +#ifndef FTNOIR_TRACKER_PT_H +#define FTNOIR_TRACKER_PT_H + +#include "..\ftnoir_tracker_base\ftnoir_tracker_base.h" +#include "ftnoir_tracker_pt_settings.h" +#include "camera.h" +#include "point_extractor.h" +#include "point_tracker.h" +#include "video_widget.h" + +#include +#include +#include +#include + +//----------------------------------------------------------------------------- +class Tracker : public ITracker, QThread +{ +public: + Tracker(); + ~Tracker(); + + // ITracker interface + void Initialize(QFrame *videoframe); + void StartTracker(HWND parent_window); + void StopTracker(bool exit); + bool GiveHeadPoseData(THeadPoseData *data); + void refreshVideo(); + + void apply(const TrackerSettings& settings); + void apply_without_camindex(const TrackerSettings& settings); // changing the camindex is expensive and not suitable for realtime editing + void run(); + + void get_pose(FrameTrafo* X_CM) { QMutexLocker lock(&mutex); *X_CM = point_tracker.get_pose(); } + int get_n_points() { QMutexLocker lock(&mutex); return point_extractor.get_points().size(); } + void get_cam_info(CamInfo* info) { QMutexLocker lock(&mutex); *info = camera.get_info(); } + +protected: + QMutex mutex; + cv::Mat frame; // the output frame for display + + enum Command { + ABORT = 1<<0, + PAUSE = 1<<1 + }; + void set_command(Command command); + void reset_command(Command command); + int commands; + + Camera camera; + PointExtractor point_extractor; + PointTracker point_tracker; + cv::Vec3f t_MH; + bool draw_frame; + int sleep_time; + + long frame_count; + + VideoWidget* video_widget; + QTime time; +}; + +//----------------------------------------------------------------------------- +class TrackerDll : public ITrackerDll +{ + // ITrackerDll interface + void Initialize() {} + void getFullName(QString *strToBeFilled); + void getShortName(QString *strToBeFilled); + void getDescription(QString *strToBeFilled); + void getIcon(QIcon *icon); +}; + +#endif // FTNOIR_TRACKER_PT_H -- cgit v1.2.3