public void DestroyLastTrackable()
    {
        // Deactivates the dataset first
        m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet);

        IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables();
        Trackable newest = null;

        foreach (Trackable trackable in trackables)
        {
            if (newest == null || trackable.ID > newest.ID)
            {
                newest = trackable;
            }
        }

        if (newest != null)
        {
            Debug.Log("Destroying newest trackable in UDT dataset: " + newest.Name);
            m_UDT_DataSet.Destroy(newest, true);
            Debug.Log("destroyed");
        }
        // Activate the dataset again
        m_ObjectTracker.ActivateDataSet(m_UDT_DataSet);
        // Make sure TargetBuildingBehaviour keeps scanning...
        m_TargetBuildingBehaviour.StartScanning();
    }
 public void BuildNewTarget()
 {
     //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
     _targetBuildingBehaviour.StartScanning();
     if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE)
     {
         _targetBuildingBehaviour.BuildNewTarget(string.Format("{0}_instance", _imageTargetTemplate.TrackableName), _imageTargetTemplate.GetSize().x);
     }
     else
     {
         Debug.Log("Cannot build new target, due to poor camera image quality");
     }
 }
 public void BuildNewTarget()
 {
     //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
     _targetBuildingBehaviour.StartScanning();
     if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE)
     {
         _targetBuildingBehaviour.BuildNewTarget($"{_imageTargetTemplate.TrackableName}_instance", _imageTargetTemplate.GetSize().x);
         //TODO make more abstract
         TurbineViewModel.Instance.IsTargetShown = false;
     }
     else
     {
         Debug.Log("Cannot build new target, due to poor camera image quality");
         //TODO make more abstract
         TurbineViewModel.Instance.IsTargetShown = true;
     }
 }
Exemple #4
0
 public void OnNewTrackableSource(TrackableSource trackableSource)// метод который отвечает за новую отслеживаемую цель, подробнее по ссылке https://library.vuforia.com/articles/Training/User-Defined-Targets-Guide
 {
     targetCount++;
     ObjTracker.DeactivateDataSet(dataSet);                                // поскольку мы собираемся использовать новый набор данных нужно Deactivate старый набор.
     dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject); // узнаем что отслеживается нами// первая переменная это отслеживаемый источник в данный момент, а второй это цель т.е. ImageTraget если не понятно то по ссылке https://library.vuforia.com/articles/Training/User-Defined-Targets-Guide
     ObjTracker.ActivateDataSet(dataSet);                                  // активация нового набора данных
     UDT_BuildingBehaviour.StartScanning();                                // начать отслеживание
 }
Exemple #5
0
 public void OnNewTrackableSource(TrackableSource trackableSource)
 {
     targetCounter++;
     objectTracker.DeactivateDataSet(dataSet);
     dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject); // create a new trackable image and add it to dataset
     objectTracker.ActivateDataSet(dataSet);                               // re-activate data set
     udt_targetBuildingBehavior.StartScanning();                           // start tracking
 }
 public void BuildNewTarget()
 {
     //TODO temporary
     //_imageTargetTemplate.GetComponent<GameObjectBase>().IsActive = true;
     //OnTargetBuilt?.Invoke(this,new TargetBuiltEventArgs(_imageTargetTemplate.GetComponent<TrackableObject>()));
     //return;
     //CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
     _targetBuildingBehaviour.StartScanning();
     if (_frameQuality != ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE)
     {
         _targetBuildingBehaviour.BuildNewTarget(string.Format("{0}_instance", _imageTargetTemplate.TrackableName), _imageTargetTemplate.GetSize().x);
     }
     else
     {
         Debug.Log("Cannot build new target, due to poor camera image quality");
     }
 }
Exemple #7
0
 void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         //m_ObjectTracker.Stop ();
         if (m_ObjectTracker.IsActive)
         {
             m_ObjectTracker.Stop();
             m_TargetBuildingBehaviour.StartScanning();
         }
         else
         {
             BuildNewTarget();
             m_ObjectTracker.Start();
             debugMessage.SetDebugText("Tracking...");
         }
     }
 }
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        targetCounter++;
        objectTracker.DeactivateDataSet(dataSet);

        dataSet.CreateTrackable(trackableSource, targetBehavior.gameObject);
        objectTracker.ActivateDataSet(dataSet);
        udt_targetBuildingBehavior.StartScanning();
    }
    /// <summary>
    /// Takes a new trackable source and adds it to the dataset
    /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour
    /// </summary>
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        m_TargetCounter++;

        // Deactivates the dataset first
        m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet);

        // Destroy the oldest target if the dataset is full or the dataset
        // already contains five user-defined targets.
        if (m_UDT_DataSet.HasReachedTrackableLimit() || m_UDT_DataSet.GetTrackables().Count() >= MAX_TARGETS)
        {
            IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables();
            Trackable oldest = null;
            foreach (Trackable trackable in trackables)
            {
                if (oldest == null || trackable.ID < oldest.ID)
                {
                    oldest = trackable;
                }
            }

            if (oldest != null)
            {
                Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name);
                m_UDT_DataSet.Destroy(oldest, true);
            }
        }

        // Get predefined trackable and instantiate it
        ImageTargetBehaviour imageTargetCopy = Instantiate(ImageTargetTemplate);

        imageTargetCopy.gameObject.name = "UserDefinedTarget-" + m_TargetCounter;
        imageTargetCopy.gameObject.SetActive(true);

        // Add the duplicated trackable to the data set and activate it
        m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject);

        // Activate the dataset again
        m_ObjectTracker.ActivateDataSet(m_UDT_DataSet);

        // Make sure TargetBuildingBehaviour keeps scanning...
        m_TargetBuildingBehaviour.StartScanning();
    }
