public static void Flatten(PositionColoredTextured[][] subPathVerts, out PositionColoredTextured[] verts)
 {
   int numVertices = subPathVerts.Where(t => t != null).Sum(t => t.Length);
   if (numVertices == 0)
   {
     verts = null;
     return;
   }
   verts = new PositionColoredTextured[numVertices];
   long offset = 0;
   foreach (PositionColoredTextured[] spv in subPathVerts)
   {
     if (spv == null)
       continue;
     long length = spv.Length;
     Array.Copy(spv, 0, verts, offset, length);
     offset += length;
   }
 }