Exemple #1
0
 /// <summary>
 /// Render the ARmarkers store in the binay file
 /// </summary>
 /// <param name="ARDataByte">Downloaded serialized AR data </param>
 public void locateARmarkers(ARmarkersContainer ARData)
 {
     for (int i = 0; i < ARData.ARmarkerStored + 1; i++)
     {
         if (ARData.type[i] == 1)
         {
             GameObject alert = Instantiate <GameObject>(alertPrefab, new Vector3(0, 0, 2), Quaternion.identity);
             alert.transform.localScale    = new Vector3(0.02f, 0.02f, 0.02f);
             alert.transform.parent        = GameObject.Find("CloudDataManager").transform;
             alert.transform.localPosition = new Vector3(ARData.ARposX[i], ARData.ARposY[i], ARData.ARposZ[i]);
             alert.transform.localRotation = Quaternion.Euler(ARData.ARrotX[i], ARData.ARrotY[i], ARData.ARrotZ[i]);
             alert.name = "alert_" + alert.transform.localPosition.x + "_" + alert.transform.localPosition.y + "_" + alert.transform.localPosition.z;
             alert.tag  = "alert";
             Debug.Log("Place AR marker named: " + alert.name);
         }
     }
     Debug.Log("AR markers placed");
 }
Exemple #2
0
    /// <summary>
    /// Render the map and all ARmarkers relative to the passed anchor
    /// </summary>
    /// <param name="ARDataByte"> AR data downloaded from the BLOB container </param>
    /// <param name="meshByte"> downloaded binary map mesh </param>
    /// <param name="anchor"> refernce anchor  </param>
    public void LocateSubMap(byte[] ARDataByte, byte[] meshByte, GameObject anchor)
    {
        Debug.Log("Start joining map ");
        if (ARDataByte != null && meshByte != null)
        {
            LoadedMap = new GameObject("LoadedMap");
            if (LoadedMap.GetComponent <MeshFilter>() == false)
            {
                LoadedMap.AddComponent <MeshFilter>();
                Debug.Log("MeshFilter added");
            }
            if (LoadedMap.GetComponent <MeshRenderer>() == false)
            {
                LoadedMap.AddComponent <MeshRenderer>();
                Debug.Log("MeshRender added");
            }

            material.SetColor("_Color", Color.red);
            LoadedMap.transform.GetComponent <MeshRenderer>().material = material;
            LoadedMap.transform.GetComponent <MeshFilter>().mesh       = MeshSerializer.DeserializeMesh(meshByte);
            LoadedMap.transform.parent        = anchor.transform;
            LoadedMap.transform.localPosition = Vector3.zero;
            LoadedMap.transform.localRotation = Quaternion.identity;
            ARmarkersContainer ARData = (ARmarkersContainer)ARmanager.ARDataBinaryDeserialize(ARDataByte);
            Debug.Log("ARData deserialized properly");
            LoadedMap.transform.localPosition = ARData.GetMapPosition();
            LoadedMap.transform.localRotation = ARData.GetMapOrientation();

            Debug.Log("Start AR markers placing ");
            locateARmarkers(ARData);
        }
        else
        {
            Debug.LogError("Error joining submaps");
        }
    }
Exemple #3
0
    //string url = "C:/Users/francesco testa/Desktop/tesi/mesh/map.bin";

    private void Start()
    {
        ARmanager = new ARmarkersContainer();
        ARData    = new ARmarkersContainer();
    }