public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        DestroyImmediate(Text);

        path       = Application.streamingAssetsPath + "/json1.json";
        jsonString = File.ReadAllText(path);


        Room Raum1 = JsonUtility.FromJson <Room>(jsonString);

        Text = new GameObject();
        Text.AddComponent <TextMesh>();

        Text.GetComponent <TextMesh>().text          = "Room : " + Raum1.Raum + "\n" + "Name : " + Raum1.Name + "\n" + "E-Mail : " + Raum1.EMail + "\n" + "Tel. Nr : " + Raum1.Tel + "\n" + "Sprechzeiten :" + Raum1.Hours;
        Text.GetComponent <TextMesh>().richText      = true;
        Text.GetComponent <TextMesh>().characterSize = 10;
        Text.transform.rotation = Quaternion.Euler(90, 0, 0);


        mTargetMetadata = targetSearchResult.MetaData;
        // StartCoroutine(GetTextFromWWW(mTargetMetadata));
        mCloudRecoBehaviour.CloudRecoEnabled = false;



        if (ImageTargetTemplate)
        {
            //mCloudRecoBehaviour.CloudRecoEnabled = true; /*Disables the Restart Scanning Button */
            mImageTracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)mImageTracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
        }
    }
예제 #2
0
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata
        // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(),
        // or to create a new ImageTargetBehaviour for each new result

        // Vuforia will return a new object with the right script automatically if you use
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)

        //Check if the metadata isn't null
        if (targetSearchResult.MetaData == null)
        {
            return;
        }

        // First clear all trackables
        mObjectTracker.TargetFinder.ClearTrackables(false);

        // enable the new result with the same ImageTargetBehaviour:
        ImageTargetBehaviour imageTargetBehaviour = mObjectTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour;

        //if extended tracking was enabled from the menu, we need to start the extendedtracking on the newly found trackble.
        if (CloudRecognitionUIEventHandler.ExtendedTrackingIsEnabled)
        {
            imageTargetBehaviour.ImageTarget.StartExtendedTracking();
        }
    }
예제 #3
0
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        mIsScanning     = false;
        mTargetMetadata = cloudRecoSearchResult.MetaData;
        Debug.Log(mTargetMetadata);

        //GameObject newImageTarget = Instantiate(targetBehaviour.gameObject) as GameObject;

        //MainVideoPlayer = newImageTarget.transform.GetChild(0).gameObject;
        //metadata = newImageTarget.transform.GetChild(1).gameObject;
        //Debug.Log(newImageTarget.transform.GetChild(1).transform.GetChild(0));

        //GameObject augmentation = null;
        //if (augmentation != null)
        //{
        //    augmentation.transform.SetParent(newImageTarget.transform);
        //    Debug.Log("Augmentation is " + augmentation.name);
        //}

        if (targetBehaviour)
        {
            ObjectTracker        tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, targetBehaviour.gameObject);
        }

        //MainVideoPlayer.GetComponent<VideoPlayer>().url = mTargetMetadata.Trim();
        //appManager.LoadAR(mTargetMetadata.Trim());
        stringParser.SplitString(mTargetMetadata.Trim());
        //metadata.GetComponentInChildren<Text>().text = mTargetMetadata;
        if (!mIsScanning)
        {
            mCloudRecoBehaviour.CloudRecoEnabled = true;
        }
    }
예제 #4
0
        /// Handles new search results
        /// <param name="targetSearchResult"></param>
        public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
        {
            // duplicate the referenced image target
            GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;
            GameObject augmentation   = null;
            string     model_name     = targetSearchResult.MetaData;

            if (augmentation != null)
            {
                augmentation.transform.parent = newImageTarget.transform;
            }

            // enable the new result with the same ImageTargetBehaviour:
            ImageTargetAbstractBehaviour imageTargetBehaviour =
                mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);

            Debug.Log("Metadata value is " + model_name);
            mTargetMetadata = model_name;

            if (!mIsScanning)
            {
                // stop the target finder
                mCloudRecoBehaviour.CloudRecoEnabled = true;
            }
        }
예제 #5
0
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
            (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        mTargetMetadata = cloudRecoSearchResult.MetaData;


        GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;
        GameObject MainImage      = newImageTarget.transform.GetChild(0).gameObject;

        GameObject augmentation = null;

        if (augmentation != null)
        {
            augmentation.transform.SetParent(newImageTarget.transform);
        }
        if (ImageTargetTemplate)
        {
            ObjectTracker        tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);
        }

        string IMG = cloudRecoSearchResult.MetaData;



        if (!mIsScanning)
        {
            mCloudRecoBehaviour.CloudRecoEnabled = true;
        }
    }
