Esempio n. 1
0
    public TrianglesList(int[] _t, ref List <SuperVertice> _sv)
    {
        triangles = new List <SuperTriangle>();
        for (int i = 0; i < _t.Length - 2; i += 3)
        {
            List <SuperVertice> lsv = new List <SuperVertice>
            {
                //new SuperVertice(_t[i], _sv[_t[i]].vertice),
                //new SuperVertice(_t[i + 1],_sv[_t[i + 1]].vertice),
                //new SuperVertice(_t[i + 2], _sv[_t[i + 1]].vertice)
                _sv[_t[i]],
                _sv[_t[i + 1]],
                _sv[_t[i + 2]]
            };

            var v = new SuperTriangle(ref lsv);
            if (!triangles.Contains(v))
            {
                triangles.Add(v);
            }
        }
        unaltered_triangles = triangles;
        primitives          = new List <GameObject>();
        //Debug.Log("DoneInit");
    }
    /// <summary>
    ///
    /// </summary>
    void Deconstruct()
    {
        SuperTriangle t = Original ? in_triangles_.Pop() : out_triangles_.Pop();

        if (t != null)
        {
            //Debug.DrawLine(t.vertices[0].vertice, t.vertices[1].vertice, Color.red, 2.0f);
            //Debug.DrawLine(t.vertices[1].vertice, t.vertices[2].vertice, Color.red, 2.0f);
            //Debug.DrawLine(t.vertices[2].vertice, t.vertices[0].vertice, Color.red, 2.0f);
            if (Original)
            {
                out_triangles_.triangles.Add(t);
            }
            else
            {
                in_triangles_.triangles.Add(t);
            }

            SaveToMesh();
        }
        else
        {
            state = State.Idle;
        }
    }
Esempio n. 3
0
    public SuperTriangle Pop()
    {
        if (triangles.Count == 0)
        {
            return(null);
        }
        SuperTriangle r_ = triangles[triangles.Count - 1];

        //triangles.RemoveAt(triangles.Count - 1);
        triangles = triangles.GetRange(0, triangles.Count - 1);
        return(r_);
    }
    /// <summary>
    /// Unwrap triangles one-by-one
    /// </summary>
    public void UnwrapOBO()
    {
        if (!sorted)
        {
            PrepareTransform();
        }
        SuperTriangle t = Original ? in_triangles_.Pop() : out_triangles_.Pop();

        if (t == null)
        {
            return;
        }
        //Debug.DrawLine(t.vertices[0].vertice, t.vertices[1].vertice, Color.red, 2.0f);
        //Debug.DrawLine(t.vertices[1].vertice, t.vertices[2].vertice, Color.red, 2.0f);
        //Debug.DrawLine(t.vertices[2].vertice, t.vertices[0].vertice, Color.red, 2.0f);


        SaveToMesh();
    }
Esempio n. 5
0
 public void Add(ref SuperTriangle _t)
 {
     triangles.Add(_t);
 }