示例#1
0
    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;
    }
示例#2
0
    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;
    }
示例#3
0
 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);
 }
示例#4
0
 public void AddTriangle(DbgRenderTriangle tri)
 {
     m_Triangles.Add(tri);
     m_BoundsComputed = false;
 }
示例#5
0
 public void AddTriangle(DbgRenderTriangle tri)
 {
     m_Triangles.Add(tri);
     m_BoundsComputed = false;
 }