Пример #1
0
    // 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);
    }
Пример #2
0
    // 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);
    }
Пример #3
0
    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);
            }
        }
    }
Пример #4
0
    // 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);
        }
    }
Пример #5
0
    // 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;
    }
Пример #6
0
    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);
            }
        }
    }
Пример #7
0
    // 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;
    }