annotate KinectTrack.cc @ 3:7e112b536f0a

track moving of a hand
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 01 Feb 2011 06:37:06 +0900
parents 3b5465899da9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
1 #include <stdio.h>
2
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <XnVNite.h>
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "KinectTrack.h"
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
3
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
6 #define N_COLORS 6
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
7
2
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 XnVPointDrawer::XnVPointDrawer(XnUInt32 nHistory, xn::DepthGenerator depthGenerator) :
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 XnVPointControl("XnVPointDrawer"),
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 mNHistorySize(nHistory), mDepthGenerator(depthGenerator), mBDrawDM(false), mBFrameID(false) {
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 mPFPositionBuffer = new XnFloat[nHistory*3];
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 }
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 XnVPointDrawer::~XnVPointDrawer() {
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 std::map<XnUInt32, std::list<XnPoint3D> >::iterator iter;
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 for (iter = mHistory.begin(); iter != mHistory.end(); ++iter)
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 {
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 iter->second.clear();
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 }
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 mHistory.clear();
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 delete []mPFPositionBuffer;
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 void XnVPointDrawer::setDepthMap(XnBool bDrawDM) {
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 mBDrawDM = bDrawDM;
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
3b5465899da9 add KinectTrack.cc
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
3
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
29 void XnVPointDrawer::Update(XnVMessage* pMessage) {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
30 // PointControl's Update calls all callbacks for each hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
31 XnVPointControl::Update(pMessage);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
32
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
33 if (mBDrawDM)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
34 {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
35 // Draw depth map
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
36 xn::DepthMetaData depthMD;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
37 mDepthGenerator.GetMetaData(depthMD);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
38 //drawDepthMap(depthMD);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
39 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
40 if (mBFrameID)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
41 {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
42 // Print out frame ID
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
43 xn::DepthMetaData depthMD;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
44 mDepthGenerator.GetMetaData(depthMD);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
45 //DrawFrameID(depthMD.FrameID());
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
46 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
47
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
48 // Draw hands
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
49 Draw();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
50 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
51
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
52 int XnVPointDrawer::getPosition(float &x, float &y, float &z) const {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
53 std::map<XnUInt32, std::list<XnPoint3D> >::const_iterator itr;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
54 itr = mHistory.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
55 if (itr == mHistory.end()) return -1;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
56 std::list<XnPoint3D>::const_iterator itr2;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
57 itr2 = itr->second.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
58 if (itr2 == itr->second.end()) return -1;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
59 XnPoint3D pt(*itr2);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
60 x = pt.X;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
61 y = pt.Y;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
62 z = pt.Z;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
63 return 1;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
64 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
65 void XnVPointDrawer::Draw() const {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
66 std::map<XnUInt32, std::list<XnPoint3D> >::const_iterator itr;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
67 itr = mHistory.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
68 if (itr == mHistory.end()) return;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
69 std::list<XnPoint3D>::const_iterator itr2;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
70 itr2 = itr->second.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
71 if (itr2 == itr->second.end()) return;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
72 XnPoint3D pt(*itr2);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
73 // printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
74
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
75
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
76 // std::map<XnUInt32, std::list<XnPoint3D> >::const_iterator PointIterator;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
77
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
78 // // Go over each existing hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
79 // for (PointIterator = mHistory.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
80 // PointIterator != mHistory.end();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
81 // ++PointIterator)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
82 // {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
83 // // Clear buffer
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
84 // XnUInt32 nPoints = 0;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
85 // XnUInt32 i = 0;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
86 // XnUInt32 Id = PointIterator->first;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
87
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
88 // // Go over all previous positions of current hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
89 // std::list<XnPoint3D>::const_iterator PositionIterator;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
90 // for (PositionIterator = PointIterator->second.begin();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
91 // PositionIterator != PointIterator->second.end();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
92 // ++PositionIterator, ++i)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
93 // {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
94 // // Add position to buffer
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
95 // XnPoint3D pt(*PositionIterator);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
96 // printf("%f, %f, %f\n", pt.X, pt.Y, pt.Z);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
97 // mPFPositionBuffer[3*i] = pt.X;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
98 // mPFPositionBuffer[3*i + 1] = pt.Y;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
99 // mPFPositionBuffer[3*i + 2] = 0;//pt.Z();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
100 // break;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
101 // }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
102
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
103 // // Set color
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
104 // XnUInt32 nColor = Id % N_COLORS;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
105 // //XnUInt32 nSingle = GetPrimaryID();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
106 // if (Id == GetPrimaryID())
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
107 // nColor = 6;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
108 // }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
109 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
110
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
111 static XnBool bShouldPrint = false;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
112 void XnVPointDrawer::OnPointCreate(const XnVHandPointContext* cxt)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
113 {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
114 printf("** %d\n", cxt->nID);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
115 // Create entry for the hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
116 mHistory[cxt->nID].clear();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
117 bShouldPrint = true;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
118 OnPointUpdate(cxt);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
119 bShouldPrint = true;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
120 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
121 // Handle new position of an existing hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
122 void XnVPointDrawer::OnPointUpdate(const XnVHandPointContext* cxt)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
123 {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
124 // positions are kept in projective coordinates, since they are only used for drawing
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
125 XnPoint3D ptProjective(cxt->ptPosition);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
126
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
127 if (bShouldPrint)printf("Point (%f,%f,%f)", ptProjective.X, ptProjective.Y, ptProjective.Z);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
128 mDepthGenerator.ConvertRealWorldToProjective(1, &ptProjective, &ptProjective);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
129 if (bShouldPrint)printf(" -> (%f,%f,%f)\n", ptProjective.X, ptProjective.Y, ptProjective.Z);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
130
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
131 // Add new position to the history buffer
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
132 mHistory[cxt->nID].push_front(ptProjective);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
133 // Keep size of history buffer
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
134 if (mHistory[cxt->nID].size() > mNHistorySize)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
135 mHistory[cxt->nID].pop_back();
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
136 bShouldPrint = false;
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
137 }
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
138
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
139 // Handle destruction of an existing hand
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
140 void XnVPointDrawer::OnPointDestroy(XnUInt32 nID)
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
141 {
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
142 // No need for the history buffer
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
143 mHistory.erase(nID);
7e112b536f0a track moving of a hand
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
144 }