1 #ifndef NUITRACK_GESTURE_RECOGNIZER_H_
2 #define NUITRACK_GESTURE_RECOGNIZER_H_
6 #include "nuitrack/modules/HeaderOnlyAPI_Module.h"
7 #include "nuitrack/ModuleFunctions.h"
8 #include "nuitrack/types/Export.h"
9 #include "nuitrack/types/GestureData.h"
10 #include "nuitrack/capi/GestureRecognizer_CAPI.h"
11 #include "nuitrack/utils/ExceptionTranslator.h"
12 #include "nuitrack/utils/CallbackStruct.h"
37 typedef std::shared_ptr<GestureRecognizer> Ptr;
69 typedef std::function<void (UserGesturesStateData::Ptr)>
OnUpdate;
79 static GestureRecognizer::Ptr
create()
81 NuitrackModule* pimpl = NULL;
82 ExceptionType exception_code = nuitrack_CreateGestureRecognizer(&pimpl);
83 ExceptionTranslator::generateExceptionByErrorCode(exception_code);
93 _onUserStateChangeCallbackStruct =
new CallbackStruct<UserStateData::Ptr>();
94 _onUpdateCallbackStruct =
new CallbackStruct<UserGesturesStateData::Ptr>();
105 nuitrack_DestroyGestureRecognizer(
_pimpl);
143 return _onUserStateChangeCallbackStruct->addCallback(callback);
154 _onUserStateChangeCallbackStruct->deleteCallback(handler);
167 return _onUpdateCallbackStruct->addCallback(callback);
178 _onUpdateCallbackStruct->deleteCallback(handler);
186 return nuitrack_GetGestureRecognizerProcessingTime(
_pimpl);
199 nuitrack_UserGesturesSetControlStatus(
_pimpl, status);
207 if(_onUserStateChangeCallbackStruct)
208 delete _onUserStateChangeCallbackStruct;
209 if(_onUpdateCallbackStruct)
210 delete _onUpdateCallbackStruct;
213 bool canUpdate()
const
215 return nuitrack_GetNuitrackModuleCanUpdate(
_pimpl);
226 return nuitrack_GetNuitrackModuleTimestamp(
_pimpl);
233 GestureData::Ptr newFrame = GestureData::Ptr(
new GestureData(data));
239 UserStateData::Ptr newFrame = UserStateData::Ptr(
new UserStateData(data));
240 tracker->_onUserStateChangeCallbackStruct->executeAllCallbacks(newFrame);
246 tracker->_onUpdateCallbackStruct->executeAllCallbacks(newFrame);
254 CallbackStruct<UserStateData::Ptr>* _onUserStateChangeCallbackStruct;
255 CallbackStruct<UserGesturesStateData::Ptr>* _onUpdateCallbackStruct;
インターフェイスに Nuitrack ジェスチャ認識モジュールの可能性を表します。
定義:GestureRecognizer.h:34
std::function< void(UserStateData::Ptr)> OnUserStateChange
ユーザー ステータス変更イベントのためのコールバック タイプ。
定義:GestureRecognizer.h:58
static GestureRecognizer::Ptr create()
GestureRecognizer モジュール オブジェクトを作成します。
定義:GestureRecognizer.h:79
float getProcessingTime() const
最後のジェスチャ認識時間をミリ秒で戻します。
定義:GestureRecognizer.h:184
ユーザーの状態に関する判断の結果を保存します。
定義:GestureData.h:83
void disconnectOnUserStateChange(uint64_t handler)
ユーザー ステータス変更イベントに関するコールバックを削除します。
定義:GestureRecognizer.h:152
Exception タイプ
Nuitrack 内部関数の考え得るエラーコードです。
定義:Error.h:20
void destroyGestureRecognizer()
定義:GestureRecognizer.h:203
ジェスチャ判断の結果を保存します。
定義:GestureData.h:16
void disconnectOnNewGestures(uint64_t handler)
新規ジェスチャ検出イベントに関するコールバックを削除します。
定義:GestureRecognizer.h:128
GestureRecognizerCallbackWrapper _callbackWrapper
定義:GestureRecognizer.h:251
void setControlGesturesStatus(bool status)
コントロール ジェスチャ認識状態を設定します。
定義:GestureRecognizer.h:197
トラッキングを行っているすべてのユーザーに関するジェスチャの状態の判断結果を保存します。...
定義:GestureData.h:150
static void onNewGesturesCallback(GestureRecognizerData *data, GestureRecognizer *tracker)
定義:GestureRecognizer.h:231
NuitrackModule * _pimpl
定義:GestureRecognizer.h:249
std::function< void(UserGesturesStateData::Ptr)> OnUpdate
ユーザー ジェスチャ データ更新リクエストのためのコールバック タイプ。
定義:GestureRecognizer.h:69
uint64_t connectOnUpdate(const OnUpdate &callback)
ジェスチャの状態データ更新リクエストのためのコールバックを追加します。
定義:GestureRecognizer.h:165
GestureRecognizer(NuitrackModule *pimpl)
定義:GestureRecognizer.h:88
uint64_t connectOnNewGestures(const OnNewGestures &callback)
新規ジェスチャ検出イベントに関するコールバックを追加します。
定義:GestureRecognizer.h:117
CallbackStruct< GestureData::Ptr > * _onNewGesturesCallbackStruct
定義:GestureRecognizer.h:253
static void onUserStateChangeCallback(UsersStateChanges *data, GestureRecognizer *tracker)
定義:GestureRecognizer.h:237
std::function< void(GestureData::Ptr)> OnNewGestures
新しいジェスチャ検出イベントのためのコールバック タイプ。
定義:GestureRecognizer.h:47
static void onUpdateCallback(GestureRecognizerUserGesturesStateData *data, GestureRecognizer *tracker)
定義:GestureRecognizer.h:243
virtual uint64_t getTimestamp()
マイクロ秒で表示される、最後に処理したデータのタイムスタンプを戻します。
定義:GestureRecognizer.h:224
uint64_t connectOnUserStateChange(const OnUserStateChange &callback)
ユーザー ステータス変更イベントに関するコールバックを追加します。
定義:GestureRecognizer.h:141
void disconnectOnUpdate(uint64_t handler)
ジェスチャの状態データ更新リクエストのためのコールバックを削除します。
定義:GestureRecognizer.h:176