public void OnTrackedObjectUpdate(TrackedObjectData data)
    {
        TimeSinceLastUpdate     = 0;
        TimeFadeAmount          = 0;// Mathf.Max(0.0f, TimeFadeAmount -= Time.deltaTime);
        scores[(int)data.type] += 1;

        for (int it = 0; it < scores.Length; it++)
        {
            if (scores[it] > scores[(int)bestClassification])
            {
                bestClassification = (TrackedObjectType)it;
            }
        }

        for (int it = 0; it < renderers.Length; it++)
        {
            if (renderers[it] != null)
            {
                renderers[it].enabled = (it == (int)bestClassification);
            }
        }

        this.transform.position = data.position;
        Vector3 eulerAngles = this.transform.eulerAngles;

        eulerAngles.y = data.rotation;
        this.transform.eulerAngles = eulerAngles;
    }
Пример #2
0
 public override void SetMarkerData(TrackedObjectData data)
 {
     if (data != null)
     {
         trackedNameText.text = data.name;
     }
 }
    public override FrustumTrackedObject AddTrackedObject(Transform obj, TrackedObjectData data = null)
    {
        var ft = base.AddTrackedObject <FrustumTrackedTransformRoot>(obj, data);

        TestTrackedObject(ft);
        ft.RefreshState();
        return(ft);
    }
Пример #4
0
    public TrackedObjectData GetTrackedObjectData()
    {
        TrackedObjectData tod = new TrackedObjectData();

        tod.position = this.transform.position;
        tod.rotation = this.transform.eulerAngles.y;
        tod.type     = Type;
        return(tod);
    }
Пример #5
0
    protected virtual T AddTrackedObject <T>(Transform obj, TrackedObjectData data = null) where T : FrustumTrackedObject
    {
        var ft = AddTrackedObject <T>(obj);

        if (data == null)
        {
            data = new TrackedObjectData
            {
                name = obj.name
            };
        }
        ft.data = data;
        return(ft);
    }
Пример #6
0
 public void OnTrackedObjectUpdate(List <TrackedObjectData> trackedObjects)
 {
     for (int it = 0; it < trackedObjects.Count; it++)
     {
         TrackedObjectData tod = trackedObjects[it];
         bool anyFound         = false;
         for (int j = 0; j < activeObjects.Count; j++)
         {
             TrackedObject to = activeObjects[j];
             if (to.ID == tod.id)
             {
                 anyFound = true;
                 to.OnTrackedObjectUpdate(tod);
                 break;
             }
         }
         if (!anyFound)
         {
             TrackedObject to = null;
             if (trackedObjectsPool.Count > 0)
             {
                 int lastIdx = trackedObjectsPool.Count - 1;
                 to = trackedObjectsPool[lastIdx];
                 trackedObjectsPool.RemoveAt(lastIdx);
                 to.gameObject.SetActive(true);
                 Debug.Log("Recycling");
             }
             else
             {
                 Debug.Log("Created tracked object");
                 to = createTrackedObject();
             }
             to.ResetObject(tod.id);
             activeObjects.Add(to);
             to.transform.parent = activeObjectParent;
             to.OnTrackedObjectUpdate(tod);
         }
     }
 }
Пример #7
0
 // Update is called once per frame
 void Update()
 {
     timeSinceLastUpdate += Time.deltaTime;
     if (timeSinceLastUpdate >= updateFreq)
     {
         timeSinceLastUpdate = 0.0f;
         float radius = this.transform.localScale.magnitude * 0.5f;
         GroundTruthObject[]      objs = worldParent.GetComponentsInChildren <GroundTruthObject>();
         List <TrackedObjectData> tods = new List <TrackedObjectData>();
         int idx = 0;
         foreach (GroundTruthObject obj in objs)
         {
             if ((obj.transform.position - this.transform.position).magnitude < radius)
             {
                 TrackedObjectData tod = obj.GetTrackedObjectData();
                 tod.id = idx;
                 idx++;
                 tods.Add(tod);
             }
         }
         manager.OnTrackedObjectUpdate(tods);
     }
 }
Пример #8
0
 public override FrustumTrackedObject AddTrackedObject(Transform objTransform, TrackedObjectData data = null)
 {
     return(AddTrackedObject <FrustumTrackedObjectWithRenderer>(objTransform, data));
 }
Пример #9
0
 public virtual void SetMarkerData(TrackedObjectData data)
 {
     Debug.Log("Nem marker created with name " + data.name);
 }
Пример #10
0
 public abstract FrustumTrackedObject AddTrackedObject(Transform obj, TrackedObjectData data = null);