public void OnMainObjectDetected(RecognizeObject recognizeObject)
    {
        if (isControlling)
        {
            prevDevice = "";
            return;
        }

        //Debug.Log("Id: " + recognizeObject.name);
        currFeatures = client.GetFeaturesById(recognizeObject.name);
        if (currFeatures == null)
        {
            Debug.Log("k co Feature");
            btnControll.gameObject.SetActive(false);
            return;
        }
        nameDevice.text = "Device: " + recognizeObject.name;

        btnControll.localPosition = new Vector3(recognizeObject.x + (float)recognizeObject.width / 2, -(recognizeObject.y + (float)recognizeObject.height / 2), btnControll.localPosition.z);
        btnControll.gameObject.SetActive(true);

        if (UIEvent.OnUpdateUI != null)
        {
            UIEvent.OnUpdateUI();
        }

        //Debug.Log(recognizeObject.x + " : " + recognizeObject.y +" , "+ recognizeObject.width + " : " + recognizeObject.height);
//#if !UNITY_EDITOR
//        if (recognizeObject.name == AppConstant.SPEAKER && prevDevice != AppConstant.SPEAKER)
//            client.GetSpeakerVolume();
//#endif

        prevDevice = recognizeObject.name;
    }
    public void Test0()
    {
        RecognizeObject testObj = new RecognizeObject();

        testObj.name = "laptop";
        menuInteraction.OnMainObjectDetected(testObj);
        Invoke("Test1", 3);
    }
    public void Test1()
    {
        RecognizeObject testObj = new RecognizeObject();

        testObj.name = "laptop";
        menuInteraction.OnMainObjectDetected(testObj);
        menuInteraction.OnClickCreateMenuInteraction();
        Invoke("UpdateListButton", 1f);
    }
예제 #4
0
    private void FilterMainBoundBox(RecognizeObject[] recognizeObjects)
    {
        if (recognizeObjects == null || recognizeObjects.Length == 0)
        {
            return;
        }

        RecognizeObject bestObj = recognizeObjects[0];

        for (int i = 1; i < recognizeObjects.Length; i++)
        {
            if (bestObj.score < recognizeObjects[i].score)
            {
                bestObj = recognizeObjects[i];
            }
        }

        recognizeObjects    = new RecognizeObject[1];
        recognizeObjects[0] = bestObj;
    }
