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; } }
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(); }
public void Add(ref SuperTriangle _t) { triangles.Add(_t); }