Export (0) Print
Expand All

NUI_SKELETON_FRAME Structure

Contains information about a frame of data from the skeleton pipeline.

typedef struct _NUI_SKELETON_FRAME {
    LARGE_INTEGER liTimeStamp;
    DWORD dwFrameNumber;
    DWORD dwFlags;
    Vector4 vFloorClipPlane;
    Vector4 vNormalToGravity;
    NUI_SKELETON_DATA SkeletonData[NUI_SKELETON_COUNT];
} NUI_SKELETON_FRAME;

Members

liTimeStamp
The timestamp of the depth frame that was processed to create this skeleton frame. The timestamp is expressed as the number of milliseconds that have elapsed since the most recent call to the NuiInitialize function or the INuiSensor::NuiInitialize method.
dwFrameNumber
The frame number of the most recent depth frame. The frame number is a counter that increments by one every time that a new depth frame is generated by the Kinect sensor array. Skeleton frames always have the same frame number as the most recent depth frame.

If you are retrieving skeleton frames at a slower rate than the sensor array is generating depth frames, you will see gaps in the frame number sequence of skeleton frames. However, a later frame will always have a higher frame number than an earlier frame.

Frame numbers reset to zero every time that NuiInitialize is called or the sensor array is plugged in. This means that you can see the frame numbers reset during operation if the sensor array is unplugged and plugged back in, even if your application did not explicitly reinitialize the sensor.

dwFlags
Not used.
vFloorClipPlane
A Vector4 structure that is used internally to clip below the floor.
vNormalToGravity
Not used; all members of this structure contain zero.
SkeletonData
An array of NUI_SKELETON_DATA structures, each of which contains data for one skeleton. This array is subject to the following rules:
  • The dwTrackingID members of the structures are not guaranteed to start from zero. There can be gaps between tracked skeleton data.
  • A specific dwTrackingID member will always appear in the structure at the same index in the array. However, the tracking ID is not guaranteed to correspond to the same player between two different frames.
  • If the number of tracked skeletons is less than NUI_SKELETON_COUNT, the eTrackingState member is set to NUI_SKELETON_NOT_TRACKED for any structure that does not represent a skeleton that is currently tracked.

This structure is returned by the NuiSkeletonGetNextFrame function and the INuiSensor::NuiSkeletonGetNextFrame method. It is modified by the NuiTransformSmooth function and the INuiSensor::NuiTransformSmooth method.

The floor plane is an estimate based on image analysis. This estimate changes initially and then settles over time, unless a condition changes due to such factors as movement of the camera or furniture. The skeleton pipeline uses this plane as a lower clipping plane. The general equation of a plane in homogenous coordinates is Ax + By + Cz + D = 0. The x, y, z, and w members of the Vector4 structure correspond to the coefficients A, B, C, and D, respectively. The camera is always at (0, 0, 0, 1), so the coefficient D is the negative of the height of the camera from the floor, in meters.

Header: Declared in NuiSkeleton.h, however, include NuiApi.h in your project.

Community Additions

Show:
© 2014 Microsoft