Mesh topology from normals list

Hi all,

I was wondering whether anyone has ever done this and could point out some guidelines.

I have a planar mesh with given x, y number of faces;
I also have a list of vectors, one per face;
I need to orient each face with normal vectors {0, 0, 1} on the planar mesh according to each vector on the vector list so that these vectors become the new normal vectors for each face;
There is a restraint on continuity, each inner mesh face must share all edges with surrounding faces, i.e. total number of edges remains constant;
There is a restraint on the mesh border, it cannot change it’s dimensions or position;
There is no restraint on mesh face sizes, they can shift as needed to accommodate to the new orientations.

You can think of this as an automated procedude to create a terrain with a certain topology that is given by a list or matrix (array) of new normal vectors.

I am putting forth a number of ideas to approach this problem, but if anyone has ever thought about this it would certainly help out a lot.

Thanks. Enjoy your weekend!