protected void xCollectVertexes(TMutableGeoMesh mesh, int baseTriangleNode = -1, int depth = -1) { if (baseTriangleNode < 0) { for (int i = 0; i < IcosahedronTriangles; i++) { xCollectVertexes(mesh, i, depth); } } else { if (depth == 0 || xTriTree[baseTriangleNode].children[0] < 0) { for (int i = 0; i < 3; i++) { mesh.AddVertex(xTriTree[baseTriangleNode].vertices[i]); } } else { for (int i = 0; i < 4; i++) { xCollectVertexes(mesh, xTriTree[baseTriangleNode].children[i], depth - 1); } } } }