Exemplo n.º 1
0
    //for openni, we use an alternative version because the openni one suckso
    public bool is_skeleton_tracked_alternative()
    {
        if (LastTrackedUser != null)
        {
            if (LastTrackedUser.SkeletonTracked == false || LastTrackedUser.PositionTracked == false)
            {
                return(false);
            }
        }
        else
        {
            return(false);
        }


        //TODO test if its in current "crumpled" pose, needed for OpenNI
        //instead we check neck and one arm)
        if (Joints.ContainsKey(ZgJointId.LeftShoulder) &&
            Joints.ContainsKey(ZgJointId.LeftElbow) &&
            Joints.ContainsKey(ZgJointId.Neck) &&
            Joints.ContainsKey(ZgJointId.Head))
        {
            if (get_relative_rotation(Joints[ZgJointId.LeftShoulder], Joints[ZgJointId.LeftElbow]).flat_rotation() == 0 &&
                get_relative_rotation(Joints[ZgJointId.Neck], Joints[ZgJointId.Head]).flat_rotation() == 0)
            {
                return(false);
            }
        }

        return(true);
    }