예제 #1
0
    void ChangeSelection()
    {
        IEnumerable <VuMarkTarget> allTargsEnum = handler.GetVuMarkTargets();
        List <VuMarkTarget>        allTargs     = allTargsEnum.ToList <VuMarkTarget>();

        if (allTargs.Count() > 1)
        {
            selection = allTargs.Find(x => x != selection);
        }
        else
        {
            VuMarkTarget tryTarget = handler.GetVuMarkObj();
            if (tryTarget != null)
            {
                selection = tryTarget;
            }
            else
            {
                selection = null;
            }
        }
        tb = VuMarkTransformer(selection);
        rm = VuMarkRenderer(selection);
        SetVuMarkText();
    }
예제 #2
0
 //Encuentra al VuMark
 public void OnVuMarkDetected(VuMarkTarget target)
 {
     Debug.Log("ID: " + GetVuMarkId(target));                          //Mensaje con el ID del VuMark
     Debug.Log("Tipo: " + GetVuMarkDataType(target));                  //Mensaje con el tipo de VuMark
     Debug.Log("Descripcion: " + GetNumericVuMarkDescription(target)); //Mensaje con la descripcion del VuMark
     imageVuMark.sprite = GetVuMarkImage(target);                      //Imagen del VuMark
 }
    void UpdateClosestTarget()
    {
        if (VuforiaRuntimeUtilities.IsVuforiaEnabled() && VuforiaARController.Instance.HasStarted)
        {
            float closestDistance = Mathf.Infinity;

            foreach (VuMarkBehaviour vumarkBehaviour in this.vumarkManager.GetActiveBehaviours())
            {
                Vector3 worldPosition = vumarkBehaviour.transform.position;
                Vector3 camPosition   = this.vuforiaCamera.transform.InverseTransformPoint(worldPosition);

                float distance = Vector3.Distance(Vector2.zero, camPosition);
                if (distance < closestDistance)
                {
                    closestDistance    = distance;
                    this.closestVuMark = vumarkBehaviour.VuMarkTarget;
                }
            }

            if (this.closestVuMark != null &&
                this.currentVuMark != this.closestVuMark)
            {
                var vuMarkId       = GetVuMarkId(this.closestVuMark);
                var vuMarkDataType = GetVuMarkDataType(this.closestVuMark);
                var vuMarkImage    = GetVuMarkImage(this.closestVuMark);
                var vuMarkDesc     = GetNumericVuMarkDescription(this.closestVuMark);

                this.currentVuMark = this.closestVuMark;

                StartCoroutine(ShowPanelAfter(0f, vuMarkId, vuMarkDataType, vuMarkDesc, vuMarkImage));
            }
        }
    }
예제 #4
0
    /// <summary>
    /// This method will be called whenever a tracked VuMark is lost
    /// </summary>
    public void OnVuMarkLost(VuMarkTarget target)
    {
        Debug.Log("Lost VuMark: " + GetVuMarkString(target));

        //if (target == mCurrentVuMark)
        mIdPanel.ResetShowTrigger();
    }
예제 #5
0
    //Descripcion del VuMark
    string GetNumericVuMarkDescription(VuMarkTarget vumark)
    {
        int vuMarkIdNumeric;                                        //Almacenara el ID del VuMark

        if (int.TryParse(GetVuMarkId(vumark), out vuMarkIdNumeric)) //Convierte el ID del VuMark en una variable numerica

        //Cambia la descripcion de acuerdo al resto que se obtiene de la variable que almacena el ID del VuMark
        {
            switch (vuMarkIdNumeric % 4)
            {
            case 1:
                return("Astronaut");

            case 2:
                return("Drone");

            case 3:
                return("Fissure");

            case 0:
                return("Oxygen Tank");

            default:
                return("Astronaut");
            }
        }

        return(string.Empty);
    }
