PoseDesigner uses ALGLIB‘s principal component analysis routine to extract a basis matrix from Kinect skeletal data. The ALGLIB conventions can be a little confusing – the example below provides some clarification.
// 6 samples of 3D data (x, y, z) double values[18] = {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}; // add this data to ALGLIB's format alglib::real_2d_array ptInput; ptInput.setcontent(6, 3, values); // this guy gets passed in and is filled in with an integer status code alglib::ae_int_t info; // scalar values that describe variances along each eigenvector alglib::real_1d_array eigValues; // unit eigenvectors which are the orthogonal basis that we want alglib::real_2d_array eigVectors; // perform the analysis pcabuildbasis(ptInput, 6, 3, info, eigValues, eigVectors); // now the vectors can be accessed as follows: double basis0_x = eigVectors[0][0]; double basis0_y = eigVectors[1][0]; double basis0_z = eigVectors[2][0]; double basis1_x = eigVectors[0][1]; double basis1_y = eigVectors[1][1]; double basis1_z = eigVectors[2][1]; double basis2_x = eigVectors[0][2]; double basis2_y = eigVectors[1][2]; double basis2_z = eigVectors[2][2];