Nuitrack 1.5.0
3D スケルトン トラッキング ミドルウェア
 すべて クラス 名前空間 関数 変数 Typedefs 列挙型 列挙子 プロパティ イベント グループ ページ
HandTrackerData.h
1 #ifndef NUITRACK_HANDTRACKERDATA_H_
2 #define NUITRACK_HANDTRACKERDATA_H_
3 
4 #include "nuitrack/types/ObjectData.h"
5 #include "nuitrack/types/Hand.h"
6 #include "nuitrack/capi/HandTracker_CAPI.h"
7 #include <vector>
8 
9 namespace tdv
10 {
11 namespace nuitrack
12 {
17 class HandTrackerData :public ObjectData<HandTrackerData>
18 {
19 public:
21  HandTrackerData(HandTrackerDataInner* pimpl)
22  {
23  _pimpl = pimpl;
24  }
25 
26  virtual ~HandTrackerData()
27  {
28  nuitrack_DestroyHandTrackerData(_pimpl);
29  }
30 
38  uint64_t getTimestamp() const
39  {
40  return nuitrack_GetHandTrackerDataTimestamp(_pimpl);
41  }
42 
46  int getNumUsers() const
47  {
48  return nuitrack_HandTrackerGetNumUsers(_pimpl);
49  }
50 
56  const std::vector<UserHands> getUsersHands() const
57  {
58  HandTrackerDataInner* dataHolder = _pimpl;
59 
60  size_t numUsers = nuitrack_HandTrackerGetNumUsers(dataHolder);
61 
62  std::vector<UserHands> userHands;
63 
64  int userId = 0;
65  tdv::nuitrack::Hand leftHand;
66  tdv::nuitrack::Hand rightHand;
67  for(size_t i = 0; i < numUsers; i++)
68  {
69  nuitrack_HandTrackerGetUserHands(dataHolder, i, &userId, &leftHand, &rightHand);
70  UserHands newHand;
71  newHand.userId = userId;
72  newHand.leftHand = Hand::Ptr(new tdv::nuitrack::Hand(leftHand));
73  newHand.rightHand = Hand::Ptr(new tdv::nuitrack::Hand(rightHand));
74  userHands.push_back(newHand);
75  }
76 
77  return userHands;
78  }
79 
80 private:
81  HandTrackerDataInner* _pimpl;
82 };
83 
84 } /* namespace nuitrack */
85 } /* namespace tdv */
86 
87 #endif /* NUITRACK_HANDTRACKERDATA_H_ */
タイムスタンプを含むデータの汎用テンプレートです。
定義:ObjectData.h:39
int getNumUsers() const
ハンド トラッカーが扱うユーザー数を戻します。
定義:HandTrackerData.h:46
ユーザーの手に関する情報を保存します。
定義:Hand.h:14
ユーザーの手に関する情報を保存します。
定義:Hand.h:36
const std::vector< UserHands > getUsersHands() const
トラッキングしているユーザーの手に関する情報を戻します。
定義:HandTrackerData.h:56
Hand::Ptr leftHand
User left hand data.
定義:Hand.h:43
std::shared_ptr< Hand > Ptr
定義:Hand.h:19
HandTrackerData(HandTrackerDataInner *pimpl)
定義:HandTrackerData.h:21
uint64_t getTimestamp() const
マイクロ秒で表示されるタイムスタンプを戻します。
定義:HandTrackerData.h:38
Hand::Ptr rightHand
User right hand data.
定義:Hand.h:44
特定の時間についての手のトラッキング結果を保存します。
定義:HandTrackerData.h:17