From 7dc20f380c80b1b0597e619e66d23921f0309aa0 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Tue, 8 Mar 2011 22:10:06 +0000 Subject: Start after update 1.5 Begin placing faceAPI in DLL git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@52 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_Base/ftnoir_tracker_base.h | 71 ++++++++++++++++++++++++ FTNoIR_Tracker_Base/ftnoir_tracker_base_global.h | 12 ++++ 2 files changed, 83 insertions(+) create mode 100644 FTNoIR_Tracker_Base/ftnoir_tracker_base.h create mode 100644 FTNoIR_Tracker_Base/ftnoir_tracker_base_global.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..f39a8b4d --- /dev/null +++ b/FTNoIR_Tracker_Base/ftnoir_tracker_base.h @@ -0,0 +1,71 @@ +#ifndef FTNOIR_TRACKER_BASE_H +#define FTNOIR_TRACKER_BASE_H + +#include "ftnoir_tracker_base_global.h" +#include + +// +// x,y,z position in centimetres, yaw, pitch and roll in degrees... +// +#pragma pack(push, 2) +struct THeadPoseData { + double x, y, z, yaw, pitch, roll; +}; +#pragma pack(pop) + +// 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 void Release() = 0; // Member required to enable Auto-remove + virtual void Initialize() = 0; + virtual void StartTracker() = 0; + virtual void GiveHeadPoseData(THeadPoseData *data) = 0; +}; + +// Handle type. In C++ language the iterface type is used. +typedef ITracker* TRACKERHANDLE; + +//////////////////////////////////////////////////////////////////////////////// +// +#ifdef __cplusplus +# define EXTERN_C extern "C" +#else +# define EXTERN_C +#endif // __cplusplus + +// Factory function that creates instances of the Tracker object. +EXTERN_C +FTNOIR_TRACKER_BASE_EXPORT +TRACKERHANDLE +__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 void Release() = 0; // Member required to enable Auto-remove + virtual void Initialize(QWidget *parent) = 0; +}; + +// Handle type. In C++ language the iterface type is used. +typedef ITrackerDialog* TRACKERDIALOGHANDLE; + +// Factory function that creates instances of the Tracker object. +EXTERN_C +FTNOIR_TRACKER_BASE_EXPORT +TRACKERDIALOGHANDLE +__stdcall +GetTrackerDialog(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 -- cgit v1.2.3