Exemple #10
0
    /// <summary>
    /// Takes a new trackable source and adds it to the dataset
    /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour
    /// </summary>
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        mTargetCounter++;

        // Deactivates the dataset first
        mObjectTracker.DeactivateDataSet(mBuiltDataSet);

        // Destroy the oldest target if the dataset is full or the dataset
        // already contains five user-defined targets.
        if (mBuiltDataSet.HasReachedTrackableLimit() || mBuiltDataSet.GetTrackables().Count() >= MAX_TARGETS)
        {
            IEnumerable <Trackable> trackables = mBuiltDataSet.GetTrackables();
            Trackable oldest = null;
            Debug.Log(" text 123456789");
            foreach (Trackable trackable in trackables)
            {
                if (oldest == null || trackable.ID < oldest.ID)
                {
                    oldest = trackable;
                }
            }

            if (oldest != null)
            {
                Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name);
                mBuiltDataSet.Destroy(oldest, true);
            }
        }


        // Get predefined trackable and instantiate it
        ImageTargetBehaviour imageTargetCopy = (ImageTargetBehaviour)Instantiate(ImageTargetTemplate);

        imageTargetCopy.gameObject.name = "UserDefinedTarget-" + mTargetCounter;

        // Add the duplicated trackable to the data set and activate it
        mBuiltDataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject);

        // Activate the dataset again
        mObjectTracker.ActivateDataSet(mBuiltDataSet);

        // Extended Tracking with user defined targets only works with the most recently defined target.
        // If tracking is enabled on previous target, it will not work on newly defined target.
        // Don't need to call this if you don't care about extended tracking.
        StopExtendedTracking();
        mObjectTracker.Stop();
        mObjectTracker.ResetExtendedTracking();
        mObjectTracker.Start();

        // Make sure TargetBuildingBehaviour keeps scanning...
        mTargetBuildingBehaviour.StartScanning();
    }
Exemple #11
0
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        targetCounter++;
        objectTracker.DeactivateDataSet(dataSet);

        dataSet.CreateTrackable(trackableSource, targetBehaviour.gameObject);

        objectTracker.ActivateDataSet(dataSet);

        udt_targetBuildingBehaviour.StartScanning();

        //throw new System.NotImplementedException();
    }
Exemple #12
0
    /// <summary>
    /// Takes a new trackable source and adds it to the dataset
    /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour
    /// </summary>
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        // Deactivates the dataset first
        m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet);

        // Destroy the oldest target in the dataset if a new target is created
        IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables();
        Trackable oldest = null;

        //fetch for the last target to destroy it
        foreach (Trackable trackable in trackables)
        {
            if (oldest == null || trackable.ID < oldest.ID)
            {
                oldest = trackable;
            }
        }
        if (oldest != null)
        {
            Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name);
            m_UDT_DataSet.Destroy(oldest, true);
        }


        // Get predefined trackable and instantiate it
        ImageTargetBehaviour imageTargetCopy = Instantiate(ImageTargetTemplate);

        imageTargetCopy.gameObject.name = "USERTARGET";
        // Add the duplicated trackable to the data set and activate it
        m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject);

        // Activate the dataset again
        m_ObjectTracker.ActivateDataSet(m_UDT_DataSet);

        m_ObjectTracker.Stop();
        m_ObjectTracker.ResetExtendedTracking();
        m_ObjectTracker.Start();

        // Make sure TargetBuildingBehaviour keeps scanning...
        m_TargetBuildingBehaviour.StartScanning();
    }