예제 #6
0
    /// <summary>
    /// This method will be called whenever a new VuMark is detected
    /// </summary>
    public void OnVuMarkDetected(VuMarkTarget target)
    {
        Debug.Log("New VuMark: " + GetVuMarkString(target) + " name:" + target.Name);

        if ((PlayerPrefs.GetString("currentVuMarksPlayer") == ""))
        {
            if (GetVuMarkString(target) == "96" && (dataController.GetPlayerName("96") != ""))
            {
                PlayerPrefs.SetString("currentVuMarksPlayer", "96");
            }
            if (GetVuMarkString(target) == "97" && (dataController.GetPlayerName("97") != ""))
            {
                PlayerPrefs.SetString("currentVuMarksPlayer", "97");
            }
            if (GetVuMarkString(target) == "98" && (dataController.GetPlayerName("98") != ""))
            {
                PlayerPrefs.SetString("currentVuMarksPlayer", "98");
            }
            if (GetVuMarkString(target) == "99" && (dataController.GetPlayerName("99") != ""))
            {
                PlayerPrefs.SetString("currentVuMarksPlayer", "99");
            }
        }



        if ((PlayerPrefs.GetString("currentVuMarksElement") == "") &&
            (GetVuMarkString(target) != "96") &&
            (GetVuMarkString(target) != "97") &&
            (GetVuMarkString(target) != "98") &&
            (GetVuMarkString(target) != "99"))
        {
            PlayerPrefs.SetString("currentVuMarksElement", GetVuMarkString(target));
        }
    }
예제 #7
0
파일: VuMarkEvent.cs 프로젝트: alifma/ARTIK
    public void onVuMarkLost(VuMarkTarget target)
    {
        Debug.Log("Lost ID: " + getVuMarkID(target));

        // Deactivate model by model number
        modelList [modelN].SetActive(false);
    }
    //Descripcion del VuMark
    string GetNumericVuMarkDescription(VuMarkTarget vumark)
    {
        int vuMarkIdNumeric;                                        //Almacenara el ID del VuMark

        if (int.TryParse(GetVuMarkId(vumark), out vuMarkIdNumeric)) //Convierte el ID del VuMark en una variable numerica

        //Cambia la descripcion de acuerdo al ID del VuMark
        {
            switch (vuMarkIdNumeric)
            {
            case 10:
                return("Cubo - Rojo");

            case 72:
                return("Esfera - Amarillo");

            case 548:
                return("Cilindro - Azul");

            default:
                return("-ERROR-");
            }
        }

        return(string.Empty);
    }
    public void OnVuMarkDetected(VuMarkTarget target)
    {
        int id = markIdToInt(target.InstanceId.StringValue);

        Debug.Log("Changing view: " + bodies[id].name);
        planetView.planet = bodies[id];
    }
    string GetNumericVuMarkDescription(VuMarkTarget vumarkTarget)
    {
        int vumarkIdNumeric;

        if (int.TryParse(GetVuMarkId(vumarkTarget), NumberStyles.Integer, CultureInfo.InvariantCulture, out vumarkIdNumeric))
        {
            // Change the description based on the VuMark ID
            switch (vumarkIdNumeric % 4)
            {
            case 1:
                return("Astronaut");

            case 2:
                return("Drone");

            case 3:
                return("Fissure");

            case 0:
                return("Oxygen Tank");

            default:
                return("Unknown");
            }
        }

        return(string.Empty); // if VuMark DataType is byte or string
    }
예제 #11
0
    void UpdateClosestTarget()
    {
        Camera cam = DigitalEyewearBehaviour.Instance.PrimaryCamera ?? Camera.main;

        float closestDistance = Mathf.Infinity;

        foreach (var bhvr in mVuMarkManager.GetActiveBehaviours())
        {
            Vector3 worldPosition = bhvr.transform.position;
            Vector3 camPosition   = cam.transform.InverseTransformPoint(worldPosition);

            float distance = Vector3.Distance(Vector2.zero, camPosition);
            if (distance < closestDistance)
            {
                closestDistance = distance;
                mClosestVuMark  = bhvr.VuMarkTarget;
            }
        }

        if (mClosestVuMark != null &&
            mCurrentVuMark != mClosestVuMark)
        {
            var vuMarkId    = GetVuMarkString(mClosestVuMark);
            var vuMarkTitle = GetVuMarkDataType(mClosestVuMark);
            var vuMarkImage = GetVuMarkImage(mClosestVuMark);

            mCurrentVuMark = mClosestVuMark;
            mIdPanel.Hide();
            StartCoroutine(ShowPanelAfter(0.5f, vuMarkTitle, vuMarkId, vuMarkImage));
        }
    }
