Kinect骨骼分析:
人物的数据
public struct BodyData
{
public Int64 liTrackingID;//人物是否被追踪
public Vector3 position;//人物的位置
public Quaternion orientation;
public JointData[] joint;//骨骼节点的数据
// KM calculated parameters
public Quaternion normalRotation;
public Quaternion mirroredRotation;
public Vector3 hipsDirection;
public Vector3 shouldersDirection;
public float bodyTurnAngle;
//public float bodyFullAngle;
public bool isTurnedAround;
public float turnAroundFactor;
public Quaternion leftHandOrientation;
public Quaternion rightHandOrientation;
public Quaternion headOrientation;
// public Vector3 leftArmDirection;
// public Vector3 leftThumbForward;
// public Vector3 leftThumbDirection;
// //public float leftThumbAngle;
//
// public Vector3 rightArmDirection;
// public Vector3 rightThumbForward;
// public Vector3 rightThumbDirection;
// //public float rightThumbAngle;
//public Vector3 leftLegDirection;
//public Vector3 leftFootDirection;
//public Vector3 rightLegDirection;
//public Vector3 rightFootDirection;
public HandState leftHandState;//左手状态
public TrackingConfidence leftHandConfidence;
public HandState rightHandState;//右手状态
public TrackingConfidence rightHandConfidence;
public uint dwClippedEdges;
public short bIsTracked;
public short bIsRestricted;
}
//骨骼点信息
public struct JointData
{
public TrackingState trackingState;
public Vector3 kinectPos;
public Vector3 position;
public Quaternion orientation; // deprecated
public Vector3 posPrev;
public Vector3 posRel;
public Vector3 posDrv;
// KM calculated parameters
public Vector3 direction;
public Quaternion normalRotation;
public Quaternion mirroredRotation;
// Constraint parameters
public float lastAngle;
}
//姿势检测的结构
public struct GestureData
{
public long userId;//要检测的用户ID
public Gestures gesture;//要检测的姿势类型
public int state;//姿势检测的状态,姿势是否正在检测
public float timestamp;
public int joint;
public Vector3 jointPos;
public Vector3 screenPos;
public float tagFloat;
public Vector3 tagVector;
public Vector3 tagVector2;
public float progress;
public bool complete;
public bool cancelled;
public List<Gestures> checkForGestures;
public float startTrackingAtTime;
}