Corrected some issues with how skeletons were displayed.

This commit is contained in:
marek
2016-02-02 15:37:40 +01:00
parent 128645d299
commit 6dfccc42c0
7 changed files with 83 additions and 49 deletions
+3 -3
View File
@@ -187,11 +187,11 @@ void KinectCapture::GetBodyFrame(IMultiSourceFrame* pMultiFrame)
if (SUCCEEDED(hr))
{
IBody* bodies[6] = { NULL };
pBodyFrame->GetAndRefreshBodyData(6, bodies);
IBody* bodies[BODY_COUNT] = { NULL };
pBodyFrame->GetAndRefreshBodyData(BODY_COUNT, bodies);
vBodies = std::vector<Body>(BODY_COUNT);
for (int i = 0; i < 6; i++)
for (int i = 0; i < BODY_COUNT; i++)
{
if (bodies[i])
{
+12 -10
View File
@@ -721,23 +721,25 @@ void LiveScanClient::StoreFrame(Point3f *vertices, Point2f *mapping, RGB *color,
}
}
for (unsigned int i = 0; i < bodies.size(); i++)
vector<Body> tempBodies = bodies;
for (unsigned int i = 0; i < tempBodies.size(); i++)
{
for (unsigned int j = 0; j < bodies[i].vJoints.size(); j++)
for (unsigned int j = 0; j < tempBodies[i].vJoints.size(); j++)
{
if (calibration.bCalibrated)
{
bodies[i].vJoints[j].Position.X += calibration.worldT[0];
bodies[i].vJoints[j].Position.Y += calibration.worldT[1];
bodies[i].vJoints[j].Position.Z += calibration.worldT[2];
tempBodies[i].vJoints[j].Position.X += calibration.worldT[0];
tempBodies[i].vJoints[j].Position.Y += calibration.worldT[1];
tempBodies[i].vJoints[j].Position.Z += calibration.worldT[2];
Point3f tempPoint(bodies[i].vJoints[j].Position.X, bodies[i].vJoints[j].Position.Y, bodies[i].vJoints[j].Position.Z);
Point3f tempPoint(tempBodies[i].vJoints[j].Position.X, tempBodies[i].vJoints[j].Position.Y, tempBodies[i].vJoints[j].Position.Z);
tempPoint = RotatePoint(tempPoint, calibration.worldR);
bodies[i].vJoints[j].Position.X = tempPoint.X;
bodies[i].vJoints[j].Position.Y = tempPoint.Y;
bodies[i].vJoints[j].Position.Z = tempPoint.Z;
tempBodies[i].vJoints[j].Position.X = tempPoint.X;
tempBodies[i].vJoints[j].Position.Y = tempPoint.Y;
tempBodies[i].vJoints[j].Position.Z = tempPoint.Z;
}
}
}
@@ -752,7 +754,7 @@ void LiveScanClient::StoreFrame(Point3f *vertices, Point2f *mapping, RGB *color,
goodVerticesShort[i] = goodVertices[i];
}
m_vLastFrameBody = bodies;
m_vLastFrameBody = tempBodies;
m_vLastFrameVertices = goodVerticesShort;
m_vLastFrameRGB = goodColorPoints;
}