示例#1
0
    private void AddSchnittpunkt(Gerade SchnittGerade, VirtualCompnonent SchnittEbene)
    {
        GameObject   punktInfo    = Instantiate(prefabSchnittpunktInfo);
        GameObject   punkt        = Instantiate(prefabSchnittpunkt);
        Schnittpunkt schnittpunkt = new Schnittpunkt {
            Gerade = SchnittGerade, Ebene = SchnittEbene, InfoParentMenu = Punkte, InfoUI = punktInfo, Model3D = punkt, color = UnityEngine.Random.ColorHSV(0f, 1f, 0.2f, 0.2f, 1f, 1f, 0.8f, 0.8f)
        };

        foreach (MeshRenderer mr in punkt.GetComponentsInChildren <MeshRenderer>())
        {
            mr.material.color = schnittpunkt.color;
        }
        SchnittGerade.Schnittpunkte.Add(schnittpunkt);
        punkt.GetComponent <Findschnittpunkt>().Gerade = SchnittGerade.GetTransform();
        punkt.GetComponent <Findschnittpunkt>().Ebene  = SchnittEbene.GetTransform();
        punkt.transform.SetParent(pivot.transform);

        punktInfo.GetComponent <UpdateInfos>().Layertransform = punkt.transform;
        punktInfo.GetComponent <UpdateInfos>().compnonent     = schnittpunkt;
        punktInfo.GetComponent <UpdateInfos>().menu           = PunkteInfos;
        punktInfo.transform.SetParent(PunkteInfos.transform);
        if (!PunkteInfos.isopen)
        {
            punktInfo.SetActive(false);
        }
        PunkteInfos.MenuItems.Add(punktInfo);
        PunkteInfos.Rearrange();
    }
示例#2
0
    private void AddDistanz(EditableComponent Element1, VirtualCompnonent Element2)
    {
        GameObject DistanzInfo = Instantiate(prefabDistanzInfo);
        Distanzen  distanzen   = new Distanzen()
        {
            Element1 = Element1, Element2 = Element2, InfoParentMenu = DistanzInfos, InfoUI = DistanzInfo
        };

        DistanzInfo.GetComponent <UpdateDistance>().Element1   = Element1;
        DistanzInfo.GetComponent <UpdateDistance>().Element2   = Element2;
        DistanzInfo.GetComponent <UpdateDistance>().compnonent = distanzen;
        DistanzInfo.GetComponent <UpdateDistance>().menu       = DistanzInfos;
        DistanzInfo.transform.SetParent(DistanzInfos.transform);
        Element1.Distanzen.Add(distanzen);
        if (Element2 is EditableComponent)
        {
            ((EditableComponent)Element2).Distanzen.Add(distanzen);
        }
        else
        {
            ((TrackedEbene)Element2).Distanzen.Add(distanzen);
        }
        if (!DistanzInfos.isopen)
        {
            DistanzInfo.SetActive(false);
        }
        DistanzInfos.MenuItems.Add(DistanzInfo);
        DistanzInfos.Rearrange();
        UpdateAllLayers();
    }
