void
subdivide(GLfloat v1[3], GLfloat v2[3],
GLfloat v3[3], int depth)
{ ...
normalize(v12);
normalize(v23);
normalize(v31);
subdivide(v1, v12, v31, depth-1);
subdivide(v2, v23, v12, depth-1);
subdivide(v3, v31, v23, depth-1);
subdivide(v12, v23, v31, depth-1);
}