예제 #6
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        if (targetSearchResult.MetaData == null)
        {
            return;
        }

        mTargetMetadata = targetSearchResult.MetaData;


        if (mTargetMetadata.Contains("Graffiti"))
        {
            Reconstructor.setLineManager(JsonUtility.FromJson <LineManager>(mTargetMetadata));
        }
        else if (mTargetMetadata.Contains("Text"))
        {
            Reconstructor.setTextManager(JsonUtility.FromJson <TextManager>(mTargetMetadata));
        }

        ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(
            targetSearchResult, ImageTargetTemplate.gameObject);


        if (ImageTargetTemplate != null)
        {
            mCloudRecoBehaviour.CloudRecoEnabled = false;
        }
    }
예제 #7
0
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata
        // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(),
        // or to create a new ImageTargetBehaviour for each new result

        // Vuforia will return a new object with the right script automatically if you use
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)

        //Check if the metadata isn't null
        if (targetSearchResult.MetaData == null)
        {
            return;
        }

        // enable the new result with the same ImageTargetBehaviour:
        ImageTargetBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour;

        if (imageTargetBehaviour != null)
        {
            // stop the target finder
            mCloudRecoBehaviour.CloudRecoEnabled = false;

            // Calls the TargetCreated Method of the SceneManager object to start loading
            // the BookData from the JSON
            mContentManager.TargetCreated(targetSearchResult.MetaData);
            mContentManager.AnimationsManager.SetInitialAnimationFlags();
        }
    }
예제 #8
0
    //Se ejecuta cuando detecta el target y descarga la informacion de la nube
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        //Mensaje con el nombre del target y el contenido de la Metadata
        Debug.Log("Nombre del Target: " + targetSearchResult.TargetName + "\nMetadata: " + targetSearchResult.MetaData);

        //Pasa el nombre del target y el contenido de la Metadata a los textos de la interfaz
        scriptUIManager.txtTargetName.text = targetSearchResult.TargetName;
        scriptUIManager.txtMetadata.text   = targetSearchResult.MetaData;

        GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;
        GameObject augmentation   = null;

        string targetName = targetSearchResult.TargetName;         //Almacena el nombre del target

        if (augmentation != null)
        {
            augmentation.transform.parent = newImageTarget.transform;
        }

        ImageTargetBehaviour newImageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);

        //Recorre el array de objetos, y desactiva todos excepto el del target que se encontro
        for (int i = 0; i < newImageTargetBehaviour.gameObject.transform.childCount; i++)
        {
            if (newImageTargetBehaviour.gameObject.transform.GetChild(i).gameObject.name != targetName)
            {
                newImageTargetBehaviour.gameObject.transform.GetChild(i).gameObject.SetActive(false);
            }
        }

        if (!mIsScanning)
        {
            mCloudRecoBehaviour.CloudRecoEnabled = true;
        }
    }
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // do something with the target metadata
        mTargetMetadata = targetSearchResult.MetaData;

        if (!NetworkInfoManager.Instance.DeviceIdExists(mTargetMetadata))
        {
            NetworkInfoManager.Instance.AddNetworkDevice(mTargetMetadata);
            currentId = mTargetMetadata;

            GameObject newImageTarget = Instantiate(imageTargetTemplate) as GameObject;
            newImageTarget.name = "imageTarget_" + currentId;
            newImageTarget.SetActive(true);
            GameObject newGraph = Instantiate(graphTemplate, newImageTarget.transform.position + (newImageTarget.transform.up * .3f), newImageTarget.transform.rotation, newImageTarget.transform);
            newGraph.GetComponent <Graph>().Init(currentId);
            newGraph.transform.localScale = newImageTarget.transform.localScale;

            currentImageTarget = newImageTarget;
            NetworkInfoManager.Instance.SetCurrentGraph(newGraph.GetComponent <Graph>());

            var tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour = tracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);

            if (imageTargetBehaviour != null)
            {
                mCloudRecoBehaviour.CloudRecoEnabled = false;
            }
        }
    }
