/// <summary>
        /// Set the script function to callback once prediction is run on each frame.
        /// </summary>
        /// <param name="name">The name of the callback function on the object target.</param>
        public static void SetCallbackFunctionTarget(string name)
        {
#if UNITY_IOS
            FritziOSPoseManager.SetCallbackFunctionTarget(name);
#elif UNITY_ANDROID
            FritzAndroidPoseManager.SetCallbackFunctionTarget(name);
#endif
        }
        /// <summary>
        /// Set the max number of poses to detect.
        /// </summary>
        /// <param name="numPoses">The number of poses</param>
        public static void SetNumPoses(int numPoses)
        {
#if UNITY_IOS
            FritziOSPoseManager.SetNumPoses(numPoses);
#elif UNITY_ANDROID
            FritzAndroidPoseManager.SetNumPoses(numPoses);
#endif
        }
        /// <summary>
        /// Configure the Fritz project. Should be called first.
        /// </summary>
        public static void Configure()
        {
#if UNITY_IOS
            FritziOSPoseManager.Configure();
#elif UNITY_ANDROID
            FritzAndroidPoseManager.Configure();
#endif
        }
        /// <summary>
        /// Checks to see if a frame is being processed.
        /// </summary>
        /// <returns>true/false if the model is currently processing</returns>
        public static bool Processing()
        {
#if UNITY_IOS
            return(FritziOSPoseManager.Processing());
#elif UNITY_ANDROID
            return(FritzAndroidPoseManager.Processing());
#endif
            return(false);
        }
        /// <summary>
        /// (iOS only) Run pose estimation on an XRCamera Frame (async)
        /// </summary>
        /// <param name="frame">The camera frame to run prediction on</param>
        public static void ProcessPoseFromFrameAsync(XRCameraFrame frame)
        {
            IntPtr buffer = frame.nativePtr;

            if (buffer == IntPtr.Zero)
            {
                Debug.LogError("buffer is NULL!");
                return;
            }


            FritziOSPoseManager.ProcessPoseAsync(buffer);
        }
        /// <summary>
        /// (iOS only) Run pose estimation on an XRCamera Frame (synchronized)
        /// </summary>
        /// <param name="frame">The camera frame to run prediction on</param>
        public static List <FritzPose> ProcessPoseFromFrame(XRCameraFrame frame)
        {
            IntPtr buffer = frame.nativePtr;

            if (buffer == IntPtr.Zero)
            {
                Debug.LogError("buffer is NULL!");
                return(null);
            }


            string message = FritziOSPoseManager.ProcessPose(buffer);

            return(ProcessEncodedPoses(message));
        }