Пример #1
0
    public void ActivateDataSet(string datasetName)
    {
        // ObjectTracker tracks ImageTargets contained in a DataSet and provides methods for creating and (de)activating datasets.
        ObjectTracker         objectTracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
        IEnumerable <DataSet> datasets      = objectTracker.GetDataSets();

        IEnumerable <DataSet> activeDataSets            = objectTracker.GetActiveDataSets();
        List <DataSet>        activeDataSetsToBeRemoved = activeDataSets.ToList();

        // 1. Loop through all the active datasets and deactivate them.
        foreach (DataSet ads in activeDataSetsToBeRemoved)
        {
            objectTracker.DeactivateDataSet(ads);
        }

        // Swapping of the datasets should NOT be done while the ObjectTracker is running.
        // 2. So, Stop the tracker first.
        objectTracker.Stop();

        // 3. Then, look up the new dataset and if one exists, activate it.
        foreach (DataSet ds in datasets)
        {
            if (ds.Path.Contains(datasetName))
            {
                objectTracker.ActivateDataSet(ds);
            }
        }

        // 4. Finally, restart the object tracker and reset the device tracker.
        objectTracker.Start();

        if (m_PositionalDeviceTracker != null)
        {
            m_PositionalDeviceTracker.Reset();
        }
        else
        {
            Debug.LogError("Failed to reset device tracker");
        }
    }
Пример #2
0
    private void countDatasets()
    {
        ObjectTracker         otr = TrackerManager.Instance.GetTracker <ObjectTracker>();
        IEnumerable <DataSet> ads = otr.GetActiveDataSets();

        foreach (DataSet d in ads)
        {
            Debug.Log("CountDatasets: Active dataset. " + d.ToString());

            IEnumerable <Trackable> ts = d.GetTrackables();
            foreach (Trackable t in ts)
            {
                Debug.Log("CountDatasets: Trackable: name: " + t.Name + " - id: " + t.ID);
            }
        }
        IEnumerable <DataSet> ds = otr.GetDataSets();

        foreach (DataSet d in ds)
        {
            Debug.Log("CountDatasets: all dataset. " + d.ToString());
        }
    }
Пример #3
0
    // Load and activate a data set at the given path.
    private bool LoadDataSet(string dataSetPath, VuforiaUnity.StorageType storageType)
    {
        // Request an ImageTracker instance from the TrackerManager.
        ObjectTracker objectTracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

        objectTracker.Stop();
        IEnumerable <DataSet> dataSetList = objectTracker.GetActiveDataSets();

        foreach (DataSet set in dataSetList.ToList())
        {
            objectTracker.DeactivateDataSet(set);
        }

        // Check if the data set exists at the given path.
        if (!DataSet.Exists(dataSetPath, storageType))
        {
            Debug.LogError("Data set " + dataSetPath + " does not exist.");
            return(false);
        }

        // Create a new empty data set.
        DataSet dataSet = objectTracker.CreateDataSet();

        // Load the data set from the given path.
        if (!dataSet.Load(dataSetPath, storageType))
        {
            Debug.LogError("Failed to load data set " + dataSetPath + ".");
            return(false);
        }

        // (Optional) Activate the data set.
        objectTracker.ActivateDataSet(dataSet);
        objectTracker.Start();

        AttachContentToTrackables(dataSet);

        return(true);
    }