예제 #10
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
            (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        // do something with the target metadata
        mTargetMetadata = cloudRecoSearchResult.MetaData;
        // stop the target finder (i.e. stop scanning the cloud)
        mCloudRecoBehaviour.CloudRecoEnabled = false;

        // Build augmentation based on target
        if (ImageTargetTemplate)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
        }
        movie           = JsonUtility.FromJson <Movie>(mTargetMetadata);
        mTargetMetadata = movie.name;
        URL             = movie.url;

        SetActivityInNativePlugin();
        //ShowTargetInfo(mTargetMetadata);
        MovieTTS(mTargetMetadata);

        string date = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

        AddHistoryEntry(date, movie.name);

        bool fav = CheckIfFav(date, movie.name);

        favoritesSwap.SetFavorite(fav);
    }
예제 #11
0
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        //Debug.Log("<color=blue>OnNewSearchResult(): </color>" + targetSearchResult.TargetName);

        TargetFinder.CloudRecoSearchResult cloudRecoResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult;

        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results
        // and modifying it according to the metadata. Depending on your application, it can
        // make more sense to duplicate the ImageTargetBehaviour using Instantiate() or to
        // create a new ImageTargetBehaviour for each new result. Vuforia will return a new
        // object with the right script automatically if you use:
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)

        // Changing CloudRecoBehaviour.CloudRecoEnabled to false will call TargetFinder.Stop()
        // and also call all registered ICloudRecoEventHandler.OnStateChanged() with false.
        m_CloudRecoBehaviour.CloudRecoEnabled = false;

        // Clear any existing trackables
        m_TargetFinder.ClearTrackables(false);

        ObjectTrack.ObjectName = targetSearchResult.TargetName;

        //afterScan.Begin();*/


        // Enable the new result with the same ImageTargetBehaviour:
        m_TargetFinder.EnableTracking(cloudRecoResult, m_ImageTargetBehaviour.gameObject);

        // Pass the TargetSearchResult to the Trackable Event Handler for processing
        m_ImageTargetBehaviour.gameObject.SendMessage("TargetCreated", cloudRecoResult, SendMessageOptions.DontRequireReceiver);
    }
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        Debug.Log("<color=blue>OnNewSearchResult(): </color>" + targetSearchResult.TargetName);

        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results
        // and modifying it according to the metadata. Depending on your application, it can
        // make more sense to duplicate the ImageTargetBehaviour using Instantiate() or to
        // create a new ImageTargetBehaviour for each new result. Vuforia will return a new
        // object with the right script automatically if you use:
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)

        m_CloudRecoContentManager.HandleTargetFinderResult(targetSearchResult);


        //Check if the metadata isn't null
        if (targetSearchResult.MetaData == null)
        {
            Debug.Log("Target metadata not available.");
        }
        else
        {
            Debug.Log("MetaData: " + targetSearchResult.MetaData);
            Debug.Log("TargetName: " + targetSearchResult.TargetName);
            Debug.Log("Pointer: " + targetSearchResult.TargetSearchResultPtr);
            Debug.Log("TargetSize: " + targetSearchResult.TargetSize);
            Debug.Log("TrackingRating: " + targetSearchResult.TrackingRating);
            Debug.Log("UniqueTargetId: " + targetSearchResult.UniqueTargetId);
        }

        // First clear all trackables
        m_TargetFinder.ClearTrackables(false);

        // enable the new result with the same ImageTargetBehaviour:
        m_TargetFinder.EnableTracking(targetSearchResult, m_ImageTargetBehaviour.gameObject);
    }
예제 #13
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        Debug.Log("New Search Result Found!");

        mTargetName = targetSearchResult.TargetName;
        Debug.Log("Target: " + mTargetName);

        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
            (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        // do something with the target metadata
        mTargetMetadata = cloudRecoSearchResult.MetaData;
        if (mTargetMetadata != null)
        {
            Debug.Log("Cloud Search Metadata: " + mTargetMetadata);
        }
        else
        {
            Debug.Log("No Cloud Search Metadata");
        }

        // stop the target finder (i.e. stop scanning the cloud)
        mCloudRecoBehaviour.CloudRecoEnabled = false;

        // Build augmentation based on target
        if (ImageTargetTemplate)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
        }

        uIHandler.updateTarget(mTargetName);
    }
