1 #ifndef NUITRACK_COLORSENSOR_H_
2 #define NUITRACK_COLORSENSOR_H_
6 #include "nuitrack/modules/HeaderOnlyAPI_Module.h"
7 #include "nuitrack/ModuleFunctions.h"
8 #include "nuitrack/types/Export.h"
9 #include "nuitrack/utils/ExceptionTranslator.h"
10 #include "nuitrack/types/RGBFrame.h"
11 #include "nuitrack/types/Vector3.h"
12 #include "nuitrack/types/OutputMode.h"
13 #include "nuitrack/capi/Nuitrack_CAPI.h"
14 #include "nuitrack/capi/ColorSensor_CAPI.h"
15 #include "nuitrack/utils/CallbackStruct.h"
42 typedef std::shared_ptr<ColorSensor>
Ptr;
61 NuitrackModule* pimpl = NULL;
62 ExceptionType exception_code = nuitrack_CreateColorSensor(&pimpl);
63 ExceptionTranslator::generateExceptionByErrorCode(exception_code);
64 return std::shared_ptr<ColorSensor>(
new ColorSensor(pimpl));
72 _callbackStruct =
new CallbackStruct<RGBFrame::Ptr>();
73 _callbackWrapper.setColorSensor(
this);
74 _callbackWrapper.setFunctionAddress(&onNewFrameCallback);
75 nuitrack_registerColorSensorCallback(_pimpl, &_callbackWrapper);
80 nuitrack_DestroyColorSensor(_pimpl);
82 delete _callbackStruct;
91 nuitrack_GetColorSensorOutputMode(_pimpl, &mode);
104 return _callbackStruct->addCallback(callback);
116 _callbackStruct->deleteCallback(handler);
125 ColorSensorDataPtr data = nuitrack_GetColorSensorData(_pimpl);
126 RGBFrame::Ptr newFrame = RGBFrame::Ptr(
new RGBFrame(data));
130 bool canUpdate()
const
132 return nuitrack_GetNuitrackModuleCanUpdate(_pimpl);
143 return nuitrack_GetNuitrackModuleTimestamp(_pimpl);
148 static void onNewFrameCallback(ColorSensorData* colorFrameImpl,
ColorSensor* sensor)
150 RGBFrame::Ptr newFrame = RGBFrame::Ptr(
new RGBFrame(colorFrameImpl));
151 sensor->_callbackStruct->executeAllCallbacks(newFrame);
154 NuitrackModule* _pimpl;
156 ColorSensorCallbackWrapper _callbackWrapper;
158 CallbackStruct<RGBFrame::Ptr>* _callbackStruct;
RGBFrame::Ptr getColorFrame()
利用可能な最後の RGBFrame に対してスマート ポインターを戻します。
定義:ColorSensor.h:123
ColorSensor(NuitrackModule *pimpl)
定義:ColorSensor.h:68
Exception タイプ
Nuitrack 内部関数の考え得るエラーコードです。
定義:Error.h:20
uint64_t connectOnNewFrame(const OnNewFrame &callback)
新しい色フレーム リクエストに関するコールバックを追加します。
定義:ColorSensor.h:102
センサー データ プロパティを保存します。
定義:OutputMode.h:13
const OutputMode getOutputMode() const
色センサーから出力モードを戻します。
定義:ColorSensor.h:88
void disconnectOnNewFrame(uint64_t handler)
新しい色フレーム リクエストに関するコールバックを削除します。
定義:ColorSensor.h:114
std::function< void(RGBFrame::Ptr)> OnNewFrame
新しい色フレームリクエストのコールバック タイプ。
定義:ColorSensor.h:50
std::shared_ptr< ColorSensor > Ptr
ColorSensor インスタンスにアクセスするためのスマート ポインター。
定義:ColorSensor.h:42
フレームの色マップを保存します。
定義:RGBFrame.h:16
インターフェイスに Nuitrack カラー センサー モジュールの可能性を表します。...
定義:ColorSensor.h:34
virtual uint64_t getTimestamp()
マイクロ秒で表示される、最後に処理したデータのタイムスタンプを戻します。
定義:ColorSensor.h:141
static ColorSensor::Ptr create()
ColorSensor モジュール オブジェクトを作成します。
定義:ColorSensor.h:59