public void UpdateAnchor(ARPlaneAnchor arPlaneAnchor)
 {
     if (planeAnchorMap.ContainsKey(arPlaneAnchor.identifier))
     {
         ARPlaneAnchorGameObject arpag = planeAnchorMap[arPlaneAnchor.identifier];
         PlacenotePlaneUtility.UpdatePlaneWithAnchorTransform(arpag.gameObject, arPlaneAnchor);
         arpag.planeAnchor = arPlaneAnchor;
         planeAnchorMap[arPlaneAnchor.identifier] = arpag;
     }
 }
        public void AddAnchor(ARPlaneAnchor arPlaneAnchor)
        {
            GameObject go = PlacenotePlaneUtility.CreatePlaneInScene(arPlaneAnchor);

            go.AddComponent <DontDestroyOnLoad>();  //this is so these GOs persist across scene loads
            ARPlaneAnchorGameObject arpag = new ARPlaneAnchorGameObject();

            arpag.planeAnchor = arPlaneAnchor;
            arpag.gameObject  = go;
            planeAnchorMap.Add(arPlaneAnchor.identifier, arpag);
        }
        // Use this for initialization
        void Start()
        {
            loadedPlaneList = new LinkedList <GameObject>();

            if (UnityARSessionNativeInterface.IsARKit_1_5_Supported())
            {
                PlacenotePlaneUtility.InitializePlanePrefab(meshPrefab);
            }
            else
            {
                PlacenotePlaneUtility.InitializePlanePrefab(planePrefab);
            }
        }
        public void LoadPlaneList(JToken mapMetadata)
        {
            //placenoteARAnchorManager = new PlacenoteARAnchorManager ();

            if (loadedPlaneList.Count > 0)
            {
                foreach (var planeGo in loadedPlaneList)
                {
                    Destroy(planeGo);
                }
                loadedPlaneList.Clear();
            }


            if (mapMetadata is JObject && mapMetadata["planes"] is JObject)
            {
                PlaneMeshList planeList = mapMetadata["planes"].ToObject <PlaneMeshList>();
                if (planeList == null)
                {
                    Debug.Log("Empty list of planes in metadata");
                    return;
                }
                Debug.Log("Loading + " + planeList.meshList.Length.ToString() + " planes");
                foreach (var plane in planeList.meshList)
                {
                    GameObject go = PlacenotePlaneUtility.CreatePlaneInScene(plane);
                    go.AddComponent <DontDestroyOnLoad>();  //this is so these GOs persist across scene loads
                    loadedPlaneList.AddLast(go);
                }
                //placenoteARAnchorManager.Destroy(); //stop detecting new planes
            }
            else
            {
                Debug.Log("No plane metadata available");
                return;
            }
        }