예제 #14
0
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata
        // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(),
        // or to create a new ImageTargetBehaviour for each new result

        // Vuforia will return a new object with the right script automatically if you use
        // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName)
        string model_name = targetSearchResult.MetaData;

        //Check if the metadata isn't null
        if (targetSearchResult.MetaData == null)
        {
            return;
        }
        Debug.Log("Metadata value is " + model_name);
        BundleURL = model_name;
        StartCoroutine(DownloadAndCache());
        // First clear all trackables
        mImageTracker.TargetFinder.ClearTrackables(false);

        // enable the new result with the same ImageTargetBehaviour:
        ImageTargetBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour;

        // ADD THIS TO STOP CLOUD SCAN
        CloudRecoBehaviour cloudRecoBehaviour = GetComponent <CloudRecoBehaviour>();

        cloudRecoBehaviour.enabled = false;

        //if extended tracking was enabled from the menu, we need to start the extendedtracking on the newly found trackble.
        if (CloudRecognitionUIEventHandler.ExtendedTrackingIsEnabled)
        {
            imageTargetBehaviour.ImageTarget.StartExtendedTracking();
        }
    }
예제 #15
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // do something with the target metadata
        mTargetMetadata = targetSearchResult.MetaData;
        // stop the target finder (i.e. stop scanning the cloud)
        mCloudRecoBehaviour.CloudRecoEnabled = false;

        Debug.Log("Metadata for target: " + mTargetMetadata);

        if (mTargetMetadata == "courtney")
        {
            //show their versions of the AR Content
            shows.SetActive(true);
            map.SetActive(true);
            countdown.SetActive(false);
        }
        else if (mTargetMetadata == "magazine")
        {
            //show the countdown elements
            shows.SetActive(false);
            map.SetActive(false);
            countdown.SetActive(true);
        }

        // Build augmentation based on target
        if (ImageTargetTemplate)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ObjectTracker        tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour =
                (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(
                    targetSearchResult, ImageTargetTemplate.gameObject);
        }
    }
예제 #16
0
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        message.text = "Target Search Result: " + targetSearchResult.TargetName;
        TargetFinder.CloudRecoSearchResult cloudRecoResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult;

        // Build augmentation based on target
        if (ImageTargetTemplate)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            tracker.GetTargetFinder <ImageTargetFinder>().ClearTrackables(false);
            tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
        }

        if (cloudRecoResult.MetaData == null)
        {
            message2.text = "No Meta Data";
        }
        else
        {
            message2.text = "MetaData: " + cloudRecoResult.MetaData +
                            "\nTargetName: " + cloudRecoResult.TargetName;
            webRequestHandler.RequestAssetBundle(cloudRecoResult.MetaData);
        }
    }
예제 #17
0
        /// <summary>
        /// 识别到目标
        /// </summary>
        /// <param name="_targetSearchResult"></param>
        public void OnNewSearchResult(TargetFinder.TargetSearchResult _targetSearchResult)
        {
            if (!sm.isinited)
            {
                return;
            }
            //1.设置当前状态为得到扫描数据结果
            //2.关闭云识别功能模块
            //3.反序列化扫描得到的数据到metadata类型对象
            //4.使用反序列化得到的对象变量id对服务器数据库发起请求
            //5.激活当前识别追踪容器
            sm.Getcurrecostatus = Scanstatus.SCANTHERESULTS;
            cloudrecobehaviour.CloudRecoEnabled = false;

            //------------将json反序列化为metadata类型对象-------------------
            //sm.metadaats = JsonUtility.FromJson<Metadata>(_targetSearchResult.MetaData);

            //------------得到扫描结果对象后向服务器发起查询请求事件------------
            Browser.Getinstance().Getitems(_targetSearchResult.UniqueTargetId,
                                           Scannermanager.Getinstance().Parsingitemjson,
                                           Scannermanager.Getinstance().Onerror);

            //---------------------激活template追踪容器------------------------
            if (imagetargettemplate)
            {
                ObjectTracker        tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                ImageTargetBehaviour imageTargetBehaviour =
                    (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(_targetSearchResult, imagetargettemplate.gameObject);
            }
        }
예제 #18
0
    // Here we handle a cloud target recognition event

    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)

    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =

            (TargetFinder.CloudRecoSearchResult)targetSearchResult;

        // do something with the target metadata

        mTargetMetadata = cloudRecoSearchResult.MetaData;

        // stop the target finder (i.e. stop scanning the cloud)

        mCloudRecoBehaviour.CloudRecoEnabled = false;

        if (ImageTargetTemplate)
        {
            isfound = true;

            // enable the new result with the same ImageTargetBehaviour:

            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);

            RText.text = obj.retriveList[targetSearchResult.TargetName][0];
            Debug.Log("s c h : " + RText.text);

            check(targetSearchResult.TargetName);
        }
    }
