Example #1
0
 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;
 }
Example #2
0
        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);
        }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
0
 public static extern UInt32 NuiSkeletonCalculateBoneOrientations([In] ref NuiSkeletonData pSkeletonData, [Out] NuiSkeletonBoneOrientation[] pBoneOrientations);
 /*
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(NuiSkeletonFrame skeleton){
     return null;
 }
 */
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(NuiSkeletonData skeletonData)
 {
     NuiSkeletonBoneOrientation[] boneOrientations = new NuiSkeletonBoneOrientation[(int)(NuiSkeletonPositionIndex.Count)];
     NativeMethods.NuiSkeletonCalculateBoneOrientations(ref skeletonData, boneOrientations);
     return boneOrientations;
 }
Example #7
0
 /// <summary>
 /// Get all bones orientation based on the skeleton passed in
 /// </summary>
 /// <returns>
 /// Bone Orientation in struct of NuiSkeletonBoneOrientation, quarternion and matrix
 /// </returns>
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(Kinect.NuiSkeletonData skeletonData)
 {
     NuiSkeletonBoneOrientation[] boneOrientations = new NuiSkeletonBoneOrientation[(int)(NuiSkeletonPositionIndex.Count)];
     NativeMethods.NuiSkeletonCalculateBoneOrientations(ref skeletonData, boneOrientations);
     return(boneOrientations);
 }
Example #8
0
    void Update()
    {
        this.pollskeleton = false;

           uint numberOfReadBytes = skeletonReader.readData(readBytes, (uint)sizeOfBytesToRead, DataRequest.Type.NEWEST_AVAILABLE);

        if(numberOfReadBytes != 0 )
        {
        newSkeleton = false;
        updatedSkeleton = false;
        this.pollskeleton = true;
        pollskeleton = true;
        skeletons = new Skeletons(readBytes);
        skeleton.dwFrameNumber = (uint)skeletons.frameNumber;
        skeleton.liTimeStamp = skeletons.timeStamp;
        skeleton.vFloorClipPlane = new Vector4(skeletons.floorClipPlaneX,skeletons.floorClipPlaneY,skeletons.floorClipPlaneZ,skeletons.floorClipPlaneW);
        skeleton.vNormalToGravity = new Vector4(0,0,0,0);
        skeleton.dwFlags = 0;

        int index = 0;

        skeleton.SkeletonData = new NuiSkeletonData[6];
        NuiSkeletonData sd = new NuiSkeletonData();

        for(int i1 = 0;i1< 6;i1++)
        {

            sd.SkeletonPositions = new Vector4[20];
            sd.eSkeletonPositionTrackingState = new NuiSkeletonPositionTrackingState[20];
            sd.dwTrackingID = (uint)BitConverter.ToInt32(skeletons.skeletonsBytes,index);
            index += sizeof(Int32);
            byte trackingMode = skeletons.skeletonsBytes[index++];
                if(trackingMode == 0)
                {
            sd.eTrackingState = Kinect.NuiSkeletonTrackingState.PositionOnly;
                }
            else if(trackingMode == 1)
                {
                sd.eTrackingState =  Kinect.NuiSkeletonTrackingState.SkeletonTracked;

                }
            else if(trackingMode == 2)
                {
                sd.eTrackingState =  Kinect.NuiSkeletonTrackingState.NotTracked;
                }
            sd.Position.x = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
            index+=sizeof(float);
            sd.Position.y = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
            index+=sizeof(float);
            sd.Position.z = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
            index+=sizeof(float);

            sd.Position.w = 0;

            if(i1 <2)
            {
                for(int j = 0;j< 20;j++)
                {
                    byte jointTrackingMode = skeletons.skeletonsBytes[index++];
                    if(jointTrackingMode == 0){

                        sd.eSkeletonPositionTrackingState[j] = Kinect.NuiSkeletonPositionTrackingState.NotTracked;
                        }
                    else{
                            if(jointTrackingMode == 1){
                                sd.eSkeletonPositionTrackingState[j] =  Kinect.NuiSkeletonPositionTrackingState.Inferred;
                            }
                            else{
                                if(jointTrackingMode == 2){
                                    sd.eSkeletonPositionTrackingState[j] =  Kinect.NuiSkeletonPositionTrackingState.Tracked;
                                }
                            }
                        }

                    sd.SkeletonPositions[j].w = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
                    index+=sizeof(float);
                    sd.SkeletonPositions[j].x = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
                    index+=sizeof(float);
                    sd.SkeletonPositions[j].z = -BitConverter.ToSingle(skeletons.skeletonsBytes,index);
                    index+=sizeof(float);
                    sd.SkeletonPositions[j].y = BitConverter.ToSingle(skeletons.skeletonsBytes,index);
                    index+=sizeof(float);
                    index=index +4*sizeof(float);

                }

            }
            else
                {
                    for(int j = 0;j< 20;j++)
                {

                    sd.eSkeletonPositionTrackingState[j] = Kinect.NuiSkeletonPositionTrackingState.NotTracked;

                    sd.SkeletonPositions[j].w = 0;
                    sd.SkeletonPositions[j].x = 0;
                    sd.SkeletonPositions[j].y = 0;
                    sd.SkeletonPositions[j].z = 0;

                }
                }

            sd.dwUserIndex = (uint)i1;
            sd.dwQualityFlags = 0;
            skeleton.SkeletonData[i1] = sd;

        }

        }
    }
Example #9
0
 /*
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(NuiSkeletonFrame skeleton){
     return null;
 }
 */
 NuiSkeletonBoneOrientation[] KinectInterface.getBoneOrientations(NuiSkeletonData skeletonData)
 {
     return null;
 }