// Activates the given dataset. // If another dataset is currently active, then this call fails as the // other dataset needs to be explicitly deactivated first. // Datasets can only be activated when the tracker is not working. public bool ActivateDataSet(DataSet dataSet) { if (dataSet == null) { Debug.LogError("Dataset is null."); return(false); } if (imageTrackerActivateDataSet(dataSet.DataSetPtr) == 0) { Debug.LogError("Could not activate dataset."); return(false); } QCARManager.Instance.Reinit(); // Activate all Trackables. int numTrackables = dataSet.GetNumTrackables(); for (int i = 0; i < numTrackables; ++i) { TrackableBehaviour trackable = dataSet.GetTrackable(i); if (trackable != null) { trackable.enabled = true; } } mActiveDataSet = dataSet; return(true); }
// Deactivates the given dataset. // This can only be done when the tracker is not running. public bool DeactivateDataSet(DataSet dataSet) { if (dataSet == null) { Debug.LogError("Dataset is null."); return(false); } if (imageTrackerDeactivateDataSet(dataSet.DataSetPtr) == 0) { Debug.LogError("Could not deactivate dataset."); return(false); } // Deactivate all Trackables. int numTrackables = dataSet.GetNumTrackables(); for (int i = 0; i < numTrackables; ++i) { TrackableBehaviour trackable = dataSet.GetTrackable(i); if (trackable != null) { trackable.enabled = false; } } mActiveDataSet = null; return(true); }
private void DestroyTrackables(DataSet dataSet) { int numTrackables = dataSet.GetNumTrackables(); for (int i = 0; i < numTrackables; ++i) { DataSetTrackableBehaviour objToDestroy = dataSet.GetTrackable(i); if (objToDestroy != null) { GameObject.Destroy(objToDestroy.gameObject); } } }
// Initialize the container for retrieving tracking data from native private void InitializeTrackableContainer() { // Destroy if the container has been allocated. Marshal.FreeHGlobal(mTrackablePtr); mAbsoluteNumTrackables = 0; ImageTracker imageTracker = (ImageTracker)TrackerManager.Instance.GetTracker( Tracker.Type.IMAGE_TRACKER); MarkerTracker markerTracker = (MarkerTracker)TrackerManager.Instance.GetTracker( Tracker.Type.MARKER_TRACKER); if (imageTracker != null) { DataSet activeDataSet = imageTracker.GetActiveDataSet(); if (activeDataSet != null) { mAbsoluteNumTrackables += activeDataSet.GetNumTrackables(); } } if (markerTracker != null) { mAbsoluteNumTrackables += markerTracker.GetNumMarkers(); } if (mAbsoluteNumTrackables > 0) { mTrackablePtr = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(TrackableData)) * mAbsoluteNumTrackables); } else { mTrackablePtr = IntPtr.Zero; } mTrackableDataArray = new TrackableData[mAbsoluteNumTrackables]; if (!Application.isEditor) { Debug.Log("Absolute number of Trackables: " + mAbsoluteNumTrackables); } }
// Activates the given dataset. // If another dataset is currently active, then this call fails as the // other dataset needs to be explicitly deactivated first. // Datasets can only be activated when the tracker is not working. public bool ActivateDataSet(DataSet dataSet) { if (dataSet == null) { Debug.LogError("Dataset is null."); return false; } if (imageTrackerActivateDataSet(dataSet.DataSetPtr) == 0) { Debug.LogError("Could not activate dataset."); return false; } QCARManager.Instance.Reinit(); // Activate all Trackables. int numTrackables = dataSet.GetNumTrackables(); for (int i = 0; i < numTrackables; ++i) { TrackableBehaviour trackable = dataSet.GetTrackable(i); if (trackable != null) { trackable.enabled = true; } } mActiveDataSet = dataSet; return true; }
// Deactivates the given dataset. // This can only be done when the tracker is not running. public bool DeactivateDataSet(DataSet dataSet) { if (dataSet == null) { Debug.LogError("Dataset is null."); return false; } if (imageTrackerDeactivateDataSet(dataSet.DataSetPtr) == 0) { Debug.LogError("Could not deactivate dataset."); return false; } // Deactivate all Trackables. int numTrackables = dataSet.GetNumTrackables(); for (int i = 0; i < numTrackables; ++i) { TrackableBehaviour trackable = dataSet.GetTrackable(i); if (trackable != null) { trackable.enabled = false; } } mActiveDataSet = null; return true; }