void HandleTapEvent()
    {
        Debug.LogFormat("Recognizer_TappedEvent {0} {1}", HasMarkers, (SelectedMarker != null));

        if (HasMarkers)
        {
            if (SelectedMarker != null)
            {
                var     marker   = SelectedMarker.GetComponent <PlaceMarker>();
                Vector3 position = marker.transform.position;
                Vector3 normal   = -marker.transform.forward;

                IsPlacing = false;

                // get hit point from gaze and send the message back
                OnPlaceSelectComplete(position, normal);
            }
        }
        else
        {
            IsPlacing = false;

            // get hit point from gaze and send the message back
            OnPlaceSelectComplete(GazeManager.Instance.Position, Vector3.up);
        }
    }