예제 #19
0
 public override TargetFinder.UpdateState Update()
 {
     QCARWrapper.Instance.TargetFinderUpdate(this.mTargetFinderStatePtr);
     this.mTargetFinderState = (TargetFinderState)Marshal.PtrToStructure(this.mTargetFinderStatePtr, typeof(TargetFinderState));
     if (this.mTargetFinderState.ResultCount > 0)
     {
         IntPtr searchResultArray = Marshal.AllocHGlobal((int)(Marshal.SizeOf(typeof(InternalTargetSearchResult)) * this.mTargetFinderState.ResultCount));
         if (QCARWrapper.Instance.TargetFinderGetResults(searchResultArray, this.mTargetFinderState.ResultCount) != 1)
         {
             Debug.LogError("TargetFinder: Could not retrieve new results!");
             return(TargetFinder.UpdateState.UPDATE_NO_MATCH);
         }
         this.mNewResults = new List <TargetFinder.TargetSearchResult>();
         for (int i = 0; i < this.mTargetFinderState.ResultCount; i++)
         {
             IntPtr ptr = new IntPtr(searchResultArray.ToInt32() + (i * Marshal.SizeOf(typeof(QCARManagerImpl.TrackableResultData))));
             InternalTargetSearchResult      result = (InternalTargetSearchResult)Marshal.PtrToStructure(ptr, typeof(InternalTargetSearchResult));
             TargetFinder.TargetSearchResult item   = new TargetFinder.TargetSearchResult {
                 TargetName            = Marshal.PtrToStringAnsi(result.TargetNamePtr),
                 UniqueTargetId        = Marshal.PtrToStringAnsi(result.UniqueTargetIdPtr),
                 TargetSize            = result.TargetSize,
                 MetaData              = Marshal.PtrToStringAnsi(result.MetaDataPtr),
                 TrackingRating        = result.TrackingRating,
                 TargetSearchResultPtr = result.TargetSearchResultPtr
             };
             this.mNewResults.Add(item);
         }
         Marshal.FreeHGlobal(searchResultArray);
     }
     return(this.mTargetFinderState.UpdateState);
 }
