#ifndef NUICORE_WRAPPER_H #define NUICORE_WRAPPER_H #include namespace Microsoft { namespace Xbox { namespace Input { namespace Nui { const UINT32 NUI_BODY_COUNT = 6; const UINT32 NUI_BODY_INVALID_TRACKING_ID = 0; enum NUI_SKELETON_JOINT_INDEX { NUI_SKELETON_JOINT_SPINE_BASE = 0, NUI_SKELETON_JOINT_SPINE_MID, NUI_SKELETON_JOINT_NECK, NUI_SKELETON_JOINT_HEAD, NUI_SKELETON_JOINT_SHOULDER_LEFT, NUI_SKELETON_JOINT_ELBOW_LEFT, NUI_SKELETON_JOINT_WRIST_LEFT, NUI_SKELETON_JOINT_HAND_LEFT, NUI_SKELETON_JOINT_SHOULDER_RIGHT, NUI_SKELETON_JOINT_ELBOW_RIGHT, NUI_SKELETON_JOINT_WRIST_RIGHT, NUI_SKELETON_JOINT_HAND_RIGHT, NUI_SKELETON_JOINT_HIP_LEFT, NUI_SKELETON_JOINT_KNEE_LEFT, NUI_SKELETON_JOINT_ANKLE_LEFT, NUI_SKELETON_JOINT_FOOT_LEFT, NUI_SKELETON_JOINT_HIP_RIGHT, NUI_SKELETON_JOINT_KNEE_RIGHT, NUI_SKELETON_JOINT_ANKLE_RIGHT, NUI_SKELETON_JOINT_FOOT_RIGHT, NUI_SKELETON_JOINT_SPINE_SHOULDER, NUI_SKELETON_JOINT_HAND_TIP_LEFT, NUI_SKELETON_JOINT_THUMB_LEFT, NUI_SKELETON_JOINT_HAND_TIP_RIGHT, NUI_SKELETON_JOINT_THUMB_RIGHT, NUI_SKELETON_JOINT_COUNT }; enum NUI_SKELETON_JOINT_TRACKING_STATE { NUI_SKELETON_JOINT_NOT_TRACKED = 0, NUI_SKELETON_JOINT_INFERRED, NUI_SKELETON_JOINT_TRACKED }; enum NUI_BODY_TRACKING_STATE { NUI_BODY_NOT_TRACKED = 0, NUI_BODY_TRACKED }; enum NUI_HAND_HANDEDNESS { NUI_HAND_LEFT = 0, NUI_HAND_RIGHT, NUI_HAND_HANDEDNESS_COUNT }; enum NUI_HAND_CONFIDENCE { NUI_HAND_CONFIDENCE_NONE = 0, NUI_HAND_CONFIDENCE_LOW, NUI_HAND_CONFIDENCE_HIGH, NUI_HAND_CONFIDENCE_COUNT }; enum NUI_HAND_TRACKING_STATE { NUI_HAND_TRACKING_STATE_NOT_TRACKED = 0, NUI_HAND_TRACKING_STATE_INFERRED, NUI_HAND_TRACKING_STATE_TRACKED, NUI_HAND_TRACKING_STATE_COUNT }; enum NUI_HAND_STATE { NUI_HAND_OPEN = 0, NUI_HAND_CLOSED, NUI_HAND_LASSO, NUI_HAND_UNKNOWN, NUI_HAND_STATE_COUNT }; struct NUI_HAND_DATA { NUI_HAND_STATE HandState; NUI_HAND_TRACKING_STATE HandTrackingState; NUI_HAND_CONFIDENCE HandConfidence; }; enum NUI_FITNESS_TRACKING_STATE { NUI_FITNESS_NOT_TRACKED = 0, NUI_FITNESS_TRACKED, NUI_FITNESS_INFERRED }; struct NUI_FITNESS_DATA { float Met; NUI_FITNESS_TRACKING_STATE TrackingState; }; struct NUI_BODY_DATA { DirectX::XMVECTOR SkeletonJointPositions[NUI_SKELETON_JOINT_COUNT]; DirectX::XMVECTOR SkeletonJointOrientations[NUI_SKELETON_JOINT_COUNT]; NUI_SKELETON_JOINT_TRACKING_STATE SkeletonJointPositionTrackingStates[NUI_SKELETON_JOINT_COUNT]; NUI_HAND_DATA HandData[NUI_HAND_HANDEDNESS_COUNT]; UINT64 TrackingID; NUI_BODY_TRACKING_STATE TrackingState; NUI_FITNESS_DATA FitnessData; UINT32 QualityFlags; }; struct NUI_BODY_FRAME { DirectX::XMVECTOR FloorClipPlane; DirectX::XMVECTOR Up; NUI_BODY_DATA BodyData[NUI_BODY_COUNT]; UINT32 QualityFlags; }; struct NUI_FRAME { UINT64 TimeCounter; UINT32 FrameNumber; }; } } } } #endif // NUICORE_WRAPPER_H