Nuitrack 1.5.0
3D スケルトン トラッキング ミドルウェア
 すべて クラス 名前空間 関数 変数 Typedefs 列挙型 列挙子 プロパティ イベント グループ ページ
SkeletonData.h
1 #ifndef NUITRACK_SKELETONDATA_H_
2 #define NUITRACK_SKELETONDATA_H_
3 
4 #include <memory>
5 
6 #include "nuitrack/types/Skeleton.h"
7 #include "nuitrack/types/ObjectData.h"
8 #include "nuitrack/capi/SkeletonTracker_CAPI.h"
9 
10 namespace tdv
11 {
12 namespace nuitrack
13 {
14 
19 class SkeletonData:public ObjectData<SkeletonData>
20 {
21 public:
22  SkeletonData(SkeletonTrackerData* pimpl)
23  {
24  _pimpl = pimpl;
25  }
26 
27  virtual ~SkeletonData()
28  {
29  nuitrack_DestroySkeletonTrackerData(_pimpl);
30  }
31 
37  int getNumSkeletons() const
38  {
39  return nuitrack_GetNumUsers(_pimpl);
40  }
41 
47  const std::vector<Skeleton> getSkeletons() const
48  {
49 
50  SkeletonTrackerData* dataHolder = _pimpl;
51 
52  std::vector<Skeleton> usersVector;
53 
54  size_t numUsers = nuitrack_GetNumUsers(dataHolder);
55  size_t maxJoints = 25;
56 
57 
58  for (size_t i = 0; i < numUsers; i++)
59  {
60  Skeleton skeleton;
61  int id = nuitrack_GetSkeletonID(dataHolder, i);
62  skeleton.id = id;
63 
64  for (size_t j = 0; j < maxJoints; j++)
65  {
66  Joint joint;
67  nuitrack_GetSkeletonJoint(dataHolder, i, (JointType)j, &joint);
68  skeleton.joints.push_back(joint);
69  }
70 
71  usersVector.push_back(skeleton);
72  }
73 
74  return usersVector;
75  }
76 
84  uint64_t getTimestamp() const
85  {
86  return nuitrack_GetSkeletonTrackerTimestamp(_pimpl);
87  }
88 
89 private:
90  SkeletonTrackerData* _pimpl;
91 };
92 
93 }
94 }
95 
96 #endif /* NUITRACK_SKELETONDATA_H_ */
タイムスタンプを含むデータの汎用テンプレートです。
定義:ObjectData.h:39
const std::vector< Skeleton > getSkeletons() const
現ユーザーのスケルトンを取得します。
定義:SkeletonData.h:47
int getNumSkeletons() const
現在トラッキングを行ているスケルトン数を取得します。
定義:SkeletonData.h:37
ある特定の時間に利用可能なすべてのスケルトンのデータを保存します。
定義:SkeletonData.h:19
uint64_t getTimestamp() const
マイクロ秒で表示されるタイムスタンプを戻します。
定義:SkeletonData.h:84
関節のデータを保存します。
定義:Skeleton.h:56
JointType
関節のインデックスの意味 (JOINT_LEFT_FINGERTIP, JOINT_RIGHT_FINGERTIP, JOINT_LEFT_FOOT, JOINT_RIGHT_FOOT は現在のバージョンでは、使用されていません)。
定義:Skeleton.h:18
スケルトンのデータを保存します。
定義:Skeleton.h:108
int id
ユーザー ID。他のモジュール (UserTracker、HandTracker、GestureRecognizer) が使用するものと同様。
定義:Skeleton.h:113
std::vector< Joint > joints
関節の配列。インデックスが ::JointType のもの。
定義:Skeleton.h:118