/// <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>
        /// 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>
        /// 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>
        /// 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>
 /// (Android only) Use GPU to run model inference. Note this is an experimental option and should NOT be used in production.
 /// </summary>
 public static void UseGPU()
 {
     FritzAndroidPoseManager.UseGPU();
 }
 /// <summary>
 /// (Android only) Log a message using Log.d
 /// </summary>
 /// <param name="message">The log message to send</param>
 public static void LogMessage(string message)
 {
     FritzAndroidPoseManager.LogMessage(message);
 }
 /// <summary>
 /// (Android only) Run pose estimation on an XRCameraImage (async)
 /// </summary>
 /// <param name="cameraImage">The camera image to run prediction on</param>
 public static void ProcessPoseFromImageAsync(XRCameraImage cameraImage)
 {
     FritzAndroidPoseManager.ProcessPoseFromImageAsync(cameraImage);
 }
        /// <summary>
        /// (Android only) Run pose estimation on an XRCameraImage (synchronized)
        /// </summary>
        /// <param name="cameraImage">The camera image to run prediction on</param>
        public static List <FritzPose> ProcessPoseFromImage(XRCameraImage cameraImage)
        {
            string message = FritzAndroidPoseManager.ProcessPoseFromImage(cameraImage);

            return(ProcessEncodedPoses(message));
        }