Exemple #13
0
    /// <summary>
    /// Takes a new trackable source and adds it to the dataset
    /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour
    /// </summary>
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        mTargetCounter++;

        // Deactivates the dataset first
        mObjectTracker.DeactivateDataSet(mBuiltDataSet);

        // Destroy the oldest target if the dataset is full or the dataset
        // already contains five user-defined targets.
        if (mBuiltDataSet.HasReachedTrackableLimit() || mBuiltDataSet.GetTrackables().Count() >= MAX_TARGETS)
        {
            IEnumerable <Trackable> trackables = mBuiltDataSet.GetTrackables();
            Trackable oldest = null;
            foreach (Trackable trackable in trackables)
            {
                if (oldest == null || trackable.ID < oldest.ID)
                {
                    oldest = trackable;
                }
            }

            if (oldest != null)
            {
                Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name);
                mBuiltDataSet.Destroy(oldest, true);
            }
        }

        // Get predefined trackable and instantiate it
        ImageTargetBehaviour imageTargetCopy = (ImageTargetBehaviour)Instantiate(ImageTargetTemplate);

        imageTargetCopy.gameObject.name = "UserDefinedTarget-" + mTargetCounter;

        // Add the duplicated trackable to the data set and activate it
        mBuiltDataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject);

        // Activate the dataset again
        mObjectTracker.ActivateDataSet(mBuiltDataSet);

        // Extended Tracking with user defined targets only works with the most recently defined target.
        // If tracking is enabled on previous target, it will not work on newly defined target.
        // Don't need to call this if you don't care about extended tracking.
        StopExtendedTracking();
        mObjectTracker.Stop();
        mObjectTracker.ResetExtendedTracking();
        mObjectTracker.Start();

        //Edited part according to application requirements
        Button     settings_button;
        GameObject BuildPanel;
        GameObject click_button;

        GameObject[] created_target;
        click_button        = GameObject.Find("BuildButton");
        click_button.active = false;
        BuildPanel          = GameObject.Find("BuildPanel");
        BuildPanel.active   = false;
        ImageTargetTemplate.gameObject.active = false;
        settings_button = GameObject.FindGameObjectWithTag("settings_button").GetComponent <Button>();
        settings_button.onClick.Invoke();
        //Edited part ends here

        // Make sure TargetBuildingBehaviour keeps scanning...
        mTargetBuildingBehaviour.StartScanning();
    }
 void TurnOnArMode()
 {
     UserDefinedTargetBuilder.StartScanning();
     standardContent.SetActive(false);
 }
