Beispiel #1
0
 // Event handler for the HandTrackerUpdate event
 private void onHandTrackerUpdate(HandTrackerData handTrackerData)
 {
     if (_handTrackerData != null)
     {
         _handTrackerData.Dispose();
     }
     _handTrackerData = (HandTrackerData)handTrackerData.Clone();
 }
Beispiel #2
0
    void NuitrackManager_onHandsTrackerUpdate(HandTrackerData handTrackerData)
    {
        //Debug.Log ("on hands tracker update");
        if (handTrackerData != null)
        {
            nuitrack.UserHands userHands = handTrackerData.GetUserHandsByID(CurrentUserTracker.CurrentUser);

            if (userHands != null)
            {
                if (currentHand == Hands.right && userHands.RightHand != null)
                {
                    camera_connected = true;
                    Debug.Log("update right hand");

                    righthand.x = userHands.RightHand.Value.X * Screen.width;
                    righthand.y = (1f - userHands.RightHand.Value.Y) * Screen.height;
                }
                else
                {
                    if (currentHand == Hands.right)
                    {
                        Debug.Log("null RightHand");
                        //camera_connected = false;
                    }
                }

                if (currentHand == Hands.left && userHands.LeftHand != null)
                {
                    camera_connected = true;
                    Debug.Log("update left hand");

                    lefthand.x = userHands.LeftHand.Value.X * Screen.width;
                    lefthand.y = (1f - userHands.LeftHand.Value.Y) * Screen.height;
                }
                else
                {
                    if (currentHand == Hands.left)
                    {
                        Debug.Log("null LeftHand");
                        //camera_connected = false;
                    }
                }
            }
            else
            {
                Debug.Log("null userHands");
                camera_connected = false;
            }
        }
    }
Beispiel #3
0
        // Event handler for the HandTrackerUpdate event
        private void onHandTrackerUpdate(HandTrackerData handTrackerData)
        {
            _handTrackerData = handTrackerData;

            if (_handTrackerData != null)
            {
                foreach (var hand in _handTrackerData.UsersHands)
                {
                    if (hand.RightHand != null && hand.LeftHand != null)
                    {
                        Debug.WriteLine("Left hand {0} | Right hand {1}", hand.LeftHand.Value.Pressure.ToString(), hand.RightHand.Value.Pressure.ToString());
                    }
                }
            }
        }
 public HandTrackerDataEventArgs(HandTrackerData handTrackerData)
 {
     HandTrackerData = handTrackerData;
 }
 // Event handler for the HandTrackerUpdate event
 private void onHandTrackerUpdate(HandTrackerData handTrackerData)
 {
     _handTrackerData = handTrackerData;
 }
Beispiel #6
0
        internal void UpdateData(SkeletonData skeletonData, HandTrackerData handTrackerData, GestureData gestureData, JsonInfo jsonInfo)
        {
            foreach (UserData user in this)
            {
                user.Reset();
            }

            List <int> oldUsersIDs = new List <int>(users.Keys);
            List <int> newUsersIDs = new List <int>();

            if (skeletonData != null)
            {
                foreach (Skeleton skeleton in skeletonData.Skeletons)
                {
                    TryGetUser(skeleton.ID, ref newUsersIDs).AddData(skeleton);
                }
            }

            if (handTrackerData != null)
            {
                foreach (UserHands hands in handTrackerData.UsersHands)
                {
                    TryGetUser(hands.UserId, ref newUsersIDs).AddData(hands);
                }
            }

            if (gestureData != null)
            {
                foreach (Gesture gesture in gestureData.Gestures)
                {
                    TryGetUser(gesture.UserID, ref newUsersIDs).AddData(gesture);
                }
            }

            if (jsonInfo != null && jsonInfo.Instances != null)
            {
                foreach (Instances instances in jsonInfo.Instances)
                {
                    if (!instances.face.IsEmpty)
                    {
                        TryGetUser(instances.id, ref newUsersIDs).AddData(instances.face);
                    }
                }
            }

            foreach (int userID in newUsersIDs)
            {
                if (!oldUsersIDs.Contains(userID))
                {
                    OnUserEnter?.Invoke(users[userID]);
                }
            }

            foreach (int userID in oldUsersIDs)
            {
                if (!newUsersIDs.Contains(userID))
                {
                    OnUserExit?.Invoke(users[userID]);

                    users[userID].Dispose();
                    users.Remove(userID);
                }
            }

            if (users.Count == 0)
            {
                CurrentUserID = 0;
            }
            else
            {
                if (CurrentUserID != 0 && !users.ContainsKey(CurrentUserID))
                {
                    CurrentUserID = 0;
                }

                if (CurrentUserID == 0)
                {
                    CurrentUserID = users.Keys.First();
                }
            }
        }