예제 #5
0
    public void UpdateBoundBox()
    {
        RecognizeInputStruct data = fileController.LoadRecorgnizeInput();

        CheckTatgetDelay();
        if (timeCheckDelay <= 0)
        {
            DisableAllChild(boundBoxContainer);
            timeCheckDelay = timeDelay;

            if (data == null || data.recognizeObjects.Length == 0)
            {
                if (OnNotFoundObject != null)
                {
                    OnNotFoundObject();
                }
            }
        }

        if (data == null)
        {
            imgBoundBox.rectTransform.sizeDelta = Vector2.zero;
            return;
        }

        //Select Main Object
        if (data.recognizeObjects.Length > 0 && isSelectMainObj)
        {
            if (isControlling)
            {
                data.recognizeObjects = new RecognizeObject[0];
            }
            else
            {
                RecognizeObject bestObj = data.recognizeObjects[0];
                for (int i = 1; i < data.recognizeObjects.Length; i++)
                {
                    if (bestObj.score < data.recognizeObjects[i].score)
                    {
                        bestObj = data.recognizeObjects[i];
                    }
                }

                data.recognizeObjects    = new RecognizeObject[1];
                data.recognizeObjects[0] = bestObj;

                if (OnMainObjectDetected != null)
                {
                    OnMainObjectDetected(data.recognizeObjects[0]);
                }

                //Debug.Log(data.recognizeObjects[0].x + ":" + (data.recognizeObjects[0].y));
            }
        }

        for (int i = 0; i < Mathf.Min(data.recognizeObjects.Length, boundBoxContainer.childCount); i++)
        {
            Image itemObj = boundBoxContainer.GetChild(i).GetComponent <Image>();
            itemObj.rectTransform.localPosition = new Vector3(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), itemObj.rectTransform.localPosition.z);
            itemObj.rectTransform.sizeDelta     = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.rectTransform.sizeDelta= new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            //add list
            string objectName = data.recognizeObjects[i].name.ToUpper();
            if (!listTargets.ContainsKey(objectName))
            {
                listTargets[objectName] = typeTargetCount;
                typeTargetCount++;
            }

            BoundBoxItem boundBoxItem = itemObj.GetComponent <BoundBoxItem>();
            boundBoxItem.lbContent.text = string.Format("{0} {1}%", objectName, (int)(data.recognizeObjects[i].score * 100));
            //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.color= colors[listTargets[objectName] % colors.Count];
            boundBoxItem.lbDesc.text = data.recognizeObjects[i].description;
            boundBoxItem.UpdateBoundBoxByAnim(boundBoxAnim, data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            boundBoxItem.OptimizeDes(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), screenWidth, screenHeight);
            boundBoxItem.panelDes.alpha = (data.recognizeObjects[i].description != "") ? 1 : 0;
            itemObj.color = colors[listTargets[objectName] % colors.Count];
            itemObj.gameObject.SetActive(true);

            //show anim des
            if (prevObj != objectName)
            {
                boundBoxItem.GetComponent <Animator>().Play(boundBoxAnim.ToString(), -1, 0f);
                boundBoxItem.panelDesAnim.Play((boundBoxItem.panelBGDes.localPosition.x <= 0) ? AppConstant.ACTIVE_LEFT_ANIM : AppConstant.ACTIVE_RIGHT_ANIM, -1, 0f);
                prevObj = objectName;
            }

            //Set up for every application
            SetUpForApplication(boundBoxItem);
        }

        for (int i = boundBoxContainer.childCount; i < data.recognizeObjects.Length; i++)
        {
            Image itemObj = Instantiate(imgBoundBox, boundBoxContainer);
            itemObj.rectTransform.localPosition = new Vector3(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), itemObj.rectTransform.localPosition.z);
            itemObj.rectTransform.sizeDelta     = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.rectTransform.sizeDelta = new Vector2(data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            //add list
            string objectName = data.recognizeObjects[i].name.ToUpper();
            if (!listTargets.ContainsKey(objectName))
            {
                listTargets[objectName] = typeTargetCount;
                typeTargetCount++;
            }

            BoundBoxItem boundBoxItem = itemObj.GetComponent <BoundBoxItem>();
            boundBoxItem.lbContent.text = string.Format("{0} {1}%", objectName, (int)(data.recognizeObjects[i].score * 100));
            //boundBoxItem.GetComponent<BoundBoxItem>().lbContent.color = colors[listTargets[objectName] % colors.Count];
            boundBoxItem.lbDesc.text = data.recognizeObjects[i].description;
            boundBoxItem.UpdateBoundBoxByAnim(boundBoxAnim, data.recognizeObjects[i].width, data.recognizeObjects[i].height);
            boundBoxItem.OptimizeDes(data.recognizeObjects[i].x + data.recognizeObjects[i].width / 2, -(data.recognizeObjects[i].y + data.recognizeObjects[i].height / 2), screenWidth, screenHeight);
            boundBoxItem.panelDes.alpha = (data.recognizeObjects[i].description != "") ? 1 : 0;
            itemObj.color = colors[listTargets[objectName] % colors.Count];
            itemObj.gameObject.SetActive(true);

            //show anim des
            if (prevObj != objectName)
            {
                boundBoxItem.GetComponent <Animator>().Play(boundBoxAnim.ToString(), -1, 0f);
                boundBoxItem.panelDesAnim.Play((boundBoxItem.panelBGDes.localPosition.x <= 0) ? AppConstant.ACTIVE_LEFT_ANIM : AppConstant.ACTIVE_RIGHT_ANIM, -1, 0f);
                prevObj = objectName;
            }

            //Set up for every application
            SetUpForApplication(boundBoxItem);
        }

        UpdateNumBoundBoxActive();
        isDelay = (data.recognizeObjects.Length > 0 && data.recognizeObjects.Length == numBoundBoxActive);
        //Debug.Log("Update Success");
    }