AvatarController.UpdateAvatar C# (CSharp) Method

UpdateAvatar() public method

public UpdateAvatar ( uint UserID, bool IsNearMode ) : void
UserID uint
IsNearMode bool
return void
    public void UpdateAvatar(uint UserID, bool IsNearMode)
    {
        bool flipJoint = !MirroredMovement;

        // Update Head, Neck, Spine, and Hips normally.
        TransformBone(UserID, KinectWrapper.SkeletonJoint.HIPS, 1, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.SPINE, 2, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.NECK, 3, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.HEAD, 4, flipJoint);

        // Beyond this, switch the arms and legs.

        // Left Arm --> Right Arm
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_COLLAR, MirroredMovement ? 5 : 11, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_SHOULDER, MirroredMovement ? 6 : 12, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_ELBOW, MirroredMovement ? 7 : 13, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_WRIST, MirroredMovement ? 8 : 14, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_HAND, MirroredMovement ? 9 : 15, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_FINGERTIP, MirroredMovement ? 10 : 16, flipJoint);

        // Right Arm --> Left Arm
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_COLLAR, MirroredMovement ? 11 : 5, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_SHOULDER, MirroredMovement ? 12 : 6, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_ELBOW, MirroredMovement ? 13 : 7, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_WRIST, MirroredMovement ? 14 : 8, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_HAND, MirroredMovement ? 15 : 9, flipJoint);
        TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_FINGERTIP, MirroredMovement ? 16 : 10, flipJoint);

        if(!IsNearMode)
        {
            // Left Leg --> Right Leg
            TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_HIP, MirroredMovement ? 17 : 21, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_KNEE, MirroredMovement ? 18 : 22, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_ANKLE, MirroredMovement ? 19 : 23, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.LEFT_FOOT, MirroredMovement ? 20 : 24, flipJoint);

            // Right Leg --> Left Leg
            TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_HIP, MirroredMovement ? 21 : 17, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_KNEE, MirroredMovement ? 22 : 18, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_ANKLE, MirroredMovement ? 23 : 19, flipJoint);
            TransformBone(UserID, KinectWrapper.SkeletonJoint.RIGHT_FOOT, MirroredMovement ? 24 : 20, flipJoint);
        }

        // If the avatar is supposed to move in the space, move it.
        if (MovesInSpace)
        {
            MoveAvatar(UserID);
        }
    }