示例#3
0
    //// Update is called once per frame
    //UpdateInfos GetLayerinfo(Transform t)
    //{

    //    for (int i = 0; i < EbenenInfos.MenuItems.Count; i++)
    //    {
    //        GameObject ebene = EbenenInfos.MenuItems[i];
    //        UpdateInfos info = ebene.GetComponent<UpdateInfos>();
    //        if (info.Layertransform == t)
    //        {
    //            return info;
    //        }

    //    }
    //    return null;
    //}

    List <VirtualCompnonent> Findassociated(VirtualCompnonent tf)
    {
        List <VirtualCompnonent> infos = new List <VirtualCompnonent>();

        foreach (VirtualCompnonent Editable in EditableComponents)
        {
            if (tf == Editable || Editable.GetChildren().Contains(tf))
            {
                infos.Add(tf);
                infos.AddRange(tf.GetChildren());
            }
        }
        //for (int i = 0; i < GeradenInfos.MenuItems.Count; i++)
        //{
        //    GameObject gerade = GeradenInfos.MenuItems[i];
        //    UpdateInfos info = gerade.GetComponent<UpdateInfos>();
        //    if (info.Layertransform == tf)
        //    {
        //        SnapSchnittkante schnittkante = info.Layertransform.gameObject.GetComponent<SnapSchnittkante>();
        //        if (schnittkante != null)
        //        {
        //            infos.Add(GetLayerinfo(schnittkante.layer1));
        //            infos.Add(GetLayerinfo(schnittkante.layer2));
        //        }
        //        infos.Add(info);
        //    }
        //    else
        //    {
        //        SnapSchnittkante schnittkante = info.Layertransform.gameObject.GetComponent<SnapSchnittkante>();
        //        if (schnittkante != null)
        //        {
        //            if (schnittkante.layer1 == tf || schnittkante.layer2 == tf)
        //            {
        //                infos.Add(info);
        //            }
        //        }
        //    }
        //}
        //for (int i = 0; i < EbenenInfos.MenuItems.Count; i++)
        //{
        //    GameObject ebene = EbenenInfos.MenuItems[i];
        //    UpdateInfos info = ebene.GetComponent<UpdateInfos>();
        //    if (info.Layertransform == tf)
        //    {
        //        infos.Add(info);
        //    }

        //}
        return(infos);
    }
示例#4
0
    public void AddObject(VirtualCompnonent virtc, GameObject Object3D, GameObject ObjectUI, GameObject ObjectInfo, MenuButton ParentUI, MenuButton ParentInfo, Color color, string name)
    {
        ObjectUI.transform.SetParent(ParentUI.transform);
        if (!(ObjectInfo is GameObject))
        {
            Debug.LogError("objectinfo is no gameobject");
        }
        if (!(ParentInfo is MenuButton))
        {
            Debug.LogError("parentinfo is no gameobject");
        }
        ObjectInfo.transform.SetParent(ParentInfo.transform);
        UpdateInfos updateInfos;

        if (ObjectInfo.TryGetComponent <UpdateInfos>(out updateInfos))
        {
            updateInfos.Layertransform = Object3D.transform;
            updateInfos.Name.color     = color;
            updateInfos.Name.text      = name;
        }
        if (ObjectInfo.GetComponent <InfoMenuItem>() != null)
        {
            ObjectInfo.GetComponent <InfoMenuItem>().compnonent = virtc;
            ObjectInfo.GetComponent <InfoMenuItem>().menu       = ParentInfo;
        }
        Object3D.transform.SetParent(pivot.transform);
        Object3D.transform.localPosition = new Vector3(0, 0, 0);
        Object3D.transform.rotation      = new Quaternion(0, 0, 0, 0);
        //ParentUI.Items3D.Add(Object3D);
        ParentInfo.MenuItems.Add(ObjectInfo);
        ParentUI.MenuItems.Add(ObjectUI);
        foreach (MeshRenderer mr in Object3D.GetComponentsInChildren <MeshRenderer>())
        {
            mr.material.color = color;
        }
        if (ObjectUI.GetComponent <EditCompUI>() != null)
        {
            ObjectUI.GetComponent <EditCompUI>().Transform = Object3D.transform;
            ObjectUI.GetComponent <EditCompUI>().component = (EditableComponent)virtc;
        }
        if (!ParentInfo.isopen)
        {
            ObjectInfo.SetActive(false);
        }
        ParentUI.Rearrange();
        ParentInfo.Rearrange();
    }
