From 3089c4bbc10e98d18f43e8a70e7a3d0c0eaf0900 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 22 Mar 2013 20:48:17 +0100 Subject: Downcase. PLEASE TURN OFF IGNORING CASE IN GIT CONFIG!!! .git/config: [core] ignorecase = false --- ftnoir_tracker_base/ftnoir_tracker_base.h | 128 +++++++++++++++++++++++ ftnoir_tracker_base/ftnoir_tracker_base_global.h | 12 +++ ftnoir_tracker_base/ftnoir_tracker_ma_types.h | 33 ++++++ ftnoir_tracker_base/ftnoir_tracker_sm_types.h | 35 +++++++ ftnoir_tracker_base/ftnoir_tracker_types.h | 51 +++++++++ 5 files changed, 259 insertions(+) create mode 100644 ftnoir_tracker_base/ftnoir_tracker_base.h create mode 100644 ftnoir_tracker_base/ftnoir_tracker_base_global.h create mode 100644 ftnoir_tracker_base/ftnoir_tracker_ma_types.h create mode 100644 ftnoir_tracker_base/ftnoir_tracker_sm_types.h create mode 100644 ftnoir_tracker_base/ftnoir_tracker_types.h (limited to 'ftnoir_tracker_base') diff --git a/ftnoir_tracker_base/ftnoir_tracker_base.h b/ftnoir_tracker_base/ftnoir_tracker_base.h new file mode 100644 index 00000000..396df4d1 --- /dev/null +++ b/ftnoir_tracker_base/ftnoir_tracker_base.h @@ -0,0 +1,128 @@ +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 3 of the License, or (at your * +* option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but * +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * +* more details. * +* * +* You should have received a copy of the GNU General Public License along * +* with this program; if not, see . * +* This class implements a tracker-base * +*********************************************************************************/ +/* + Modifications (last one on top): + 20122109 - C14: Replaced Release with virtual destructor + 20120009 - WVR: Removed AutoClosePtr (seemed like it didn't work OK) + 20110415 - WVR: Added overloaded operator - and -= +*/ +#ifndef FTNOIR_TRACKER_BASE_H +#define FTNOIR_TRACKER_BASE_H + +#include "ftnoir_tracker_base_global.h" +#include "ftnoir_tracker_types.h" +#include +#include + +//////////////////////////////////////////////////////////////////////////////// +#ifdef __cplusplus +# define EXTERN_C extern "C" +#else +# define EXTERN_C +#endif // __cplusplus + +//////////////////////////////////////////////////////////////////////////////// +// COM-Like abstract interface. +// This interface doesn't require __declspec(dllexport/dllimport) specifier. +// Method calls are dispatched via virtual table. +// Any C++ compiler can use it. +// Instances are obtained via factory function. +struct ITracker +{ + virtual ~ITracker() {} + virtual void Initialize( QFrame *videoframe ) = 0; + virtual void StartTracker( HWND parent_window ) = 0; + virtual void StopTracker(bool exit) = 0; + virtual bool GiveHeadPoseData(THeadPoseData *data) = 0; + + virtual bool notifyZeroed() { + return false; + } + virtual void refreshVideo() {} + virtual void notifyCenter() { + return; + } +}; + +typedef ITracker* ITrackerPtr; + +// Factory function that creates instances of the Tracker object. +EXTERN_C +FTNOIR_TRACKER_BASE_EXPORT +ITrackerPtr +__stdcall +GetTracker(void); + +//////////////////////////////////////////////////////////////////////////////// +// COM-Like abstract interface. +// This interface doesn't require __declspec(dllexport/dllimport) specifier. +// Method calls are dispatched via virtual table. +// Any C++ compiler can use it. +// Instances are obtained via factory function. +struct ITrackerDialog +{ + virtual ~ITrackerDialog() {} + virtual void Initialize(QWidget *parent) = 0; + virtual void registerTracker(ITracker *tracker) = 0; + virtual void unRegisterTracker() = 0; +}; + +typedef ITrackerDialog* ITrackerDialogPtr; + +// Factory function that creates instances of the Tracker object. +EXTERN_C +FTNOIR_TRACKER_BASE_EXPORT +ITrackerDialogPtr +__stdcall +GetTrackerDialog(void); + +//////////////////////////////////////////////////////////////////////////////// +// COM-Like abstract interface. +// This interface doesn't require __declspec(dllexport/dllimport) specifier. +// Method calls are dispatched via virtual table. +// Any C++ compiler can use it. +// Instances are obtained via factory function. +struct ITrackerDll +{ + virtual ~ITrackerDll() {} + virtual void Initialize() = 0; + + virtual void getFullName(QString *strToBeFilled) = 0; + virtual void getShortName(QString *strToBeFilled) = 0; + virtual void getDescription(QString *strToBeFilled) = 0; + virtual void getIcon(QIcon *icon) = 0; +}; + +typedef ITrackerDll* ITrackerDllPtr; + +// Factory function that creates instances of the Tracker object. +EXTERN_C +FTNOIR_TRACKER_BASE_EXPORT +ITrackerDllPtr +__stdcall +GetTrackerDll(void); + + +#endif // FTNOIR_TRACKER_BASE_H diff --git a/ftnoir_tracker_base/ftnoir_tracker_base_global.h b/ftnoir_tracker_base/ftnoir_tracker_base_global.h new file mode 100644 index 00000000..9f4a6118 --- /dev/null +++ b/ftnoir_tracker_base/ftnoir_tracker_base_global.h @@ -0,0 +1,12 @@ +#ifndef FTNOIR_TRACKER_BASE_GLOBAL_H +#define FTNOIR_TRACKER_BASE_GLOBAL_H + +#include + +#ifdef FTNOIR_TRACKER_BASE_LIB +# define FTNOIR_TRACKER_BASE_EXPORT Q_DECL_EXPORT +#else +# define FTNOIR_TRACKER_BASE_EXPORT Q_DECL_IMPORT +#endif + +#endif // FTNOIR_TRACKER_BASE_GLOBAL_H diff --git a/ftnoir_tracker_base/ftnoir_tracker_ma_types.h b/ftnoir_tracker_base/ftnoir_tracker_ma_types.h new file mode 100644 index 00000000..bc663056 --- /dev/null +++ b/ftnoir_tracker_base/ftnoir_tracker_ma_types.h @@ -0,0 +1,33 @@ +// +// Definitions for the Shared Memory to send the data to FaceTrackNoIR +// +static const char* MA_MM_DATA = "MA_SharedMem"; +static const char* MA_FACEAPI = "MA_FaceAPI"; +static const char* MA_MUTEX = "MA_Mutex"; + +struct TFaceData { + int DataID; +// smEngineHeadPoseData new_pose; +}; +typedef TFaceData * PFaceData; + +struct SMMemMap { + int command; // Command from FaceTrackNoIR + int status; // Status from faceAPI + TFaceData data; + HANDLE handle; + int state; + int par_val_int; // Value of parameter, indicated by 'command' + int par_val_float; + int initial_filter_level; // Internal faceAPI Filter level + int handshake; +}; +typedef SMMemMap * PSMMemMap; + +enum FTNoIR_Tracker_Command { + FT_MA_START = 10, + FT_MA_STOP = 20, + FT_MA_SHOW_CAM = 30, + FT_MA_SET_PAR_FILTER = 50, + FT_MA_EXIT = 100 +}; diff --git a/ftnoir_tracker_base/ftnoir_tracker_sm_types.h b/ftnoir_tracker_base/ftnoir_tracker_sm_types.h new file mode 100644 index 00000000..a8802e4a --- /dev/null +++ b/ftnoir_tracker_base/ftnoir_tracker_sm_types.h @@ -0,0 +1,35 @@ +// +// Definitions for the Shared Memory to send the data to FaceTrackNoIR +// +static const char* SM_MM_DATA = "SM_SharedMem"; +static const char* SM_FACEAPI = "SM_FaceAPI"; +static const char* SM_MUTEX = "SM_Mutex"; + +#include + +struct TFaceData { + int DataID; + smEngineHeadPoseData new_pose; +}; +typedef TFaceData * PFaceData; + +struct SMMemMap { + int command; // Command from FaceTrackNoIR + int status; // Status from faceAPI + TFaceData data; + HANDLE handle; + int state; + int par_val_int; // Value of parameter, indicated by 'command' + int par_val_float; + int initial_filter_level; // Internal faceAPI Filter level + int handshake; +}; +typedef SMMemMap * PSMMemMap; + +enum FTNoIR_Tracker_Command { + FT_SM_START = 10, + FT_SM_STOP = 20, + FT_SM_SHOW_CAM = 30, + FT_SM_SET_PAR_FILTER = 50, + FT_SM_EXIT = 100 +}; diff --git a/ftnoir_tracker_base/ftnoir_tracker_types.h b/ftnoir_tracker_base/ftnoir_tracker_types.h new file mode 100644 index 00000000..ace7a6e3 --- /dev/null +++ b/ftnoir_tracker_base/ftnoir_tracker_types.h @@ -0,0 +1,51 @@ +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 3 of the License, or (at your * +* option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but * +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * +* more details. * +* * +* You should have received a copy of the GNU General Public License along * +* with this program; if not, see . * +* This class implements a tracker-base * +*********************************************************************************/ +/* + Modifications (last one on top): + 20120924 - C14: Moved T6DOF to separate file (not pulic interface) + 20110415 - WVR: Added overloaded operator - and -= +*/ +#ifndef FTNOIR_TRACKER_TYPES_H +#define FTNOIR_TRACKER_TYPES_H + +// +// x,y,z position in centimetres, yaw, pitch and roll in degrees... +// +#pragma pack(push, 2) +struct THeadPoseData { + + THeadPoseData() + : x(0.0), y(0.0), z(0.0), yaw(0.0), pitch(0.0), roll(0.0), frame_number(0) {} + + THeadPoseData(double x, double y, double z, + double yaw, double pitch, double roll ) + : x(x), y(y), z(z), yaw(yaw), pitch(pitch), roll(roll), frame_number(0) {} + + double x, y, z, yaw, pitch, roll; + long frame_number; +}; +#pragma pack(pop) + +#endif // FTNOIR_TRACKER_TYPES_H -- cgit v1.2.3