public void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            Application.Quit();
        }

        if (Session.Status != SessionStatus.Tracking)
        {
            return;
        }

        Session.GetTrackables <AugmentedImage>(m_TempAugmentedImages, TrackableQueryFilter.Updated);

        foreach (var image in m_TempAugmentedImages)
        {
            AugmentedImageVisualizer visualizer = null;
            m_Visualizers.TryGetValue(image.DatabaseIndex, out visualizer);

            if (image.TrackingState == TrackingState.Tracking && visualizer == null)
            {
                Anchor anchor = image.CreateAnchor(image.CenterPose);
                visualizer       = (AugmentedImageVisualizer)Instantiate(AugmentedImageVisualizerPrefab, anchor.transform);
                visualizer.Image = image;
                m_Visualizers.Add(image.DatabaseIndex, visualizer);
            }
            else if (image.TrackingState == TrackingState.Stopped && visualizer != null)
            {
                m_Visualizers.Remove(image.DatabaseIndex);
                Destroy(visualizer.gameObject);
            }
        }

        foreach (var visualizer in m_Visualizers.Values)
        {
            if (visualizer.Image.TrackingState == TrackingState.Tracking)
            {
                FitToScanOverlay.SetActive(false);
                return;
            }
        }

        FitToScanOverlay.SetActive(true);
    }
    // Update is called once per frame
    void Update()
    {
        // Exit the app when the 'back' button is pressed.
        if (Input.GetKey(KeyCode.Escape))
        {
            Application.Quit();
        }

        // Get updated augmented images for this frame.
        Session.GetTrackables <AugmentedImage>(m_TempAugmentedImages, TrackableQueryFilter.Updated);

        // Create visualizers and anchors for updated augmented images that are tracking and do not previously
        // have a visualizer. Remove visualizers for stopped images.
        foreach (var image in m_TempAugmentedImages)
        {
            visualizer = null;
            m_Visualizers.TryGetValue(image.DatabaseIndex, out visualizer);
            if (image.TrackingState == TrackingState.Tracking && visualizer == null)
            {
                // Create an anchor to ensure that ARCore keeps tracking this augmented image.

                Anchor anchor = image.CreateAnchor(image.CenterPose);
                visualizer       = (AugmentedImageVisualizer)Instantiate(AugmentedImageVisualizerPrefab, anchor.transform);
                visualizer.Image = image;
                m_Visualizers.Add(image.DatabaseIndex, visualizer);

                Debug.LogWarning("First if is called and visualizer is created");
            }

            else if (image.TrackingState == TrackingState.Stopped && visualizer != null)
            {
                m_Visualizers.Remove(image.DatabaseIndex);
                GameObject.Destroy(visualizer.gameObject);
            }
        }
        if (m_Visualizers.Count > 0)
        {
            FrameLowerLeft  = visualizer.FrameLowerLeft.transform.position;
            FrameLowerRight = visualizer.FrameLowerRight.transform.position;
            FrameUpperLeft  = visualizer.FrameUpperLeft.transform.position;
            FrameUpperRight = visualizer.FrameUpperRight.transform.position;
        }
    }
 private void RemoveVisualizer(AugmentedImage image, AugmentedImageVisualizer visualizer)
 {
     _visualizers.Remove(image.DatabaseIndex);
     Destroy(visualizer.gameObject);
 }
    public void Update()
    {
        // Check that motion tracking is tracking.
        if (Session.Status != SessionStatus.Tracking)
        {
            return;
        }

        // Get updated augmented images for this frame.
        Session.GetTrackables <AugmentedImage>(m_TempAugmentedImages, TrackableQueryFilter.Updated);

        // Create visualizers and anchors for updated augmented images that are tracking and do not previously
        // have a visualizer. Remove visualizers for stopped images.
        foreach (AugmentedImage image in m_TempAugmentedImages)
        {
            AugmentedImageVisualizer visualizer = null;
            m_Visualizers.TryGetValue(image.DatabaseIndex, out visualizer);

            if (image.TrackingState == TrackingState.Tracking && visualizer == null)
            {
                // Create an anchor to ensure that ARCore keeps tracking this augmented image.
                Anchor anchor = image.CreateAnchor(image.CenterPose);

                visualizer = (AugmentedImageVisualizer)Instantiate(prefabs[image.DatabaseIndex], anchor.transform);
                visualizer.transform.localScale = Vector3.one * 0.1f;

                //TO DO CHECK THE ROTATION!!
                visualizer.Image = image;
                m_Visualizers.Add(image.DatabaseIndex, visualizer);

                if (image.DatabaseIndex > 0)
                {
                    trackerManager.PlanetTracked(image.Name);
                    currentPlanetName = image.Name;
                }
            }
            else if (image.TrackingState == TrackingState.Tracking)
            {
                if (image.DatabaseIndex > 0)
                {
                    if (m_Visualizers.ContainsKey(image.DatabaseIndex))
                    {
                        if (currentPlanetName != image.Name)
                        {
                            DestroyImmediate(m_Visualizers[image.DatabaseIndex].gameObject);
                            m_Visualizers.Remove(image.DatabaseIndex);
                            //trackerManager.PlanetTracked(image.Name);
                            //currentPlanetName = image.Name;
                        }
                    }
                }
            }
            else if (image.TrackingState == TrackingState.Stopped && visualizer != null)
            {
                m_Visualizers.Remove(image.DatabaseIndex);
                Destroy(visualizer.gameObject);
            }
        }

        // Show the fit-to-scan overlay if there are no images that are Tracking.
        foreach (var visualizer in m_Visualizers.Values)
        {
            if (visualizer.Image.TrackingState == TrackingState.Tracking)
            {
                FitToScanOverlay.SetActive(false);
                return;
            }
        }

        FitToScanOverlay.SetActive(true);
    }
 private void RemoveVisualizer(AugmentedImage image, AugmentedImageVisualizer visualizer)
 {
     _ShowAndroidToastMessage("Removing visualizer");
     visualizers.Remove(image.DatabaseIndex);
     Destroy(visualizer);
 }