1 #ifndef NUITRACK_SKELETONTRACKER_H_
2 #define NUITRACK_SKELETONTRACKER_H_
6 #include "nuitrack/modules/HeaderOnlyAPI_Module.h"
7 #include "nuitrack/ModuleFunctions.h"
8 #include "nuitrack/types/Export.h"
9 #include "nuitrack/types/SkeletonData.h"
10 #include "nuitrack/capi/SkeletonTracker_CAPI.h"
11 #include "nuitrack/utils/ExceptionTranslator.h"
12 #include "nuitrack/utils/CallbackStruct.h"
40 typedef std::shared_ptr<SkeletonTracker>
Ptr;
50 typedef std::function<void (SkeletonData::Ptr)>
OnUpdate;
60 typedef std::function<void (SkeletonTracker::Ptr, int)>
OnNewUser;
70 typedef std::function<void (SkeletonTracker::Ptr, int)>
OnLostUser;
82 NuitrackModule* pimpl = NULL;
83 ExceptionType errorCode = nuitrack_CreateSkeletonTracker(&pimpl);
84 ExceptionTranslator::generateExceptionByErrorCode(errorCode);
106 SkeletonTracker(NuitrackModule* pimpl, CallbackStruct<SkeletonData::Ptr>* onUpdateCallbackStruct,
107 CallbackStruct2p<SkeletonTracker::Ptr, int>* onNewUserCallbackStruct,
108 CallbackStruct2p<SkeletonTracker::Ptr, int>* onLostUserCallbackStruct)
122 nuitrack_DestroySkeletonTracker(
_pimpl);
209 nuitrack_SetNumActiveUsers(
_pimpl, numUsers);
219 return nuitrack_IsAutoTracking(
_pimpl);
239 nuitrack_SetAutoTracking(
_pimpl, tracking);
251 nuitrack_StartTracking(
_pimpl, userID);
263 nuitrack_StopTracking(
_pimpl, userID);
275 return nuitrack_IsTracking(
_pimpl, userID);
283 SkeletonTrackerDataPtr data = nuitrack_GetSkeletonTrackerData(
_pimpl);
284 SkeletonData::Ptr newFrame = SkeletonData::Ptr(
new SkeletonData(data));
293 return nuitrack_GetSkeletonTrackerProcessingTime(
_pimpl);
296 bool canUpdate()
const
298 return nuitrack_GetNuitrackModuleCanUpdate(
_pimpl);
309 return nuitrack_GetNuitrackModuleTimestamp(
_pimpl);
316 SkeletonData::Ptr newFrame = SkeletonData::Ptr(
new SkeletonData(frame));
SkeletonData::Ptr getSkeletons()
利用可能な最後の SkeletonData に対してスマート ポインターを戻します。
定義:SkeletonTracker.h:281
float getProcessingTime() const
最後に行われたスケルトンのデータ処理をミリ秒で戻します。
定義:SkeletonTracker.h:291
void setNumActiveUsers(int numUsers)
トラッキングを行うユーザーの最大数を設定します。
定義:SkeletonTracker.h:207
std::shared_ptr< SkeletonTracker > Ptr
SkeletonTracker インスタンスにアクセスするためのスマート ポインター。
定義:SkeletonTracker.h:40
Exception タイプ
Nuitrack 内部関数の考え得るエラーコードです。
定義:Error.h:20
static void onNewUserCallback(SkeletonTracker *tracker, int usedID)
定義:SkeletonTracker.h:322
void stopTracking(int userID)
ユーザーのトラッキングを終了します。
定義:SkeletonTracker.h:261
ある特定の時間に利用可能なすべてのスケルトンのデータを保存します。
定義:SkeletonData.h:19
SkeletonTracker(NuitrackModule *pimpl)
定義:SkeletonTracker.h:89
void setAutoTracking(bool tracking)
ユーザー スケルトン自動トラッキング状態を設定します。
定義:SkeletonTracker.h:237
static void onUpdateCallback(SkeletonTrackerData *frame, SkeletonTracker *tracker)
定義:SkeletonTracker.h:314
CallbackStruct2p< SkeletonTracker::Ptr, int > * _onNewUserCallbackStruct
定義:SkeletonTracker.h:358
SkeletonTracker(NuitrackModule *pimpl, CallbackStruct< SkeletonData::Ptr > *onUpdateCallbackStruct, CallbackStruct2p< SkeletonTracker::Ptr, int > *onNewUserCallbackStruct, CallbackStruct2p< SkeletonTracker::Ptr, int > *onLostUserCallbackStruct)
定義:SkeletonTracker.h:106
uint64_t connectOnUpdate(const OnUpdate &callback)
スケルトン データ更新リクエストのためのコールバックを追加します。
定義:SkeletonTracker.h:134
NuitrackModule * _pimpl
定義:SkeletonTracker.h:354
virtual uint64_t getTimestamp()
マイクロ秒で表示される、最後に処理したデータのタイムスタンプを戻します。
定義:SkeletonTracker.h:307
インターフェイスに Nuitrack スケルトン トラッカー モジュールの可能性を表します。
定義:SkeletonTracker.h:33
uint64_t connectOnLostUser(const OnLostUser &callback)
アクティブなユーザーのフレームアウト イベントに関するコールバックを追加します。
定義:SkeletonTracker.h:183
void startTracking(int userID)
ユーザー トラッキングを開始します。
定義:SkeletonTracker.h:249
void disconnectOnUpdate(uint64_t handler)
スケルトン データ更新リクエストのためのコールバックを削除します。
定義:SkeletonTracker.h:145
bool isTracking(int userID)
ユーザーのトラッキング状態を取得します。
定義:SkeletonTracker.h:273
std::function< void(SkeletonTracker::Ptr, int)> OnNewUser
新しいアクティブなユーザー出現イベントのためのコールバック タイプ。
定義:SkeletonTracker.h:60
static void onLostUserCallback(SkeletonTracker *tracker, int usedID)
定義:SkeletonTracker.h:333
void disconnectOnLostUser(uint64_t handler)
アクティブなユーザーのフレームアウト イベントに関するコールバックを削除します。
定義:SkeletonTracker.h:194
CallbackStruct2p< SkeletonTracker::Ptr, int > * _onLostUserCallbackStruct
定義:SkeletonTracker.h:359
CallbackStruct< SkeletonData::Ptr > * _onUpdateCallbackStruct
定義:SkeletonTracker.h:357
uint64_t connectOnNewUser(const OnNewUser &callback)
アクティブなユーザー出現イベントに関するコールバックを追加します。
定義:SkeletonTracker.h:158
bool isAutoTracking() const
自動トラッキングが有効な場合には true、その他の場合には false となります。
定義:SkeletonTracker.h:217
std::function< void(SkeletonData::Ptr)> OnUpdate
スケルトン データ更新リクエストのためのコールバック タイプ。
定義:SkeletonTracker.h:50
void disconnectOnNewUser(uint64_t handler)
アクティブなユーザー出現イベントに関するコールバックを削除します。
定義:SkeletonTracker.h:170
SkeletonTrackerCallbackWrapper _callbackWrapper
定義:SkeletonTracker.h:361
std::function< void(SkeletonTracker::Ptr, int)> OnLostUser
アクティブなユーザーのフレームアウト イベントのためのコールバック タイプ。
定義:SkeletonTracker.h:70
int8_t _isCopy
定義:SkeletonTracker.h:355
static SkeletonTracker::Ptr create()
SkeletonTracker モジュール オブジェクトを作成します。
定義:SkeletonTracker.h:80
void destroySkeletonTracker()
定義:SkeletonTracker.h:344