private void RenderTo(Mesh mesh, int start, int max) { mesh.Clear(); int triCount = m_Triangles.Count; int size = (max - start) * 3; Vector3[] verts = new Vector3[size]; int[] tris = new int[size]; Color[] colors = new Color[size]; for (int i = start; i < triCount; ++i) { if (i + 1 > max) { break; } DbgRenderTriangle tri = m_Triangles[i]; int v = (i - start) * 3; for (int j = 0; j < 3; ++j) { verts[v + j] = tri.m_Verts[j]; tris[v + j] = v + j; colors[v + j] = tri.m_Colors[j]; } } mesh.vertices = verts; mesh.triangles = tris; mesh.colors = colors; }
private void RenderTo(Mesh mesh) { mesh.Clear(); int triCount = m_Triangles.Count; Vector3[] verts = new Vector3[3 * triCount]; int[] tris = new int[3 * triCount]; Color[] colors = new Color[3 * triCount]; for (int i = 0; i < triCount; ++i) { DbgRenderTriangle tri = m_Triangles[i]; int v = i * 3; for (int j = 0; j < 3; ++j) { verts[v + j] = tri.m_Verts[j]; tris[v + j] = v + j; colors[v + j] = tri.m_Colors[j]; } } mesh.vertices = verts; mesh.triangles = tris; mesh.colors = colors; }
public static Vector3 GetBoundingBoxCenter(List <DbgRenderTriangle> tris, int firstIndex, int lastIndex, ref Vector3 min, ref Vector3 max) { min = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); max = new Vector3(float.MinValue, float.MinValue, float.MinValue); for (int i = firstIndex; i < lastIndex; ++i) { DbgRenderTriangle tri = tris[i]; foreach (Vector3 vec in tri.m_Verts) { min.x = Mathf.Min(vec.x, min.x); min.y = Mathf.Min(vec.y, min.y); min.z = Mathf.Min(vec.z, min.z); max.x = Mathf.Max(vec.x, max.x); max.y = Mathf.Max(vec.y, max.y); max.z = Mathf.Max(vec.z, max.z); } } if (tris.Count > 0) { return(min + (max - min) / 2.0f); } return(Vector3.zero); }
public void AddTriangle(DbgRenderTriangle tri) { m_Triangles.Add(tri); m_BoundsComputed = false; }