void ProcessFrame(nuitrack.DepthFrame depthFrame, nuitrack.UserFrame userFrame) { Color pointColor; for (int i = 0, pointIndex = 0; i < depthFrame.Rows; i += frameStep) { for (int j = 0; j < depthFrame.Cols; j += frameStep, ++pointIndex) { nuitrack.Vector3 p = depthSensor.ConvertProjToRealCoords(j, i, depthFrame[i, j]); uint userId = userFrame[i * userFrame.Rows / depthFrame.Rows, j *userFrame.Cols / depthFrame.Cols]; pointColor = userCols[userId % userCols.Length]; VerticesUpdate(pointIndex, new Vector3(p.X * 0.001f, p.Y * 0.001f, p.Z * 0.001f), pointColor); } } MeshesUpdate(); }
public static Vector3 ToVector3(this nuitrack.Vector3 v) { return(new Vector3(v.X, v.Y, v.Z)); }