public virtual void SetSource(UnityEngine.XR.WSA.SurfaceData source)
        {
            if (source == null || source.Transform == null)
            {
                return;
            }

            Source = source.Transform.GetComponentInParent <PointerFacade>();
        }
 /// <summary>
 /// Extracts the <see cref="Source"/> <see cref="GameObject"/> from the given <see cref="PointerFacade"/> data.
 /// </summary>
 /// <param name="data">The <see cref="PointerFacade"/> payload data to extract from.</param>
 /// <returns>The <see cref="Source"/> <see cref="GameObject"/> within the <see cref="PointerFacade"/>.</returns>
 public virtual GameObject Extract(PointerFacade facade)
 {
     Source = facade;
     return(Extract());
 }
 /// <summary>
 /// Extracts the <see cref="Source"/> <see cref="GameObject"/> from the given <see cref="PointerFacade"/> data.
 /// </summary>
 /// <param name="data">The <see cref="PointerFacade"/> payload data to extract from.</param>
 public virtual void DoExtract(PointerFacade facade)
 {
     Extract(facade);
 }