예제 #12
0
    string GetNumericVuMarkDescription(VuMarkTarget vumark)
    {
        int vuMarkIdNumeric;

        if (int.TryParse(GetVuMarkId(vumark), out vuMarkIdNumeric))
        {
            // Change the description based on the VuMark id
            switch (vuMarkIdNumeric % 4)
            {
            case 1:
                return("Astronaut");

            case 2:
                return("Drone");

            case 3:
                return("Fissure");

            case 0:
                return("Oxygen Tank");

            default:
                return("Astronaut");
            }
        }

        return(string.Empty); // if VuMark DataType is byte or string
    }
예제 #13
0
    Sprite GetVuMarkImage(VuMarkTarget vumarkTarget)
    {
        var instanceImage = vumarkTarget.InstanceImage;

        if (instanceImage == null)
        {
            Debug.Log("VuMark Instance Image is null.");
            return(null);
        }

        // First we create a texture
        Texture2D texture = new Texture2D(instanceImage.Width, instanceImage.Height, TextureFormat.RGBA32, false)
        {
            wrapMode = TextureWrapMode.Clamp
        };

        instanceImage.CopyToTexture(texture);

        // Then we turn the texture into a Sprite
        Debug.Log("<color=cyan>Image: </color>" + instanceImage.Width + "x" + instanceImage.Height);
        if (texture.width == 0 || texture.height == 0)
        {
            return(null);
        }
        Rect rect = new Rect(0, 0, texture.width, texture.height);

        return(Sprite.Create(texture, rect, new Vector2(0.5f, 0.5f)));
    }
예제 #14
0
    private void VuMarkDetected(VuMarkTarget target)
    {
        string code = GetVuMarkCode(target);

        Output(code, false);
        Debug.Log("VuMark code: " + code);
    }
예제 #15
0
 internal void UnregisterVuMarkTarget()
 {
     this.mVuMarkTarget = null;
     if (this.mOnTargetLost != null)
     {
         this.mOnTargetLost.InvokeWithExceptionHandling();
     }
 }
    //Cuando pierde de vista al VuMark
    public void OnVuMarkLost(VuMarkTarget target)
    {
        txtId.text          = "";                   //Borra el texto actual
        imgVuMark.sprite    = null;                 //Borra el texto actual
        txtDescripcion.text = "";                   //Borra la imagen actual

        arrayObjetos[valorObjeto].SetActive(false); //Desactiva el objeto actual
    }
예제 #17
0
 public void OnVuMarkLost(VuMarkTarget target)
 {
     Debug.Log("Lost ID: " + target.InstanceId);
     //m_ModelList [modelN].SetActive (false); // Deactivate model by model number
     m_ModelList[modelN].GetComponent <StartVideoDynamicVuMark>().rendererVideo.SetActive(false);
     m_ModelList[modelN].GetComponent <VideoPlayer>().Pause();
     m_ModelList[modelN].GetComponent <AudioSource>().Pause();
 }
예제 #18
0
 /// <summary>
 /// This method will be called whenever a new VuMark is detected
 /// </summary>
 public void OnVuMarkDetected(VuMarkTarget target)
 {
     Debug.Log("New VuMark: " + GetVuMarkID(target) + " name:" + target.Name);
     ID = GetVuMarkID(target);
     // assign ID to VuMark's child GameObject
     child = gameObject.AddComponent <Origin>();
     child.Init(ID);
 }
예제 #19
0
 internal void RegisterVuMarkTarget(VuMarkTarget target)
 {
     this.mVuMarkTarget = target;
     if (this.mOnTargetAssigned != null)
     {
         this.mOnTargetAssigned.InvokeWithExceptionHandling();
     }
 }
