public NuiSkeletonData deserialize()
 {
     NuiSkeletonData nui = new NuiSkeletonData();
     nui.eTrackingState = this.eTrackingState;
     nui.dwTrackingID = this.dwTrackingID;
     nui.dwEnrollmentIndex_NotUsed = this.dwEnrollmentIndex_NotUsed;
     nui.dwUserIndex = this.dwUserIndex;
     nui.Position = this.Position.deserialize();
     nui.SkeletonPositions = new Vector4[20];
     for(int ii = 0; ii < 20; ii++){
         nui.SkeletonPositions[ii] = this.SkeletonPositions[ii].deserialize();
     }
     nui.eSkeletonPositionTrackingState = this.eSkeletonPositionTrackingState;
     nui.dwQualityFlags = this.dwQualityFlags;
     return nui;
 }
 /*
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(NuiSkeletonFrame skeleton){
     return null;
 }
 */
 NuiSkeletonBoneOrientation[] KinectOneInterface.getBoneOrientations(NuiSkeletonData skeletonData)
 {
     NuiSkeletonBoneOrientation[] boneOrientations = new NuiSkeletonBoneOrientation[(int)(NuiSkeletonPositionIndex.Count)];
     NativeMethods.NuiSkeletonCalculateBoneOrientations(ref skeletonData, boneOrientations);
     return boneOrientations;
 }
 public SerialSkeletonData(NuiSkeletonData nui)
 {
     this.eTrackingState = nui.eTrackingState;
     this.dwTrackingID = nui.dwTrackingID;
     this.dwEnrollmentIndex_NotUsed = nui.dwEnrollmentIndex_NotUsed;
     this.dwUserIndex = nui.dwUserIndex;
     this.Position = new SerialVec4(nui.Position);
     this.SkeletonPositions = new SerialVec4[20];
     for(int ii = 0; ii < 20; ii++){
         this.SkeletonPositions[ii] = new SerialVec4(nui.SkeletonPositions[ii]);
     }
     this.eSkeletonPositionTrackingState = nui.eSkeletonPositionTrackingState;
     this.dwQualityFlags = nui.dwQualityFlags;
 }