예제 #20
0
    /// <summary>
    /// Handles new search results.
    /// </summary>
    /// <param name="searchResult"></param>
    public virtual void OnNewSearchResult(TargetFinder.TargetSearchResult searchResult)
    {
        Debug.Log("ModelReco: new search result available: " + searchResult.TargetName);

        // Find or create the referenced model target
        GameObject modelTargetGameObj  = null;
        var        existingModelTarget = FindExistingModelTarget((TargetFinder.ModelRecoSearchResult)searchResult);

        if (existingModelTarget)
        {
            modelTargetGameObj = existingModelTarget.gameObject;
        }

        if (!modelTargetGameObj)
        {
            modelTargetGameObj = new GameObject("ModelTarget_" + searchResult.TargetName);
        }

        // Enable the new search result as a Model Target
        ModelTargetBehaviour mtb = mTargetFinder.EnableTracking(
            searchResult, modelTargetGameObj) as ModelTargetBehaviour;

        if (mtb)
        {
            mLastRecoModelTarget = mtb;


            if (StopSearchWhenModelFound)
            {
                // Stop the target finder
                mModelRecoBehaviour.ModelRecoEnabled = false;
            }
        }
    }
 // Here we handle a cloud target recognition event
 public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
 {
     TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
         (TargetFinder.CloudRecoSearchResult)targetSearchResult;
     // do something with the target metadata
     mTargetMetadata = cloudRecoSearchResult.MetaData;
     // stop the target finder (i.e. stop scanning the cloud)
     mCloudRecoBehaviour.CloudRecoEnabled = false;
 }
 // Callback - OnNewSearchResult
 public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
 {
     if (targetSearchResult.UniqueTargetId.Equals(this.deposit.id))
     {
         OpenedDepositPopup.instance.Open(deposit);
     }
     else
     {
         BannerController.instance.showBannerWithText(true, "Błędny depozyt! Znajdź " + this.deposit.name, true);
     }
 }
    /// <summary>
    /// Handles new search results.
    /// </summary>
    /// <param name="searchResult"></param>
    public virtual void OnNewSearchResult(TargetFinder.TargetSearchResult searchResult)
    {
        Debug.Log("<color=cyan>OnNewSearchResult() called: </color>" + searchResult.TargetName);

        // Find or create the referenced model target
        GameObject modelTargetGameObj = null;

        bool builtFromTemplate = false;

        var existingModelTarget = FindExistingModelTarget(searchResult);

        if (existingModelTarget)
        {
            modelTargetGameObj = existingModelTarget.gameObject;
            builtFromTemplate  = false;
        }
        else if (ModelTargetTemplate)
        {
            modelTargetGameObj = Instantiate(ModelTargetTemplate.gameObject);
            builtFromTemplate  = true;
        }

        if (!modelTargetGameObj)
        {
            Debug.LogError("Could not create a Model Target.");
            return;
        }

        // Enable the new search result as a Model Target
        ModelTargetBehaviour mtb = targetFinder.EnableTracking(searchResult, modelTargetGameObj)
                                   as ModelTargetBehaviour;

        if (mtb)
        {
            this.lastRecoModelTarget = mtb;

            // If the model target was created from a template,
            // we augment it with a bounding box game object
            if (builtFromTemplate && ShowBoundingBox)
            {
                OrientedBoundingBox3D modelBoundingBox = mtb.ModelTarget.GetBoundingBox();
                var boundingBoxGameObj = CreateBoundingBox(mtb.ModelTarget.Name, modelBoundingBox);

                // Parent the bounding box under the model target.
                boundingBoxGameObj.transform.SetParent(modelTargetGameObj.transform, false);
            }

            if (this.StopSearchWhenModelFound)
            {
                // StopService the target finder
                this.modelRecoBehaviour.ModelRecoEnabled = false;
            }
        }
    }
예제 #24
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        log += ";New Search Result - " + targetSearchResult.TargetName + "=" + System.DateTime.Now.ToString("hh:mm:ss.fff");
        ResetResults();

        //Umwandeln der Metadaten in Objekt
        mVuforiaObject = new VuforiaObject();
        mVuforiaObject = JsonUtility.FromJson <VuforiaObject>(targetSearchResult.MetaData);

        log += ";Umwandlung der Metadaten fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
        switch (mVuforiaObject.type)
        {
        case "ExternalLink":
            // Anzeige des Link-Buttons
            log += ";Externer Link erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            linkBtn.onClick.AddListener(() => OpenLink(mVuforiaObject.url));
            SetButtonFormat(linkBtnObj, linkBtn);
            log += ";Externer Link fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            break;

        case "Video":
            // Laden des Videos und Anzeige des Play-Buttons
            log += ";Video erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            StartCoroutine(LoadVideo((mVuforiaObject.url)));
            log += ";Video fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            break;

        case "Audio":
            // Laden der Audio-Datei und Anzeige des Play-Buttons
            log += ";Audio erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            StartCoroutine(LoadAudio(mVuforiaObject.url));
            log += ";Audio fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            break;

        case "3D-Modell":
            // Laden des 3D-Modells und Anzeige des Modells
            log += ";3D-Modell erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            StartCoroutine(InstantiateObject(mVuforiaObject.url));
            log += ";3D-Modell fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
            break;

        default:
            break;
        }

        if (mVuforiaObject != null && ImageTargetTemplate)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ImageTargetBehaviour imageTargetBehaviour =
                (ImageTargetBehaviour)mObjectTracker.TargetFinder
                .EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
        }
        log += ";Behaviour fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff");
    }
예제 #25
0
 public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
 {
     Debug.Log("PokemonNewSerchResult:" + targetSearchResult.TargetName);
     if (targetSearchResult.MetaData != null)
     {
         //如果多次扫描同一张图,这里只会执行一次
         PokemonCloudRecoAction(targetSearchResult.MetaData);
     }
     else
     {
         Debug.Log("元数据为空");
     }
 }
