Exemplo n.º 1
0
    public void RemovePlaneTracked(Transform tracker)
    {
        //text.text = "1";
        TrackedEbene TrackedPlaneToRemove = TrackedPlanes.Find((TrackedEbene obj) => obj.Name == tracker.name);

        if (TrackedPlaneToRemove == null)
        {
            Debug.Log("doesn't exist");
            return;
        }
        foreach (Schnittkante schnittkante in TrackedPlaneToRemove.Schnittkanten)
        {
            schnittkante.Dissolve();
        }
        foreach (Schnittpunkt schnittkpunkt in TrackedPlaneToRemove.Schnittpunkte)
        {
            schnittkpunkt.Dissolve();
        }
        foreach (Distanzen Distanz in TrackedPlaneToRemove.Distanzen)
        {
            Distanz.Dissolve();
        }
        TrackedPlanes.Remove(TrackedPlaneToRemove);
        TrackedPlaneToRemove.Dissolve();
        //List<GameObject> geradenToRemove = new List<GameObject>();
        //foreach (GameObject geradeninfo in GeradenInfos.MenuItems)
        //{
        //    SnapSchnittkante kante = geradeninfo.GetComponent<UpdateInfos>().Layertransform.GetComponent<SnapSchnittkante>();
        //    if (kante != null)
        //    {
        //        if (kante.layer1 == tracker || kante.layer2 == tracker)
        //        {
        //            geradenToRemove.Add(geradeninfo);
        //        }
        //    }
        //}
        //text.text = "2";
        //List<GameObject> winkelToRemove = new List<GameObject>();
        //foreach (GameObject winkel in WinkelInfos.MenuItems)
        //{
        //    if (winkel.GetComponent<UpdateWinkel>().transform1 == tracker || winkel.GetComponent<UpdateWinkel>().transform2 == tracker)
        //    {
        //        winkelToRemove.Add(winkel);
        //    }
        //}

        //text.text = "3";
        //foreach (GameObject winkel in winkelToRemove)
        //{
        //    WinkelInfos.MenuItems.Remove(winkel);
        //    GameObject.Destroy(winkel);
        //}

        //text.text = "4";
        //foreach (GameObject gerade in geradenToRemove)
        //{
        //    GeradenInfos.MenuItems.Remove(gerade);
        //    text.text = "5";
        //    GameObject.Destroy(
        //    gerade.GetComponent<UpdateInfos>().Layertransform.gameObject);
        //    text.text = "6";
        //    GameObject.Destroy(gerade);
        //    text.text = "7";
        //}

        //TrackedPlanes.Find((TrackedEbene obj) => obj.Transform == tracker).Transform.gameObject.SetActive(false);
    }
Exemplo n.º 2
0
    public void AddPlaneTracked(Transform tracker)
    {
        TrackedEbene NewTrackedPlane = new TrackedEbene {
            Transform = tracker, Name = tracker.name, color = UnityEngine.Random.ColorHSV(0f, 1f, 0.2f, 0.2f, 1f, 1f, 0.8f, 0.8f), InfoParentMenu = EbenenInfos
        };

        NewTrackedPlane.Schnittkanten = new List <Schnittkante>();
        NewTrackedPlane.Schnittpunkte = new List <Schnittpunkt>();
        if (TrackedPlanes.Exists((TrackedEbene obj) => obj.Name == tracker.name))
        {
            Debug.Log("found old tracked");
            NewTrackedPlane = TrackedPlanes.Find((TrackedEbene obj) => obj.Transform == tracker);
        }
        else
        {
            Debug.Log("making new tracked: " + tracker.name);
            TrackedPlanes.Add(NewTrackedPlane);
            foreach (MeshRenderer mr in tracker.GetComponentsInChildren <MeshRenderer>())
            {
                mr.material.color = NewTrackedPlane.color;
            }
            GameObject ebeneInfo = Instantiate(prefabEbenenInfo);
            NewTrackedPlane.InfoUI = ebeneInfo;

            ebeneInfo.transform.SetParent(EbenenInfos.transform);
            tracker.GetComponent <AddMarkerplane>().plane.GetComponent <Splitplane>().ebeneninfos = NewTrackedPlane;
            UpdateInfos updateInfos;
            if (ebeneInfo.TryGetComponent <UpdateInfos>(out updateInfos))
            {
                updateInfos.compnonent     = NewTrackedPlane;
                updateInfos.Layertransform = tracker;
                updateInfos.Name.color     = NewTrackedPlane.color;
                updateInfos.Name.text      = tracker.name;
                updateInfos.menu           = EbenenInfos;
            }
            EbenenInfos.MenuItems.Add(ebeneInfo);
            if (!EbenenInfos.isopen)
            {
                ebeneInfo.SetActive(false);
            }
            EbenenInfos.Rearrange();
        }

        //for (int i = 0; i < EditableComponents.Count; i++)
        //{
        //    if (EditableComponents[i] is Ebene)
        //    {
        //        AddSchnittkante(EditableComponents[i], NewTrackedPlane);
        //GameObject ebenef1 = Ebenen.Items3D[i];
        //string nameEbene2 = "Ebene R" + TrackedPlanes.Count;
        //AddSchnittkante(ebenef1.transform, tracker, nameEbene2, tracker.name);
        //    }
        //}
        foreach (EditableComponent e in EditableComponents)
        {
            if (e is Ebene)
            {
                AddSchnittkante(e, NewTrackedPlane);
            }
            else if (e is Gerade)
            {
                AddSchnittpunkt((Gerade)e, NewTrackedPlane);
                AddDistanz(e, NewTrackedPlane);
            }
        }/*
          * foreach (Ebene ebene in EditableComponents)
          * {
          * AddSchnittkante(ebene, NewTrackedPlane);
          * }
          * foreach (Gerade gerade in EditableComponents)
          * {
          * AddSchnittpunkt(gerade, NewTrackedPlane);
          * AddDistanz(gerade, NewTrackedPlane);
          * }*/
        foreach (TrackedEbene OtherTrackedPlane in TrackedPlanes)
        {
            if (OtherTrackedPlane.Transform.GetComponent <AddMarkerplane>().istracked&& OtherTrackedPlane.Transform != tracker)
            {
                AddSchnittkante(OtherTrackedPlane, NewTrackedPlane);
            }
        }

        /*if (TrackedPlanes.Exists((TrackedEbene obj) => obj.Transform == tracker))
         * {
         *  TrackedPlanes.Find((TrackedEbene obj) => obj.Transform == tracker).Transform.gameObject.SetActive(true);
         * }
         * else
         * {
         *  TrackedPlanes.Add(NewTrackedPlane);
         * }*/
    }