コード例 #1
0
    void StoreTrackingStates(VLTrackingState state)
    {
        string str = "";

        for (int i = 0; i < state.objects.Length; ++i)
        {
            VLTrackingState.TrackingObject obj = state.objects[i];
            str += obj.name + "\n";
            str += "* State: " + obj.state + "\n";
            str += "* Quality: " + obj.quality + "\n";
            str += "* _InitInlierRatio: " + obj._InitInlierRatio + "\n";
            str += "* _InitNumOfCorresp: " + obj._InitNumOfCorresp + "\n";
            str += "* _TrackingInlierRatio: " + obj._TrackingInlierRatio + "\n";
            str += "* _TrackingNumOfCorresp: " + obj._TrackingNumOfCorresp + "\n";
            str += "* _SFHFrameDist: " + obj._SFHFrameDist + "\n";
            str += "* _Total3DFeatureCount: " + obj._Total3DFeatureCount + "\n";
            str += "* _NumberOfTemplates: " + obj._NumberOfTemplates + "\n";;
            str += "* _NumberOfTemplatesDynamic: " + obj._NumberOfTemplatesDynamic + "\n";;
            str += "* _NumberOfTemplatesStatic: " + obj._NumberOfTemplatesStatic + "\n";;
            str += "* _TrackingImageSize: " + obj._TrackingImageWidth + "x"
                   + obj._TrackingImageHeight;

            // Not the last tracked object?
            if (i < state.objects.Length - 1)
            {
                str += "\n";
            }
        }

        trackingStates = str;
    }
コード例 #2
0
    void AutoUpdateInstructions(VLTrackingState states)
    {
        if (!autoInstructionUpdate)
        {
            return;
        }

        // We start everything, when the tracker has been initialized.
        foreach (VLTrackingState.TrackingObject trackingObject in states.objects)
        {
            // Count how many frames the object has been tracked in a row
            if (trackingObject.state == "tracked")
            {
                trackingCounter++;
            }
            else
            {
                // If tracking is lost or critical, reset the tracking counter
                trackingCounter = 0;
            }

            // If object has been tracked for 60 frames, go to the next
            // instruction step
            if (trackingCounter == 60)
            {
                trackingCounter = 0;
                if (curStep < objects.Length)
                {
                    NextStep();
                }
            }
        }
    }
コード例 #3
0
 void StoreTrackingStates(VLTrackingState state)
 {
     if (state.objects.Length > 0)
     {
         VLTrackingState.TrackingObject obj = state.objects[0];
         trackingStates = obj.state + " @Frame (" + obj._NumberOfTemplates + ")";
     }
 }
コード例 #4
0
    private void TrackingStateHandler(string trackingStateJson)
    {
        VLTrackingState state =
            VLJsonUtility.FromJson <VLTrackingState>(trackingStateJson);

        if (state != null && OnTrackingStates != null)
        {
            OnTrackingStates(state);
        }
    }
コード例 #5
0
 private void StoreTrackingStates(VLTrackingState trackingState)
 {
     if (trackingState.objects == null ||
         trackingState.objects.Length == 0)
     {
         return;
     }
     VLTrackingState.TrackingObject obj = trackingState.objects[0];
     this.calibState = obj.state;
     this.frameCount = obj._NumberOfTemplates;
     // The name "_NumberOfTemplates" is a bit misleading. This actually
     // contains the number of successfully captures frames.
 }
コード例 #6
0
    private void HandleTrackingStates(VLTrackingState state)
    {
        if (state.objects.Length == 0)
        {
            this.objectTracked = false;
            return;
        }

        string newState = state.objects[0].state;

        if (newState == "lost")
        {
            this.objectTracked = false;
        }
        else
        {
            this.objectTracked = true;
        }
    }
コード例 #7
0
    void StoreTrackingStates(VLTrackingState state)
    {
        if (state.objects.Length == 0)
        {
            return;
        }

        if (this.pattern == null)
        {
            return;
        }

        VLTrackingState.TrackingObject obj = state.objects[0];
        if (obj.state == "collectingActive")
        {
            this.pattern.SetActive(true);
        }
        else
        {
            this.pattern.SetActive(false);
        }
    }
コード例 #8
0
    void HandleTrackingStates(VLTrackingState state)
    {
        for (int i = 0; i < state.objects.Length; ++i)
        {
            VLTrackingState.TrackingObject obj = state.objects[i];

            if (obj.name == this.trackedObjectName)
            {
                if (obj.state == "tracked")
                {
                    this.trackedEvent.Invoke();
                    if (this.previousState != obj.state)
                    {
                        this.justTrackedEvent.Invoke();
                    }
                }
                else if (obj.state == "critical")
                {
                    this.criticalEvent.Invoke();
                    if (this.previousState != obj.state)
                    {
                        this.justCriticalEvent.Invoke();
                    }
                }
                else if (obj.state == "lost")
                {
                    this.lostEvent.Invoke();
                    if (this.previousState != obj.state)
                    {
                        this.justLostEvent.Invoke();
                    }
                }

                this.previousState = obj.state;

                break;
            }
        }
    }
コード例 #9
0
    /// <summary>
    /// Updates progress value of AutoInit.
    /// </summary>
    /// <param name="state">Current tracking state</param>
    void UpdateAutoInitSetupProgress(VLTrackingState state)
    {
        if (!this.updateProgressBar)
        {
            return;
        }

        float progress = 0.0f;

        foreach (VLTrackingState.TrackingObject obj in state.objects)
        {
            progress += obj._AutoInitSetupProgress;
        }
        this.progressBar.value = progress / state.objects.Length;

        if (this.progressBar.value > 0.98f)
        {
            this.updateProgressBar = false;
            this.progressBar.value = this.progressBar.maxValue;
            this.progressBar.gameObject.GetComponentInChildren <Text>().text = "Ready";
            StartCoroutine(WaitAndHideProgressBar());
        }
    }