예제 #20
0
    /// <summary>
    /// This method will be called whenever a tracked VuMark is lost
    /// </summary>
    public void OnVuMarkLost(VuMarkTarget vumarkTarget)
    {
        Debug.Log("<color=cyan>VuMarkHandler.OnVuMarkLost(): </color>" + GetVuMarkId(vumarkTarget));

        if (vumarkTarget == this.currentVuMark)
        {
            this.nearestVuMarkScreenPanel.ResetShowTrigger();
        }
    }
예제 #21
0
    /// <summary>
    /// This method will be called whenever a tracked VuMark is lost
    /// </summary>
    public void OnVuMarkLost(VuMarkTarget target)
    {
        Debug.Log("Lost VuMark: " + GetVuMarkId(target));

        if (target == m_CurrentVuMark)
        {
            m_IdPanel.ResetShowTrigger();
        }
    }
예제 #22
0
 void onVuMarkDetected(VuMarkTarget target)
 {
     Debug.Log(target.InstanceId.StringValue);
     if (target.InstanceId.StringValue == "MY")
     {
         //call function that determines spawn rate and location?
         spawnCreature();
     }
 }
예제 #23
0
 // Use this for initialization
 void Start()
 {
     handler   = GameObject.Find("VuMark").GetComponent <DefaultTrackableEventHandler>();
     selection = handler.GetVuMarkObj();
     Debug.Log("Selection set to " + (selection == null));
     SetVuMarkText();
     tb = null;
     rm = null;
 }
예제 #24
0
 private void OnVuMarkLost(VuMarkTarget obj)
 {
     if (_renderer.Length > 0)
     {
         foreach (var renderer in _renderer)
         {
             renderer.material = DefaultMaterial;
         }
     }
 }
    private TrackerState GetTrackerFromTarget(VuMarkTarget target)
    {
        int id = GetIDFromTarget(target);

        if (id < 1 || id > MAX_TRACKER_ID)
        {
            return(null);
        }
        return(trackers[id]);
    }
    /// <summary>
    /// This method will be called whenever a new VuMark is detected
    /// </summary>
    public void OnVuMarkDetected(VuMarkTarget vumarkTarget)
    {
        VLog.Log("cyan", "VuMarkHandler.OnVuMarkDetected(): " + GetVuMarkId(vumarkTarget));

        // Check if this VuMark's ID already has a stored texture. Generate and store one if not.
        if (RetrieveStoredTextureForVuMarkTarget(vumarkTarget) == null)
        {
            this.vumarkInstanceTextures.Add(GetVuMarkId(vumarkTarget), GenerateTextureFromVuMarkInstanceImage(vumarkTarget));
        }
    }
예제 #27
0
 private void OnVuMarkDetected(VuMarkTarget obj)
 {
     if (_renderer.Length > 0)
     {
         foreach (var renderer in _renderer)
         {
             renderer.material = TrackingMaterial;
         }
     }
 }
예제 #28
0
    /// <summary>
    /// This method will be called whenever a new VuMark is detected
    /// </summary>
    public void OnVuMarkDetected(VuMarkTarget vumarkTarget)
    {
        Debug.Log("<color=cyan>VuMarkHandler.OnVuMarkDetected(): </color>" + GetVuMarkId(vumarkTarget));

        // Check if this VuMark's ID already has a stored texture. Generate and store one if not.
        if (RetrieveProductInfoForVuMarkTarget(vumarkTarget) == null)
        {
            StartCoroutine(SetProductDescFromServer(vumarkTarget));
        }
    }
예제 #29
0
    protected override void OnTrackingLost()
    {
        myVumark = GetComponent <VuMarkBehaviour>().VuMarkTarget;

        base.OnTrackingLost();
        if (TrackingManager.instance != null)
        {
            TrackingManager.instance.DisableObjects(myVumark);
        }
    }
예제 #30
0
    IEnumerator downloadProductImage(VuMarkTarget vumarkTarget, string url)
    {
        using (WWW www = new WWW(url))
        {
            // Wait for download to complete
            yield return(www);

            // assign texture
            productImageTextures.Add(GetVuMarkId(vumarkTarget), FlipTextureY(www.texture));
        }
    }