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"); } }
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()); } }
// 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); }