private void StopSmartTerrainTracker()
        {
            Debug.Log("Stopping Smart Terrain Tracker");
            SmartTerrainTracker tracker = TrackerManager.Instance.GetTracker <SmartTerrainTracker>();

            if (tracker != null)
            {
                tracker.Stop();
            }
        }
        protected override void OnDestroy()
        {
            ((StateManagerImpl)TrackerManager.Instance.GetStateManager()).ClearTrackableBehaviours();
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            if (tracker != null)
            {
                tracker.DestroyAllDataSets(false);
                tracker.Stop();
            }
            TextTracker tracker2 = TrackerManager.Instance.GetTracker <TextTracker>();

            if (tracker2 != null)
            {
                tracker2.Stop();
            }
            SmartTerrainTracker tracker3 = TrackerManager.Instance.GetTracker <SmartTerrainTracker>();

            if (tracker3 != null)
            {
                tracker3.Stop();
            }
            DeviceTracker tracker4 = TrackerManager.Instance.GetTracker <DeviceTracker>();

            if (tracker4 != null)
            {
                tracker4.Stop();
            }
            VuforiaManager.Instance.Deinit();
            if (tracker != null)
            {
                TrackerManager.Instance.DeinitTracker <ObjectTracker>();
            }
            if (tracker2 != null)
            {
                TrackerManager.Instance.DeinitTracker <TextTracker>();
            }
            if (tracker3 != null)
            {
                tracker3.SmartTerrainBuilder.Deinit();
                TrackerManager.Instance.DeinitTracker <SmartTerrainTracker>();
            }
            if (tracker4 != null)
            {
                TrackerManager.Instance.DeinitTracker <DeviceTracker>();
            }
            this.mHasStartedOnce = false;
            if (this.mOnVuforiaDeinitialized != null)
            {
                this.mOnVuforiaDeinitialized.InvokeWithExceptionHandling();
            }
        }
        public virtual bool Start()
        {
            bool flag = false;
            SmartTerrainTracker tracker = TrackerManager.Instance.GetTracker <SmartTerrainTracker>();

            if (tracker != null && tracker.IsActive)
            {
                tracker.Stop();
                flag = true;
            }
            bool arg_3D_0 = VuforiaWrapper.Instance.ReconstructionStart(this.mNativeReconstructionPtr) == 1;

            if (flag)
            {
                tracker.Start();
            }
            return(arg_3D_0);
        }