// private static void ExtractColorImage(NuiLockedRect buf, ref Color32[] colorImage) // { // ColorBuffer cb = (ColorBuffer)Marshal.PtrToStructure(buf.pBits, typeof(ColorBuffer)); // int totalPixels = Constants.ImageWidth * Constants.ImageHeight; // // for (int pix = 0; pix < totalPixels; pix++) // { // int ind = totalPixels - pix - 1; // // colorImage[ind].r = cb.pixels[pix].r; // colorImage[ind].g = cb.pixels[pix].g; // colorImage[ind].b = cb.pixels[pix].b; // colorImage[ind].a = 255; // } // } // // private static short[] ExtractDepthImage(NuiLockedRect lockedRect) // { // DepthBuffer db = (DepthBuffer)Marshal.PtrToStructure(lockedRect.pBits, typeof(DepthBuffer)); // return db.pixels; // } private static Vector3 GetPositionBetweenIndices(ref Vector3[] jointsPos, NuiSkeletonPositionIndex p1, NuiSkeletonPositionIndex p2) { Vector3 pVec1 = jointsPos[(int)p1]; Vector3 pVec2 = jointsPos[(int)p2]; return pVec2 - pVec1; }