Beispiel #1
0
        XnSkeletonJointPosition Mean(XnSkeletonJointPosition p1, XnSkeletonJointPosition p2)
        {
            XnSkeletonJointPosition mean;

            mean.position   = Mean(p1.position, p2.position);
            mean.confidence = Mean(p1.confidence, p2.confidence);
            return(mean);
        }
Beispiel #2
0
        bool TryNiRotationDirY(out Quaternion q, XnSkeletonJointPosition xnp1, XnSkeletonJointPosition xnp2)
        {
            if (xnp1.confidence < 0.5f || xnp2.confidence < 0.5f)
            {
                q = Quaternion.Identity;
                return(false);
            }

            Vector3 p1 = ToVector3(xnp1.position);
            Vector3 p2 = ToVector3(xnp2.position);

            Vector3 vy = new Vector3(0, 1, 0);
            Vector3 v2 = p2 - p1;

            RotationVectorToVector(vy, v2, out q);
            return(true);
        }
Beispiel #3
0
        bool TryNiRotation(out Quaternion q, XnSkeletonJointPosition xnp0, XnSkeletonJointPosition xnp1, XnSkeletonJointPosition xnp2)
        {
            if (xnp0.confidence < 0.5f || xnp1.confidence < 0.5f || xnp2.confidence < 0.5f)
            {
                q = Quaternion.Identity;
                return(false);
            }

            Vector3 p0 = ToVector3(xnp0.position);
            Vector3 p1 = ToVector3(xnp1.position);
            Vector3 p2 = ToVector3(xnp2.position);

            Vector3 v1 = p1 - p0;
            Vector3 v2 = p2 - p1;

            RotationVectorToVector(v1, v2, out q);
            return(true);
        }