Пример #1
0
    public void divideFace()
    {
        if (selected.Count > 0 && selected[0].getType() == VrbTargetType.Face)
        {
            VrbFace oldf = (VrbFace)selected[0];

            VrbFace.all.Remove(oldf);
            VrbObject.editingObject.faces.Remove(oldf);
            GameObject.Destroy(oldf.gameObject);

            foreach (VrbTriangle t in oldf.ftOriginal)
            {
                List <VrbTriangle> ntList = new List <VrbTriangle>();
                ntList.Add(t);

                VrbFace nf = new VrbFace(ntList);
                nf.matVrbc.color = VrbObject.editingObject.vrbc.color;
                foreach (VrbEdge ee in nf.fEdges)
                {
                    ee.displayModel();
                }
                nf.displayModel();
                VrbObject.editingObject.faces.Add(nf);
            }
        }
        transformPanel.SetActive(false);
        clearAllSelection();
    }
Пример #2
0
    public void connetVertexToFace()
    {
        performedSomeOperation = true;
        List <VrbVertex> vList = new List <VrbVertex>();

        for (int i = 0; i < selected.Count; i++)
        {
            if (selected[i].getType() == VrbTargetType.Vertex)
            {
                vList.Add((VrbVertex)selected[i]);
            }
        }
        if (vList.Count > 2)
        {
            List <VrbTriangle> tList = new List <VrbTriangle>();
            for (int i = 0; i < vList.Count - 2; i++)
            {
                tList.Add(new VrbTriangle(vList[i], vList[i + 1], vList[i + 2]));
            }
            VrbFace nf = new VrbFace(tList);
            nf.matVrbc.color = VrbObject.editingObject.vrbc.color;
            nf.displayModel();
            VrbObject.editingObject.faces.Add(nf);
        }
        transformPanel.SetActive(false);
        clearAllSelection();
    }
Пример #3
0
    public void mergeFace()
    {
        performedSomeOperation = true;
        List <VrbFace> fList = new List <VrbFace>();

        for (int i = 0; i < selected.Count; i++)
        {
            if (selected[i].getType() == VrbTargetType.Face)
            {
                fList.Add((VrbFace)selected[i]);
            }
        }

        List <VrbTriangle> tList = new List <VrbTriangle>();

        foreach (VrbFace f in fList)
        {
            GameObject.Destroy(f.gameObject);
            foreach (VrbEdge e in f.fEdges)
            {
                e.hideModel();
            }

            foreach (VrbTriangle t in f.ftOriginal)
            {
                tList.Add(t);
            }

            VrbFace.all.Remove(f);
            VrbObject.editingObject.faces.Remove(f);
        }
        VrbFace nf = new VrbFace(tList);

        nf.matVrbc.color = VrbObject.editingObject.vrbc.color;
        foreach (VrbEdge ee in nf.fEdges)
        {
            ee.displayModel();
        }
        nf.displayModel();
        VrbObject.editingObject.faces.Add(nf);

        transformPanel.SetActive(false);
        clearAllSelection();
    }