예제 #26
0
    /// <summary>
    /// Handles new search results
    /// </summary>
    /// <param name="targetSearchResult"></param>

    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
            (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        // duplicate the referenced image target
        newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;

        GameObject augmentation = null;

        if (augmentation != null)
        {
            augmentation.transform.parent = newImageTarget.transform;
        }

        // enable the new result with the same ImageTargetBehaviour:
        imageTargetBehaviour = (ImageTargetBehaviour)mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);

        // do something with the target metadata
        mTargetMetadata = cloudRecoSearchResult.MetaData;
        string[] splitString = mTargetMetadata.Split(new string[] { ",", "\n" }, StringSplitOptions.None);
        var      type        = splitString[0];
        var      iurl        = splitString[2];

        if (type == "video")
        {
            doUpdate = true;
            Destroy(imageTargetBehaviour.gameObject.transform.Find("dImage").gameObject);
            Destroy(imageTargetBehaviour.gameObject.transform.Find("Wrapper_RootNode").gameObject);
            playVideo();
        }
        else if (type == "image")
        {
            doUpdate = false;
            Destroy(imageTargetBehaviour.gameObject.transform.Find("Plane").gameObject);
            Destroy(imageTargetBehaviour.gameObject.transform.Find("Wrapper_RootNode").gameObject);
            StartCoroutine(DownloadImage(iurl));
        }
        else
        {
            doUpdate = false;
            Destroy(imageTargetBehaviour.gameObject.transform.Find("dImage").gameObject);
            Destroy(imageTargetBehaviour.gameObject.transform.Find("Plane").gameObject);
            Show3DModel();
        }

        if (!mIsScanning)
        {
            // stop the target finder
            mCloudRecoBehaviour.CloudRecoEnabled = true;
        }
    }
예제 #27
0
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult =
            (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        // do something with the target metadata
        mTargetMetadata = cloudRecoSearchResult.MetaData;

        if ((mTargetMetadata == "alcohol"))
        {
            if (ImageTargetTemplate_Alcohol)
            {
                // enable the new result with the same ImageTargetBehaviour:
                ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Alcohol.gameObject);
            }
            Debug.Log(mTargetMetadata);
        }
        else if ((mTargetMetadata == "levepromazina"))
        {
            if (ImageTargetTemplate_Levepromazina)
            {
                // enable the new result with the same ImageTargetBehaviour:
                ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Levepromazina.gameObject);
            }
            Debug.Log(mTargetMetadata);
        }
        else if ((mTargetMetadata == "albendazol"))
        {
            if (ImageTargetTemplate_Albendazol)
            {
                // enable the new result with the same ImageTargetBehaviour:
                ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Albendazol.gameObject);
            }
            Debug.Log(mTargetMetadata);
        }
        else if ((mTargetMetadata == "metoclopramida"))
        {
            if (ImageTargetTemplate_Metoclopramida)
            {
                // enable the new result with the same ImageTargetBehaviour:
                ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Metoclopramida.gameObject);
            }
            Debug.Log(mTargetMetadata);
        }
        // stop the target finder (i.e. stop scanning the cloud)
        mCloudRecoBehaviour.CloudRecoEnabled = false;
    }
예제 #28
0
 // Here we handle a cloud target recognition event
 public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
 {
     // do something with the target metadata
     mTargetMetadata = targetSearchResult.MetaData;
     // stop the target finder (i.e. stop scanning the cloud)
     mCloudRecoBehaviour.CloudRecoEnabled = false;
     // Build augmentation based on target
     if (ImageTargetTemplate)
     {
         // enable the new result with the same ImageTargetBehaviour:
         ObjectTracker        tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
         ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);
     }
 }
        // Here we handle a cloud target recognition event
        public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
        {
            TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult;

            // do something with the target metadata
            mTargetMetadata          = cloudRecoSearchResult.MetaData;
            loadAssets.contentParent = transform;
            loadAssets.namaaset      = mTargetMetadata;
            loadAssets.LoadContent();
            restartButton.SetActive(true);

            // stop the target finder (i.e. stop scanning the cloud)
            mCloudRecoBehaviour.CloudRecoEnabled = false;
        }
    // Here we handle a cloud target recognition event
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        // We do clone an instance for each image recognized
        ImageTargetBehaviour cloneImageTargetBehaviour = Instantiate(imageTargetTemplate);

        if (cloneImageTargetBehaviour)
        {
            // enable the new result with the same ImageTargetBehaviour:
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
            instance = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, cloneImageTargetBehaviour.gameObject);
            setControllers();
            this.idDetected = targetSearchResult.UniqueTargetId;
            GetData(this.idDetected);
        }
    }