JD2022-TU1/main/extern/Kinect/Durango/NuiCore.h

146 lines
3.3 KiB
C++

#ifndef NUICORE_WRAPPER_H
#define NUICORE_WRAPPER_H
#include <DirectXMath.h>
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