Exemple #15
0
    /// <summary>
    /// Takes a new trackable source and adds it to the dataset
    /// This gets called automatically as soon as you 'BuildNewTarget with UserDefinedTargetBuildingBehaviour
    /// </summary>
    public void OnNewTrackableSource(TrackableSource trackableSource)
    {
        m_TargetCounter++;

        // Deactivates the dataset first
        m_ObjectTracker.DeactivateDataSet(m_UDT_DataSet);

        // Destroy the oldest target if the dataset is full or the dataset
        // already contains five user-defined targets.
        if (m_UDT_DataSet.HasReachedTrackableLimit() || m_UDT_DataSet.GetTrackables().Count() >= MAX_TARGETS)
        {
            IEnumerable <Trackable> trackables = m_UDT_DataSet.GetTrackables();
            Trackable oldest = null;
            foreach (Trackable trackable in trackables)
            {
                if (oldest == null || trackable.ID < oldest.ID)
                {
                    oldest = trackable;
                }
            }

            if (oldest != null)
            {
                Debug.Log("Destroying oldest trackable in UDT dataset: " + oldest.Name);
                m_UDT_DataSet.Destroy(oldest, true);
            }
        }

        // Get predefined trackable and instantiate it
        ImageTargetBehaviour imageTargetCopy;

        switch (m_ChooseSound.GetCurrentSound())
        {
        /// ドラム
        case "Bass":
            imageTargetCopy = Instantiate(BassTarget);
            imageTargetCopy.gameObject.name = "Bass" + m_TargetCounter;
            break;

        case "Cymbal":
            imageTargetCopy = Instantiate(CymbalTarget);
            imageTargetCopy.gameObject.name = "Cymbal" + m_TargetCounter;

            break;

        case "Hat":
            imageTargetCopy = Instantiate(HatTarget);
            imageTargetCopy.gameObject.name = "Hat" + m_TargetCounter;
            break;

        case "Snare":
            imageTargetCopy = Instantiate(SnareTarget);
            imageTargetCopy.gameObject.name = "Snare" + m_TargetCounter;
            break;

        /// ピアノ
        case "Do":
            imageTargetCopy = Instantiate(Do);
            imageTargetCopy.gameObject.name = "Do" + m_TargetCounter;
            break;

        case "Re":
            imageTargetCopy = Instantiate(Re);
            imageTargetCopy.gameObject.name = "Re" + m_TargetCounter;
            break;

        case "Mi":
            imageTargetCopy = Instantiate(Mi);
            imageTargetCopy.gameObject.name = "Mi" + m_TargetCounter;
            break;

        case "Fa":
            imageTargetCopy = Instantiate(Fa);
            imageTargetCopy.gameObject.name = "Fa" + m_TargetCounter;
            break;

        case "So":
            imageTargetCopy = Instantiate(So);
            imageTargetCopy.gameObject.name = "So" + m_TargetCounter;
            break;

        case "Ra":
            imageTargetCopy = Instantiate(Ra);
            imageTargetCopy.gameObject.name = "Ra" + m_TargetCounter;
            break;

        case "Si":
            imageTargetCopy = Instantiate(Si);
            imageTargetCopy.gameObject.name = "Si" + m_TargetCounter;
            break;

        case "Do2":
            imageTargetCopy = Instantiate(Do2);
            imageTargetCopy.gameObject.name = "Do2" + m_TargetCounter;
            break;

        default:
            imageTargetCopy = Instantiate(Empty);
            break;
        }



        // Add the duplicated trackable to the data set and activate it
        m_UDT_DataSet.CreateTrackable(trackableSource, imageTargetCopy.gameObject);

        // Activate the dataset again
        m_ObjectTracker.ActivateDataSet(m_UDT_DataSet);

        // Make sure TargetBuildingBehaviour keeps scanning...
        m_TargetBuildingBehaviour.StartScanning();
    }
    /// <summary>
    /// Renders the UI, depending on the current state
    /// </summary>
    void OnGUI()
    {
        if (mOnInitializedCalled)
        {
            // BeginOnGUI tells the user interface to reset some values and set the right GUISkin
            mUserInterface.BeginOnGUI();

            // check in which mode we are
            if (mFrameQuality == ImageTargetBuilder.FrameQuality.FRAME_QUALITY_NONE)
            {
                if (QCARRuntimeUtilities.IsLandscapeOrientation)
                {
                    if (!mDrawInstructionsFlag)
                    {
                        // Draws Landscape UI for ViewFinder Mode & process button actions
                        if (mUserInterface.DrawViewFinderModeLandscapeUI() == UserDefinedTargetBuildingUI.ButtonID.ENTER_SCANNING_MODE_PRESSED)
                        {
                            // Checks if the instructions Screen need to be displayed
                            if (mDoShowInstructions)
                            {
                                // Draws the instructions UI
                                mDrawInstructionsFlag = true;
                            }
                            else
                            {
                                // Enters the scanning mode
                                mTargetBuildingBehaviour.StartScanning();
                            }
                        }
                    }
                    else
                    {
                        // Draws the Landscape Instructions UI
                        UserDefinedTargetBuildingUI.ButtonID buttonPreessedId = mUserInterface.DrawInstructionsLandscapeUI();

                        // Checks Instructions button pressed
                        if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.INSTRUCTIONS_OK_PRESSED)
                        {
                            mDrawInstructionsFlag = false;
                            mDoShowInstructions   = false;
                            mTargetBuildingBehaviour.StartScanning();
                        }
                        else if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.CANCEL_PRESSED)
                        {
                            mDrawInstructionsFlag = false;
                        }
                    }
                }
                else
                {
                    if (!mDrawInstructionsFlag)
                    {
                        // Draws Portrait mode for ViewFinder Mode & process button actions
                        if (mUserInterface.DrawViewFinderModePortraitUI() == UserDefinedTargetBuildingUI.ButtonID.ENTER_SCANNING_MODE_PRESSED)
                        {
                            // Checks if the instructions Screen need to be displayed
                            if (mDoShowInstructions)
                            {
                                // Draws the instructions UI
                                mDrawInstructionsFlag = true;
                            }
                            else
                            {
                                // Enters the scanning mode
                                mTargetBuildingBehaviour.StartScanning();
                            }
                        }
                    }
                    else
                    {
                        // Draws the portrait Instructions UI
                        UserDefinedTargetBuildingUI.ButtonID buttonPreessedId = mUserInterface.DrawInstructionsPortraitUI();

                        // Checks Instructions button pressed
                        if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.INSTRUCTIONS_OK_PRESSED)
                        {
                            mDrawInstructionsFlag = false;
                            mDoShowInstructions   = false;
                            mTargetBuildingBehaviour.StartScanning();
                        }
                        else if (buttonPreessedId == UserDefinedTargetBuildingUI.ButtonID.CANCEL_PRESSED)
                        {
                            mDrawInstructionsFlag = false;
                        }
                    }
                }
            }

            // draw scanning mode UI, decides internally what should be rendered
            mScanModeUILogic.DrawUI(mFrameQuality);
        }
    }