示例#5
0
    //void AddSchnittkante(Transform t1, Transform t2, string ebene1, string ebene2)
    void AddSchnittkante(VirtualCompnonent e1, VirtualCompnonent e2)
    {
        Debug.Log("adding schnittkante");
        GameObject   kantenobjekt = Instantiate(prefabSchnittkante);
        GameObject   geradenInfo  = Instantiate(prefabGeradenInfo);
        Schnittkante kante        = new Schnittkante {
            Model3D = kantenobjekt, Name = "Schnitt\r\n" + e1.Name + "\r\n" + e2.Name, Ebene1 = e1, Ebene2 = e2, InfoUI = geradenInfo, InfoParentMenu = GeradenInfos, color = UnityEngine.Random.ColorHSV(0f, 1f, 0.2f, 0.2f, 1f, 1f, 0.8f, 0.8f)
        };

        kante.Winkel = new Winkel {
            Schnittkante = kante, Name = "Winkel\r\n" + e1.Name + "\r\n" + e2.Name, color = kante.color, InfoParentMenu = WinkelInfos
        };
        foreach (MeshRenderer mr in kantenobjekt.GetComponentsInChildren <MeshRenderer>())
        {
            mr.material.color = kante.color;
        }
        kante.Schnittpunkte = new List <Schnittpunkt>();
        if (e1 is Ebene)
        {
            kante.Model3D.GetComponent <SnapSchnittkante>().layer1 = ((Ebene)e1).Model3D.transform;
            ((Ebene)e1).Schnittkanten.Add(kante);
        }
        else if (e1 is TrackedEbene)
        {
            kante.Model3D.GetComponent <SnapSchnittkante>().layer1 = ((TrackedEbene)e1).Transform;
            ((TrackedEbene)e1).Schnittkanten.Add(kante);
        }
        if (e2 is Ebene)
        {
            kante.Model3D.GetComponent <SnapSchnittkante>().layer2 = ((Ebene)e2).Model3D.transform;
            ((Ebene)e2).Schnittkanten.Add(kante);
        }
        else if (e2 is TrackedEbene)
        {
            kante.Model3D.GetComponent <SnapSchnittkante>().layer2 = ((TrackedEbene)e2).Transform;
            ((TrackedEbene)e2).Schnittkanten.Add(kante);
        }
        kante.Model3D.transform.SetParent(pivot.transform);
        kante.Model3D.GetComponent <SnapSchnittkante>().updateposrot();

        Debug.Log("added schnittkante");
        geradenInfo.GetComponent <UpdateInfos>().Name.SetText(kante.Name);
        geradenInfo.GetComponent <UpdateInfos>().Layertransform = kante.Model3D.transform;
        geradenInfo.transform.SetParent(GeradenInfos.transform);
        geradenInfo.GetComponent <UpdateInfos>().compnonent = kante;
        geradenInfo.GetComponent <UpdateInfos>().menu       = GeradenInfos;
        if (!GeradenInfos.isopen)
        {
            geradenInfo.SetActive(false);
        }
        GeradenInfos.MenuItems.Add(geradenInfo);
        GeradenInfos.Rearrange();


        Debug.Log("added info");

        GameObject winkelInfo = Instantiate(prefabSchnittWinkelInfo);

        winkelInfo.GetComponent <UpdateWinkel>().transform1            = kante.Ebene1.GetTransform();
        winkelInfo.GetComponent <UpdateWinkel>().transform2            = kante.Ebene2.GetTransform();
        winkelInfo.GetComponent <UpdateWinkel>().Transform1Description = kante.Ebene1.Name;
        winkelInfo.GetComponent <UpdateWinkel>().Transform2Description = kante.Ebene2.Name;
        winkelInfo.GetComponent <UpdateWinkel>().compnonent            = kante.Winkel;
        winkelInfo.GetComponent <UpdateWinkel>().menu = WinkelInfos;
        winkelInfo.transform.SetParent(WinkelInfos.transform);
        if (!WinkelInfos.isopen)
        {
            winkelInfo.SetActive(false);
        }
        WinkelInfos.MenuItems.Add(winkelInfo);
        WinkelInfos.Rearrange();
        kante.Winkel.InfoUI = winkelInfo;

        Debug.Log("added winkelinfo");
        UpdateAllLayers();
    }